Ignore:
Timestamp:
May 8, 2002, 1:30:14 PM (23 years ago)
Author:
sandervl
Message:

header updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win/commctrl.h

    r7915 r8385  
    88#include "windef.h"
    99#include "winbase.h"
     10#include "wingdi.h"
    1011#include "winuser.h"
    11 #include "imagelist.h"
    1212#include "winnls.h"
    1313#include "prsht.h"
    14 
    1514
    1615#ifdef __cplusplus
     
    2928BOOL WINAPI InitCommonControlsEx (LPINITCOMMONCONTROLSEX);
    3029
     30LANGID WINAPI GetMUILanguage (VOID);
     31VOID WINAPI InitMUILanguage (LANGID uiLang);
     32
     33
    3134#define COMCTL32_VERSION                5  /* dll version */
     35
     36#ifndef _WIN32_IE
     37#define _WIN32_IE 0x0400
     38#endif
    3239
    3340#define ICC_LISTVIEW_CLASSES   0x00000001  /* listview, header */
     
    6673
    6774#define CCM_SETBKCOLOR       (CCM_FIRST+1)     /* lParam = bkColor */
    68 #define CCM_SETCOLORSCHEME   (CCM_FIRST+2)
    69 #define CCM_GETCOLORSCHEME   (CCM_FIRST+3)
     75#define CCM_SETCOLORSCHEME   (CCM_FIRST+2)     /* lParam = COLORSCHEME struct ptr */
     76#define CCM_GETCOLORSCHEME   (CCM_FIRST+3)     /* lParam = COLORSCHEME struct ptr */
    7077#define CCM_GETDROPTARGET    (CCM_FIRST+4)
    7178#define CCM_SETUNICODEFORMAT (CCM_FIRST+5)
     
    7481#define CCM_GETVERSION       (CCM_FIRST+8)
    7582#define CCM_SETNOTIFYWINDOW  (CCM_FIRST+9)     /* wParam = hwndParent */
     83
    7684
    7785/* common notification codes (WM_NOTIFY)*/
     
    94102#define NM_CHAR                 (NM_FIRST-18)
    95103#define NM_TOOLTIPSCREATED      (NM_FIRST-19)
    96 #define NM_LDOWN                (NM_FIRST-20)
    97 #define NM_RDOWN                (NM_FIRST-21)
    98 #define NM_UPDOWN                NMUPDOWN
     104
     105#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
     106    (fn)((hwnd), (int)(wParam), (NMHDR*)(lParam))
     107#define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) \
     108    (LRESULT)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(idFrom), (LPARAM)(NMHDR*)(pnmhdr))
     109
    99110
    100111/* callback constants */
     
    107118#define I_INDENTCALLBACK         (-1)
    108119#define I_CHILDRENCALLBACK       (-1)
    109 
    110120
    111121/* owner drawn types */
     
    159169} NMCHAR, *LPNMCHAR;
    160170
    161 
    162171#ifndef CCSIZEOF_STRUCT
    163172#define CCSIZEOF_STRUCT(name, member) \
     
    169178/* This is only for Winelib applications. DON't use it wine itself!!! */
    170179#ifndef SNDMSG
    171 #define SNDMSG WINELIB_NAME_AW(SendMessage)
    172 #endif
     180#ifdef __cplusplus
     181#define SNDMSG ::SendMessage
     182#else   /* __cplusplus */
     183#define SNDMSG SendMessage
     184#endif  /* __cplusplus */
     185#endif  /* SNDMSG */
     186
    173187
    174188
     
    182196#define CDRF_NOTIFYSUBITEMDRAW  0x00000020
    183197#define CDRF_NOTIFYPOSTERASE    0x00000040
    184 #define CDRF_NOTIFYITEMERASE    0x00000080         /* obsolete ??? */
     198#define CDRF_NOTIFYITEMERASE    0x00000080      /* obsolete ??? */
    185199
    186200
     
    192206#define CDDS_POSTERASE          4
    193207
    194 #define CDDS_ITEM                               0x00010000
    195 #define CDDS_ITEMPREPAINT               (CDDS_ITEM | CDDS_PREPAINT)
    196 #define CDDS_ITEMPOSTPAINT              (CDDS_ITEM | CDDS_POSTPAINT)
    197 #define CDDS_ITEMPREERASE               (CDDS_ITEM | CDDS_PREERASE)
    198 #define CDDS_ITEMPOSTERASE              (CDDS_ITEM | CDDS_POSTERASE)
     208#define CDDS_ITEM                               0x00010000
     209#define CDDS_ITEMPREPAINT               (CDDS_ITEM | CDDS_PREPAINT)
     210#define CDDS_ITEMPOSTPAINT              (CDDS_ITEM | CDDS_POSTPAINT)
     211#define CDDS_ITEMPREERASE               (CDDS_ITEM | CDDS_PREERASE)
     212#define CDDS_ITEMPOSTERASE              (CDDS_ITEM | CDDS_POSTERASE)
    199213#define CDDS_SUBITEM            0x00020000
    200214
    201215/* itemState flags */
    202216
    203 #define CDIS_SELECTED           0x0001
    204 #define CDIS_GRAYED                     0x0002
    205 #define CDIS_DISABLED           0x0004
    206 #define CDIS_CHECKED            0x0008
    207 #define CDIS_FOCUS                      0x0010
    208 #define CDIS_DEFAULT            0x0020
    209 #define CDIS_HOT                        0x0040
     217#define CDIS_SELECTED           0x0001
     218#define CDIS_GRAYED                     0x0002
     219#define CDIS_DISABLED           0x0004
     220#define CDIS_CHECKED            0x0008
     221#define CDIS_FOCUS                      0x0010
     222#define CDIS_DEFAULT            0x0020
     223#define CDIS_HOT                        0x0040
    210224#define CDIS_MARKED         0x0080
    211225#define CDIS_INDETERMINATE  0x0100
     
    214228typedef struct tagNMCUSTOMDRAWINFO
    215229{
    216         NMHDR   hdr;
    217         DWORD   dwDrawStage;
    218         HDC     hdc;
    219         RECT    rc;
    220         DWORD   dwItemSpec;
    221         UINT    uItemState;
    222         LPARAM  lItemlParam;
     230        NMHDR   hdr;
     231        DWORD   dwDrawStage;
     232        HDC     hdc;
     233        RECT    rc;
     234        DWORD   dwItemSpec;
     235        UINT    uItemState;
     236        LPARAM  lItemlParam;
    223237} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;
    224238
     
    234248/* StatusWindow */
    235249
    236 #define STATUSCLASSNAME16       "msctls_statusbar"
    237 #define STATUSCLASSNAMEA        "msctls_statusbar32"
    238 /* Does not work. gcc creates 4 byte wide strings.
    239  * #define STATUSCLASSNAME32W   L"msctls_statusbar32"
    240  */
    241 static const WCHAR      _scn32w[] = {
    242 'm','s','c','t','l','s','_','s','t','a','t','u','s','b','a','r','3','2',0
    243 };
    244 #define STATUSCLASSNAMEW        _scn32w
    245 #define STATUSCLASSNAME         WINELIB_NAME_AW(STATUSCLASSNAME)
    246 
    247 #define SBT_NOBORDERS           0x0100
    248 #define SBT_POPOUT              0x0200
    249 #define SBT_RTLREADING          0x0400  /* not supported */
    250 #define SBT_TOOLTIPS            0x0800
    251 #define SBT_OWNERDRAW           0x1000
    252 
    253 #define SBARS_SIZEGRIP          0x0100
    254 
    255 #define SB_SETTEXTA             (WM_USER+1)
    256 #define SB_SETTEXTW             (WM_USER+11)
    257 #define SB_SETTEXT              WINELIB_NAME_AW(SB_SETTEXT)
    258 #define SB_GETTEXTA             (WM_USER+2)
    259 #define SB_GETTEXTW             (WM_USER+13)
    260 #define SB_GETTEXT              WINELIB_NAME_AW(SB_GETTEXT)
    261 #define SB_GETTEXTLENGTHA       (WM_USER+3)
    262 #define SB_GETTEXTLENGTHW       (WM_USER+12)
    263 #define SB_GETTEXTLENGTH        WINELIB_NAME_AW(SB_GETTEXTLENGTH)
    264 #define SB_SETPARTS             (WM_USER+4)
    265 #define SB_GETPARTS             (WM_USER+6)
    266 #define SB_GETBORDERS           (WM_USER+7)
    267 #define SB_SETMINHEIGHT         (WM_USER+8)
    268 #define SB_SIMPLE               (WM_USER+9)
    269 #define SB_GETRECT              (WM_USER+10)
    270 #define SB_ISSIMPLE             (WM_USER+14)
    271 #define SB_SETICON              (WM_USER+15)
    272 #define SB_SETTIPTEXTA          (WM_USER+16)
    273 #define SB_SETTIPTEXTW          (WM_USER+17)
    274 #define SB_SETTIPTEXT           WINELIB_NAME_AW(SB_SETTIPTEXT)
    275 #define SB_GETTIPTEXTA          (WM_USER+18)
    276 #define SB_GETTIPTEXTW          (WM_USER+19)
    277 #define SB_GETTIPTEXT           WINELIB_NAME_AW(SB_GETTIPTEXT)
    278 #define SB_GETICON              (WM_USER+20)
    279 #define SB_SETBKCOLOR           CCM_SETBKCOLOR   /* lParam = bkColor */
    280 #define SB_GETUNICODEFORMAT     CCM_GETUNICODEFORMAT
    281 #define SB_SETUNICODEFORMAT     CCM_SETUNICODEFORMAT
    282 
    283 #define SBN_FIRST               (0U-880U)
    284 #define SBN_LAST                (0U-899U)
    285 #define SBN_SIMPLEMODECHANGE    (SBN_FIRST-0)
     250#define STATUSCLASSNAME16       "msctls_statusbar"
     251#define STATUSCLASSNAMEA        "msctls_statusbar32"
     252#ifdef __WIN32OS2__
     253#define STATUSCLASSNAMEW        L"msctls_statusbar32"
     254#else
     255static const WCHAR STATUSCLASSNAMEW[] = { 'm','s','c','t','l','s','_',
     256  's','t','a','t','u','s','b','a','r','3','2',0 };
     257#endif
     258#define STATUSCLASSNAME         WINELIB_NAME_AW(STATUSCLASSNAME)
     259
     260#define SBT_NOBORDERS           0x0100
     261#define SBT_POPOUT              0x0200
     262#define SBT_RTLREADING          0x0400  /* not supported */
     263#define SBT_TOOLTIPS            0x0800
     264#define SBT_OWNERDRAW           0x1000
     265
     266#define SBARS_SIZEGRIP          0x0100
     267
     268#define SB_SETTEXTA             (WM_USER+1)
     269#define SB_SETTEXTW             (WM_USER+11)
     270#define SB_SETTEXT              WINELIB_NAME_AW(SB_SETTEXT)
     271#define SB_GETTEXTA             (WM_USER+2)
     272#define SB_GETTEXTW             (WM_USER+13)
     273#define SB_GETTEXT              WINELIB_NAME_AW(SB_GETTEXT)
     274#define SB_GETTEXTLENGTHA       (WM_USER+3)
     275#define SB_GETTEXTLENGTHW       (WM_USER+12)
     276#define SB_GETTEXTLENGTH        WINELIB_NAME_AW(SB_GETTEXTLENGTH)
     277#define SB_SETPARTS             (WM_USER+4)
     278#define SB_SETBORDERS           (WM_USER+5)
     279#define SB_GETPARTS             (WM_USER+6)
     280#define SB_GETBORDERS           (WM_USER+7)
     281#define SB_SETMINHEIGHT         (WM_USER+8)
     282#define SB_SIMPLE               (WM_USER+9)
     283#define SB_GETRECT              (WM_USER+10)
     284#define SB_ISSIMPLE             (WM_USER+14)
     285#define SB_SETICON              (WM_USER+15)
     286#define SB_SETTIPTEXTA  (WM_USER+16)
     287#define SB_SETTIPTEXTW  (WM_USER+17)
     288#define SB_SETTIPTEXT           WINELIB_NAME_AW(SB_SETTIPTEXT)
     289#define SB_GETTIPTEXTA  (WM_USER+18)
     290#define SB_GETTIPTEXTW  (WM_USER+19)
     291#define SB_GETTIPTEXT           WINELIB_NAME_AW(SB_GETTIPTEXT)
     292#define SB_GETICON              (WM_USER+20)
     293#define SB_SETBKCOLOR           CCM_SETBKCOLOR   /* lParam = bkColor */
     294#define SB_GETUNICODEFORMAT     CCM_GETUNICODEFORMAT
     295#define SB_SETUNICODEFORMAT     CCM_SETUNICODEFORMAT
     296
     297#define SBN_FIRST               (0U-880U)
     298#define SBN_LAST                (0U-899U)
     299#define SBN_SIMPLEMODECHANGE    (SBN_FIRST-0)
    286300
    287301HWND WINAPI CreateStatusWindowA (INT, LPCSTR, HWND, UINT);
     
    294308                      HINSTANCE, HWND, LPUINT);
    295309
     310typedef struct tagCOLORSCHEME
     311{
     312   DWORD            dwSize;
     313   COLORREF         clrBtnHighlight;       /* highlight color */
     314   COLORREF         clrBtnShadow;          /* shadow color */
     315} COLORSCHEME, *LPCOLORSCHEME;
     316
    296317/**************************************************************************
    297318 *  Drag List control
     
    315336#define DL_MOVECURSOR           3
    316337
     338#ifdef __WIN32OS2__
    317339#define DRAGLISTMSGSTRINGA      "commctrl_DragListMsg"
    318340#define DRAGLISTMSGSTRINGW      L"commctrl_DragListMsg"
    319341#define DRAGLISTMSGSTRING       WINELIB_NAME_AW(DRAGLISTMSGSTRING)
     342#else
     343#define DRAGLISTMSGSTRING       TEXT("commctrl_DragListMsg")
     344#endif
    320345
    321346BOOL WINAPI MakeDragList (HWND);
     
    326351/* UpDown */
    327352
    328 #define UPDOWN_CLASS16        "msctls_updown"
    329 #define UPDOWN_CLASSA         "msctls_updown32"
    330 #define UPDOWN_CLASSW         L"msctls_updown32"
    331 #define UPDOWN_CLASS          WINELIB_NAME_AW(UPDOWN_CLASS)
     353#define UPDOWN_CLASS16          "msctls_updown"
     354#define UPDOWN_CLASSA           "msctls_updown32"
     355#ifdef __WIN32OS2__
     356#define UPDOWN_CLASSW           L"msctls_updown32"
     357#else
     358static const WCHAR UPDOWN_CLASSW[] = { 'm','s','c','t','l','s','_',
     359  'u','p','d','o','w','n','3','2',0 };
     360#endif
     361#define UPDOWN_CLASS            WINELIB_NAME_AW(UPDOWN_CLASS)
    332362
    333363typedef struct tagUDACCEL
     
    335365    UINT nSec;
    336366    UINT nInc;
    337 } UDACCEL;
     367} UDACCEL, *LPUDACCEL;
    338368
    339369#define UD_MAXVAL          0x7fff
     
    348378#define UDS_HORZ           0x0040
    349379#define UDS_NOTHOUSANDS    0x0080
     380#define UDS_HOTTRACK       0x0100
    350381
    351382#define UDN_FIRST          (0U-721)
     
    365396#define UDM_SETRANGE32     (WM_USER+111)
    366397#define UDM_GETRANGE32     (WM_USER+112)
     398#define UDM_SETUNICODEFORMAT    CCM_SETUNICODEFORMAT
     399#define UDM_GETUNICODEFORMAT    CCM_GETUNICODEFORMAT
    367400#define UDM_SETPOS32       (WM_USER+113)
    368401#define UDM_GETPOS32       (WM_USER+114)
     402
     403
     404#define NMUPDOWN    NM_UPDOWN
     405#define LPNMUPDOWN  LPNM_UPDOWN
     406
     407typedef struct tagNM_UPDOWN
     408{
     409  NMHDR hdr;
     410  int iPos;
     411  int iDelta;
     412} NM_UPDOWN, *LPNM_UPDOWN;
    369413
    370414HWND WINAPI CreateUpDownControl (DWORD, INT, INT, INT, INT,
     
    374418/* Progress Bar */
    375419
    376 #define PROGRESS_CLASSA  "msctls_progress32"
    377 #define PROGRESS_CLASSW  L"msctls_progress32"
    378 #define PROGRESS_CLASS16 "msctls_progress"
    379 #define PROGRESS_CLASS   WINELIB_NAME_AW(PROGRESS_CLASS)
     420#define PROGRESS_CLASS16  "msctls_progress"
     421#define PROGRESS_CLASSA   "msctls_progress32"
     422#ifdef __WIN32OS2__
     423#define PROGRESS_CLASSW   L"msctls_progress32"
     424#else
     425static const WCHAR PROGRESS_CLASSW[] = { 'm','s','c','t','l','s','_',
     426  'p','r','o','g','r','e','s','s','3','2',0 };
     427#endif
     428#define PROGRESS_CLASS      WINELIB_NAME_AW(PROGRESS_CLASS)
    380429
    381430#define PBM_SETRANGE        (WM_USER+1)
     
    401450
    402451/* ImageList */
    403 #if !defined(_IMAGELIST_H)
     452
    404453struct _IMAGELIST;
    405454typedef struct _IMAGELIST *HIMAGELIST;
    406 #endif /* __WINE__ */
    407455
    408456#define CLR_NONE         0xFFFFFFFF
     
    447495    INT     Unused2;
    448496    RECT    rcImage;
    449 } IMAGEINFO;
     497} IMAGEINFO, *LPIMAGEINFO;
    450498
    451499
     
    468516} IMAGELISTDRAWPARAMS, *LPIMAGELISTDRAWPARAMS;
    469517
    470 
     518 
    471519INT      WINAPI ImageList_Add(HIMAGELIST,HBITMAP,HBITMAP);
    472520INT      WINAPI ImageList_AddIcon (HIMAGELIST, HICON);
     
    477525BOOL     WINAPI ImageList_Destroy(HIMAGELIST);
    478526BOOL     WINAPI ImageList_DragEnter(HWND,INT,INT);
    479 BOOL     WINAPI ImageList_DragLeave(HWND);
     527BOOL     WINAPI ImageList_DragLeave(HWND); 
    480528BOOL     WINAPI ImageList_DragMove(INT,INT);
    481529BOOL     WINAPI ImageList_DragShowNolock (BOOL);
     
    483531BOOL     WINAPI ImageList_DrawEx(HIMAGELIST,INT,HDC,INT,INT,INT,
    484532                                   INT,COLORREF,COLORREF,UINT);
    485 BOOL     WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*);
     533BOOL     WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*); 
    486534HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST);
    487535BOOL     WINAPI ImageList_EndDrag(VOID);
     
    523571#define ImageList_RemoveAll(himl) ImageList_Remove(himl,-1)
    524572
     573
    525574#ifndef WM_MOUSEHOVER
    526575#define WM_MOUSEHOVER                   0x02A1
     
    547596#endif
    548597
    549 BOOL WINAPI _TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
     598BOOL
     599WINAPI
     600_TrackMouseEvent(
     601    LPTRACKMOUSEEVENT lpEventTrack);
    550602
    551603/* Flat Scrollbar control */
    552604
    553 #define FLATSB_CLASS16      "flatsb_class"
    554 #define FLATSB_CLASSA       "flatsb_class32"
    555 #define FLATSB_CLASSW       L"flatsb_class32"
    556 #define FLATSB_CLASS        WINELIB_NAME_AW(FLATSB_CLASS)
     605#define FLATSB_CLASS16        "flatsb_class"
     606#define FLATSB_CLASSA         "flatsb_class32"
     607#ifdef __WIN32OS2__
     608#define FLATSB_CLASSW         L"flatsb_class32"
     609#else
     610static const WCHAR FLATSB_CLASSW[] = { 'f','l','a','t','s','b','_',
     611  'c','l','a','s','s','3','2',0 };
     612#endif
     613#define FLATSB_CLASS          WINELIB_NAME_AW(FLATSB_CLASS)
    557614
    558615#define WSB_PROP_CYVSCROLL     0x00000001L
     
    591648/* Header control */
    592649
    593 #define WC_HEADER16             "SysHeader"
    594 #define WC_HEADERA              "SysHeader32"
    595 #define WC_HEADERW              L"SysHeader32"
    596 #define WC_HEADER               WINELIB_NAME_AW(WC_HEADER)
    597 
    598 #define HDS_HORZ                0x0000
    599 #define HDS_BUTTONS             0x0002
    600 #define HDS_HOTTRACK            0x0004
    601 #define HDS_HIDDEN              0x0008
    602 #define HDS_DRAGDROP            0x0040
    603 #define HDS_FULLDRAG            0x0080
    604 #define HDS_FILTERBAR           0x0100
    605 
    606 #define HDFT_ISSTRING       0x0000      // HD_ITEM.pvFilter points to a HD_TEXTFILTER
    607 #define HDFT_ISNUMBER       0x0001      // HD_ITEM.pvFilter points to a INT
    608 
    609 #define HDFT_HASNOVALUE     0x8000      // clear the filter, by setting this bit
     650#define WC_HEADER16             "SysHeader"
     651#define WC_HEADERA              "SysHeader32"
     652#ifdef __WIN32OS2__
     653#define WC_HEADERW              L"SysHeader32"
     654#else
     655static const WCHAR WC_HEADERW[] = { 'S','y','s','H','e','a','d','e','r','3','2',0 };
     656#endif
     657#define WC_HEADER               WINELIB_NAME_AW(WC_HEADER)
     658 
     659#define HDS_HORZ                0x0000
     660#define HDS_BUTTONS             0x0002
     661#define HDS_HOTTRACK            0x0004
     662#define HDS_HIDDEN              0x0008
     663#define HDS_DRAGDROP            0x0040
     664#define HDS_FULLDRAG            0x0080
    610665
    611666#define HDI_WIDTH               0x0001
     
    618673#define HDI_DI_SETITEM          0x0040
    619674#define HDI_ORDER               0x0080
     675#ifdef __WIN32OS2__
    620676#define HDI_FILTER              0x0100
     677#endif
    621678
    622679#define HDF_LEFT                0x0000
     
    636693#define HHT_ONDIVIDER           0x0004
    637694#define HHT_ONDIVOPEN           0x0008
    638 #define HHT_ONFILTER            0x0010
    639 #define HHT_ONFILTERBUTTON      0x0020
    640695#define HHT_ABOVE               0x0100
    641696#define HHT_BELOW               0x0200
     
    643698#define HHT_TOLEFT              0x0800
    644699
    645 #define HDM_FIRST                  0x1200
    646 #define HDM_GETITEMCOUNT           (HDM_FIRST+0)
    647 #define HDM_INSERTITEMA            (HDM_FIRST+1)
    648 #define HDM_INSERTITEMW            (HDM_FIRST+10)
    649 #define HDM_INSERTITEM             WINELIB_NAME_AW(HDM_INSERTITEM)
    650 #define HDM_DELETEITEM             (HDM_FIRST+2)
    651 #define HDM_GETITEMA               (HDM_FIRST+3)
    652 #define HDM_GETITEMW               (HDM_FIRST+11)
    653 #define HDM_GETITEM                WINELIB_NAME_AW(HDM_GETITEM)
    654 #define HDM_SETITEMA               (HDM_FIRST+4)
    655 #define HDM_SETITEMW               (HDM_FIRST+12)
    656 #define HDM_SETITEM                WINELIB_NAME_AW(HDM_SETITEM)
    657 #define HDM_LAYOUT                 (HDM_FIRST+5)
    658 #define HDM_HITTEST                (HDM_FIRST+6)
    659 #define HDM_GETITEMRECT            (HDM_FIRST+7)
    660 #define HDM_SETIMAGELIST           (HDM_FIRST+8)
    661 #define HDM_GETIMAGELIST           (HDM_FIRST+9)
    662 
    663 #define HDM_ORDERTOINDEX           (HDM_FIRST+15)
    664 #define HDM_CREATEDRAGIMAGE        (HDM_FIRST+16)
    665 #define HDM_GETORDERARRAY          (HDM_FIRST+17)
    666 #define HDM_SETORDERARRAY          (HDM_FIRST+18)
    667 #define HDM_SETHOTDIVIDER          (HDM_FIRST+19)
     700#define HDM_FIRST               0x1200
     701#define HDM_GETITEMCOUNT        (HDM_FIRST+0)
     702#define HDM_INSERTITEMA       (HDM_FIRST+1)
     703#define HDM_INSERTITEMW       (HDM_FIRST+10)
     704#define HDM_INSERTITEM          WINELIB_NAME_AW(HDM_INSERTITEM)
     705#define HDM_DELETEITEM          (HDM_FIRST+2)
     706#define HDM_GETITEMA          (HDM_FIRST+3)
     707#define HDM_GETITEMW          (HDM_FIRST+11)
     708#define HDM_GETITEM             WINELIB_NAME_AW(HDM_GETITEM)
     709#define HDM_SETITEMA          (HDM_FIRST+4)
     710#define HDM_SETITEMW          (HDM_FIRST+12)
     711#define HDM_SETITEM             WINELIB_NAME_AW(HDM_SETITEM)
     712#define HDM_LAYOUT              (HDM_FIRST+5)
     713#define HDM_HITTEST             (HDM_FIRST+6)
     714#define HDM_GETITEMRECT         (HDM_FIRST+7)
     715#define HDM_SETIMAGELIST        (HDM_FIRST+8)
     716#define HDM_GETIMAGELIST        (HDM_FIRST+9)
     717
     718#define HDM_ORDERTOINDEX        (HDM_FIRST+15)
     719#define HDM_CREATEDRAGIMAGE     (HDM_FIRST+16)
     720#define HDM_GETORDERARRAY       (HDM_FIRST+17)
     721#define HDM_SETORDERARRAY       (HDM_FIRST+18)
     722#define HDM_SETHOTDIVIDER       (HDM_FIRST+19)
     723#define HDM_GETUNICODEFORMAT    CCM_GETUNICODEFORMAT
     724#define HDM_SETUNICODEFORMAT    CCM_SETUNICODEFORMAT
     725#ifdef __WIN32OS2__
    668726#define HDM_SETBITMAPMARGIN        (HDM_FIRST+20)
    669727#define HDM_GETBITMAPMARGIN        (HDM_FIRST+21)
    670 #define HDM_GETUNICODEFORMAT       CCM_GETUNICODEFORMAT
    671 #define HDM_SETUNICODEFORMAT       CCM_SETUNICODEFORMAT
    672728#define HDM_SETFILTERCHANGETIMEOUT (HDM_FIRST+22)
    673729#define HDM_EDITFILTER             (HDM_FIRST+23)
    674730#define HDM_CLEARFILTER            (HDM_FIRST+24)
     731#endif
    675732
    676733#define HDN_FIRST               (0U-300U)
     
    678735#define HDN_ITEMCHANGINGA     (HDN_FIRST-0)
    679736#define HDN_ITEMCHANGINGW     (HDN_FIRST-20)
    680 #define HDN_ITEMCHANGING      WINELIB_NAME_AW(HDN_ITEMCHANGING)
     737#define HDN_ITEMCHANGING WINELIB_NAME_AW(HDN_ITEMCHANGING)
    681738#define HDN_ITEMCHANGEDA      (HDN_FIRST-1)
    682739#define HDN_ITEMCHANGEDW      (HDN_FIRST-21)
    683 #define HDN_ITEMCHANGED       WINELIB_NAME_AW(HDN_ITEMCHANGED)
     740#define HDN_ITEMCHANGED WINELIB_NAME_AW(HDN_ITEMCHANGED)
    684741#define HDN_ITEMCLICKA        (HDN_FIRST-2)
    685742#define HDN_ITEMCLICKW        (HDN_FIRST-22)
    686 #define HDN_ITEMCLICK         WINELIB_NAME_AW(HDN_ITEMCLICK)
     743#define HDN_ITEMCLICK WINELIB_NAME_AW(HDN_ITEMCLICK)
    687744#define HDN_ITEMDBLCLICKA     (HDN_FIRST-3)
    688745#define HDN_ITEMDBLCLICKW     (HDN_FIRST-23)
    689 #define HDN_ITEMDBLCLICK       WINELIB_NAME_AW(HDN_ITEMDBLCLICK)
     746#define HDN_ITEMDBLCLICK WINELIB_NAME_AW(HDN_ITEMDBLCLICK)
    690747#define HDN_DIVIDERDBLCLICKA  (HDN_FIRST-5)
    691748#define HDN_DIVIDERDBLCLICKW  (HDN_FIRST-25)
    692 #define HDN_DIVIDERDBLCLICK    WINELIB_NAME_AW(HDN_DIVIDERDBLCLICK)
     749#define HDN_DIVIDERDBLCLICK WINELIB_NAME_AW(HDN_DIVIDERDBLCLICK)
    693750#define HDN_BEGINTRACKA       (HDN_FIRST-6)
    694751#define HDN_BEGINTRACKW       (HDN_FIRST-26)
    695 #define HDN_BEGINTRACK        WINELIB_NAME_AW(HDN_BEGINTRACK)
     752#define HDN_BEGINTRACK WINELIB_NAME_AW(HDN_BEGINTRACK)
    696753#define HDN_ENDTRACKA         (HDN_FIRST-7)
    697754#define HDN_ENDTRACKW         (HDN_FIRST-27)
    698 #define HDN_ENDTRACK          WINELIB_NAME_AW(HDN_ENDTRACK)
     755#define HDN_ENDTRACK WINELIB_NAME_AW(HDN_ENDTRACK)
    699756#define HDN_TRACKA            (HDN_FIRST-8)
    700757#define HDN_TRACKW            (HDN_FIRST-28)
    701 #define HDN_TRACK             WINELIB_NAME_AW(HDN_TRACK)
     758#define HDN_TRACK WINELIB_NAME_AW(HDN_TRACK)
    702759#define HDN_GETDISPINFOA      (HDN_FIRST-9)
    703760#define HDN_GETDISPINFOW      (HDN_FIRST-29)
    704 #define HDN_GETDISPINFO       WINELIB_NAME_AW(HDN_GETDISPINFO)
     761#define HDN_GETDISPINFO WINELIB_NAME_AW(HDN_GETDISPINFO)
    705762#define HDN_BEGINDRAG         (HDN_FIRST-10)
    706763#define HDN_ENDDRAG           (HDN_FIRST-11)
     764#ifdef __WIN32OS2__
    707765#define HDN_FILTERCHANGE      (HDN_FIRST-12)
    708766#define HDN_FILTERBTNCLICK    (HDN_FIRST-13)
    709 
    710 typedef struct _HD_TEXTFILTERA
    711 {
    712     LPSTR pszText;                      // [in] pointer to the buffer containing the filter (ANSI)
    713     INT cchTextMax;                     // [in] max size of buffer/edit control buffer
    714 } HD_TEXTFILTERA, *LPHD_TEXTFILTERA;
    715 
    716 typedef struct _HD_TEXTFILTERW
    717 {
    718     LPWSTR pszText;                     // [in] pointer to the buffer contiaining the filter (UNICODE)
    719     INT cchTextMax;                     // [in] max size of buffer/edit control buffer
    720 } HD_TEXTFILTERW, *LPHD_TEXTFILTERW;
    721 
    722 #define HD_TEXTFILTER WINELIB_NAME_AW(HD_TEXTFILTER)
     767#endif
    723768
    724769typedef struct _HD_LAYOUT
     
    734779    UINT    mask;
    735780    INT     cxy;
    736     LPSTR   pszText;
     781    LPSTR     pszText;
    737782    HBITMAP hbm;
    738783    INT     cchTextMax;
    739784    INT     fmt;
    740     LPARAM  lParam;
     785    LPARAM    lParam;
    741786    INT     iImage;
    742787    INT     iOrder;
    743     UINT    type;           // [in] filter type (defined what pvFilter is a pointer to)
    744     LPVOID  pvFilter;       // [in] fillter data see above
     788    UINT    type;
     789    LPVOID  pvFilter;
    745790} HDITEMA, *LPHDITEMA;
    746 
    747 #define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA, lParam)
    748 #define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW, lParam)
    749791
    750792typedef struct _HD_ITEMW
     
    752794    UINT    mask;
    753795    INT     cxy;
    754     LPWSTR  pszText;
     796    LPWSTR    pszText;
    755797    HBITMAP hbm;
    756798    INT     cchTextMax;
    757799    INT     fmt;
    758     LPARAM  lParam;
     800    LPARAM    lParam;
    759801    INT     iImage;
    760802    INT     iOrder;
    761     UINT    type;           // [in] filter type (defined what pvFilter is a pointer to)
    762     LPVOID  pvFilter;       // [in] fillter data see above
     803    UINT    type;
     804    LPVOID  pvFilter;
    763805} HDITEMW, *LPHDITEMW;
    764806
     
    782824typedef struct tagNMHEADERA
    783825{
    784     NMHDR   hdr;
     826    NMHDR     hdr;
    785827    INT     iItem;
    786828    INT     iButton;
     
    790832typedef struct tagNMHEADERW
    791833{
    792     NMHDR   hdr;
     834    NMHDR     hdr;
    793835    INT     iItem;
    794836    INT     iButton;
     
    796838} NMHEADERW, *LPNMHEADERW;
    797839
    798 #define NMHEADER                WINELIB_NAME_AW(NMHEADER)
    799 #define LPNMHEADER              WINELIB_NAME_AW(LPNMHEADER)
     840#define NMHEADER                WINELIB_NAME_AW(NMHEADER)
     841#define LPNMHEADER              WINELIB_NAME_AW(LPNMHEADER)
    800842#define HD_NOTIFY               NMHEADER
    801843
    802844typedef struct tagNMHDDISPINFOA
    803845{
    804     NMHDR   hdr;
     846    NMHDR     hdr;
    805847    INT     iItem;
    806848    UINT    mask;
    807     LPSTR   pszText;
     849    LPSTR     pszText;
    808850    INT     cchTextMax;
    809851    INT     iImage;
    810     LPARAM  lParam;
     852    LPARAM    lParam;
    811853} NMHDDISPINFOA, *LPNMHDDISPINFOA;
    812854
    813855typedef struct tagNMHDDISPINFOW
    814856{
    815     NMHDR   hdr;
     857    NMHDR     hdr;
    816858    INT     iItem;
    817859    UINT    mask;
    818     LPWSTR  pszText;
     860    LPWSTR    pszText;
    819861    INT     cchTextMax;
    820862    INT     iImage;
    821     LPARAM  lParam;
     863    LPARAM    lParam;
    822864} NMHDDISPINFOW, *LPNMHDDISPINFOW;
    823865
    824 #define NMHDDISPINFO            WINELIB_NAME_AW(NMHDDISPINFO)
    825 #define LPNMHDDISPINFO          WINELIB_NAME_AW(LPNMHDDISPINFO)
    826 
     866#define NMHDDISPINFO            WINELIB_NAME_AW(NMHDDISPINFO)
     867#define LPNMHDDISPINFO          WINELIB_NAME_AW(LPNMHDDISPINFO)
     868
     869#ifdef __WIN32OS2__
    827870typedef struct tagNMHDFILTERBTNCLICK
    828871{
     
    831874  RECT  rc;
    832875} NMHDFILTERBTNCLICK, *LPNMHDFILTERBTNCLICK;
    833 
     876#endif
    834877
    835878#define Header_GetItemCount(hwndHD) \
     
    870913#define Header_SetHotDivider(hwnd,fPos,dw) \
    871914  (INT)SendMessageA((hwnd),HDM_SETHOTDIVIDER,(WPARAM)fPos,(LPARAM)dw)
    872 #define Header_SetBitmapMargin(hwnd,iWidth) \
    873   (INT)SendMessageA((hwnd),HDM_SETBITMAPMARGIN,(WPARAM)iWidth,0)
    874 #define Header_GetBitmapMargin(hwnd) \
    875   (INT)SendMessageA((hwnd),HDM_GETBITMAPMARGIN,0,0)
    876915#define Header_SetUnicodeFormat(hwnd,fUnicode) \
    877916  (BOOL)SendMessageA((hwnd),HDM_SETUNICODEFORMAT,(WPARAM)(fUnicode),0)
    878917#define Header_GetUnicodeFormat(hwnd) \
    879918  (BOOL)SendMessageA((hwnd),HDM_GETUNICODEFORMAT,0,0)
    880 #define Header_SetFilterChangeTimeout(hwnd,i) \
    881   (INT)SendMessageA((hwnd),HDM_SETFILTERCHANGETIMEOUT,0,(LPARAM)(i))
    882 #define Header_EditFilter(hwnd,i,fDiscardChanges) \
    883   (INT)SendMessageA((hwnd),HDM_EDITFILTER,(WPARAM)i,MAKELPARAM(fDiscardChanges,0))
    884 #define Header_ClearFilter(hwnd, i) \
    885   (INT)SendMessageA((hwnd),HDM_CLEARFILTER,(WPARAM)i,0)
    886 #define Header_ClearAllFilters(hwnd) \
    887   (INT)SendMessageA((hwnd),HDM_CLEARFILTER,(WPARAM)-1,0)
     919
    888920
    889921/* Toolbar */
    890922
    891 #define TOOLBARCLASSNAME16    "ToolbarWindow"
    892 #define TOOLBARCLASSNAMEW     L"ToolbarWindow32"
    893 #define TOOLBARCLASSNAMEA     "ToolbarWindow32"
    894 #define TOOLBARCLASSNAME      WINELIB_NAME_AW(TOOLBARCLASSNAME)
     923#define TOOLBARCLASSNAME16      "ToolbarWindow"
     924#define TOOLBARCLASSNAMEA       "ToolbarWindow32"
     925#ifdef __WIN32OS2__
     926#define TOOLBARCLASSNAMEW       L"ToolbarWindow32"
     927#else
     928static const WCHAR TOOLBARCLASSNAMEW[] = { 'T','o','o','l','b','a','r',
     929  'W','i','n','d','o','w','3','2',0 };
     930#endif
     931#define TOOLBARCLASSNAME WINELIB_NAME_AW(TOOLBARCLASSNAME)
    895932
    896933#define CMB_MASKED              0x02
     
    905942#define TBSTATE_MARKED          0x80
    906943
    907 #define TBSTYLE_BUTTON          0x00 //obsolete
    908 #define TBSTYLE_SEP             0x01 //obsolete
    909 #define TBSTYLE_CHECK           0x02 //obsolete
    910 #define TBSTYLE_GROUP           0x04 //obsolete
     944
     945/* as of _WIN32_IE >= 0x0500 the following symbols are obsolete,
     946 * "everyone" should use the BTNS_... stuff below
     947 */
     948#define TBSTYLE_BUTTON          0x00
     949#define TBSTYLE_SEP             0x01
     950#define TBSTYLE_CHECK           0x02
     951#define TBSTYLE_GROUP           0x04
    911952#define TBSTYLE_CHECKGROUP      (TBSTYLE_GROUP | TBSTYLE_CHECK)
    912 #define TBSTYLE_DROPDOWN        0x08 //obsolete
    913 #define TBSTYLE_AUTOSIZE        0x0010 //obsolete
    914 #define TBSTYLE_NOPREFIX        0x0020 //obsolete
     953#define TBSTYLE_DROPDOWN        0x08
     954#define TBSTYLE_AUTOSIZE        0x10
     955#define TBSTYLE_NOPREFIX        0x20
     956#define BTNS_BUTTON             TBSTYLE_BUTTON
     957#define BTNS_SEP                TBSTYLE_SEP
     958#define BTNS_CHECK              TBSTYLE_CHECK
     959#define BTNS_GROUP              TBSTYLE_GROUP
     960#define BTNS_CHECKGROUP         TBSTYLE_CHECKGROUP
     961#define BTNS_DROPDOWN           TBSTYLE_DROPDOWN
     962#define BTNS_AUTOSIZE           TBSTYLE_AUTOSIZE
     963#define BTNS_NOPREFIX           TBSTYLE_NOPREFIX
     964#define BTNS_SHOWTEXT           0x40  /* ignored unless TBSTYLE_EX_MIXEDB set */
     965#define BTNS_WHOLEDROPDOWN      0x80  /* draw dropdown arrow, but without split arrow section */
     966
    915967#define TBSTYLE_TOOLTIPS        0x0100
    916968#define TBSTYLE_WRAPABLE        0x0200
     
    918970#define TBSTYLE_FLAT            0x0800
    919971#define TBSTYLE_LIST            0x1000
    920 #define TBSTYLE_CUSTOMERASE     0x2000
     972#define TBSTYLE_CUSTOMERASE     0x2000 
    921973#define TBSTYLE_REGISTERDROP    0x4000
    922974#define TBSTYLE_TRANSPARENT     0x8000
    923 #define TBSTYLE_EX_DRAWDDARROWS       0x00000001
    924 #define TBSTYLE_EX_MIXEDBUTTONS       0x00000008
    925 #define TBSTYLE_EX_HIDECLIPPEDBUTTONS 0x00000010
    926 
    927 #define BTNS_BUTTON     TBSTYLE_BUTTON      // 0x0000
    928 #define BTNS_SEP        TBSTYLE_SEP         // 0x0001
    929 #define BTNS_CHECK      TBSTYLE_CHECK       // 0x0002
    930 #define BTNS_GROUP      TBSTYLE_GROUP       // 0x0004
    931 #define BTNS_CHECKGROUP TBSTYLE_CHECKGROUP  // (TBSTYLE_GROUP | TBSTYLE_CHECK)
    932 #define BTNS_DROPDOWN   TBSTYLE_DROPDOWN    // 0x0008
    933 #define BTNS_AUTOSIZE   TBSTYLE_AUTOSIZE    // 0x0010
    934 #define BTNS_NOPREFIX   TBSTYLE_NOPREFIX    // 0x0020
    935 #define BTNS_SHOWTEXT   0x0040
    936 #define BTNS_WHOLEDROPDOWN  0x0080
     975#define TBSTYLE_EX_DRAWDDARROWS         0x00000001
     976#define TBSTYLE_EX_UNDOC1               0x00000004 /* similar to TBSTYLE_WRAPABLE */
     977#define TBSTYLE_EX_MIXEDBUTTONS         0x00000008
     978#define TBSTYLE_EX_HIDECLIPPEDBUTTONS   0x00000010 /* don't show partially obscured buttons */
     979#define TBSTYLE_EX_DOUBLEBUFFER         0x00000080 /* Double Buffer the toolbar ??? */
    937980
    938981#define TBIF_IMAGE              0x00000001
     
    944987#define TBIF_SIZE               0x00000040
    945988
    946 #define TBBF_LARGE              0x0001
     989#define TBBF_LARGE              0x0001
    947990
    948991#define TB_ENABLEBUTTON          (WM_USER+1)
     
    951994#define TB_HIDEBUTTON            (WM_USER+4)
    952995#define TB_INDETERMINATE         (WM_USER+5)
    953 #define TB_ISBUTTONENABLED       (WM_USER+9)
    954 #define TB_ISBUTTONCHECKED       (WM_USER+10)
    955 #define TB_ISBUTTONPRESSED       (WM_USER+11)
     996#define TB_MARKBUTTON            (WM_USER+6)
     997#define TB_ISBUTTONENABLED       (WM_USER+9)
     998#define TB_ISBUTTONCHECKED       (WM_USER+10)
     999#define TB_ISBUTTONPRESSED       (WM_USER+11)
    9561000#define TB_ISBUTTONHIDDEN        (WM_USER+12)
    9571001#define TB_ISBUTTONINDETERMINATE (WM_USER+13)
     
    9601004#define TB_GETSTATE              (WM_USER+18)
    9611005#define TB_ADDBITMAP             (WM_USER+19)
    962 #define TB_ADDBUTTONSA           (WM_USER+20)
    963 #define TB_ADDBUTTONSW           (WM_USER+68)
    964 #define TB_ADDBUTTONS            WINELIB_NAME_AW(TB_ADDBUTTONS)
     1006#define TB_ADDBUTTONSA         (WM_USER+20)
     1007#define TB_ADDBUTTONSW         (WM_USER+68)
     1008#define TB_ADDBUTTONS WINELIB_NAME_AW(TB_ADDBUTTONS)
    9651009#define TB_HITTEST               (WM_USER+69)
    966 #define TB_INSERTBUTTONA         (WM_USER+21)
    967 #define TB_INSERTBUTTONW         (WM_USER+67)
    968 #define TB_INSERTBUTTON          WINELIB_NAME_AW(TB_INSERTBUTTON)
     1010#define TB_INSERTBUTTONA       (WM_USER+21)
     1011#define TB_INSERTBUTTONW       (WM_USER+67)
     1012#define TB_INSERTBUTTON WINELIB_NAME_AW(TB_INSERTBUTTON)
    9691013#define TB_DELETEBUTTON          (WM_USER+22)
    9701014#define TB_GETBUTTON             (WM_USER+23)
    9711015#define TB_BUTTONCOUNT           (WM_USER+24)
    9721016#define TB_COMMANDTOINDEX        (WM_USER+25)
    973 #define TB_SAVERESTOREA          (WM_USER+26)
    974 #define TB_SAVERESTOREW          (WM_USER+76)
    975 #define TB_SAVERESTORE           WINELIB_NAME_AW(TB_SAVERESTORE)
     1017#define TB_SAVERESTOREA        (WM_USER+26)
     1018#define TB_SAVERESTOREW        (WM_USER+76)
     1019#define TB_SAVERESTORE WINELIB_NAME_AW(TB_SAVERESTORE)
    9761020#define TB_CUSTOMIZE             (WM_USER+27)
    977 #define TB_ADDSTRINGA            (WM_USER+28)
    978 #define TB_ADDSTRINGW            (WM_USER+77)
    979 #define TB_ADDSTRING             WINELIB_NAME_AW(TB_ADDSTRING)
     1021#define TB_ADDSTRINGA          (WM_USER+28)
     1022#define TB_ADDSTRINGW          (WM_USER+77)
     1023#define TB_ADDSTRING WINELIB_NAME_AW(TB_ADDSTRING)
    9801024#define TB_GETITEMRECT           (WM_USER+29)
    9811025#define TB_BUTTONSTRUCTSIZE      (WM_USER+30)
     
    9921036#define TB_CHANGEBITMAP          (WM_USER+43)
    9931037#define TB_GETBITMAP             (WM_USER+44)
    994 #define TB_GETBUTTONTEXTA        (WM_USER+45)
    995 #define TB_GETBUTTONTEXTW        (WM_USER+75)
    996 #define TB_GETBUTTONTEXT         WINELIB_NAME_AW(TB_GETBUTTONTEXT)
     1038#define TB_GETBUTTONTEXTA      (WM_USER+45)
     1039#define TB_GETBUTTONTEXTW      (WM_USER+75)
     1040#define TB_GETBUTTONTEXT WINELIB_NAME_AW(TB_GETBUTTONTEXT)
    9971041#define TB_REPLACEBITMAP         (WM_USER+46)
    9981042#define TB_SETINDENT             (WM_USER+47)
     
    10121056#define TB_GETTEXTROWS           (WM_USER+61)
    10131057#define TB_GETOBJECT             (WM_USER+62)
    1014 #define TB_GETBUTTONINFOW        (WM_USER+63)
    1015 #define TB_GETBUTTONINFOA        (WM_USER+65)
    1016 #define TB_GETBUTTONINFO         WINELIB_NAME_AW(TB_GETBUTTONINFO)
    1017 #define TB_SETBUTTONINFOW        (WM_USER+64)
    1018 #define TB_SETBUTTONINFOA        (WM_USER+66)
    1019 #define TB_SETBUTTONINFO         WINELIB_NAME_AW(TB_SETBUTTONINFO)
     1058#define TB_GETBUTTONINFOW      (WM_USER+63)
     1059#define TB_GETBUTTONINFOA      (WM_USER+65)
     1060#define TB_GETBUTTONINFO WINELIB_NAME_AW(TB_GETBUTTONINFO)
     1061#define TB_SETBUTTONINFOW      (WM_USER+64)
     1062#define TB_SETBUTTONINFOA      (WM_USER+66)
     1063#define TB_SETBUTTONINFO WINELIB_NAME_AW(TB_SETBUTTONINFO)
    10201064#define TB_SETDRAWTEXTFLAGS      (WM_USER+70)
    10211065#define TB_GETHOTITEM            (WM_USER+71)
     
    10231067#define TB_SETANCHORHIGHLIGHT    (WM_USER+73)
    10241068#define TB_GETANCHORHIGHLIGHT    (WM_USER+74)
    1025 #define TB_MAPACCELERATORA       (WM_USER+78)
    1026 #define TB_MAPACCELERATORW       (WM_USER+90)
    1027 #define TB_MAPACCELERATOR        WINELIB_NAME_AW(TB_MAPACCELERATOR)
     1069#define TB_MAPACCELERATORA     (WM_USER+78)
     1070#define TB_MAPACCELERATORW     (WM_USER+90)
     1071#define TB_MAPACCELERATOR WINELIB_NAME_AW(TB_MAPACCELERATOR)
    10281072#define TB_GETINSERTMARK         (WM_USER+79)
    10291073#define TB_SETINSERTMARK         (WM_USER+80)
     
    10371081#define TB_SETINSERTMARKCOLOR    (WM_USER+88)
    10381082#define TB_GETINSERTMARKCOLOR    (WM_USER+89)
    1039 #define TB_GETSTRINGW            (WM_USER+91)
    1040 #define TB_GETSTRINGA            (WM_USER+92)
    1041 #define TB_GETSTRING             WINELIB_NAME_AW(TB_GETSTRING)
    10421083#define TB_SETCOLORSCHEME        CCM_SETCOLORSCHEME
    10431084#define TB_GETCOLORSCHEME        CCM_GETCOLORSCHEME
    10441085#define TB_SETUNICODEFORMAT      CCM_SETUNICODEFORMAT
    10451086#define TB_GETUNICODEFORMAT      CCM_GETUNICODEFORMAT
     1087#define TB_GETSTRINGW            (WM_USER+91)
     1088#define TB_GETSTRINGA            (WM_USER+92)
     1089#define TB_GETSTRING  WINELIB_NAME_AW(TB_GETSTRING)
     1090
     1091/* undocumented messages in Toolbar */
     1092#define TB_UNKWN45D              (WM_USER+93)
     1093#define TB_UNKWN45E              (WM_USER+94)
     1094#define TB_UNKWN460              (WM_USER+96)
     1095#define TB_UNKWN463              (WM_USER+99)
     1096#define TB_UNKWN464              (WM_USER+100)
     1097
    10461098
    10471099#define TBN_FIRST               (0U-700U)
    10481100#define TBN_LAST                (0U-720U)
    1049 #define TBN_GETBUTTONINFOA      (TBN_FIRST-0)
    1050 #define TBN_GETBUTTONINFOW      (TBN_FIRST-20)
    1051 #define TBN_GETBUTTONINFO       WINELIB_NAME_AW(TBN_GETBUTTONINFO)
    1052 #define TBN_BEGINDRAG           (TBN_FIRST-1)
    1053 #define TBN_ENDDRAG             (TBN_FIRST-2)
    1054 #define TBN_BEGINADJUST         (TBN_FIRST-3)
    1055 #define TBN_ENDADJUST           (TBN_FIRST-4)
    1056 #define TBN_RESET               (TBN_FIRST-5)
    1057 #define TBN_QUERYINSERT         (TBN_FIRST-6)
    1058 #define TBN_QUERYDELETE         (TBN_FIRST-7)
    1059 #define TBN_TOOLBARCHANGE       (TBN_FIRST-8)
    1060 #define TBN_CUSTHELP            (TBN_FIRST-9)
    1061 #define TBN_DROPDOWN            (TBN_FIRST-10)
    1062 #define TBN_GETOBJECT           (TBN_FIRST-12)
    1063 #define TBN_HOTITEMCHANGE       (TBN_FIRST-13)
    1064 #define TBN_DRAGOUT             (TBN_FIRST-14)
    1065 #define TBN_DELETINGBUTTON      (TBN_FIRST-15)
    1066 #define TBN_GETDISPINFOA        (TBN_FIRST-16)
    1067 #define TBN_GETDISPINFOW        (TBN_FIRST-17)
    1068 #define TBN_GETDISPINFO         WINELIB_NAME_AW(TBN_GETDISPINFO)
    1069 #define TBN_GETINFOTIPA         (TBN_FIRST-18)
    1070 #define TBN_GETINFOTIPW         (TBN_FIRST-19)
    1071 #define TBN_GETINFOTIP          WINELIB_NAME_AW(TBN_GETINFOTIP)
    1072 #define TBN_RESTORE             (TBN_FIRST-21)
    1073 #define TBN_SAVE                (TBN_FIRST-22)
    1074 #define TBN_INITCUSTOMIZE       (TBN_FIRST-23)
    1075 
    1076 #define    TBNRF_HIDEHELP       0x00000001
    1077 #define    TBNRF_ENDCUSTOMIZE   0x00000002
     1101#define TBN_GETBUTTONINFOA    (TBN_FIRST-0)
     1102#define TBN_GETBUTTONINFOW    (TBN_FIRST-20)
     1103#define TBN_GETBUTTONINFO WINELIB_NAME_AW(TBN_GETBUTTONINFO)
     1104#define TBN_BEGINDRAG           (TBN_FIRST-1)
     1105#define TBN_ENDDRAG             (TBN_FIRST-2)
     1106#define TBN_BEGINADJUST         (TBN_FIRST-3)
     1107#define TBN_ENDADJUST           (TBN_FIRST-4)
     1108#define TBN_RESET               (TBN_FIRST-5)
     1109#define TBN_QUERYINSERT         (TBN_FIRST-6)
     1110#define TBN_QUERYDELETE         (TBN_FIRST-7)
     1111#define TBN_TOOLBARCHANGE       (TBN_FIRST-8)
     1112#define TBN_CUSTHELP            (TBN_FIRST-9)
     1113#define TBN_DROPDOWN            (TBN_FIRST-10)
     1114#define TBN_GETOBJECT           (TBN_FIRST-12)
     1115#define TBN_HOTITEMCHANGE       (TBN_FIRST-13)
     1116#define TBN_DRAGOUT             (TBN_FIRST-14)
     1117#define TBN_DELETINGBUTTON      (TBN_FIRST-15)
     1118#define TBN_GETDISPINFOA        (TBN_FIRST-16)
     1119#define TBN_GETDISPINFOW        (TBN_FIRST-17)
     1120#define TBN_GETDISPINFO         WINELIB_NAME_AW(TBN_GETDISPINFO)
     1121#define TBN_GETINFOTIPA       (TBN_FIRST-18)
     1122#define TBN_GETINFOTIPW       (TBN_FIRST-19)
     1123#define TBN_GETINFOTIP WINELIB_NAME_AW(TBN_GETINFOTIP)
     1124
    10781125
    10791126/* Return values from TBN_DROPDOWN */
     
    10991146} NMTBCUSTOMDRAW, *LPNMTBCUSTOMDRAW;
    11001147
     1148/* return flags for Toolbar NM_CUSTOMDRAW notifications */
     1149#define TBCDRF_NOEDGES        0x00010000  /* Don't draw button edges       */
     1150#define TBCDRF_HILITEHOTTRACK 0x00020000  /* Use color of the button bkgnd */
     1151                                          /* when hottracked               */
     1152#define TBCDRF_NOOFFSET       0x00040000  /* No offset button if pressed   */
     1153#define TBCDRF_NOMARK         0x00080000  /* Don't draw default highlight  */
     1154                                          /* for TBSTATE_MARKED            */
     1155#define TBCDRF_NOETCHEDEFFECT 0x00100000  /* No etched effect for          */
     1156                                          /* disabled items                */
     1157#define TBCDRF_BLENDICON      0x00200000  /* ILD_BLEND50 on the icon image */
     1158#define TBCDRF_NOBACKGROUND   0x00400000  /* ILD_BLEND50 on the icon image */
     1159
     1160
    11011161/* This is just for old CreateToolbar. */
    11021162/* Don't use it in new programs. */
     
    11281188    COLORREF to;
    11291189} COLORMAP, *LPCOLORMAP;
     1190
    11301191
    11311192typedef struct tagTBADDBITMAP {
     
    11701231#define VIEW_NETDISCONNECT      10
    11711232#define VIEW_NEWFOLDER          11
     1233#define VIEW_VIEWMENU           12
     1234
     1235#define HIST_BACK               0
     1236#define HIST_FORWARD            1
     1237#define HIST_FAVORITES          2
     1238#define HIST_ADDTOFAVORITES     3
     1239#define HIST_VIEWTREE           4
    11721240
    11731241typedef struct tagTBSAVEPARAMSA {
     
    11811249    LPCWSTR pszSubKey;
    11821250    LPCWSTR pszValueName;
    1183 } TBSAVEPARAMSAW, *LPTBSAVEPARAMSAW;
     1251} TBSAVEPARAMSW, *LPTBSAVEPARAMSW;
    11841252
    11851253#define TBSAVEPARAMS   WINELIB_NAME_AW(TBSAVEPARAMS)
     
    12171285#define LPTBBUTTONINFO WINELIB_NAME_AW(LPTBBUTTONINFO)
    12181286
     1287typedef struct tagNMTBHOTITEM
     1288{
     1289    NMHDR hdr;
     1290    int idOld;
     1291    int idNew;
     1292    DWORD dwFlags;
     1293} NMTBHOTITEM, *LPNMTBHOTITEM;
     1294
    12191295typedef struct tagNMTBGETINFOTIPA
    12201296{
     
    12681344#define TBNF_DI_SETITEM  0x10000000
    12691345
     1346
    12701347typedef struct tagNMTOOLBARA
    12711348{
     
    12761353    LPSTR    pszText;
    12771354    RECT     rcButton; /* Version 5.80 */
    1278 } NMTOOLBARA, *LPNMTOOLBARA;
     1355} NMTOOLBARA, *LPNMTOOLBARA, TBNOTIFYA, *LPTBNOTIFYA;
    12791356
    12801357typedef struct tagNMTOOLBARW
     
    12861363    LPWSTR   pszText;
    12871364    RECT     rcButton; /* Version 5.80 */
    1288 } NMTOOLBARW, *LPNMTOOLBARW;
     1365} NMTOOLBARW, *LPNMTOOLBARW, TBNOTIFYW, *LPTBNOTIFYW;
    12891366
    12901367#define NMTOOLBAR   WINELIB_NAME_AW(NMTOOLBAR)
    12911368#define LPNMTOOLBAR WINELIB_NAME_AW(LPNMTOOLBAR)
    1292 #define TBNOTIFYA NMTOOLBARA
    1293 #define TBNOTIFYW NMTOOLBARW
    1294 #define LPTBNOTIFYA LPNMTOOLBARA
    1295 #define LPTBNOTIFYW LPNMTOOLBARW
    1296 #define TBNOTIFY    NMTOOLBAR
    1297 #define LPTBNOTIFY  LPNMTOOLBAR
     1369#define TBNOTIFY    WINELIB_NAME_AW(TBNOTIFY)
     1370#define LPTBNOTIFY  WINELIB_NAME_AW(LPTBNOTIFY)
    12981371
    12991372typedef struct
    13001373{
    1301         HINSTANCE hInstOld;
    1302         UINT      nIDOld;
    1303         HINSTANCE hInstNew;
    1304         UINT      nIDNew;
    1305         INT       nButtons;
     1374        HINSTANCE hInstOld;
     1375        UINT      nIDOld;
     1376        HINSTANCE hInstNew;
     1377        UINT      nIDNew;
     1378        INT       nButtons;
    13061379} TBREPLACEBITMAP, *LPTBREPLACEBITMAP;
     1380
     1381#define HICF_OTHER          0x00000000
     1382#define HICF_MOUSE          0x00000001   /* Triggered by mouse             */
     1383#define HICF_ARROWKEYS      0x00000002   /* Triggered by arrow keys        */
     1384#define HICF_ACCELERATOR    0x00000004   /* Triggered by accelerator       */
     1385#define HICF_DUPACCEL       0x00000008   /* This accelerator is not unique */
     1386#define HICF_ENTERING       0x00000010   /* idOld is invalid               */
     1387#define HICF_LEAVING        0x00000020   /* idNew is invalid               */
     1388#define HICF_RESELECT       0x00000040   /* hot item reselected            */
     1389#define HICF_LMOUSE         0x00000080   /* left mouse button selected     */
     1390#define HICF_TOGGLEDROPDOWN 0x00000100   /* Toggle button's dropdown state */
     1391
     1392typedef struct
     1393{
     1394    int   iButton;
     1395    DWORD dwFlags;
     1396} TBINSERTMARK, *LPTBINSERTMARK;
     1397#define TBIMHT_AFTER      0x00000001 /* TRUE = insert After iButton, otherwise before */
     1398#define TBIMHT_BACKGROUND 0x00000002 /* TRUE if and only if missed buttons completely */
    13071399
    13081400HWND WINAPI
    13091401CreateToolbar(HWND, DWORD, UINT, INT, HINSTANCE,
    1310               UINT, LPCOLDTBBUTTON, INT);
    1311 
     1402              UINT, LPCOLDTBBUTTON, INT); 
     1403 
    13121404HWND WINAPI
    13131405CreateToolbarEx(HWND, DWORD, UINT, INT,
    1314                 HINSTANCE, UINT, LPCTBBUTTON,
    1315                 INT, INT, INT, INT, INT, UINT);
     1406                HINSTANCE, UINT, LPCTBBUTTON, 
     1407                INT, INT, INT, INT, INT, UINT); 
    13161408
    13171409HBITMAP WINAPI
    1318 CreateMappedBitmap (HINSTANCE, INT, UINT, LPCOLORMAP, INT);
     1410CreateMappedBitmap (HINSTANCE, INT, UINT, LPCOLORMAP, INT); 
    13191411
    13201412
     
    13231415#define TOOLTIPS_CLASS16        "tooltips_class"
    13241416#define TOOLTIPS_CLASSA         "tooltips_class32"
    1325 #define TOOLTIPS_CLASS32W       L"tooltips_class32"
     1417#ifdef __WIN32OS2__
     1418#define TOOLTIPS_CLASSW         L"tooltips_class32"
     1419#else
     1420static const WCHAR TOOLTIPS_CLASSW[] = { 't','o','o','l','t','i','p','s','_',
     1421  'c','l','a','s','s','3','2',0 };
     1422#endif
    13261423#define TOOLTIPS_CLASS          WINELIB_NAME_AW(TOOLTIPS_CLASS)
    13271424
    13281425#define INFOTIPSIZE             1024
    1329 
     1426 
    13301427#define TTS_ALWAYSTIP           0x01
    13311428#define TTS_NOPREFIX            0x02
    1332 #define TTS_NOANIMATE           0x10
    1333 #define TTS_NOFADE              0x20
    1334 #define TTS_BALLOON             0x40
    13351429
    13361430#define TTF_IDISHWND            0x0001
     
    13421436#define TTF_TRANSPARENT         0x0100
    13431437#define TTF_DI_SETITEM          0x8000  /* valid only on the TTN_NEEDTEXT callback */
     1438#ifdef __WIN32OS2__
    13441439//CB: Odin only position flags (TTF_ABSOLUTE must be set)
    13451440#define TTF_ALIGNRIGHT  0x00000000
     
    13501445#define TTF_VCENTER     0x80000000
    13511446#define TTF_ALIGNMASK   0xF0000000
     1447#endif
    13521448
    13531449#define TTDT_AUTOMATIC          0
     
    13591455#define TTM_ACTIVATE            (WM_USER+1)
    13601456#define TTM_SETDELAYTIME        (WM_USER+3)
    1361 #define TTM_ADDTOOLA            (WM_USER+4)
    1362 #define TTM_ADDTOOLW            (WM_USER+50)
    1363 #define TTM_ADDTOOL             WINELIB_NAME_AW(TTM_ADDTOOL)
    1364 #define TTM_DELTOOLA            (WM_USER+5)
    1365 #define TTM_DELTOOLW            (WM_USER+51)
    1366 #define TTM_DELTOOL             WINELIB_NAME_AW(TTM_DELTOOL)
    1367 #define TTM_NEWTOOLRECTA        (WM_USER+6)
    1368 #define TTM_NEWTOOLRECTW        (WM_USER+52)
    1369 #define TTM_NEWTOOLRECT         WINELIB_NAME_AW(TTM_NEWTOOLRECT)
     1457#define TTM_ADDTOOLA          (WM_USER+4)
     1458#define TTM_ADDTOOLW          (WM_USER+50)
     1459#define TTM_ADDTOOL WINELIB_NAME_AW(TTM_ADDTOOL)
     1460#define TTM_DELTOOLA          (WM_USER+5)
     1461#define TTM_DELTOOLW          (WM_USER+51)
     1462#define TTM_DELTOOL WINELIB_NAME_AW(TTM_DELTOOL)
     1463#define TTM_NEWTOOLRECTA      (WM_USER+6)
     1464#define TTM_NEWTOOLRECTW      (WM_USER+52)
     1465#define TTM_NEWTOOLRECT WINELIB_NAME_AW(TTM_NEWTOOLRECT)
    13701466#define TTM_RELAYEVENT          (WM_USER+7)
    1371 #define TTM_GETTOOLINFOA        (WM_USER+8)
    1372 #define TTM_GETTOOLINFOW        (WM_USER+53)
    1373 #define TTM_GETTOOLINFO         WINELIB_NAME_AW(TTM_GETTOOLINFO)
    1374 #define TTM_SETTOOLINFOA        (WM_USER+9)
    1375 #define TTM_SETTOOLINFOW        (WM_USER+54)
    1376 #define TTM_SETTOOLINFO         WINELIB_NAME_AW(TTM_SETTOOLINFO)
    1377 #define TTM_HITTESTA            (WM_USER+10)
    1378 #define TTM_HITTESTW            (WM_USER+55)
    1379 #define TTM_HITTEST             WINELIB_NAME_AW(TTM_HITTEST)
    1380 #define TTM_GETTEXTA            (WM_USER+11)
    1381 #define TTM_GETTEXTW            (WM_USER+56)
    1382 #define TTM_GETTEXT             WINELIB_NAME_AW(TTM_GETTEXT)
    1383 #define TTM_UPDATETIPTEXTA      (WM_USER+12)
    1384 #define TTM_UPDATETIPTEXTW      (WM_USER+57)
    1385 #define TTM_UPDATETIPTEXT       WINELIB_NAME_AW(TTM_UPDATETIPTEXT)
     1467#define TTM_GETTOOLINFOA      (WM_USER+8)
     1468#define TTM_GETTOOLINFOW      (WM_USER+53)
     1469#define TTM_GETTOOLINFO WINELIB_NAME_AW(TTM_GETTOOLINFO)
     1470#define TTM_SETTOOLINFOA      (WM_USER+9)
     1471#define TTM_SETTOOLINFOW      (WM_USER+54)
     1472#define TTM_SETTOOLINFO WINELIB_NAME_AW(TTM_SETTOOLINFO)
     1473#define TTM_HITTESTA          (WM_USER+10)
     1474#define TTM_HITTESTW          (WM_USER+55)
     1475#define TTM_HITTEST WINELIB_NAME_AW(TTM_HITTEST)
     1476#define TTM_GETTEXTA          (WM_USER+11)
     1477#define TTM_GETTEXTW          (WM_USER+56)
     1478#define TTM_GETTEXT WINELIB_NAME_AW(TTM_GETTEXT)
     1479#define TTM_UPDATETIPTEXTA    (WM_USER+12)
     1480#define TTM_UPDATETIPTEXTW    (WM_USER+57)
     1481#define TTM_UPDATETIPTEXT WINELIB_NAME_AW(TTM_UPDATETIPTEXT)
    13861482#define TTM_GETTOOLCOUNT        (WM_USER+13)
    1387 #define TTM_ENUMTOOLSA          (WM_USER+14)
    1388 #define TTM_ENUMTOOLSW          (WM_USER+58)
    1389 #define TTM_ENUMTOOLS           WINELIB_NAME_AW(TTM_ENUMTOOLS)
    1390 #define TTM_GETCURRENTTOOLA     (WM_USER+15)
    1391 #define TTM_GETCURRENTTOOLW     (WM_USER+59)
    1392 #define TTM_GETCURRENTTOOL      WINELIB_NAME_AW(TTM_GETCURRENTTOOL)
     1483#define TTM_ENUMTOOLSA        (WM_USER+14)
     1484#define TTM_ENUMTOOLSW        (WM_USER+58)
     1485#define TTM_ENUMTOOLS WINELIB_NAME_AW(TTM_ENUMTOOLS)
     1486#define TTM_GETCURRENTTOOLA   (WM_USER+15)
     1487#define TTM_GETCURRENTTOOLW   (WM_USER+59)
     1488#define TTM_GETCURRENTTOOL WINELIB_NAME_AW(TTM_GETCURRENTTOOL)
    13931489#define TTM_WINDOWFROMPOINT     (WM_USER+16)
    13941490#define TTM_TRACKACTIVATE       (WM_USER+17)
     
    14051501#define TTM_POP                 (WM_USER+28)
    14061502#define TTM_UPDATE              (WM_USER+29)
    1407 #define TTM_GETBUBBLESIZE       (WM_USER+30)
    1408 #define TTM_ADJUSTRECT          (WM_USER+31)
    1409 #define TTM_SETTITLEA           (WM_USER+32)  // wParam = TTI_*, lParam = char* szTitle
    1410 #define TTM_SETTITLEW           (WM_USER+33)  // wParam = TTI_*, lParam = wchar* szTitle
    1411 #define TTM_SETTITLE            WINELIB_NAME_AW(TTM_SETTITLE)
     1503
    14121504
    14131505#define TTN_FIRST               (0U-520U)
    14141506#define TTN_LAST                (0U-549U)
    1415 #define TTN_GETDISPINFOA        (TTN_FIRST-0)
    1416 #define TTN_GETDISPINFOW        (TTN_FIRST-10)
    1417 #define TTN_GETDISPINFO         WINELIB_NAME_AW(TTN_GETDISPINFO)
     1507#define TTN_GETDISPINFOA      (TTN_FIRST-0)
     1508#define TTN_GETDISPINFOW      (TTN_FIRST-10)
     1509#define TTN_GETDISPINFO WINELIB_NAME_AW(TTN_GETDISPINFO)
    14181510#define TTN_SHOW                (TTN_FIRST-1)
    14191511#define TTN_POP                 (TTN_FIRST-2)
    14201512
    1421 #define TTN_NEEDTEXT  TTN_GETDISPINFO
     1513#define TTN_NEEDTEXT TTN_GETDISPINFO
    14221514#define TTN_NEEDTEXTA TTN_GETDISPINFOA
    14231515#define TTN_NEEDTEXTW TTN_GETDISPINFOW
     
    14451537} TTTOOLINFOW, *LPTOOLINFOW, *PTOOLINFOW, *LPTTTOOLINFOW;
    14461538
    1447 #define TTTOOLINFO   WINELIB_NAME_AW(TTTOOLINFO)
    1448 #define TOOLINFO     WINELIB_NAME_AW(TTTOOLINFO)
    1449 #define PTOOLINFO    WINELIB_NAME_AW(PTOOLINFO)
     1539#define TTTOOLINFO WINELIB_NAME_AW(TTTOOLINFO)
     1540#define TOOLINFO WINELIB_NAME_AW(TTTOOLINFO)
     1541#define PTOOLINFO WINELIB_NAME_AW(PTOOLINFO)
    14501542#define LPTTTOOLINFO WINELIB_NAME_AW(LPTTTOOLINFO)
    1451 #define LPTOOLINFO   WINELIB_NAME_AW(LPTOOLINFO)
     1543#define LPTOOLINFO WINELIB_NAME_AW(LPTOOLINFO)
    14521544
    14531545#define TTTOOLINFO_V1_SIZEA CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText)
    14541546#define TTTOOLINFO_V1_SIZEW CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText)
    1455 #define TTTOOLINFO_V1_SIZE  WINELIB_NAME_AW(TTTOOLINFO_V1_SIZE)
     1547#define TTTOOLINFO_V1_SIZE WINELIB_NAME_AW(TTTOOLINFO_V1_SIZE)
    14561548
    14571549typedef struct _TT_HITTESTINFOA
     
    14611553    TTTOOLINFOA ti;
    14621554} TTHITTESTINFOA, *LPTTHITTESTINFOA;
     1555#define LPHITTESTINFOA LPTTHITTESTINFOA
    14631556
    14641557typedef struct _TT_HITTESTINFOW
     
    14681561    TTTOOLINFOW ti;
    14691562} TTHITTESTINFOW, *LPTTHITTESTINFOW;
    1470 
    1471 #define TTHITTESTINFO   WINELIB_NAME_AW(TTHITTESTINFO)
     1563#define LPHITTESTINFOW LPTTHITTESTINFOW
     1564
     1565#define TTHITTESTINFO WINELIB_NAME_AW(TTHITTESTINFO)
    14721566#define LPTTHITTESTINFO WINELIB_NAME_AW(LPTTHITTESTINFO)
     1567#define LPHITTESTINFO WINELIB_NAME_AW(LPHITTESTINFO)
    14731568
    14741569typedef struct tagNMTTDISPINFOA
     
    14921587} NMTTDISPINFOW, *LPNMTTDISPINFOW;
    14931588
    1494 #define NMTTDISPINFO   WINELIB_NAME_AW(NMTTDISPINFO)
     1589#define NMTTDISPINFO WINELIB_NAME_AW(NMTTDISPINFO)
    14951590#define LPNMTTDISPINFO WINELIB_NAME_AW(LPNMTTDISPINFO)
    14961591
     
    15091604/* Rebar control */
    15101605
    1511 #define REBARCLASSNAME16      "ReBarWindow"
    1512 #define REBARCLASSNAMEA       "ReBarWindow32"
    1513 #define REBARCLASSNAMEW       L"ReBarWindow32"
    1514 #define REBARCLASSNAME        WINELIB_NAME_AW(REBARCLASSNAME)
     1606#define REBARCLASSNAME16        "ReBarWindow"
     1607#define REBARCLASSNAMEA         "ReBarWindow32"
     1608#ifdef __WIN32OS2__
     1609#define REBARCLASSNAMEW         L"ReBarWindow32"
     1610#else
     1611static const WCHAR REBARCLASSNAMEW[] = { 'R','e','B','a','r',
     1612  'W','i','n','d','o','w','3','2',0 };
     1613#endif
     1614#define REBARCLASSNAME          WINELIB_NAME_AW(REBARCLASSNAME)
    15151615
    15161616#define RBS_TOOLTIPS            0x0100
     
    15471647#define RBBS_GRIPPERALWAYS      0x00000080
    15481648#define RBBS_NOGRIPPER          0x00000100
    1549 #define RBBS_USECHEVRON         0x00000200
    1550 #define RBBS_HIDETITLE          0x00000400
    15511649
    15521650#define RBNM_ID                 0x00000001
     
    15591657#define RBHT_GRABBER            0x0004
    15601658
    1561 #define RB_INSERTBANDA          (WM_USER+1)
    1562 #define RB_INSERTBANDW          (WM_USER+10)
     1659#define RB_INSERTBANDA        (WM_USER+1)
     1660#define RB_INSERTBANDW        (WM_USER+10)
    15631661#define RB_INSERTBAND           WINELIB_NAME_AW(RB_INSERTBAND)
    15641662#define RB_DELETEBAND           (WM_USER+2)
    15651663#define RB_GETBARINFO           (WM_USER+3)
    15661664#define RB_SETBARINFO           (WM_USER+4)
    1567 #define RB_GETBANDINFO          (WM_USER+5)   /* just for compatibility */
    1568 #define RB_SETBANDINFOA         (WM_USER+6)
    1569 #define RB_SETBANDINFOW         (WM_USER+11)
     1665#define RB_GETBANDINFO        (WM_USER+5)   /* just for compatibility */
     1666#define RB_SETBANDINFOA       (WM_USER+6)
     1667#define RB_SETBANDINFOW       (WM_USER+11)
    15701668#define RB_SETBANDINFO          WINELIB_NAME_AW(RB_SETBANDINFO)
    15711669#define RB_SETPARENT            (WM_USER+7)
     
    15871685#define RB_DRAGMOVE             (WM_USER+26)
    15881686#define RB_GETBARHEIGHT         (WM_USER+27)
    1589 #define RB_GETBANDINFOW         (WM_USER+28)
    1590 #define RB_GETBANDINFOA         (WM_USER+29)
     1687#define RB_GETBANDINFOW       (WM_USER+28)
     1688#define RB_GETBANDINFOA       (WM_USER+29)
    15911689#define RB_GETBANDINFO16          WINELIB_NAME_AW(RB_GETBANDINFO16)
    15921690#define RB_MINIMIZEBAND         (WM_USER+30)
     
    15971695#define RB_GETPALETTE           (WM_USER+38)
    15981696#define RB_MOVEBAND             (WM_USER+39)
    1599 #define RB_PUSHCHEVRON          (WM_USER+43)
    16001697#define RB_GETDROPTARGET        CCM_GETDROPTARGET
    16011698#define RB_SETCOLORSCHEME       CCM_SETCOLORSCHEME
     
    16151712#define RBN_DELETEDBAND         (RBN_FIRST-7)
    16161713#define RBN_CHILDSIZE           (RBN_FIRST-8)
    1617 #define RBN_CHEVRONPUSHED       (RBN_FIRST-10)
    1618 #define RBN_MINMAX              (RBN_FIRST-21)
    16191714
    16201715typedef struct tagREBARINFO
     
    17221817/* Trackbar control */
    17231818
    1724 #define TRACKBAR_CLASS16      "msctls_trackbar"
    1725 #define TRACKBAR_CLASSA       "msctls_trackbar32"
    1726 #define TRACKBAR_CLASSW       L"msctls_trackbar32"
    1727 #define TRACKBAR_CLASS        WINELIB_NAME_AW(TRACKBAR_CLASS)
     1819#define TRACKBAR_CLASS16        "msctls_trackbar"
     1820#define TRACKBAR_CLASSA         "msctls_trackbar32"
     1821#ifdef __WIN32OS2__
     1822#define TRACKBAR_CLASSW         L"msctls_trackbar32"
     1823#else
     1824static const WCHAR TRACKBAR_CLASSW[] = { 'm','s','c','t','l','s','_',
     1825  't','r','a','c','k','b','a','r','3','2',0 };
     1826#endif
     1827#define TRACKBAR_CLASS  WINELIB_NAME_AW(TRACKBAR_CLASS)
    17281828
    17291829#define TBS_AUTOTICKS           0x0001
     
    17401840#define TBS_NOTHUMB             0x0080
    17411841#define TBS_TOOLTIPS            0x0100
    1742 #define TBS_REVERSED            0x0200
     1842#define TBS_REVERSED                    0x0200
    17431843
    17441844#define TBTS_TOP                0
     
    18011901
    18021902#define WC_PAGESCROLLERA      "SysPager"
     1903#ifdef __WIN32OS2__
    18031904#define WC_PAGESCROLLERW      L"SysPager"
    1804 #define WC_PAGESCROLLER       WINELIB_NAME_AW(WC_PAGESCROLLER)
     1905#else
     1906static const WCHAR WC_PAGESCROLLERW[] = { 'S','y','s','P','a','g','e','r',0 };
     1907#endif
     1908#define WC_PAGESCROLLER  WINELIB_NAME_AW(WC_PAGESCROLLER)
    18051909
    18061910#define PGS_VERT                0x00000000
     
    18521956#define PGN_CALCSIZE            (PGN_FIRST-2)
    18531957
     1958#include "pshpack1.h"
     1959
    18541960typedef struct
    18551961{
     
    18631969} NMPGSCROLL, *LPNMPGSCROLL;
    18641970
     1971#include "poppack.h"
     1972
    18651973typedef struct
    18661974{
     
    18751983
    18761984#define WC_TREEVIEWA          "SysTreeView32"
     1985#ifdef __WIN32OS2__
    18771986#define WC_TREEVIEWW          L"SysTreeView32"
    1878 #define WC_TREEVIEW           WINELIB_NAME_AW(WC_TREEVIEW)
     1987#else
     1988static const WCHAR WC_TREEVIEWW[] = { 'S','y','s',
     1989  'T','r','e','e','V','i','e','w','3','2',0 };
     1990#endif
     1991#define WC_TREEVIEW             WINELIB_NAME_AW(WC_TREEVIEW)
    18791992
    18801993#define TVSIL_NORMAL            0
     
    18821995
    18831996#define TV_FIRST                0x1100
    1884 #define TVM_INSERTITEMA         (TV_FIRST+0)
    1885 #define TVM_INSERTITEMW         (TV_FIRST+50)
     1997#define TVM_INSERTITEMA       (TV_FIRST+0)
     1998#define TVM_INSERTITEMW       (TV_FIRST+50)
    18861999#define TVM_INSERTITEM          WINELIB_NAME_AW(TVM_INSERTITEM)
    18872000#define TVM_DELETEITEM          (TV_FIRST+1)
     
    18952008#define TVM_GETNEXTITEM         (TV_FIRST+10)
    18962009#define TVM_SELECTITEM          (TV_FIRST+11)
    1897 #define TVM_GETITEMA            (TV_FIRST+12)
    1898 #define TVM_GETITEMW            (TV_FIRST+62)
     2010#define TVM_GETITEMA          (TV_FIRST+12)
     2011#define TVM_GETITEMW          (TV_FIRST+62)
    18992012#define TVM_GETITEM             WINELIB_NAME_AW(TVM_GETITEM)
    1900 #define TVM_SETITEMA            (TV_FIRST+13)
    1901 #define TVM_SETITEMW            (TV_FIRST+63)
     2013#define TVM_SETITEMA          (TV_FIRST+13)
     2014#define TVM_SETITEMW          (TV_FIRST+63)
    19022015#define TVM_SETITEM             WINELIB_NAME_AW(TVM_SETITEM)
    1903 #define TVM_EDITLABELA          (TV_FIRST+14)
    1904 #define TVM_EDITLABELW          (TV_FIRST+65)
     2016#define TVM_EDITLABELA        (TV_FIRST+14)
     2017#define TVM_EDITLABELW        (TV_FIRST+65)
    19052018#define TVM_EDITLABEL           WINELIB_NAME_AW(TVM_EDITLABEL)
    19062019#define TVM_GETEDITCONTROL      (TV_FIRST+15)
     
    19122025#define TVM_SORTCHILDRENCB      (TV_FIRST+21)
    19132026#define TVM_ENDEDITLABELNOW     (TV_FIRST+22)
    1914 #define TVM_GETISEARCHSTRINGA   (TV_FIRST+23)
    1915 #define TVM_GETISEARCHSTRINGW   (TV_FIRST+64)
     2027#define TVM_GETISEARCHSTRINGA (TV_FIRST+23)
     2028#define TVM_GETISEARCHSTRINGW (TV_FIRST+64)
    19162029#define TVM_GETISEARCHSTRING    WINELIB_NAME_AW(TVM_GETISEARCHSTRING)
    19172030#define TVM_SETTOOLTIPS         (TV_FIRST+24)
     
    19362049#define TVM_GETUNICODEFORMAT    CCM_GETUNICODEFORMAT
    19372050
     2051
     2052
    19382053#define TVN_FIRST               (0U-400U)
    19392054#define TVN_LAST                (0U-499U)
     
    19422057#define TVN_SELCHANGINGW        (TVN_FIRST-50)
    19432058#define TVN_SELCHANGING         WINELIB_NAME_AW(TVN_SELCHANGING)
     2059
    19442060#define TVN_SELCHANGEDA         (TVN_FIRST-2)
    19452061#define TVN_SELCHANGEDW         (TVN_FIRST-51)
    19462062#define TVN_SELCHANGED          WINELIB_NAME_AW(TVN_SELCHANGED)
     2063
    19472064#define TVN_GETDISPINFOA        (TVN_FIRST-3)
    19482065#define TVN_GETDISPINFOW        (TVN_FIRST-52)
    19492066#define TVN_GETDISPINFO         WINELIB_NAME_AW(TVN_GETDISPINFO)
     2067
    19502068#define TVN_SETDISPINFOA        (TVN_FIRST-4)
    19512069#define TVN_SETDISPINFOW        (TVN_FIRST-53)
    19522070#define TVN_SETDISPINFO         WINELIB_NAME_AW(TVN_SETDISPINFO)
     2071
    19532072#define TVN_ITEMEXPANDINGA      (TVN_FIRST-5)
    19542073#define TVN_ITEMEXPANDINGW      (TVN_FIRST-54)
    19552074#define TVN_ITEMEXPANDING       WINELIB_NAME_AW(TVN_ITEMEXPANDING)
     2075
    19562076#define TVN_ITEMEXPANDEDA       (TVN_FIRST-6)
    19572077#define TVN_ITEMEXPANDEDW       (TVN_FIRST-55)
    19582078#define TVN_ITEMEXPANDED        WINELIB_NAME_AW(TVN_ITEMEXPANDED)
     2079
    19592080#define TVN_BEGINDRAGA          (TVN_FIRST-7)
    19602081#define TVN_BEGINDRAGW          (TVN_FIRST-56)
    19612082#define TVN_BEGINDRAG           WINELIB_NAME_AW(TVN_BEGINDRAG)
     2083
    19622084#define TVN_BEGINRDRAGA         (TVN_FIRST-8)
    19632085#define TVN_BEGINRDRAGW         (TVN_FIRST-57)
    19642086#define TVN_BEGINRDRAG          WINELIB_NAME_AW(TVN_BEGINRDRAG)
     2087
    19652088#define TVN_DELETEITEMA         (TVN_FIRST-9)
    19662089#define TVN_DELETEITEMW         (TVN_FIRST-58)
    19672090#define TVN_DELETEITEM          WINELIB_NAME_AW(TVN_DELETEITEM)
     2091
    19682092#define TVN_BEGINLABELEDITA     (TVN_FIRST-10)
    19692093#define TVN_BEGINLABELEDITW     (TVN_FIRST-59)
    19702094#define TVN_BEGINLABELEDIT      WINELIB_NAME_AW(TVN_BEGINLABELEDIT)
     2095
    19712096#define TVN_ENDLABELEDITA       (TVN_FIRST-11)
    19722097#define TVN_ENDLABELEDITW       (TVN_FIRST-60)
    19732098#define TVN_ENDLABELEDIT        WINELIB_NAME_AW(TVN_ENDLABELEDIT)
     2099
    19742100#define TVN_KEYDOWN             (TVN_FIRST-12)
     2101
    19752102#define TVN_GETINFOTIPA         (TVN_FIRST-13)
    19762103#define TVN_GETINFOTIPW         (TVN_FIRST-14)
    19772104#define TVN_GETINFOTIP          WINELIB_NAME_AW(TVN_GETINFOTIP)
     2105
    19782106#define TVN_SINGLEEXPAND        (TVN_FIRST-15)
     2107
     2108
     2109
     2110
    19792111
    19802112#define TVIF_TEXT             0x0001
     
    19862118#define TVIF_CHILDREN         0x0040
    19872119#define TVIF_INTEGRAL         0x0080
    1988 #define TVIF_DI_SETITEM       0x1000
     2120#define TVIF_DI_SETITEM           0x1000
    19892121
    19902122#define TVI_ROOT              ((HTREEITEM)0xffff0000)     /* -65536 */
     
    20282160#define TVS_CHECKBOXES        0x0100
    20292161#define TVS_TRACKSELECT       0x0200
    2030 #define TVS_SINGLEEXPAND      0x0400
    2031 #define TVS_INFOTIP           0x0800
    2032 #define TVS_FULLROWSELECT     0x1000
    2033 #define TVS_NOSCROLL          0x2000
    2034 #define TVS_NONEVENHEIGHT     0x4000
    2035 #define TVS_NOHSCROLL         0x8000
     2162#define TVS_SINGLEEXPAND          0x0400
     2163#define TVS_INFOTIP               0x0800
     2164#define TVS_FULLROWSELECT         0x1000
     2165#define TVS_NOSCROLL              0x2000
     2166#define TVS_NONEVENHEIGHT         0x4000
     2167#define TVS_NOHSCROLL         0x8000 
    20362168
    20372169#define TVS_SHAREDIMAGELISTS  0x0000
     
    20612193#define TVC_BYKEYBOARD        0x02
    20622194
     2195#ifdef __WIN32OS2__
    20632196#define TVNRET_DEFAULT          0
    20642197#define TVNRET_SKIPOLD          1
    20652198#define TVNRET_SKIPNEW          2
     2199#endif
    20662200
    20672201typedef struct _TREEITEM *HTREEITEM;
     
    20932227} TVITEMW, *LPTVITEMW;
    20942228
    2095 #define TVITEM     WINELIB_NAME_AW(TVITEM)
    2096 #define LPTVITEM   WINELIB_NAME_AW(LPTVITEM)
    2097 #define LPTV_ITEM   LPTVITEM
    2098 #define TV_ITEM     TVITEM
     2229#define TV_ITEMA    TVITEMA
     2230#define TV_ITEMW    TVITEMW
     2231#define LPTV_ITEMA  LPTVITEMA
     2232#define LPTV_ITEMW  LPTVITEMW
     2233
     2234#define TVITEM      WINELIB_NAME_AW(TVITEM)
     2235#define LPTVITEM    WINELIB_NAME_AW(LPTVITEM)
     2236#define TV_ITEM     WINELIB_NAME_AW(TV_ITEM)
     2237#define LPTV_ITEM   WINELIB_NAME_AW(LPTV_ITEM)
    20992238
    21002239typedef struct {
     
    21472286} TVINSERTSTRUCTW, *LPTVINSERTSTRUCTW;
    21482287
    2149 #define TV_INSERTSTRUCT   WINELIB_NAME_AW(TVINSERTSTRUCT)
    2150 #define LPTV_INSERTSTRUCT WINELIB_NAME_AW(LPTVINSERTSTRUCT)
    21512288#define TVINSERTSTRUCT    WINELIB_NAME_AW(TVINSERTSTRUCT)
    21522289#define LPTVINSERTSTRUCT  WINELIB_NAME_AW(LPTVINSERTSTRUCT)
     
    21562293#define TVINSERTSTRUCT_V1_SIZE    WINELIB_NAME_AW(TVINSERTSTRUCT_V1_SIZE)
    21572294
     2295#define TV_INSERTSTRUCT    TVINSERTSTRUCT
     2296#define TV_INSERTSTRUCTA   TVINSERTSTRUCTA
     2297#define TV_INSERTSTRUCTW   TVINSERTSTRUCTW
     2298#define LPTV_INSERTSTRUCT  LPTVINSERTSTRUCT
     2299#define LPTV_INSERTSTRUCTA LPTVINSERTSTRUCTA
     2300#define LPTV_INSERTSTRUCTW LPTVINSERTSTRUCTW
     2301
    21582302
    21592303
    21602304typedef struct tagNMTREEVIEWA {
    2161         NMHDR   hdr;
    2162         UINT    action;
    2163         TVITEMA itemOld;
    2164         TVITEMA itemNew;
    2165         POINT   ptDrag;
     2305        NMHDR   hdr;
     2306        UINT    action;
     2307        TVITEMA itemOld;
     2308        TVITEMA itemNew;
     2309        POINT   ptDrag;
    21662310} NMTREEVIEWA, *LPNMTREEVIEWA;
    21672311
    21682312typedef struct tagNMTREEVIEWW {
    2169         NMHDR   hdr;
    2170         UINT    action;
    2171         TVITEMW itemOld;
    2172         TVITEMW itemNew;
    2173         POINT   ptDrag;
     2313        NMHDR   hdr;
     2314        UINT    action;
     2315        TVITEMW itemOld;
     2316        TVITEMW itemNew;
     2317        POINT   ptDrag;
    21742318} NMTREEVIEWW, *LPNMTREEVIEWW;
    21752319
     
    21782322#define LPNMTREEVIEW   WINELIB_NAME_AW(LPNMTREEVIEW)
    21792323
     2324#define LPNM_TREEVIEW           LPNMTREEVIEW
     2325
    21802326typedef struct tagTVDISPINFOA {
    2181         NMHDR   hdr;
    2182         TVITEMA item;
     2327        NMHDR   hdr;
     2328        TVITEMA item;
    21832329} NMTVDISPINFOA, *LPNMTVDISPINFOA;
    21842330
    21852331typedef struct tagTVDISPINFOW {
    2186         NMHDR   hdr;
    2187         TVITEMW item;
     2332        NMHDR   hdr;
     2333        TVITEMW item;
    21882334} NMTVDISPINFOW, *LPNMTVDISPINFOW;
    21892335
     
    21922338#define TV_DISPINFO             NMTVDISPINFO
    21932339
     2340#ifdef __WIN32OS2__
    21942341typedef INT (* CALLBACK PFNTVCOMPARE)(LPARAM, LPARAM, LPARAM);
     2342#else
     2343typedef INT (CALLBACK *PFNTVCOMPARE)(LPARAM, LPARAM, LPARAM);
     2344#endif
    21952345
    21962346typedef struct tagTVSORTCB
    21972347{
    2198         HTREEITEM hParent;
    2199         PFNTVCOMPARE lpfnCompare;
    2200         LPARAM lParam;
     2348        HTREEITEM hParent;
     2349        PFNTVCOMPARE lpfnCompare;
     2350        LPARAM lParam;
    22012351} TVSORTCB, *LPTVSORTCB;
    22022352
     
    22112361
    22122362#define TV_HITTESTINFO TVHITTESTINFO
    2213 
    2214 #define TV_KEYDOWN      NMTVKEYDOWN
    2215 
    2216 typedef struct tagTVKEYDOWN {
    2217     NMHDR hdr;
    2218     WORD wVKey;
    2219     UINT flags;
    2220 } NMTVKEYDOWN, *LPNMTVKEYDOWN;
    22212363
    22222364
     
    22552397} NMTVGETINFOTIPW, *LPNMTVGETINFOTIPW;
    22562398
    2257 
    2258 #define TreeView_InsertItem   WINELIB_NAME_AW(TreeView_InsertItem)
     2399#define NMTVGETINFOTIP WINELIB_NAME_AW(NMTVGETINFOTIP)
     2400#define LPNMTVGETINFOTIP WINELIB_NAME_AW(LPNMTVGETINFOTIP)
     2401
     2402#include "pshpack1.h"
     2403typedef struct tagTVKEYDOWN
     2404{
     2405    NMHDR hdr;
     2406    WORD wVKey;
     2407    UINT flags;
     2408} NMTVKEYDOWN, *LPNMTVKEYDOWN;
     2409#include "poppack.h"
     2410
     2411#define TV_KEYDOWN      NMTVKEYDOWN
     2412
    22592413#define TreeView_InsertItemA(hwnd, phdi) \
    2260   (INT)SendMessageA((hwnd), TVM_INSERTITEMA, 0, \
     2414  (HTREEITEM)SendMessageA((hwnd), TVM_INSERTITEMA, 0, \
    22612415                            (LPARAM)(LPTVINSERTSTRUCTA)(phdi))
    22622416#define TreeView_InsertItemW(hwnd,phdi) \
    2263   (INT)SendMessageW((hwnd), TVM_INSERTITEMW, 0, \
     2417  (HTREEITEM)SendMessageW((hwnd), TVM_INSERTITEMW, 0, \
    22642418                            (LPARAM)(LPTVINSERTSTRUCTW)(phdi))
     2419#define TreeView_InsertItem WINELIB_NAME_AW(TreeView_InsertItem)
     2420
    22652421#define TreeView_DeleteItem(hwnd, hItem) \
    22662422  (BOOL)SendMessageA((hwnd), TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(hItem))
     
    22692425#define TreeView_Expand(hwnd, hitem, code) \
    22702426 (BOOL)SendMessageA((hwnd), TVM_EXPAND, (WPARAM)code, \
    2271         (LPARAM)(HTREEITEM)(hitem))
     2427        (LPARAM)(HTREEITEM)(hitem))
    22722428
    22732429#define TreeView_GetItemRect(hwnd, hitem, prc, code) \
    22742430 (*(HTREEITEM *)prc = (hitem), (BOOL)SendMessageA((hwnd), \
    2275                         TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc)))
     2431                        TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc)))
    22762432
    22772433#define TreeView_GetCount(hwnd) \
     
    22942450
    22952451#define TreeView_GetChild(hwnd, hitem) \
    2296                  TreeView_GetNextItem(hwnd, hitem , TVGN_CHILD)
     2452                TreeView_GetNextItem(hwnd, hitem , TVGN_CHILD)
    22972453#define TreeView_GetNextSibling(hwnd, hitem) \
    2298                 TreeView_GetNextItem(hwnd, hitem , TVGN_NEXT)
     2454                TreeView_GetNextItem(hwnd, hitem , TVGN_NEXT)
    22992455#define TreeView_GetPrevSibling(hwnd, hitem) \
    2300                 TreeView_GetNextItem(hwnd, hitem , TVGN_PREVIOUS)
     2456                TreeView_GetNextItem(hwnd, hitem , TVGN_PREVIOUS)
    23012457#define TreeView_GetParent(hwnd, hitem) \
    2302                 TreeView_GetNextItem(hwnd, hitem , TVGN_PARENT)
     2458                TreeView_GetNextItem(hwnd, hitem , TVGN_PARENT)
    23032459#define TreeView_GetFirstVisible(hwnd)  \
    2304                 TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE)
     2460                TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE)
    23052461#define TreeView_GetLastVisible(hwnd)   \
    2306                 TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE)
     2462                TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE)
    23072463#define TreeView_GetNextVisible(hwnd, hitem) \
    2308                 TreeView_GetNextItem(hwnd, hitem , TVGN_NEXTVISIBLE)
     2464                TreeView_GetNextItem(hwnd, hitem , TVGN_NEXTVISIBLE)
    23092465#define TreeView_GetPrevVisible(hwnd, hitem) \
    2310                 TreeView_GetNextItem(hwnd, hitem , TVGN_PREVIOUSVISIBLE)
     2466                TreeView_GetNextItem(hwnd, hitem , TVGN_PREVIOUSVISIBLE)
    23112467#define TreeView_GetSelection(hwnd) \
    2312                 TreeView_GetNextItem(hwnd, NULL, TVGN_CARET)
     2468                TreeView_GetNextItem(hwnd, NULL, TVGN_CARET)
    23132469#define TreeView_GetDropHilight(hwnd) \
    2314                 TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE)
     2470                TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE)
    23152471#define TreeView_GetRoot(hwnd) \
    2316                 TreeView_GetNextItem(hwnd, NULL, TVGN_ROOT)
     2472                TreeView_GetNextItem(hwnd, NULL, TVGN_ROOT)
    23172473#define TreeView_GetLastVisible(hwnd) \
    2318                 TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE)
     2474                TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE)
    23192475
    23202476
     
    23252481
    23262482#define TreeView_SelectItem(hwnd, hitem) \
    2327                 TreeView_Select(hwnd, hitem, TVGN_CARET)
     2483                TreeView_Select(hwnd, hitem, TVGN_CARET)
    23282484#define TreeView_SelectDropTarget(hwnd, hitem) \
    2329                 TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
    2330 #define TreeView_SelectSetFirstVisible(hwnd, hitem)  \
    2331                 TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
     2485        TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
     2486#define TreeView_SelectSetFirstVisible(hwnd, hitem) \
     2487        TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
     2488
    23322489
    23332490#define TreeView_GetItemA(hwnd, pitem) \
     
    23352492#define TreeView_GetItemW(hwnd, pitem) \
    23362493 (BOOL)SendMessageW((hwnd), TVM_GETITEMA, 0, (LPARAM) (TVITEMA *)(pitem))
    2337 
    2338 #define TreeView_GetItem   WINELIB_NAME_AW(TreeView_GetItem)
     2494#define TreeView_GetItem WINELIB_NAME_AW(TreeView_GetItem)
    23392495
    23402496#define TreeView_SetItemA(hwnd, pitem) \
    2341  (BOOL)SendMessageA((hwnd), TVM_SETITEMA, 0, (LPARAM)(const TVITEMA *)(pitem))
     2497 (BOOL)SendMessageA((hwnd), TVM_SETITEMA, 0, (LPARAM)(const TVITEMA *)(pitem)) 
    23422498#define TreeView_SetItemW(hwnd, pitem) \
    2343  (BOOL)SendMessageW((hwnd), TVM_SETITEMA, 0, (LPARAM)(const TVITEMA *)(pitem))
    2344 
    2345 #define TreeView_SetItem   WINELIB_NAME_AW(TreeView_SetItem)
     2499 (BOOL)SendMessageW((hwnd), TVM_SETITEMA, 0, (LPARAM)(const TVITEMA *)(pitem))
     2500#define TreeView_SetItem WINELIB_NAME_AW(TreeView_SetItem)
    23462501
    23472502#define TreeView_EditLabel(hwnd, hitem) \
    23482503    (HWND)SendMessageA((hwnd), TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(hitem))
    2349 
    23502504
    23512505#define TreeView_GetEditControl(hwnd) \
     
    23792533#define TreeView_GetISearchString(hwnd, lpsz) \
    23802534    (BOOL)SendMessageA((hwnd), TVM_GETISEARCHSTRING, 0, \
    2381                                                         (LPARAM)(LPTSTR)lpsz)
     2535                                                        (LPARAM)(LPTSTR)lpsz)
    23822536
    23832537#define TreeView_SetToolTips(hwnd,  hwndTT) \
    2384     (BOOL)SendMessageA((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0)
     2538    (HWND)SendMessageA((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0)
    23852539
    23862540#define TreeView_GetToolTips(hwnd) \
    2387     (BOOL)SendMessageA((hwnd), TVM_GETTOOLTIPS, 0, 0)
     2541    (HWND)SendMessageA((hwnd), TVM_GETTOOLTIPS, 0, 0)
    23882542
    23892543#define TreeView_SetItemHeight(hwnd,  iHeight) \
    23902544    (INT)SendMessageA((hwnd), TVM_SETITEMHEIGHT, (WPARAM)iHeight, 0)
     2545
    23912546#define TreeView_GetItemHeight(hwnd) \
    23922547    (INT)SendMessageA((hwnd), TVM_GETITEMHEIGHT, 0, 0)
     
    24412596}
    24422597
    2443 #define TreeView_SetUnicodeFormat(hwnd, fUnicode)  \
    2444     (BOOL)SendMessageA((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
    2445 
    2446 #define TreeView_GetUnicodeFormat(hwnd)  \
    2447     (BOOL)SendMessageA((hwnd), TVM_GETUNICODEFORMAT, 0, 0)
    24482598
    24492599/* Listview control */
    24502600
    24512601#define WC_LISTVIEWA          "SysListView32"
     2602#ifdef __WIN32OS2__
    24522603#define WC_LISTVIEWW          L"SysListView32"
    2453 #define WC_LISTVIEW           WINELIB_NAME_AW(WC_LISTVIEW)
     2604#else
     2605static const WCHAR WC_LISTVIEWW[] = { 'S','y','s',
     2606  'L','i','s','t','V','i','e','w','3','2',0 };
     2607#endif
     2608#define WC_LISTVIEW  WINELIB_NAME_AW(WC_LISTVIEW)
     2609
     2610#define LVSCW_AUTOSIZE -1
     2611#define LVSCW_AUTOSIZE_USEHEADER -2
     2612
     2613#ifdef __WIN32OS2__
     2614#define LV_MAX_WORKAREAS         16
     2615#endif
    24542616
    24552617#define LVS_ICON                0x0000
     
    24762638#define LVS_NOSORTHEADER        0x8000
    24772639
     2640#define LVS_EX_GRIDLINES        0x0001
     2641#define LVS_EX_SUBITEMIMAGES    0x0002
     2642#define LVS_EX_CHECKBOXES       0x0004
     2643#define LVS_EX_TRACKSELECT      0x0008
     2644#define LVS_EX_HEADERDRAGDROP   0x0010
     2645#define LVS_EX_FULLROWSELECT    0x0020
     2646#define LVS_EX_ONECLICKACTIVATE 0x0040
     2647#define LVS_EX_TWOCLICKACTIVATE 0x0080
     2648#define LVS_EX_FLATSB           0x0100
     2649#define LVS_EX_REGIONAL         0x0200
     2650#define LVS_EX_INFOTIP          0x0400
     2651#define LVS_EX_UNDERLINEHOT     0x0800
     2652#define LVS_EX_UNDERLINECOLD    0x1000
     2653#define LVS_EX_MULTIWORKAREAS   0x2000
     2654
    24782655#define LVCF_FMT                0x0001
    24792656#define LVCF_WIDTH              0x0002
     
    25002677#define LVSICF_NOSCROLL         0x0002
    25012678
     2679
    25022680#define LVFI_PARAM              0X0001
    25032681#define LVFI_STRING             0X0002
    25042682#define LVFI_PARTIAL            0X0008
    2505 #define LVFI_WRAP               0X0020
     2683#define LVFI_WRAP               0X0020 
    25062684#define LVFI_NEARESTXY          0X0040
    25072685
     
    25172695#define LVIR_LABEL              0x0002
    25182696#define LVIR_ICON               0x0001
    2519 #define LVIR_SELECTBOUNDS       0x0003
     2697#define LVIR_SELECTBOUNDS       0x0003 
    25202698
    25212699#define LVIS_FOCUSED            0x0001
     
    25282706#define LVIS_STATEIMAGEMASK     0xF000
    25292707
    2530 #define LVNI_ALL                0x0000
    2531 #define LVNI_FOCUSED            0x0001
    2532 #define LVNI_SELECTED           0x0002
    2533 #define LVNI_CUT                0x0004
    2534 #define LVNI_DROPHILITED        0x0008
    2535 
    2536 #define LVNI_ABOVE              0x0100
    2537 #define LVNI_BELOW              0x0200
    2538 #define LVNI_TOLEFT             0x0400
    2539 #define LVNI_TORIGHT            0x0800
    2540 
    2541 #define LVHT_NOWHERE            0x0001
    2542 #define LVHT_ONITEMICON         0x0002
    2543 #define LVHT_ONITEMLABEL        0x0004
    2544 #define LVHT_ONITEMSTATEICON    0x0008
    2545 #define LVHT_ONITEM             (LVHT_ONITEMICON|LVHT_ONITEMLABEL|LVHT_ONITEMSTATEICON)
    2546 
    2547 #define LVHT_ABOVE              0x0008
    2548 #define LVHT_BELOW              0x0010
    2549 #define LVHT_TORIGHT            0x0020
    2550 #define LVHT_TOLEFT             0x0040
    2551 
    2552 #define LVSCW_AUTOSIZE              0xFFFF//-1
    2553 #define LVSCW_AUTOSIZE_USEHEADER    0xFFFE//-2
    2554 
    2555 #define LV_MAX_WORKAREAS         16
    2556 
    2557 #define LVS_EX_GRIDLINES        0x00000001
    2558 #define LVS_EX_SUBITEMIMAGES    0x00000002
    2559 #define LVS_EX_CHECKBOXES       0x00000004
    2560 #define LVS_EX_TRACKSELECT      0x00000008
    2561 #define LVS_EX_HEADERDRAGDROP   0x00000010
    2562 #define LVS_EX_FULLROWSELECT    0x00000020 // applies to report mode only
    2563 #define LVS_EX_ONECLICKACTIVATE 0x00000040
    2564 #define LVS_EX_TWOCLICKACTIVATE 0x00000080
    2565 #define LVS_EX_FLATSB           0x00000100
    2566 #define LVS_EX_REGIONAL         0x00000200
    2567 #define LVS_EX_INFOTIP          0x00000400 // listview does InfoTips for you
    2568 #define LVS_EX_UNDERLINEHOT     0x00000800
    2569 #define LVS_EX_UNDERLINECOLD    0x00001000
    2570 #define LVS_EX_MULTIWORKAREAS   0x00002000
     2708#define LVNI_ALL                0x0000
     2709#define LVNI_FOCUSED            0x0001
     2710#define LVNI_SELECTED           0x0002
     2711#define LVNI_CUT                0x0004
     2712#define LVNI_DROPHILITED        0x0008
     2713
     2714#define LVNI_ABOVE              0x0100
     2715#define LVNI_BELOW              0x0200
     2716#define LVNI_TOLEFT             0x0400
     2717#define LVNI_TORIGHT            0x0800
     2718
     2719#define LVHT_NOWHERE            0x0001
     2720#define LVHT_ONITEMICON         0x0002
     2721#define LVHT_ONITEMLABEL        0x0004
     2722#define LVHT_ONITEMSTATEICON    0x0008
     2723#define LVHT_ONITEM             (LVHT_ONITEMICON|LVHT_ONITEMLABEL|LVHT_ONITEMSTATEICON)
     2724
     2725#define LVHT_ABOVE              0x0008
     2726#define LVHT_BELOW              0x0010
     2727#define LVHT_TORIGHT            0x0020
     2728#define LVHT_TOLEFT             0x0040
    25712729
    25722730#define LVM_FIRST               0x1000
     
    25762734#define LVM_SETIMAGELIST        (LVM_FIRST+3)
    25772735#define LVM_GETITEMCOUNT        (LVM_FIRST+4)
    2578 #define LVM_GETITEMA            (LVM_FIRST+5)
    2579 #define LVM_GETITEMW            (LVM_FIRST+75)
     2736#define LVM_GETITEMA          (LVM_FIRST+5)
     2737#define LVM_GETITEMW          (LVM_FIRST+75)
    25802738#define LVM_GETITEM             WINELIB_NAME_AW(LVM_GETITEM)
    2581 #define LVM_SETITEMA            (LVM_FIRST+6)
    2582 #define LVM_SETITEMW            (LVM_FIRST+76)
     2739#define LVM_SETITEMA          (LVM_FIRST+6)
     2740#define LVM_SETITEMW          (LVM_FIRST+76)
    25832741#define LVM_SETITEM             WINELIB_NAME_AW(LVM_SETITEM)
    2584 #define LVM_INSERTITEMA         (LVM_FIRST+7)
    2585 #define LVM_INSERTITEMW         (LVM_FIRST+77)
     2742#define LVM_INSERTITEMA       (LVM_FIRST+7)
     2743#define LVM_INSERTITEMW       (LVM_FIRST+77)
    25862744#define LVM_INSERTITEM          WINELIB_NAME_AW(LVM_INSERTITEM)
    25872745#define LVM_DELETEITEM          (LVM_FIRST+8)
     
    25902748#define LVM_SETCALLBACKMASK     (LVM_FIRST+11)
    25912749#define LVM_GETNEXTITEM         (LVM_FIRST+12)
    2592 #define LVM_FINDITEMA           (LVM_FIRST+13)
    2593 #define LVM_FINDITEMW           (LVM_FIRST+83)
     2750#define LVM_FINDITEMA         (LVM_FIRST+13)
     2751#define LVM_FINDITEMW         (LVM_FIRST+83)
    25942752#define LVM_FINDITEM            WINELIB_NAME_AW(LVM_FINDITEM)
    25952753#define LVM_GETITEMRECT         (LVM_FIRST+14)
    25962754#define LVM_SETITEMPOSITION     (LVM_FIRST+15)
    25972755#define LVM_GETITEMPOSITION     (LVM_FIRST+16)
    2598 #define LVM_GETSTRINGWIDTHA     (LVM_FIRST+17)
    2599 #define LVM_GETSTRINGWIDTHW     (LVM_FIRST+87)
     2756#define LVM_GETSTRINGWIDTHA   (LVM_FIRST+17)
     2757#define LVM_GETSTRINGWIDTHW   (LVM_FIRST+87)
    26002758#define LVM_GETSTRINGWIDTH      WINELIB_NAME_AW(LVM_GETSTRINGWIDTH)
    26012759#define LVM_HITTEST             (LVM_FIRST+18)
     
    26042762#define LVM_REDRAWITEMS         (LVM_FIRST+21)
    26052763#define LVM_ARRANGE             (LVM_FIRST+22)
    2606 #define LVM_EDITLABELA          (LVM_FIRST+23)
    2607 #define LVM_EDITLABELW          (LVM_FIRST+118)
     2764#define LVM_EDITLABELA        (LVM_FIRST+23)
     2765#define LVM_EDITLABELW        (LVM_FIRST+118)
    26082766#define LVM_EDITLABEL           WINELIB_NAME_AW(LVM_EDITLABEL)
    26092767#define LVM_GETEDITCONTROL      (LVM_FIRST+24)
    2610 #define LVM_GETCOLUMNA          (LVM_FIRST+25)
    2611 #define LVM_GETCOLUMNW          (LVM_FIRST+95)
     2768#define LVM_GETCOLUMNA        (LVM_FIRST+25)
     2769#define LVM_GETCOLUMNW        (LVM_FIRST+95)
    26122770#define LVM_GETCOLUMN           WINELIB_NAME_AW(LVM_GETCOLUMN)
    2613 #define LVM_SETCOLUMNA          (LVM_FIRST+26)
    2614 #define LVM_SETCOLUMNW          (LVM_FIRST+96)
     2771#define LVM_SETCOLUMNA        (LVM_FIRST+26)
     2772#define LVM_SETCOLUMNW        (LVM_FIRST+96)
    26152773#define LVM_SETCOLUMN           WINELIB_NAME_AW(LVM_SETCOLUMN)
    2616 #define LVM_INSERTCOLUMNA       (LVM_FIRST+27)
    2617 #define LVM_INSERTCOLUMNW       (LVM_FIRST+97)
     2774#define LVM_INSERTCOLUMNA     (LVM_FIRST+27)
     2775#define LVM_INSERTCOLUMNW     (LVM_FIRST+97)
    26182776#define LVM_INSERTCOLUMN        WINELIB_NAME_AW(LVM_INSERTCOLUMN)
    26192777#define LVM_DELETECOLUMN        (LVM_FIRST+28)
     
    26342792#define LVM_SETITEMSTATE        (LVM_FIRST+43)
    26352793#define LVM_GETITEMSTATE        (LVM_FIRST+44)
    2636 #define LVM_GETITEMTEXTA        (LVM_FIRST+45)
    2637 #define LVM_GETITEMTEXTW        (LVM_FIRST+115)
     2794#define LVM_GETITEMTEXTA      (LVM_FIRST+45)
     2795#define LVM_GETITEMTEXTW      (LVM_FIRST+115)
    26382796#define LVM_GETITEMTEXT         WINELIB_NAME_AW(LVM_GETITEMTEXT)
    2639 #define LVM_SETITEMTEXTA        (LVM_FIRST+46)
    2640 #define LVM_SETITEMTEXTW        (LVM_FIRST+116)
     2797#define LVM_SETITEMTEXTA      (LVM_FIRST+46)
     2798#define LVM_SETITEMTEXTW      (LVM_FIRST+116)
    26412799#define LVM_SETITEMTEXT         WINELIB_NAME_AW(LVM_SETITEMTEXT)
    26422800#define LVM_SETITEMCOUNT        (LVM_FIRST+47)
     
    26452803#define LVM_GETSELECTEDCOUNT    (LVM_FIRST+50)
    26462804#define LVM_GETITEMSPACING      (LVM_FIRST+51)
    2647 #define LVM_GETISEARCHSTRINGA   (LVM_FIRST+52)
    2648 #define LVM_GETISEARCHSTRINGW   (LVM_FIRST+117)
     2805#define LVM_GETISEARCHSTRINGA (LVM_FIRST+52)
     2806#define LVM_GETISEARCHSTRINGW (LVM_FIRST+117)
    26492807#define LVM_GETISEARCHSTRING    WINELIB_NAME_AW(LVM_GETISEARCHSTRING)
    26502808#define LVM_SETICONSPACING      (LVM_FIRST+53)
     
    26632821#define LVM_GETSELECTIONMARK    (LVM_FIRST+66)
    26642822#define LVM_SETSELECTIONMARK    (LVM_FIRST+67)
    2665 #define LVM_SETBKIMAGEA         (LVM_FIRST+68)
    2666 #define LVM_SETBKIMAGEW         (LVM_FIRST+138)
     2823#define LVM_SETBKIMAGEA       (LVM_FIRST+68)
     2824#define LVM_SETBKIMAGEW       (LVM_FIRST+138)
    26672825#define LVM_SETBKIMAGE          WINELIB_NAME_AW(LVM_SETBKIMAGE)
    2668 #define LVM_GETBKIMAGEA         (LVM_FIRST+69)
    2669 #define LVM_GETBKIMAGEW         (LVM_FIRST+139)
     2826#define LVM_GETBKIMAGEA       (LVM_FIRST+69)
     2827#define LVM_GETBKIMAGEW       (LVM_FIRST+139)
    26702828#define LVM_GETBKIMAGE          WINELIB_NAME_AW(LVM_GETBKIMAGE)
    26712829#define LVM_GETWORKAREAS        (LVM_FIRST+70)
     
    26742832#define LVM_GETNUMBEROFWORKAREAS (LVM_FIRST+73)
    26752833#define LVM_SETTOOLTIPS         (LVM_FIRST+74)
    2676 
    26772834#define LVM_GETTOOLTIPS         (LVM_FIRST+78)
    2678 #define LVM_SORTITEMSEX         (LVM_FIRST+81)
    26792835
    26802836#define LVN_FIRST               (0U-100U)
    26812837#define LVN_LAST                (0U-199U)
    2682 
    2683 // Property sheet reserved      (0U-200U) -  (0U-299U) - see prsht.h
    2684 
    26852838#define LVN_ITEMCHANGING        (LVN_FIRST-0)
    26862839#define LVN_ITEMCHANGED         (LVN_FIRST-1)
     
    26882841#define LVN_DELETEITEM          (LVN_FIRST-3)
    26892842#define LVN_DELETEALLITEMS      (LVN_FIRST-4)
    2690 #define LVN_BEGINLABELEDITA     (LVN_FIRST-5)
    2691 #define LVN_BEGINLABELEDITW     (LVN_FIRST-75)
    2692 #define LVN_BEGINLABELEDIT      WINELIB_NAME_AW(LVN_BEGINLABELEDIT)
    2693 #define LVN_ENDLABELEDITA       (LVN_FIRST-6)
    2694 #define LVN_ENDLABELEDITW       (LVN_FIRST-76)
    2695 #define LVN_ENDLABELEDIT        WINELIB_NAME_AW(LVN_ENDLABELEDIT)
     2843#define LVN_BEGINLABELEDITA   (LVN_FIRST-5)
     2844#define LVN_BEGINLABELEDITW   (LVN_FIRST-75)
     2845#define LVN_BEGINLABELEDIT WINELIB_NAME_AW(LVN_BEGINLABELEDIT)
     2846#define LVN_ENDLABELEDITA     (LVN_FIRST-6)
     2847#define LVN_ENDLABELEDITW     (LVN_FIRST-76)
     2848#define LVN_ENDLABELEDIT WINELIB_NAME_AW(LVN_ENDLABELEDIT)
    26962849#define LVN_COLUMNCLICK         (LVN_FIRST-8)
    26972850#define LVN_BEGINDRAG           (LVN_FIRST-9)
     
    27032856#define LVN_ODFINDITEMA         (LVN_FIRST-52)
    27042857#define LVN_ODFINDITEMW         (LVN_FIRST-79)
    2705 #define LVN_ODFINDITEM          WINELIB_NAME_AW(LVN_ODFINDITEM)
    2706 #define LVN_GETDISPINFOA        (LVN_FIRST-50)
    2707 #define LVN_GETDISPINFOW        (LVN_FIRST-77)
    2708 #define LVN_GETDISPINFO         WINELIB_NAME_AW(LVN_GETDISPINFO)
    2709 #define LVN_SETDISPINFOA        (LVN_FIRST-51)
    2710 #define LVN_SETDISPINFOW        (LVN_FIRST-78)
    2711 #define LVN_SETDISPINFO         WINELIB_NAME_AW(LVN_SETDISPINFO)
     2858#define LVN_ODFINDITEM WINELIB_NAME_AW(LVN_ODFINDITEM)
     2859#define LVN_GETDISPINFOA      (LVN_FIRST-50)
     2860#define LVN_GETDISPINFOW      (LVN_FIRST-77)
     2861#define LVN_GETDISPINFO WINELIB_NAME_AW(LVN_GETDISPINFO)
     2862#define LVN_SETDISPINFOA      (LVN_FIRST-51)
     2863#define LVN_SETDISPINFOW      (LVN_FIRST-78)
     2864#define LVN_SETDISPINFO WINELIB_NAME_AW(LVN_SETDISPINFO)
    27122865#define LVN_KEYDOWN             (LVN_FIRST-55)
    27132866#define LVN_MARQUEEBEGIN        (LVN_FIRST-56)
    27142867#define LVN_GETINFOTIPA         (LVN_FIRST-57)
    27152868#define LVN_GETINFOTIPW         (LVN_FIRST-58)
    2716 #define LVN_GETINFOTIP          WINELIB_NAME_AW(LVN_GETINFOTIP)
     2869#define LVN_GETINFOTIP WINELIB_NAME_AW(LVN_GETINFOTIP)
    27172870
    27182871#define LVA_ALIGNLEFT           0x0000
     
    27322885    INT  iImage;
    27332886    LPARAM lParam;
    2734     INT  iIndent;       /* (_WIN32_IE >= 0x0300) */
     2887    INT  iIndent;       /* (_WIN32_IE >= 0x0300) */
    27352888} LVITEMA, *LPLVITEMA;
    27362889
     
    27462899    INT  iImage;
    27472900    LPARAM lParam;
    2748     INT  iIndent;       /* (_WIN32_IE >= 0x0300) */
     2901    INT  iIndent;       /* (_WIN32_IE >= 0x0300) */
    27492902} LVITEMW, *LPLVITEMW;
     2903
     2904/* ListView background image structs and constants
     2905   For _WIN32_IE version 0x400 and later. */
     2906
     2907typedef struct tagLVBKIMAGEA
     2908{
     2909    ULONG ulFlags;
     2910    HBITMAP hbm;
     2911    LPSTR pszImage;
     2912    UINT cchImageMax;
     2913    int xOffsetPercent;
     2914    int yOffsetPercent;
     2915} LVBKIMAGEA, *LPLVBKIMAGEA;
     2916
     2917typedef struct tagLVBKIMAGEW
     2918{
     2919    ULONG ulFlags;
     2920    HBITMAP hbm;
     2921    LPWSTR pszImage;
     2922    UINT cchImageMax;
     2923    int xOffsetPercent;
     2924    int yOffsetPercent;
     2925} LVBKIMAGEW, *LPLVBKIMAGEW;
     2926
     2927#define LVBKIMAGE WINELIB_NAME_AW(LVBKIMAGE)
     2928#define LPLVBKIMAGE WINELIB_NAME_AW(LPLVBKIMAGE)
     2929
     2930#define LVBKIF_SOURCE_NONE      0x00000000
     2931#define LVBKIF_SOURCE_HBITMAP   0x00000001
     2932#define LVBKIF_SOURCE_URL       0x00000002
     2933#define LVBKIF_SOURCE_MASK      0x00000003
     2934#define LVBKIF_STYLE_NORMAL     0x00000000
     2935#define LVBKIF_STYLE_TILE       0x00000010
     2936#define LVBKIF_STYLE_MASK       0x00000010
     2937
     2938#define ListView_SetBkImage(hwnd, plvbki) \
     2939    (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)plvbki)
     2940
     2941#define ListView_GetBkImage(hwnd, plvbki) \
     2942    (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)plvbki)
    27502943
    27512944#define LVITEM   WINELIB_NAME_AW(LVITEM)
     
    27542947#define LVITEM_V1_SIZEA CCSIZEOF_STRUCT(LVITEMA, lParam)
    27552948#define LVITEM_V1_SIZEW CCSIZEOF_STRUCT(LVITEMW, lParam)
    2756 #define LVITEM_V1_SIZE  WINELIB_NAME_AW(LVITEM_V1_SIZE)
     2949#define LVITEM_V1_SIZE WINELIB_NAME_AW(LVITEM_V1_SIZE)
    27572950
    27582951#define LV_ITEM LVITEM
     
    27782971    INT  cchTextMax;
    27792972    INT  iSubItem;
    2780     INT  iImage;        /* (_WIN32_IE >= 0x0300) */
    2781     INT  iOrder;        /* (_WIN32_IE >= 0x0300) */
     2973    INT  iImage;        /* (_WIN32_IE >= 0x0300) */
     2974    INT  iOrder;        /* (_WIN32_IE >= 0x0300) */
    27822975} LVCOLUMNW, *LPLVCOLUMNW;
    27832976
     
    28042997} NMLISTVIEW, *LPNMLISTVIEW;
    28052998
     2999#define NM_LISTVIEW     NMLISTVIEW
    28063000#define LPNM_LISTVIEW   LPNMLISTVIEW
    2807 #define NM_LISTVIEW     NMLISTVIEW
    28083001
    28093002typedef struct tagNMITEMACTIVATE
     
    28203013} NMITEMACTIVATE, *LPNMITEMACTIVATE;
    28213014
    2822 
    28233015typedef struct tagLVDISPINFO
    28243016{
     
    28383030#define LV_DISPINFO     NMLVDISPINFO
    28393031
     3032#include "pshpack1.h"
    28403033typedef struct tagLVKEYDOWN
    28413034{
     
    28443037  UINT flags;
    28453038} NMLVKEYDOWN, *LPNMLVKEYDOWN;
     3039#include "poppack.h"
    28463040
    28473041#define LV_KEYDOWN     NMLVKEYDOWN
     
    28863080typedef struct tagLVFINDINFOA
    28873081{
    2888         UINT flags;
    2889         LPCSTR psz;
    2890         LPARAM lParam;
    2891         POINT pt;
    2892         UINT vkDirection;
    2893 } LVFINDINFO, LVFINDINFOA, *LPLVFINDINFOA, *LPLVFINDINFO;
    2894 
    2895 #define LV_FINDINFOA LVFINDINFOA
     3082        UINT flags;
     3083        LPCSTR psz;
     3084        LPARAM lParam;
     3085        POINT pt;
     3086        UINT vkDirection;
     3087} LVFINDINFOA, *LPLVFINDINFOA;
    28963088
    28973089typedef struct tagLVFINDINFOW
    28983090{
    2899         UINT flags;
    2900         LPCWSTR psz;
    2901         LPARAM lParam;
    2902         POINT pt;
    2903         UINT vkDirection;
     3091        UINT flags;
     3092        LPCWSTR psz;
     3093        LPARAM lParam;
     3094        POINT pt;
     3095        UINT vkDirection;
    29043096} LVFINDINFOW, *LPLVFINDINFOW;
    29053097
    2906 #define LV_FINDINFOW LVFINDINFOW
    2907 
    2908 #define LV_FINDINFO   WINELIB_NAME_AW(LV_FINDINFO)
    2909 #define LVFINDINFO    WINELIB_NAME_AW(LVFINDINFO)
     3098#define LVFINDINFO WINELIB_NAME_AW(LVFINDINFO)
     3099#define LPLVFINDINFO WINELIB_NAME_AW(LPLVFINDINFO)
    29103100
    29113101typedef struct tagTCHITTESTINFO
    29123102{
    2913         POINT pt;
    2914         UINT flags;
     3103        POINT pt;
     3104        UINT flags;
    29153105} TCHITTESTINFO, *LPTCHITTESTINFO;
    29163106
    29173107#define TC_HITTESTINFO TCHITTESTINFO
    29183108
     3109#ifdef __WIN32OS2__
    29193110typedef INT (* CALLBACK PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM);
     3111#else
     3112typedef INT (CALLBACK *PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM);
     3113#endif
    29203114
    29213115#define NMLVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMLCUSTOMDRW, clrTextBk)
     
    29313125typedef struct tagNMLVCACHEHINT
    29323126{
    2933         NMHDR   hdr;
    2934         INT     iFrom;
    2935         INT     iTo;
     3127        NMHDR   hdr;
     3128        INT     iFrom;
     3129        INT     iTo;
    29363130} NMLVCACHEHINT, *LPNMLVCACHEHINT;
    29373131
     
    29403134#define NM_CACHEHINT   NMLVCACHEHINT
    29413135
    2942 typedef struct tagNMLVFINDITEM
     3136typedef struct tagNMLVFINDITEMA
    29433137{
    29443138    NMHDR hdr;
    29453139    int iStart;
    2946     LVFINDINFO lvfi;
    2947 } NMLVFINDITEM, *LPNMLVFINDITEM;
    2948 
    2949 #define NM_FINDITEM NMLVFINDITEM
    2950 #define PNM_FINDITEM LPNMLVFINDITEM
    2951 #define LPNM_FINDITEM LPNMLVFINDITEM
     3140    LVFINDINFOA lvfi;
     3141} NMLVFINDITEMA, *LPNMLVFINDITEMA;
     3142
     3143typedef struct tagNMLVFINDITEMW
     3144{
     3145    NMHDR hdr;
     3146    int iStart;
     3147    LVFINDINFOW lvfi;
     3148} NMLVFINDITEMW, *LPNMLVFINDITEMW;
     3149
     3150#define NMLVFINDITEM   WINELIB_NAME_AW(NMLVFINDITEM)
     3151#define LPNMLVFINDITEM WINELIB_NAME_AW(LPNMLVFINDITEM)
     3152#define NM_FINDITEM    NMLVFINDITEM
     3153#define LPNM_FINDITEM  LPNMLVFINDITEM
     3154#define PNM_FINDITEM   LPNMLVFINDITEM
    29523155
    29533156typedef struct tagNMLVODSTATECHANGE
     
    29643167#define NM_ODSTATECHANGE NMLVODSTATECHANGE
    29653168
    2966 typedef struct tagLVBKIMAGEA
    2967 {
    2968     ULONG ulFlags;              // LVBKIF_*
    2969     HBITMAP hbm;
    2970     LPSTR pszImage;
    2971     UINT cchImageMax;
    2972     int xOffsetPercent;
    2973     int yOffsetPercent;
    2974 } LVBKIMAGEA, *LPLVBKIMAGEA;
    2975 
    2976 typedef struct tagLVBKIMAGEW
    2977 {
    2978     ULONG ulFlags;              // LVBKIF_*
    2979     HBITMAP hbm;
    2980     LPWSTR pszImage;
    2981     UINT cchImageMax;
    2982     int xOffsetPercent;
    2983     int yOffsetPercent;
    2984 } LVBKIMAGEW, *LPLVBKIMAGEW;
    2985 
    2986 #define LVBKIMAGE   WINELIB_NAME_AW(LVBKIMAGE)
    2987 #define LPLVBKIMAGE WINELIB_NAME_AW(LPLVBKIMAGE)
    2988 
    2989 
    2990 #define LVBKIF_SOURCE_NONE      0x00000000
    2991 #define LVBKIF_SOURCE_HBITMAP   0x00000001
    2992 #define LVBKIF_SOURCE_URL       0x00000002
    2993 #define LVBKIF_SOURCE_MASK      0x00000003
    2994 #define LVBKIF_STYLE_NORMAL     0x00000000
    2995 #define LVBKIF_STYLE_TILE       0x00000010
    2996 #define LVBKIF_STYLE_MASK       0x00000010
    2997 
     3169#ifdef __WIN32OS2__
    29983170#define ListView_SetUnicodeFormat(hwnd, fUnicode)  \
    29993171    (BOOL)SendMessageA((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
     
    30083180    (BOOL)SendMessageA((hwnd), LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk))
    30093181
    3010 #define ListView_GetImageList(hwnd, iImageList) \
    3011     (HIMAGELIST)SendMessageA((hwnd), LVM_GETIMAGELIST, (WPARAM)(INT)(iImageList), 0L)
    3012 
    3013 #define ListView_SetImageList(hwnd, himl, iImageList) \
    3014     (HIMAGELIST)SendMessageA((hwnd), LVM_SETIMAGELIST, (WPARAM)(iImageList), (LPARAM)(HIMAGELIST)(himl))
     3182#define ListView_GetImageList(hwnd,iImageList) \
     3183    (HIMAGELIST)SendMessageA((hwnd),LVM_GETIMAGELIST,(WPARAM)(INT)(iImageList),0L)
     3184
     3185#define ListView_SetImageList(hwnd,himl,iImageList) \
     3186    (HIMAGELIST)(UINT)SendMessageA((hwnd),LVM_SETIMAGELIST,(WPARAM)(iImageList),(LPARAM)(UINT)(HIMAGELIST)(himl))
    30153187
    30163188#define ListView_GetItemCount(hwnd) \
    3017     (int)SendMessageA((hwnd), LVM_GETITEMCOUNT, 0, 0L)
    3018 
    3019 #define ListView_GetItemA(hwnd, pitem) \
    3020     (BOOL)SendMessageA((hwnd), LVM_GETITEMA, 0, (LPARAM)(LVITEMA*)(pitem))
    3021 
    3022 #define ListView_GetItemW(hwnd, pitem) \
    3023     (BOOL)SendMessageA((hwnd), LVM_GETITEMW, 0, (LPARAM)(LVITEMW*)(pitem))
     3189    (INT)SendMessageA((hwnd),LVM_GETITEMCOUNT,0,0L)
     3190
     3191#define ListView_GetItemA(hwnd,pitem) \
     3192    (BOOL)SendMessageA((hwnd),LVM_GETITEMA,0,(LPARAM)(LVITEMA *)(pitem))
     3193
     3194#define ListView_GetItemW(hwnd,pitem) \
     3195    (BOOL)SendMessageW((hwnd),LVM_GETITEMW,0,(LPARAM)(LVITEMW *)(pitem))
    30243196
    30253197#define ListView_GetItem WINELIB_NAME_AW(ListView_GetItem)
    30263198
    3027 #define ListView_SetItemA(hwnd, pitem) \
    3028     (BOOL)SendMessageA((hwnd), LVM_SETITEMA, 0, (LPARAM)(const LVITEMA*)(pitem))
    3029 
    3030 #define ListView_SetItemW(hwnd, pitem) \
    3031     (BOOL)SendMessageA((hwnd), LVM_SETITEMW, 0, (LPARAM)(const LVITEMW*)(pitem))
    3032 
    3033 #define  ListView_SetItem WINELIB_NAME_AW(ListView_SetItem)
    3034 
    3035 #define ListView_InsertItemA(hwnd, pitem)  \
    3036     (int)SendMessageA((hwnd), LVM_INSERTITEMA, 0, (LPARAM)(const LVITEMA*)(pitem))
    3037 
    3038 #define ListView_InsertItemW(hwnd, pitem)  \
    3039     (int)SendMessageA((hwnd), LVM_INSERTITEMW, 0, (LPARAM)(const LVITEMW*)(pitem))
    3040 
    3041 #define  ListView_InsertItem WINELIB_NAME_AW(ListView_InsertItem)
    3042 
    3043 #define ListView_DeleteItem(hwnd, i) \
    3044     (BOOL)SendMessageA((hwnd), LVM_DELETEITEM, (WPARAM)(int)(i), 0L)
     3199#define ListView_SetItemA(hwnd,pitem) \
     3200    (INT)SendMessageA((hwnd),LVM_SETITEMA,0,(LPARAM)(const LVITEMA *)(pitem))
     3201
     3202#define ListView_SetItemW(hwnd,pitem) \
     3203    (INT)SendMessageW((hwnd),LVM_SETITEMW,0,(LPARAM)(const LVITEMW *)(pitem))
     3204
     3205#define ListView_SetItem WINELIB_NAME_AW(ListView_SetItem)
     3206
     3207#define ListView_InsertItemA(hwnd,pitem) \
     3208    (INT)SendMessageA((hwnd),LVM_INSERTITEMA,0,(LPARAM)(const LVITEMA *)(pitem))
     3209
     3210#define ListView_InsertItemW(hwnd,pitem) \
     3211    (INT)SendMessageW((hwnd),LVM_INSERTITEMW,0,(LPARAM)(const LVITEMW *)(pitem))
     3212
     3213#define ListView_InsertItem WINELIB_NAME_AW(ListView_InsertItem)
     3214
     3215#define ListView_DeleteItem(hwndLV, i) \
     3216    (BOOL)SendMessageA(hwndLV, LVM_DELETEITEM, (WPARAM)(int)(i), 0L)
    30453217
    30463218#define ListView_DeleteAllItems(hwnd) \
    3047     (BOOL)SendMessageA((hwnd), LVM_DELETEALLITEMS, 0, 0L)
     3219    (BOOL)SendMessageA((hwnd),LVM_DELETEALLITEMS,0,0L)
    30483220
    30493221#define ListView_GetCallbackMask(hwnd) \
     
    30533225    (BOOL)SendMessageA((hwnd), LVM_SETCALLBACKMASK, (WPARAM)(UINT)(mask), 0)
    30543226
    3055 #define ListView_GetNextItem(hwnd, i, flags) \
    3056     (int)SendMessageA((hwnd), LVM_GETNEXTITEM, (WPARAM)(int)(i), MAKELPARAM((flags), 0))
    3057 
    3058 #define ListView_FindItemA(hwnd, iStart, plvfi) \
    3059     (int)SendMessageA((hwnd), LVM_FINDITEMA, (WPARAM)(int)(iStart), (LPARAM)(const LVFINDINFOA*)(plvfi))
    3060 
    3061 #define ListView_FindItemW(hwnd, iStart, plvfi) \
    3062     (int)SendMessageA((hwnd), LVM_FINDITEMW, (WPARAM)(int)(iStart), (LPARAM)(const LVFINDINFOW*)(plvfi))
    3063 
    3064 #define ListView_GetItemRect(hwnd, i, prc, code) \
    3065      (BOOL)SendMessageA((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), \
    3066            ((prc) ? (((RECT*)(prc))->left = (code),(LPARAM)(RECT*)(prc)) : (LPARAM)(RECT*)NULL))
     3227#define ListView_GetNextItem(hwnd,nItem,flags) \
     3228    (INT)SendMessageA((hwnd),LVM_GETNEXTITEM,(WPARAM)(INT)(nItem),(LPARAM)(MAKELPARAM(flags,0)))
     3229
     3230#define ListView_FindItemA(hwnd,nItem,plvfi) \
     3231    (INT)SendMessageA((hwnd),LVM_FINDITEMA,(WPARAM)(INT)(nItem),(LPARAM)(LVFINDINFOA*)(plvfi))
     3232
     3233#define ListView_FindItemW(hwnd,nItem,plvfi) \
     3234    (INT)SendMessageW((hwnd),LVM_FINDITEMW,(WPARAM)(INT)(nItem),(LPARAM)(LVFINDINFOW*)(plvfi))
     3235
     3236#define ListView_GetItemRect(hwnd,i,prc,code) \
     3237        (BOOL)SendMessageA((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), \
     3238        ((prc) ? (((RECT*)(prc))->left = (code),(LPARAM)(RECT \
     3239        *)(prc)) : (LPARAM)(RECT*)NULL))
    30673240
    30683241#define ListView_SetItemPosition(hwndLV, i, x, y) \
    3069     (BOOL)SendMessageA((hwndLV), LVM_SETITEMPOSITION, (WPARAM)(int)(i), MAKELPARAM((x), (y)))
    3070 
    3071 #define ListView_GetItemPosition(hwndLV, i, ppt) \
    3072     (BOOL)SendMessageA((hwndLV), LVM_GETITEMPOSITION, (WPARAM)(int)(i), (LPARAM)(POINT*)(ppt))
    3073 
    3074 #define ListView_GetStringWidthA(hwndLV, psz) \
    3075     (int)SendMessageA((hwndLV), LVM_GETSTRINGWIDTHA, 0, (LPARAM)(LPCTSTR)(psz))
    3076 
    3077 #define ListView_GetStringWidthW(hwndLV, psz) \
    3078     (int)SendMessageA((hwndLV), LVM_GETSTRINGWIDTHW, 0, (LPARAM)(LPWSTR)(psz))
    3079 
    3080 #define ListView_HitTest(hwndLV, pinfo) \
    3081     (int)SendMessageA((hwndLV), LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO*)(pinfo))
    3082 
    3083 #define ListView_EnsureVisible(hwndLV, i, fPartialOK) \
    3084     (BOOL)SendMessageA((hwndLV), LVM_ENSUREVISIBLE, (WPARAM)(int)(i), MAKELPARAM((fPartialOK), 0))
    3085 
    3086 #define ListView_Scroll(hwndLV, dx, dy) \
    3087     (BOOL)SendMessageA((hwndLV), LVM_SCROLL, (WPARAM)(int)(dx), (LPARAM)(int)(dy))
     3242    (BOOL)SendMessageA((hwndLV),LVM_SETITEMPOSITION,(WPARAM)(INT)(i),MAKELPARAM((x),(y)))
     3243
     3244#define ListView_GetItemPosition(hwnd,i,ppt) \
     3245    (INT)SendMessageA((hwnd),LVM_GETITEMPOSITION,(WPARAM)(INT)(i),(LPARAM)(LPPOINT)(ppt))
     3246
     3247#define ListView_GetStringWidthA(hwnd,pstr) \
     3248    (INT)SendMessageA((hwnd),LVM_GETSTRINGWIDTHA,0,(LPARAM)(LPCSTR)(pstr))
     3249
     3250#define ListView_GetStringWidthW(hwnd,pstr) \
     3251    (INT)SendMessageW((hwnd),LVM_GETSTRINGWIDTHW,0,(LPARAM)(LPCWSTR)(pstr))
     3252
     3253#define ListView_GetStringWidth WINELIB_NAME_AW(ListView_GetStringWidth)
     3254
     3255#define ListView_HitTest(hwnd,pinfo) \
     3256    (INT)SendMessageA((hwnd),LVM_HITTEST,0,(LPARAM)(LPLVHITTESTINFO)(pinfo))
     3257
     3258#define ListView_EnsureVisible(hwnd,i,fPartialOk) \
     3259    (BOOL)SendMessageA((hwnd),LVM_ENSUREVISIBLE,(WPARAM)(INT)i,(LPARAM)(BOOL)fPartialOk)
     3260
     3261#define ListView_Scroll(hwnd,dx,dy) \
     3262    (BOOL)SendMessageA((hwnd),LVM_SCROLL,(WPARAM)(INT)(dx),(LPARAM)(INT)(dy))
    30883263
    30893264#define ListView_RedrawItems(hwndLV, iFirst, iLast) \
    30903265    (BOOL)SendMessageA((hwndLV), LVM_REDRAWITEMS, (WPARAM)(int)(iFirst), (LPARAM)(int)(iLast))
    30913266
    3092 #define ListView_Arrange(hwndLV, code) \
    3093     (BOOL)SendMessageA((hwndLV), LVM_ARRANGE, (WPARAM)(UINT)(code), 0L)
     3267#define ListView_Arrange(hwnd,code) \
     3268    (INT)SendMessageA((hwnd),LVM_ARRANGE,(WPARAM)(INT)(code),0L)
    30943269
    30953270#define ListView_EditLabelA(hwndLV, i) \
    3096     (HWND)SendMessageA((hwndLV), LVM_EDITLABELA, (WPARAM)(int)(i), 0L)
     3271    (HWND)SendMessageA((hwndLV),LVM_EDITLABELA,(WPARAM)(int)(i), 0L)
    30973272
    30983273#define ListView_EditLabelW(hwndLV, i) \
    3099     (HWND)SendMessageA((hwndLV), LVM_EDITLABELW, (WPARAM)(int)(i), 0L)
     3274    (HWND)SendMessageW((hwndLV),LVM_EDITLABELW,(WPARAM)(int)(i), 0L)
     3275
     3276#define ListView_EditLabel WINELIB_NAME_AW(ListView_EditLabel)
    31003277
    31013278#define ListView_GetEditControl(hwndLV) \
    31023279    (HWND)SendMessageA((hwndLV), LVM_GETEDITCONTROL, 0, 0L)
    31033280
    3104 #define ListView_GetColumnA(hwnd, iCol, pcol) \
    3105     (BOOL)SendMessageA((hwnd), LVM_GETCOLUMNA, (WPARAM)(int)(iCol), (LPARAM)(LVCOLUMNA*)(pcol))
    3106 
    3107 #define ListView_GetColumnW(hwnd, iCol, pcol) \
    3108     (BOOL)SendMessageA((hwnd), LVM_GETCOLUMNW, (WPARAM)(int)(iCol), (LPARAM)(LVCOLUMNW*)(pcol))
    3109 
    3110 #define ListView_SetColumnA(hwnd, iCol, pcol) \
    3111     (BOOL)SendMessageA((hwnd), LVM_SETCOLUMNA, (WPARAM)(int)(iCol), (LPARAM)(const LVCOLUMNA*)(pcol))
    3112 
    3113 #define ListView_SetColumnW(hwnd, iCol, pcol) \
    3114     (BOOL)SendMessageA((hwnd), LVM_SETCOLUMNW, (WPARAM)(int)(iCol), (LPARAM)(const LVCOLUMNW*)(pcol))
    3115 
    3116 #define ListView_InsertColumnA(hwnd, iCol, pcol) \
    3117     (int)SendMessageA((hwnd), LVM_INSERTCOLUMNA, (WPARAM)(int)(iCol), (LPARAM)(const LVCOLUMNA*)(pcol))
    3118 
    3119 #define ListView_InsertColumnW(hwnd, iCol, pcol) \
    3120     (int)SendMessageA((hwnd), LVM_INSERTCOLUMNW, (WPARAM)(int)(iCol), (LPARAM)(const LVCOLUMNW*)(pcol))
    3121 
    3122 #define  ListView_InsertColumn WINELIB_NAME_AW(ListView_InsertColumn)
    3123 
    3124 #define ListView_DeleteColumn(hwnd, iCol) \
    3125     (BOOL)SendMessageA((hwnd), LVM_DELETECOLUMN, (WPARAM)(int)(iCol), 0)
     3281#define ListView_GetColumnA(hwnd,x,col)\
     3282    (LRESULT)SendMessageA((hwnd),LVM_GETCOLUMNA,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNA)(col))
     3283
     3284#define ListView_GetColumnW(hwnd,x,col)\
     3285    (LRESULT)SendMessageW((hwnd),LVM_GETCOLUMNW,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNW)(col))
     3286
     3287#define ListView_GetColumn WINELIB_NAME_AW(ListView_GetColumn)
     3288
     3289#define ListView_SetColumnA(hwnd,x,col)\
     3290    (LRESULT)SendMessageA((hwnd),LVM_SETCOLUMNA,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNA)(col))
     3291
     3292#define ListView_SetColumnW(hwnd,x,col)\
     3293    (LRESULT)SendMessageW((hwnd),LVM_SETCOLUMNW,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNW)(col))
     3294
     3295#define ListView_SetColumn WINELIB_NAME_AW(ListView_SetColumn)
     3296
     3297#define ListView_InsertColumnA(hwnd,iCol,pcol) \
     3298    (INT)SendMessageA((hwnd),LVM_INSERTCOLUMNA,(WPARAM)(INT)(iCol),(LPARAM)(const LVCOLUMNA *)(pcol))
     3299
     3300#define ListView_InsertColumnW(hwnd,iCol,pcol) \
     3301    (INT)SendMessageW((hwnd),LVM_INSERTCOLUMNW,(WPARAM)(INT)(iCol),(LPARAM)(const LVCOLUMNW *)(pcol))
     3302
     3303#define ListView_InsertColumn WINELIB_NAME_AW(ListView_InsertColumn)
     3304
     3305#define ListView_DeleteColumn(hwnd,col)\
     3306    (LRESULT)SendMessageA((hwnd),LVM_DELETECOLUMN,0,(LPARAM)(INT)(col))
    31263307
    31273308#define ListView_GetColumnWidth(hwnd, iCol) \
     
    31553336    (BOOL)SendMessageA((hwnd), LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(clrTextBk))
    31563337
    3157 #define ListView_GetTopIndex(hwndLV) \
    3158     (int)SendMessageA((hwndLV), LVM_GETTOPINDEX, 0, 0)
    3159 
    3160 #define ListView_GetCountPerPage(hwndLV) \
    3161     (int)SendMessageA((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0)
     3338#define ListView_GetTopIndex(hwnd) \
     3339    (BOOL)SendMessageA((hwnd),LVM_GETTOPINDEX,0,0L)
     3340
     3341#define ListView_GetCountPerPage(hwnd) \
     3342    (BOOL)SendMessageW((hwnd),LVM_GETCOUNTPERPAGE,0,0L)
    31623343
    31633344#define ListView_GetOrigin(hwndLV, ppt) \
     
    31673348    (BOOL)SendMessageA((hwndLV), LVM_UPDATE, (WPARAM)(i), 0L)
    31683349
    3169 #define ListView_SetItemState(hwndLV, i, data, mask) \
    3170 { LVITEMW _lvi;\
    3171   _lvi.stateMask = mask;\
    3172   _lvi.state = data;\
    3173   SendMessageA((hwndLV), LVM_SETITEMSTATE, (WPARAM)(i), (LPARAM)(LVITEMW*)&_lvi);\
    3174 }
    3175 #define ListView_SetItemStateWine(hwnd,i,pitem) \
     3350#define ListView_SetItemState(hwnd,i,pitem) \
    31763351    (BOOL)SendMessageA((hwnd),LVM_SETITEMSTATE,(WPARAM)(UINT)(i),(LPARAM)(LPLVITEMA)(pitem))
    31773352
     
    31793354  ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK)
    31803355
    3181 #define ListView_GetItemState(hwndLV, i, mask) \
    3182    (UINT)SendMessageA((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), (LPARAM)(mask))
     3356#define ListView_GetItemState(hwnd,i,mask) \
     3357    (BOOL)SendMessageA((hwnd),LVM_GETITEMSTATE,(WPARAM)(UINT)(i),(LPARAM)(UINT)(mask))
    31833358
    31843359#define ListView_GetCheckState(hwndLV, i) \
     
    32013376}
    32023377
    3203 #define ListView_SetItemTextA(hwndLV, i, iSubItem_, pszText_) \
    3204 { LVITEMA _lvi;\
    3205   _lvi.iSubItem = iSubItem_;\
    3206   _lvi.pszText = pszText_;\
    3207   SendMessageA((hwndLV), LVM_SETITEMTEXTA, (WPARAM)(i), (LPARAM)(LVITEMA*)&_lvi);\
    3208 }
    3209 
    3210 #define ListView_SetItemTextW(hwndLV, i, iSubItem_, pszText_) \
    3211 { LVITEMW _lvi;\
    3212   _lvi.iSubItem = iSubItem_;\
    3213   _lvi.pszText = pszText_;\
    3214   SendMessageA((hwndLV), LVM_SETITEMTEXTW, (WPARAM)(i), (LPARAM)(LVITEMW*)&_lvi);\
    3215 }
     3378#define ListView_SetItemTextA(hwndLV, i, _iSubItem, _pszText) \
     3379{ LVITEMA _LVi; _LVi.iSubItem = _iSubItem; _LVi.pszText = _pszText;\
     3380  SendMessageA(hwndLV, LVM_SETITEMTEXTA, (WPARAM)i, (LPARAM) (LVITEMA*)&_LVi);}               
     3381
     3382#define ListView_SetItemTextW(hwndLV, i, _iSubItem, _pszText) \
     3383{ LVITEMW _LVi; _LVi.iSubItem = _iSubItem; _LVi.pszText = _pszText;\
     3384  SendMessageW(hwndLV, LVM_SETITEMTEXTW, (WPARAM)i, (LPARAM) (LVITEMW*)& _LVi);}               
     3385
     3386#define ListView_SetItemText WINELIB_NAME_AW(ListView_SetItemText)
    32163387
    32173388#define ListView_SetItemCount(hwndLV, cItems) \
     
    32213392  SendMessageA((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), (LPARAM)(dwFlags))
    32223393
    3223 #define ListView_SortItems(hwndLV, _pfnCompare, _lPrm) \
    3224   (BOOL)SendMessageA((hwndLV), LVM_SORTITEMS, (WPARAM)(LPARAM)(_lPrm), \
    3225   (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
     3394#define ListView_SortItems(hwndLV,_pfnCompare,_lPrm) \
     3395    (BOOL)SendMessageA((hwndLV),LVM_SORTITEMS,(WPARAM)(LPARAM)_lPrm,(LPARAM)(PFNLVCOMPARE)_pfnCompare)
    32263396
    32273397#define ListView_SetItemPosition32(hwndLV, i, x0, y0) \
     
    32323402
    32333403#define ListView_GetSelectedCount(hwndLV) \
    3234     (UINT)SendMessageA((hwndLV), LVM_GETSELECTEDCOUNT, 0, 0L)
     3404    (UINT)SendMessageA((hwndLV),LVM_GETSELECTEDCOUNT,0,0L)
    32353405
    32363406#define ListView_GetItemSpacing(hwndLV, fSmall) \
    3237         (DWORD)SendMessageA((hwndLV), LVM_GETITEMSPACING, fSmall, 0L)
     3407    (DWORD)SendMessageA((hwndLV), LVM_GETITEMSPACING, (WPARAM)fSmall, 0L)
    32383408
    32393409#define ListView_GetISearchStringA(hwndLV, lpsz) \
     
    32443414
    32453415#define ListView_SetIconSpacing(hwndLV, cx, cy) \
    3246         (DWORD)SendMessageA((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy))
    3247 
    3248 #define ListView_SetExtendedListViewStyle(hwndLV, dw)\
    3249         (DWORD)SendMessageA((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw)
     3416    (DWORD)SendMessageA((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy))
     3417
     3418#define ListView_SetExtendedListViewStyle(hwndLV, dw) \
     3419    (DWORD)SendMessageA((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)dw)
    32503420
    32513421#define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw)\
     
    32553425        (DWORD)SendMessageA((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
    32563426
    3257 #define ListView_GetSubItemRect(hwnd, iItem, iSubItem, code, prc) \
    3258         (BOOL)SendMessageA((hwnd), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), \
    3259                 ((prc) ? ((((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL))
    3260 
    3261 #define ListView_SubItemHitTest(hwnd, plvhti) \
    3262         (int)SendMessageA((hwnd), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti))
    3263 
    3264 #define ListView_SetColumnOrderArray(hwnd, iCount, pi) \
    3265         (BOOL)SendMessageA((hwnd), LVM_SETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
    3266 
    3267 #define ListView_GetColumnOrderArray(hwnd, iCount, pi) \
    3268         (BOOL)SendMessageA((hwnd), LVM_GETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
    3269 
    3270 #define ListView_SetHotItem(hwnd, i) \
    3271         (int)SendMessageA((hwnd), LVM_SETHOTITEM, (WPARAM)(i), 0)
    3272 
    3273 #define ListView_GetHotItem(hwnd) \
    3274         (int)SendMessageA((hwnd), LVM_GETHOTITEM, 0, 0)
    3275 
    3276 #define ListView_SetHotCursor(hwnd, hcur) \
    3277         (HCURSOR)SendMessageA((hwnd), LVM_SETHOTCURSOR, 0, (LPARAM)(hcur))
    3278 
    3279 #define ListView_GetHotCursor(hwnd) \
    3280         (HCURSOR)SendMessageA((hwnd), LVM_GETHOTCURSOR, 0, 0)
     3427#define ListView_GetSubItemRect(hwndLV, iItem, iSubItem, code, prc) \
     3428    (BOOL)SendMessageA((hwndLV), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), \
     3429                       ((prc) ? (((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code):0), (LPARAM)prc)
     3430
     3431#define ListView_SubItemHitTest(hwndLV, plvhti) \
     3432    (int)SendMessageA((hwndLV), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti))
     3433
     3434#define ListView_SetColumnOrderArray(hwndLV, iCount, pi) \
     3435    (BOOL)SendMessageA((hwndLV), LVM_SETCOLUMNORDERARRAY, (WPARAM)iCount, (LPARAM)(LPINT)pi)
     3436
     3437#define ListView_GetColumnOrderArray(hwndLV, iCount, pi) \
     3438    (BOOL)SendMessageA((hwndLV), LVM_GETCOLUMNORDERARRAY, (WPARAM)iCount, (LPARAM)(LPINT)pi)
     3439
     3440#define ListView_SetHotItem(hwndLV, i) \
     3441    (int)SendMessageA((hwndLV), LVM_SETHOTITEM, (WPARAM)i, 0L)
     3442
     3443#define ListView_GetHotItem(hwndLV) \
     3444    (int)SendMessageA((hwndLV), LVM_GETHOTITEM, 0, 0L)
     3445
     3446#define ListView_SetHotCursor(hwndLV, hcur) \
     3447    (HCURSOR)SendMessageA((hwndLV), LVM_SETHOTCURSOR, 0, (LPARAM)hcur)
     3448
     3449#define ListView_GetHotCursor(hwndLV) \
     3450    (HCURSOR)SendMessageA((hwndLV), LVM_GETHOTCURSOR, 0, 0L)
    32813451
    32823452#define ListView_ApproximateViewRect(hwnd, iWidth, iHeight, iCount) \
     
    33043474        (DWORD)SendMessageA((hwndLV), LVM_GETHOVERTIME, 0, 0)
    33053475
    3306 #define ListView_SetToolTips(hwndLV, hwndNewHwnd)\
    3307         (HWND)SendMessageA((hwndLV), LVM_SETTOOLTIPS, (WPARAM)(hwndNewHwnd), 0)
    3308 
    3309 #define ListView_GetToolTips(hwndLV)\
    3310         (HWND)SendMessageA((hwndLV), LVM_GETTOOLTIPS, 0, 0)
     3476#define ListView_SetToolTips(hwndLV, hwndNewHwnd) \
     3477    (HWND)SendMessageA((hwndLV), LVM_SETTOOLTIPS, (WPARAM)hwndNewHwnd, 0L)
     3478
     3479#define ListView_GetToolTips(hwndLV) \
     3480    (HWND)SendMessageA((hwndLV), LVM_GETTOOLTIPS, 0, 0L)
    33113481
    33123482#define ListView_SortItemsEx(hwndLV, _pfnCompare, _lPrm) \
    33133483  (BOOL)SendMessageA((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
    33143484
    3315 #define ListView_SetBkImage(hwnd, plvbki) \
    3316     (BOOL)SendMessageA((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
    3317 
    3318 #define ListView_GetBkImage(hwnd, plvbki) \
    3319     (BOOL)SendMessageA((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki))
     3485
     3486#else
     3487
     3488#define ListView_SetTextBkColor(hwnd,clrBk) \
     3489    (BOOL)SendMessageA((hwnd),LVM_SETTEXTBKCOLOR,0,(LPARAM)(COLORREF)(clrBk))
     3490#define ListView_SetTextColor(hwnd,clrBk) \
     3491    (BOOL)SendMessageA((hwnd),LVM_SETTEXTCOLOR,0,(LPARAM)(COLORREF)(clrBk))
     3492#define ListView_DeleteColumn(hwnd,col)\
     3493    (LRESULT)SendMessageA((hwnd),LVM_DELETECOLUMN,0,(LPARAM)(INT)(col))
     3494#define ListView_GetColumnA(hwnd,x,col)\
     3495    (LRESULT)SendMessageA((hwnd),LVM_GETCOLUMNA,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNA)(col))
     3496#define ListView_GetColumnW(hwnd,x,col)\
     3497    (LRESULT)SendMessageW((hwnd),LVM_GETCOLUMNW,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNW)(col))
     3498#define ListView_GetColumn WINELIB_NAME_AW(ListView_GetColumn)
     3499#define ListView_SetColumnA(hwnd,x,col)\
     3500    (LRESULT)SendMessageA((hwnd),LVM_SETCOLUMNA,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNA)(col))
     3501#define ListView_SetColumnW(hwnd,x,col)\
     3502    (LRESULT)SendMessageW((hwnd),LVM_SETCOLUMNW,(WPARAM)(INT)(x),(LPARAM)(LPLVCOLUMNW)(col))
     3503#define ListView_SetColumn WINELIB_NAME_AW(ListView_SetColumn)
     3504
     3505
     3506#define ListView_GetNextItem(hwnd,nItem,flags) \
     3507    (INT)SendMessageA((hwnd),LVM_GETNEXTITEM,(WPARAM)(INT)(nItem),(LPARAM)(MAKELPARAM(flags,0)))
     3508#define ListView_FindItemA(hwnd,nItem,plvfi) \
     3509    (INT)SendMessageA((hwnd),LVM_FINDITEMA,(WPARAM)(INT)(nItem),(LPARAM)(LVFINDINFOA*)(plvfi))
     3510#define ListView_FindItemW(hwnd,nItem,plvfi) \
     3511    (INT)SendMessageW((hwnd),LVM_FINDITEMW,(WPARAM)(INT)(nItem),(LPARAM)(LVFINDINFOW*)(plvfi))
     3512#define ListView_Arrange(hwnd,code) \
     3513    (INT)SendMessageA((hwnd),LVM_ARRANGE,(WPARAM)(INT)(code),0L)
     3514#define ListView_GetItemPosition(hwnd,i,ppt) \
     3515    (INT)SendMessageA((hwnd),LVM_GETITEMPOSITION,(WPARAM)(INT)(i),(LPARAM)(LPPOINT)(ppt))
     3516#define ListView_GetItemRect(hwnd,i,prc,code) \
     3517        (BOOL)SendMessageA((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), \
     3518        ((prc) ? (((RECT*)(prc))->left = (code),(LPARAM)(RECT \
     3519        *)(prc)) : (LPARAM)(RECT*)NULL))
     3520#define ListView_SetItemA(hwnd,pitem) \
     3521    (INT)SendMessageA((hwnd),LVM_SETITEMA,0,(LPARAM)(const LVITEMA *)(pitem))
     3522#define ListView_SetItemW(hwnd,pitem) \
     3523    (INT)SendMessageW((hwnd),LVM_SETITEMW,0,(LPARAM)(const LVITEMW *)(pitem))
     3524#define ListView_SetItem WINELIB_NAME_AW(ListView_SetItem)
     3525#define ListView_SetItemState(hwnd,i,pitem) \
     3526    (BOOL)SendMessageA((hwnd),LVM_SETITEMSTATE,(WPARAM)(UINT)(i),(LPARAM)(LPLVITEMA)(pitem))
     3527#define ListView_GetItemState(hwnd,i,mask) \
     3528    (BOOL)SendMessageA((hwnd),LVM_GETITEMSTATE,(WPARAM)(UINT)(i),(LPARAM)(UINT)(mask))
     3529#define ListView_GetCountPerPage(hwnd) \
     3530    (BOOL)SendMessageW((hwnd),LVM_GETCOUNTPERPAGE,0,0L)
     3531#define ListView_GetImageList(hwnd,iImageList) \
     3532    (HIMAGELIST)SendMessageA((hwnd),LVM_GETIMAGELIST,(WPARAM)(INT)(iImageList),0L)
     3533#define ListView_GetStringWidthA(hwnd,pstr) \
     3534    (INT)SendMessageA((hwnd),LVM_GETSTRINGWIDTHA,0,(LPARAM)(LPCSTR)(pstr))
     3535#define ListView_GetStringWidthW(hwnd,pstr) \
     3536    (INT)SendMessageW((hwnd),LVM_GETSTRINGWIDTHW,0,(LPARAM)(LPCWSTR)(pstr))
     3537#define ListView_GetStringWidth WINELIB_NAME_AW(ListView_GetStringWidth)
     3538#define ListView_GetTopIndex(hwnd) \
     3539    (BOOL)SendMessageA((hwnd),LVM_GETTOPINDEX,0,0L)
     3540#define ListView_Scroll(hwnd,dx,dy) \
     3541    (BOOL)SendMessageA((hwnd),LVM_SCROLL,(WPARAM)(INT)(dx),(LPARAM)(INT)(dy))
     3542#define ListView_EnsureVisible(hwnd,i,fPartialOk) \
     3543    (BOOL)SendMessageA((hwnd),LVM_ENSUREVISIBLE,(WPARAM)(INT)i,(LPARAM)(BOOL)fPartialOk)
     3544#define ListView_SetBkColor(hwnd,clrBk) \
     3545    (BOOL)SendMessageA((hwnd),LVM_SETBKCOLOR,0,(LPARAM)(COLORREF)(clrBk))
     3546#define ListView_SetImageList(hwnd,himl,iImageList) \
     3547    (HIMAGELIST)(UINT)SendMessageA((hwnd),LVM_SETIMAGELIST,(WPARAM)(iImageList),(LPARAM)(UINT)(HIMAGELIST)(himl))
     3548#define ListView_GetItemCount(hwnd) \
     3549    (INT)SendMessageA((hwnd),LVM_GETITEMCOUNT,0,0L)
     3550
     3551#define ListView_GetItemA(hwnd,pitem) \
     3552    (BOOL)SendMessageA((hwnd),LVM_GETITEMA,0,(LPARAM)(LVITEMA *)(pitem))
     3553#define ListView_GetItemW(hwnd,pitem) \
     3554    (BOOL)SendMessageW((hwnd),LVM_GETITEMW,0,(LPARAM)(LVITEMW *)(pitem))
     3555#define ListView_GetItem WINELIB_NAME_AW(ListView_GetItem)
     3556
     3557#define ListView_HitTest(hwnd,pinfo) \
     3558    (INT)SendMessageA((hwnd),LVM_HITTEST,0,(LPARAM)(LPLVHITTESTINFO)(pinfo))
     3559
     3560#define ListView_InsertItemA(hwnd,pitem) \
     3561    (INT)SendMessageA((hwnd),LVM_INSERTITEMA,0,(LPARAM)(const LVITEMA *)(pitem))
     3562#define ListView_InsertItemW(hwnd,pitem) \
     3563    (INT)SendMessageW((hwnd),LVM_INSERTITEMW,0,(LPARAM)(const LVITEMW *)(pitem))
     3564#define ListView_InsertItem WINELIB_NAME_AW(ListView_InsertItem)
     3565
     3566#define ListView_DeleteAllItems(hwnd) \
     3567    (BOOL)SendMessageA((hwnd),LVM_DELETEALLITEMS,0,0L)
     3568
     3569#define ListView_InsertColumnA(hwnd,iCol,pcol) \
     3570    (INT)SendMessageA((hwnd),LVM_INSERTCOLUMNA,(WPARAM)(INT)(iCol),(LPARAM)(const LVCOLUMNA *)(pcol))
     3571#define ListView_InsertColumnW(hwnd,iCol,pcol) \
     3572    (INT)SendMessageW((hwnd),LVM_INSERTCOLUMNW,(WPARAM)(INT)(iCol),(LPARAM)(const LVCOLUMNW *)(pcol))
     3573#define ListView_InsertColumn WINELIB_NAME_AW(ListView_InsertColumn)
     3574
     3575#define ListView_SortItems(hwndLV,_pfnCompare,_lPrm) \
     3576    (BOOL)SendMessageA((hwndLV),LVM_SORTITEMS,(WPARAM)(LPARAM)_lPrm,(LPARAM)(PFNLVCOMPARE)_pfnCompare)
     3577#define ListView_SetItemPosition(hwndLV, i, x, y) \
     3578    (BOOL)SendMessageA((hwndLV),LVM_SETITEMPOSITION,(WPARAM)(INT)(i),MAKELPARAM((x),(y)))
     3579#define ListView_GetSelectedCount(hwndLV) \
     3580    (UINT)SendMessageA((hwndLV),LVM_GETSELECTEDCOUNT,0,0L)
     3581
     3582#define ListView_EditLabelA(hwndLV, i) \
     3583    (HWND)SendMessageA((hwndLV),LVM_EDITLABELA,(WPARAM)(int)(i), 0L)
     3584#define ListView_EditLabelW(hwndLV, i) \
     3585    (HWND)SendMessageW((hwndLV),LVM_EDITLABELW,(WPARAM)(int)(i), 0L)
     3586#define ListView_EditLabel WINELIB_NAME_AW(ListView_EditLabel)
     3587
     3588#define ListView_SetItemTextA(hwndLV, i, _iSubItem, _pszText) \
     3589{ LVITEMA _LVi; _LVi.iSubItem = _iSubItem; _LVi.pszText = _pszText;\
     3590  SendMessageA(hwndLV, LVM_SETITEMTEXTA, (WPARAM)i, (LPARAM) (LVITEMA*)&_LVi);}               
     3591#define ListView_SetItemTextW(hwndLV, i, _iSubItem, _pszText) \
     3592{ LVITEMW _LVi; _LVi.iSubItem = _iSubItem; _LVi.pszText = _pszText;\
     3593  SendMessageW(hwndLV, LVM_SETITEMTEXTW, (WPARAM)i, (LPARAM) (LVITEMW*)& _LVi);}               
     3594#define ListView_SetItemText WINELIB_NAME_AW(ListView_SetItemText)
     3595
     3596#define ListView_DeleteItem(hwndLV, i) \
     3597    (BOOL)SendMessageA(hwndLV, LVM_DELETEITEM, (WPARAM)(int)(i), 0L)
     3598#define ListView_Update(hwndLV, i) \
     3599    (BOOL)SendMessageA((hwndLV), LVM_UPDATE, (WPARAM)(i), 0L)
     3600#define ListView_GetColumnOrderArray(hwndLV, iCount, pi) \
     3601    (BOOL)SendMessageA((hwndLV), LVM_GETCOLUMNORDERARRAY, (WPARAM)iCount, (LPARAM)(LPINT)pi)
     3602#define ListView_GetExtendedListViewStyle(hwndLV) \
     3603    (DWORD)SendMessageA((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0L)
     3604#define ListView_GetHotCursor(hwndLV) \
     3605    (HCURSOR)SendMessageA((hwndLV), LVM_GETHOTCURSOR, 0, 0L)
     3606#define ListView_GetHotItem(hwndLV) \
     3607    (int)SendMessageA((hwndLV), LVM_GETHOTITEM, 0, 0L)
     3608#define ListView_GetItemSpacing(hwndLV, fSmall) \
     3609    (DWORD)SendMessageA((hwndLV), LVM_GETITEMSPACING, (WPARAM)fSmall, 0L)
     3610#define ListView_GetSubItemRect(hwndLV, iItem, iSubItem, code, prc) \
     3611    (BOOL)SendMessageA((hwndLV), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), \
     3612                       ((prc) ? (((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code):0), (LPARAM)prc)
     3613#define ListView_GetToolTips(hwndLV) \
     3614    (HWND)SendMessageA((hwndLV), LVM_GETTOOLTIPS, 0, 0L)
     3615#define ListView_SetColumnOrderArray(hwndLV, iCount, pi) \
     3616    (BOOL)SendMessageA((hwndLV), LVM_SETCOLUMNORDERARRAY, (WPARAM)iCount, (LPARAM)(LPINT)pi)
     3617#define ListView_SetExtendedListViewStyle(hwndLV, dw) \
     3618    (DWORD)SendMessageA((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)dw)
     3619#define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw) \
     3620    (DWORD)SendMessageA((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, (WPARAM)dwMask, (LPARAM)dw)
     3621#define ListView_SetHotCursor(hwndLV, hcur) \
     3622    (HCURSOR)SendMessageA((hwndLV), LVM_SETHOTCURSOR, 0, (LPARAM)hcur)
     3623#define ListView_SetHotItem(hwndLV, i) \
     3624    (int)SendMessageA((hwndLV), LVM_SETHOTITEM, (WPARAM)i, 0L)
     3625#define ListView_SetIconSpacing(hwndLV, cx, cy) \
     3626    (DWORD)SendMessageA((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy))
     3627#define ListView_SetToolTips(hwndLV, hwndNewHwnd) \
     3628    (HWND)SendMessageA((hwndLV), LVM_SETTOOLTIPS, (WPARAM)hwndNewHwnd, 0L)
     3629#define ListView_SubItemHitTest(hwndLV, plvhti) \
     3630    (int)SendMessageA((hwndLV), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti))
     3631#endif
    33203632
    33213633/* Tab Control */
    33223634
    3323 #define WC_TABCONTROL16 "SysTabControl"
    3324 #define WC_TABCONTROLA  "SysTabControl32"
    3325 #define WC_TABCONTROLW  L"SysTabControl32"
    3326 #define WC_TABCONTROL   WINELIB_NAME_AW(WC_TABCONTROL)
     3635#define WC_TABCONTROL16 "SysTabControl"
     3636#define WC_TABCONTROLA          "SysTabControl32"
     3637#ifdef __WIN32OS2__
     3638#define WC_TABCONTROLW          L"SysTabControl32"
     3639#else
     3640static const WCHAR WC_TABCONTROLW[] = { 'S','y','s',
     3641  'T','a','b','C','o','n','t','r','o','l','3','2',0 };
     3642#endif
     3643
     3644#define WC_TABCONTROL           WINELIB_NAME_AW(WC_TABCONTROL)
    33273645
    33283646/* tab control styles */
     
    33513669
    33523670
    3353 #define TCM_FIRST               0x1300
     3671#define TCM_FIRST               0x1300
    33543672
    33553673#define TCM_GETIMAGELIST        (TCM_FIRST + 2)
    33563674#define TCM_SETIMAGELIST        (TCM_FIRST + 3)
    3357 #define TCM_GETITEMCOUNT        (TCM_FIRST + 4)
    3358 #define TCM_GETITEMA            (TCM_FIRST + 5)
    3359 #define TCM_GETITEMW            (TCM_FIRST + 60)
    3360 #define TCM_GETITEM             WINELIB_NAME_AW(TCM_GETITEM)
    3361 #define TCM_SETITEMA            (TCM_FIRST + 6)
    3362 #define TCM_SETITEMW            (TCM_FIRST + 61)
    3363 #define TCM_SETITEM             WINELIB_NAME_AW(TCM_SETITEM)
    3364 #define TCM_INSERTITEMA         (TCM_FIRST + 7)
    3365 #define TCM_INSERTITEMW         (TCM_FIRST + 62)
    3366 #define TCM_INSERTITEM          WINELIB_NAME_AW(TCM_INSERTITEM)
     3675#define TCM_GETITEMCOUNT        (TCM_FIRST + 4)
     3676#define TCM_GETITEM                             WINELIB_NAME_AW(TCM_GETITEM)
     3677#define TCM_GETITEMA                    (TCM_FIRST + 5)
     3678#define TCM_GETITEMW                    (TCM_FIRST + 60)
     3679#define TCM_SETITEMA                    (TCM_FIRST + 6)
     3680#define TCM_SETITEMW                    (TCM_FIRST + 61)
     3681#define TCM_SETITEM                             WINELIB_NAME_AW(TCM_SETITEM)
     3682#define TCM_INSERTITEMA         (TCM_FIRST + 7)
     3683#define TCM_INSERTITEMW         (TCM_FIRST + 62)
     3684#define TCM_INSERTITEM                  WINELIB_NAME_AW(TCM_INSERTITEM)
    33673685#define TCM_DELETEITEM          (TCM_FIRST + 8)
    33683686#define TCM_DELETEALLITEMS      (TCM_FIRST + 9)
    33693687#define TCM_GETITEMRECT         (TCM_FIRST + 10)
    3370 #define TCM_GETCURSEL           (TCM_FIRST + 11)
     3688#define TCM_GETCURSEL           (TCM_FIRST + 11)
    33713689#define TCM_SETCURSEL           (TCM_FIRST + 12)
    33723690#define TCM_HITTEST             (TCM_FIRST + 13)
    3373 #define TCM_SETITEMEXTRA        (TCM_FIRST + 14)
     3691#define TCM_SETITEMEXTRA        (TCM_FIRST + 14)
    33743692#define TCM_ADJUSTRECT          (TCM_FIRST + 40)
    33753693#define TCM_SETITEMSIZE         (TCM_FIRST + 41)
     
    33813699#define TCM_GETCURFOCUS         (TCM_FIRST + 47)
    33823700#define TCM_SETCURFOCUS         (TCM_FIRST + 48)
    3383 #define TCM_SETMINTABWIDTH      (TCM_FIRST + 49)
     3701#define TCM_SETMINTABWIDTH     (TCM_FIRST + 49)
    33843702#define TCM_DESELECTALL         (TCM_FIRST + 50)
    3385 #define TCM_HIGHLIGHTITEM       (TCM_FIRST + 51)
    3386 #define TCM_SETEXTENDEDSTYLE    (TCM_FIRST + 52)
    3387 #define TCM_GETEXTENDEDSTYLE    (TCM_FIRST + 53)
    3388 #define TCM_SETUNICODEFORMAT    CCM_SETUNICODEFORMAT
    3389 #define TCM_GETUNICODEFORMAT    CCM_GETUNICODEFORMAT
    3390 
    3391 
    3392 #define TCIF_TEXT               0x0001
    3393 #define TCIF_IMAGE              0x0002
    3394 #define TCIF_RTLREADING         0x0004
    3395 #define TCIF_PARAM              0x0008
    3396 #define TCIF_STATE              0x0010
     3703#define TCM_HIGHLIGHTITEM               (TCM_FIRST + 51)
     3704#define TCM_SETEXTENDEDSTYLE    (TCM_FIRST + 52)
     3705#define TCM_GETEXTENDEDSTYLE    (TCM_FIRST + 53)
     3706#define TCM_SETUNICODEFORMAT    CCM_SETUNICODEFORMAT
     3707#define TCM_GETUNICODEFORMAT    CCM_GETUNICODEFORMAT
     3708
     3709
     3710#define TCIF_TEXT               0x0001
     3711#define TCIF_IMAGE              0x0002
     3712#define TCIF_RTLREADING         0x0004
     3713#define TCIF_PARAM              0x0008
     3714#define TCIF_STATE              0x0010
    33973715
    33983716#define TCIS_BUTTONPRESSED      0x0001
     
    34583776    (void)SendMessageA((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
    34593777
     3778
    34603779/* constants for TCHITTESTINFO */
    34613780
     
    34943813#define TCN_LAST                (0U-580U)
    34953814#define TCN_KEYDOWN             (TCN_FIRST - 0)
    3496 #define TCN_SELCHANGE           (TCN_FIRST - 1)
     3815#define TCN_SELCHANGE           (TCN_FIRST - 1)
    34973816#define TCN_SELCHANGING         (TCN_FIRST - 2)
    3498 #define TCN_GETOBJECT           (TCN_FIRST - 3)
    3499 #define TCN_FOCUSCHANGE         (TCN_FIRST - 4)
     3817#define TCN_GETOBJECT      (TCN_FIRST - 3)
     3818
     3819#include "pshpack1.h"
     3820typedef struct tagTCKEYDOWN
     3821{
     3822    NMHDR hdr;
     3823    WORD wVKey;
     3824    UINT flags;
     3825} NMTCKEYDOWN;
     3826#include "poppack.h"
     3827
     3828#define TC_KEYDOWN              NMTCKEYDOWN
    35003829
    35013830/* ComboBoxEx control */
    35023831
    35033832#define WC_COMBOBOXEXA        "ComboBoxEx32"
     3833#ifdef __WIN32OS2__
    35043834#define WC_COMBOBOXEXW        L"ComboBoxEx32"
     3835#else
     3836static const WCHAR WC_COMBOBOXEXW[] = { 'C','o','m','b','o',
     3837  'B','o','x','E','x','3','2',0 };
     3838#endif
    35053839#define WC_COMBOBOXEX           WINELIB_NAME_AW(WC_COMBOBOXEX)
    35063840
     
    35673901#define CBES_EX_CASESENSITIVE        0x00000010
    35683902
     3903
    35693904typedef struct tagCOMBOBOXEXITEMA
    35703905{
     
    35793914    LPARAM lParam;
    35803915} COMBOBOXEXITEMA, *PCOMBOBOXEXITEMA;
    3581 typedef COMBOBOXEXITEMA CONST *PCCOMBOEXITEMA;
    3582 
     3916typedef COMBOBOXEXITEMA const *PCCOMBOEXITEMA; /* Yes, there's a BOX missing */
    35833917
    35843918typedef struct tagCOMBOBOXEXITEMW
     
    35943928    LPARAM lParam;
    35953929} COMBOBOXEXITEMW, *PCOMBOBOXEXITEMW;
     3930typedef COMBOBOXEXITEMW const *PCCOMBOEXITEMW; /* Yes, there's a BOX missing */
    35963931
    35973932#define COMBOBOXEXITEM WINELIB_NAME_AW(COMBOBOXEXITEM)
     
    36613996#define LPNMCBEDRAGBEGIN WINELIB_NAME_AW(LPNMCBEDRAGBEGIN)
    36623997
     3998
    36633999/* Hotkey control */
    36644000
    3665 #define HOTKEY_CLASS16        "msctls_hotkey"
    3666 #define HOTKEY_CLASSA         "msctls_hotkey32"
    3667 #define HOTKEY_CLASSW         L"msctls_hotkey32"
    3668 #define HOTKEY_CLASS          WINELIB_NAME_AW(HOTKEY_CLASS)
     4001#define HOTKEY_CLASS16          "msctls_hotkey"
     4002#define HOTKEY_CLASSA           "msctls_hotkey32"
     4003#ifdef __WIN32OS2__
     4004#define HOTKEY_CLASSW           L"msctls_hotkey32"
     4005#else
     4006static const WCHAR HOTKEY_CLASSW[] = { 'm','s','c','t','l','s','_',
     4007  'h','o','t','k','e','y','3','2',0 };
     4008#endif
     4009#define HOTKEY_CLASS            WINELIB_NAME_AW(HOTKEY_CLASS)
    36694010
    36704011#define HOTKEYF_SHIFT           0x01
     
    36904031
    36914032#define ANIMATE_CLASSA        "SysAnimate32"
     4033#ifdef __WIN32OS2__
    36924034#define ANIMATE_CLASSW        L"SysAnimate32"
    3693 #define ANIMATE_CLASS         WINELIB_NAME_AW(ANIMATE_CLASS)
     4035#else
     4036static const WCHAR ANIMATE_CLASSW[] = { 'S','y','s',
     4037  'A','n','i','m','a','t','e','3','2',0 };
     4038#endif
     4039#define ANIMATE_CLASS           WINELIB_NAME_AW(ANIMATE_CLASS)
    36944040
    36954041#define ACS_CENTER              0x0001
     
    37004046#define ACM_OPENA             (WM_USER+100)
    37014047#define ACM_OPENW             (WM_USER+103)
    3702 #define ACM_OPEN              WINELIB_NAME_AW(ACM_OPEN)
    3703 #define ACM_PLAY              (WM_USER+101)
    3704 #define ACM_STOP              (WM_USER+102)
     4048#define ACM_OPEN                WINELIB_NAME_AW(ACM_OPEN)
     4049#define ACM_PLAY                (WM_USER+101)
     4050#define ACM_STOP                (WM_USER+102)
    37054051
    37064052#define ACN_START               1
     
    37364082 */
    37374083
    3738 #define WC_IPADDRESSA           "SysIPAddress32"
    3739 #define WC_IPADDRESSW           L"SysIPAddress32"
    3740 #define WC_IPADDRESS            WINELIB_NAME_AW(WC_IPADDRESS)
    3741 
    3742 #define IPM_CLEARADDRESS        (WM_USER+100)
    3743 #define IPM_SETADDRESS          (WM_USER+101)
    3744 #define IPM_GETADDRESS          (WM_USER+102)
    3745 #define IPM_SETRANGE            (WM_USER+103)
    3746 #define IPM_SETFOCUS            (WM_USER+104)
    3747 #define IPM_ISBLANK             (WM_USER+105)
     4084#define WC_IPADDRESSA           "SysIPAddress32"
     4085#ifdef __WIN32OS2__
     4086#define WC_IPADDRESSW           L"SysIPAddress32"
     4087#else
     4088static const WCHAR WC_IPADDRESSW[] = { 'S','y','s',
     4089  'I','P','A','d','d','r','e','s','s','3','2',0 };
     4090#endif
     4091#define WC_IPADDRESS            WINELIB_NAME_AW(WC_IPADDRESS)
     4092
     4093#define IPM_CLEARADDRESS        (WM_USER+100)
     4094#define IPM_SETADDRESS          (WM_USER+101)
     4095#define IPM_GETADDRESS          (WM_USER+102)
     4096#define IPM_SETRANGE            (WM_USER+103)
     4097#define IPM_SETFOCUS            (WM_USER+104)
     4098#define IPM_ISBLANK             (WM_USER+105)
    37484099
    37494100#define IPN_FIRST               (0U-860U)
     
    37634114    ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
    37644115
    3765 #define FIRST_IPADDRESS(x)      (((x)>>24)&0xff)
    3766 #define SECOND_IPADDRESS(x)     (((x)>>16)&0xff)
    3767 #define THIRD_IPADDRESS(x)      (((x)>>8)&0xff)
    3768 #define FOURTH_IPADDRESS(x)     ((x)&0xff)
     4116#define FIRST_IPADDRESS(x)      (((x)>>24)&0xff)
     4117#define SECOND_IPADDRESS(x)     (((x)>>16)&0xff)
     4118#define THIRD_IPADDRESS(x)      (((x)>>8)&0xff)
     4119#define FOURTH_IPADDRESS(x)     ((x)&0xff)
    37694120
    37704121
     
    37734124 */
    37744125
    3775 #define WC_NATIVEFONTCTLA       "NativeFontCtl"
    3776 #define WC_NATIVEFONTCTLW       L"NativeFontCtl"
    3777 #define WC_NATIVEFONTCTL        WINELIB_NAME_AW(WC_NATIVEFONTCTL)
    3778 
    3779 #define NFS_EDIT                0x0001
    3780 #define NFS_STATIC              0x0002
    3781 #define NFS_LISTCOMBO           0x0004
    3782 #define NFS_BUTTON              0x0008
    3783 #define NFS_ALL                 0x0010
    3784 #define NFS_USEFONTASSOC        0x0020
     4126#define WC_NATIVEFONTCTLA       "NativeFontCtl"
     4127#ifdef __WIN32OS2__
     4128#define WC_NATIVEFONTCTLW       L"NativeFontCtl"
     4129#else
     4130static const WCHAR WC_NATIVEFONTCTLW[] = { 'N','a','t','i','v','e',
     4131  'F','o','n','t','C','t','l',0 };
     4132#endif
     4133#define WC_NATIVEFONTCTL        WINELIB_NAME_AW(WC_NATIVEFONTCTL)
     4134
     4135#define NFS_EDIT                0x0001
     4136#define NFS_STATIC              0x0002
     4137#define NFS_LISTCOMBO           0x0004
     4138#define NFS_BUTTON              0x0008
     4139#define NFS_ALL                 0x0010
    37854140
    37864141
     
    37904145 */
    37914146
    3792 #define MONTHCAL_CLASSA "SysMonthCal32"
    3793 #define MONTHCAL_CLASSW L"SysMonthCal32"
    3794 #define MONTHCAL_CLASS  WINELIB_NAME_AW(MONTHCAL_CLASS)
     4147#define MONTHCAL_CLASSA "SysMonthCal32"
     4148#ifdef __WIN32OS2__
     4149#define MONTHCAL_CLASSW L"SysMonthCal32"
     4150#else
     4151static const WCHAR MONTHCAL_CLASSW[] = { 'S','y','s',
     4152  'M','o','n','t','h','C','a','l','3','2',0 };
     4153#endif
     4154#define MONTHCAL_CLASS          WINELIB_NAME_AW(MONTHCAL_CLASS)
     4155
    37954156#define MCM_FIRST             0x1000
    37964157#define MCN_FIRST             (0U-750U)
    37974158#define MCN_LAST              (0U-759U)
     4159
    37984160
    37994161#define MCM_GETCURSEL         (MCM_FIRST + 1)
     
    38214183#define MCM_SETUNICODEFORMAT   CCM_SETUNICODEFORMAT
    38224184
     4185
    38234186/* Notifications */
     4187
    38244188#define MCN_SELCHANGE         (MCN_FIRST + 1)
    38254189#define MCN_GETDAYSTATE       (MCN_FIRST + 3)
    38264190#define MCN_SELECT            (MCN_FIRST + 4)
    3827 #define MCSC_BACKGROUND   0
    3828 #define MCSC_TEXT         1
    3829 #define MCSC_TITLEBK      2
     4191
     4192#define MCSC_BACKGROUND   0   
     4193#define MCSC_TEXT         1   
     4194#define MCSC_TITLEBK      2   
    38304195#define MCSC_TITLETEXT    3
    3831 #define MCSC_MONTHBK      4
    3832 #define MCSC_TRAILINGTEXT 5
     4196#define MCSC_MONTHBK      4   
     4197#define MCSC_TRAILINGTEXT 5   
     4198
    38334199#define MCS_DAYSTATE           0x0001
    38344200#define MCS_MULTISELECT        0x0002
     
    38364202#define MCS_NOTODAY            0x0010
    38374203#define MCS_NOTODAYCIRCLE      0x0008
     4204
    38384205#define MCHT_TITLE             0x00010000
    38394206#define MCHT_CALENDAR          0x00020000
    38404207#define MCHT_TODAYLINK         0x00030000
    3841 #define MCHT_NEXT              0x01000000
    3842 #define MCHT_PREV              0x02000000
     4208
     4209#define MCHT_NEXT              0x01000000   
     4210#define MCHT_PREV              0x02000000 
    38434211#define MCHT_NOWHERE           0x00000000
    38444212#define MCHT_TITLEBK           (MCHT_TITLE)
     
    38474215#define MCHT_TITLEBTNNEXT      (MCHT_TITLE | MCHT_NEXT | 0x0003)
    38484216#define MCHT_TITLEBTNPREV      (MCHT_TITLE | MCHT_PREV | 0x0003)
     4217
    38494218#define MCHT_CALENDARBK        (MCHT_CALENDAR)
    38504219#define MCHT_CALENDARDATE      (MCHT_CALENDAR | 0x0001)
     
    38554224
    38564225
    3857 #define GMR_VISIBLE     0
    3858 #define GMR_DAYSTATE    1
     4226
     4227#define GMR_VISIBLE     0     
     4228#define GMR_DAYSTATE    1     
     4229
    38594230
    38604231/*  Month calendar's structures */
     4232
    38614233
    38624234typedef struct {
    38634235        UINT cbSize;
    38644236        POINT pt;
    3865         UINT uHit;
     4237        UINT uHit;   
    38664238        SYSTEMTIME st;
    38674239} MCHITTESTINFO, *PMCHITTESTINFO;
     4240
    38684241typedef struct tagNMSELCHANGE
    38694242{
    3870     NMHDR           nmhdr;
     4243    NMHDR           nmhdr; 
    38714244    SYSTEMTIME      stSelStart;
    38724245    SYSTEMTIME      stSelEnd;
    38734246} NMSELCHANGE, *LPNMSELCHANGE;
     4247
    38744248typedef NMSELCHANGE NMSELECT, *LPNMSELECT;
    38754249typedef DWORD MONTHDAYSTATE, *LPMONTHDAYSTATE;
     4250
    38764251typedef struct tagNMDAYSTATE
    38774252{
    3878     NMHDR           nmhdr;
     4253    NMHDR           nmhdr; 
    38794254    SYSTEMTIME      stStart;
    38804255    int             cDayState;
     
    38824257} NMDAYSTATE, *LPNMDAYSTATE;
    38834258
     4259
    38844260/* macros */
     4261
    38854262#define MonthCal_GetCurSel(hmc, pst) \
    3886                 (BOOL)SendMessageA(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
     4263                (BOOL)SendMessageA(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
    38874264#define MonthCal_SetCurSel(hmc, pst)  \
    3888                 (BOOL)SendMessageA(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
     4265                (BOOL)SendMessageA(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
    38894266#define MonthCal_GetMaxSelCount(hmc) \
    3890                 (DWORD)SendMessageA(hmc, MCM_GETMAXSELCOUNT, 0, 0L)
     4267                (DWORD)SendMessageA(hmc, MCM_GETMAXSELCOUNT, 0, 0L)
    38914268#define MonthCal_SetMaxSelCount(hmc, n) \
    3892                 (BOOL)SendMessageA(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L)
     4269                (BOOL)SendMessageA(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L)
    38934270#define MonthCal_GetSelRange(hmc, rgst) \
    3894                 SendMessageA(hmc, MCM_GETSELRANGE, 0, (LPARAM) (rgst))
     4271                SendMessageA(hmc, MCM_GETSELRANGE, 0, (LPARAM) (rgst))
    38954272#define MonthCal_SetSelRange(hmc, rgst) \
    3896                 SendMessageA(hmc, MCM_SETSELRANGE, 0, (LPARAM) (rgst))
     4273                SendMessageA(hmc, MCM_SETSELRANGE, 0, (LPARAM) (rgst))
    38974274#define MonthCal_GetMonthRange(hmc, gmr, rgst) \
    3898                 (DWORD)SendMessageA(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
     4275                (DWORD)SendMessageA(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
    38994276#define MonthCal_SetDayState(hmc, cbds, rgds) \
    3900                 SendMessageA(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
     4277                SendMessageA(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
    39014278#define MonthCal_GetMinReqRect(hmc, prc) \
    3902                 SendMessageA(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
     4279                SendMessageA(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
    39034280#define MonthCal_SetColor(hmc, iColor, clr)\
    3904                 SendMessageA(hmc, MCM_SETCOLOR, iColor, clr
     4281        SendMessageA(hmc, MCM_SETCOLOR, iColor, clr)
    39054282#define MonthCal_GetColor(hmc, iColor) \
    3906                 SendMessageA(hmc, MCM_SETCOLOR, iColor, 0)
     4283                SendMessageA(hmc, MCM_SETCOLOR, iColor, 0)
    39074284#define MonthCal_GetToday(hmc, pst)\
    3908                 (BOOL)SendMessageA(hmc, MCM_GETTODAY, 0, (LPARAM)pst)
     4285                (BOOL)SendMessageA(hmc, MCM_GETTODAY, 0, (LPARAM)pst)
    39094286#define MonthCal_SetToday(hmc, pst)\
    3910                 SendMessageA(hmc, MCM_SETTODAY, 0, (LPARAM)pst)
     4287                SendMessageA(hmc, MCM_SETTODAY, 0, (LPARAM)pst)
    39114288#define MonthCal_HitTest(hmc, pinfo) \
    39124289        SendMessageA(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)pinfo)
     
    39304307        (BOOL)SendMessageA((hwnd), MCM_GETUNICODEFORMAT, 0, 0)
    39314308
     4309
    39324310/**************************************************************************
    39334311 * Date and time picker control
    39344312 */
    39354313
    3936 #define DATETIMEPICK_CLASSA     "SysDateTimePick32"
    3937 #define DATETIMEPICK_CLASSW     L"SysDateTimePick32"
    3938 #define DATETIMEPICK_CLASS      WINELIB_NAME_AW(DATETIMEPICK_CLASS)
     4314#define DATETIMEPICK_CLASSA     "SysDateTimePick32"
     4315#ifdef __WIN32OS2__
     4316#define DATETIMEPICK_CLASSW     L"SysDateTimePick32"
     4317#else
     4318static const WCHAR DATETIMEPICK_CLASSW[] = { 'S','y','s',
     4319  'D','a','t','e','T','i','m','e','P','i','c','k','3','2',0 };
     4320#endif
     4321#define DATETIMEPICK_CLASS      WINELIB_NAME_AW(DATETIMEPICK_CLASS)
    39394322
    39404323#define DTM_FIRST        0x1000
     
    39424325#define DTN_LAST        (0U-799U)
    39434326
    3944 #define DTM_GETSYSTEMTIME       (DTM_FIRST+1)
    3945 #define DTM_SETSYSTEMTIME       (DTM_FIRST+2)
    3946 #define DTM_GETRANGE            (DTM_FIRST+3)
    3947 #define DTM_SETRANGE            (DTM_FIRST+4)
    3948 #define DTM_SETFORMATA          (DTM_FIRST+5)
    3949 #define DTM_SETFORMATW          (DTM_FIRST + 50)
    3950 #define DTM_SETFORMAT           WINELIB_NAME_AW(DTM_SETFORMAT)
    3951 #define DTM_SETMCCOLOR          (DTM_FIRST+6)
    3952 #define DTM_GETMCCOLOR          (DTM_FIRST+7)
    3953 #define DTM_GETMONTHCAL         (DTM_FIRST+8)
    3954 #define DTM_SETMCFONT           (DTM_FIRST+9)
    3955 #define DTM_GETMCFONT           (DTM_FIRST+10)
     4327
     4328#define DTM_GETSYSTEMTIME       (DTM_FIRST+1)
     4329#define DTM_SETSYSTEMTIME       (DTM_FIRST+2)
     4330#define DTM_GETRANGE            (DTM_FIRST+3)
     4331#define DTM_SETRANGE            (DTM_FIRST+4)
     4332#define DTM_SETFORMATA      (DTM_FIRST+5)
     4333#define DTM_SETFORMATW      (DTM_FIRST + 50)
     4334#define DTM_SETFORMAT           WINELIB_NAME_AW(DTM_SETFORMAT)
     4335#define DTM_SETMCCOLOR          (DTM_FIRST+6)
     4336#define DTM_GETMCCOLOR          (DTM_FIRST+7)
     4337#define DTM_GETMONTHCAL         (DTM_FIRST+8)
     4338#define DTM_SETMCFONT           (DTM_FIRST+9)
     4339#define DTM_GETMCFONT           (DTM_FIRST+10)
     4340
    39564341
    39574342/* Datetime Notifications */
    3958 #define DTN_DATETIMECHANGE  (DTN_FIRST + 1)
    3959 #define DTN_USERSTRINGA     (DTN_FIRST + 2)
    3960 #define DTN_WMKEYDOWNA      (DTN_FIRST + 3)
    3961 #define DTN_FORMATA         (DTN_FIRST + 4)
    3962 #define DTN_FORMATQUERYA    (DTN_FIRST + 5)
     4343
     4344#define DTN_DATETIMECHANGE  (DTN_FIRST + 1)
     4345#define DTN_USERSTRINGA     (DTN_FIRST + 2)
     4346#define DTN_WMKEYDOWNA      (DTN_FIRST + 3)
     4347#define DTN_FORMATA         (DTN_FIRST + 4)
     4348#define DTN_FORMATQUERYA    (DTN_FIRST + 5)
    39634349#define DTN_DROPDOWN        (DTN_FIRST + 6)
    3964 #define DTN_CLOSEUP         (DTN_FIRST + 7)
     4350#define DTN_CLOSEUP         (DTN_FIRST + 7) 
    39654351#define DTN_USERSTRINGW     (DTN_FIRST + 15)
    39664352#define DTN_WMKEYDOWNW      (DTN_FIRST + 16)
     
    39684354#define DTN_FORMATQUERYW    (DTN_FIRST + 18)
    39694355
    3970 #define DTS_SHORTDATEFORMAT 0x0000
    3971 #define DTS_UPDOWN          0x0001
    3972 #define DTS_SHOWNONE        0x0002
    3973 #define DTS_LONGDATEFORMAT  0x0004
    3974 #define DTS_TIMEFORMAT      0x0009
    3975 #define DTS_APPCANPARSE     0x0010
    3976 #define DTS_RIGHTALIGN      0x0020
     4356#define DTN_USERSTRING      WINELIB_NAME_AW(DTN_USERSTRING)
     4357#define DTN_WMKEYDOWN       WINELIB_NAME_AW(DTN_WMKEYDOWN)
     4358#define DTN_FORMAT          WINELIB_NAME_AW(DTN_FORMAT)
     4359#define DTN_FORMATQUERY     WINELIB_NAME_AW(DTN_FORMATQUERY)
     4360
     4361#define DTS_SHORTDATEFORMAT 0x0000
     4362#define DTS_UPDOWN          0x0001
     4363#define DTS_SHOWNONE        0x0002
     4364#define DTS_LONGDATEFORMAT  0x0004
     4365#define DTS_TIMEFORMAT      0x0009
     4366#define DTS_APPCANPARSE     0x0010
     4367#define DTS_RIGHTALIGN      0x0020
     4368
    39774369typedef struct tagNMDATETIMECHANGE
    39784370{
    39794371    NMHDR       nmhdr;
    3980     DWORD       dwFlags;
    3981     SYSTEMTIME  st;
     4372    DWORD       dwFlags;   
     4373    SYSTEMTIME  st;         
    39824374} NMDATETIMECHANGE, *LPNMDATETIMECHANGE;
     4375
    39834376typedef struct tagNMDATETIMESTRINGA
    39844377{
    39854378    NMHDR      nmhdr;
    3986     LPCSTR     pszUserString;
    3987     SYSTEMTIME st;
    3988     DWORD      dwFlags;
     4379    LPCSTR     pszUserString; 
     4380    SYSTEMTIME st;     
     4381    DWORD      dwFlags; 
    39894382} NMDATETIMESTRINGA, *LPNMDATETIMESTRINGA;
     4383
    39904384typedef struct tagNMDATETIMESTRINGW
    39914385{
    39924386    NMHDR      nmhdr;
    39934387    LPCWSTR    pszUserString;
    3994     SYSTEMTIME st;
    3995     DWORD      dwFlags;
     4388    SYSTEMTIME st;         
     4389    DWORD      dwFlags;   
    39964390} NMDATETIMESTRINGW, *LPNMDATETIMESTRINGW;
    39974391
     4392DECL_WINELIB_TYPE_AW(NMDATETIMESTRING)
     4393DECL_WINELIB_TYPE_AW(LPNMDATETIMESTRING)
     4394
    39984395typedef struct tagNMDATETIMEWMKEYDOWNA
    39994396{
    40004397    NMHDR      nmhdr;
    4001     int        nVirtKey;
    4002     LPCSTR     pszFormat;
    4003     SYSTEMTIME st;
     4398    int        nVirtKey; 
     4399    LPCSTR     pszFormat; 
     4400    SYSTEMTIME st;       
    40044401} NMDATETIMEWMKEYDOWNA, *LPNMDATETIMEWMKEYDOWNA;
     4402
    40054403typedef struct tagNMDATETIMEWMKEYDOWNW
    40064404{
    40074405    NMHDR      nmhdr;
    4008     int        nVirtKey;
    4009     LPCWSTR    pszFormat;
    4010     SYSTEMTIME st;
     4406    int        nVirtKey; 
     4407    LPCWSTR    pszFormat; 
     4408    SYSTEMTIME st;       
    40114409} NMDATETIMEWMKEYDOWNW, *LPNMDATETIMEWMKEYDOWNW;
    40124410
     4411DECL_WINELIB_TYPE_AW(NMDATETIMEWMKEYDOWN)
     4412DECL_WINELIB_TYPE_AW(LPNMDATETIMEWMKEYDOWN)
    40134413
    40144414typedef struct tagNMDATETIMEFORMATA
    40154415{
    40164416    NMHDR nmhdr;
    4017     LPCSTR  pszFormat;
    4018     SYSTEMTIME st;
    4019     LPCSTR pszDisplay;
    4020     CHAR szDisplay[64];
     4417    LPCSTR  pszFormat;   
     4418    SYSTEMTIME st;     
     4419    LPCSTR pszDisplay; 
     4420    CHAR szDisplay[64]; 
    40214421} NMDATETIMEFORMATA, *LPNMDATETIMEFORMATA;
    40224422
     4423
    40234424typedef struct tagNMDATETIMEFORMATW
    40244425{
    40254426    NMHDR nmhdr;
    4026     LPCWSTR pszFormat;
    4027     SYSTEMTIME st;
     4427    LPCWSTR pszFormat; 
     4428    SYSTEMTIME st;     
    40284429    LPCWSTR pszDisplay;
    40294430    WCHAR szDisplay[64];
    40304431} NMDATETIMEFORMATW, *LPNMDATETIMEFORMATW;
    40314432
     4433DECL_WINELIB_TYPE_AW(NMDATETIMEFORMAT)
     4434DECL_WINELIB_TYPE_AW(LPNMDATETIMEFORMAT)
    40324435
    40334436typedef struct tagNMDATETIMEFORMATQUERYA
    40344437{
    40354438    NMHDR nmhdr;
    4036     LPCSTR pszFormat;
    4037     SIZE szMax;
     4439    LPCSTR pszFormat; 
     4440    SIZE szMax;       
    40384441} NMDATETIMEFORMATQUERYA, *LPNMDATETIMEFORMATQUERYA;
     4442
    40394443typedef struct tagNMDATETIMEFORMATQUERYW
    40404444{
    40414445    NMHDR nmhdr;
    4042     LPCWSTR pszFormat;
    4043     SIZE szMax;
     4446    LPCWSTR pszFormat; 
     4447    SIZE szMax;       
    40444448} NMDATETIMEFORMATQUERYW, *LPNMDATETIMEFORMATQUERYW;
    40454449
    4046 #define NMDATETIMESTRING WINELIB_NAME_AW(NMDATETIMESTRING)
    4047 #define NMDATETIMEWMKEYDOWN WINELIB_NAME_AW(NMDATETIMEWMKEYDOWN)
    4048 #define NMDATETIMEFORMAT WINELIB_NAME_AW(NMDATETIMEFORMAT)
    4049 #define NMDATETIMEFORMATQUERY WINELIB_NAME_AW(NMDATETIMEFORMATQUERY)
    4050 
     4450DECL_WINELIB_TYPE_AW(NMDATETIMEFORMATQUERY)
     4451DECL_WINELIB_TYPE_AW(LPNMDATETIMEFORMATQUERY)
    40514452
    40524453
     
    40594460#define GDTR_MAX     0x0002
    40604461
     4462
    40614463#define DateTime_GetSystemtime(hdp, pst)   \
    4062   (DWORD)SendMessageA (hdp, DTM_GETSYSTEMTIME , 0, (LPARAM)(pst))
     4464  (DWORD)SendMessageA (hdp, DTM_GETSYSTEMTIME , 0, (LPARAM)(pst)) 
    40634465#define DateTime_SetSystemtime(hdp, gd, pst)   \
    40644466  (BOOL)SendMessageA (hdp, DTM_SETSYSTEMTIME, (LPARAM)(gd), (LPARAM)(pst))
    40654467#define DateTime_GetRange(hdp, rgst)  \
    4066   (DWORD)SendMessageA (hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
     4468  (DWORD)SendMessageA (hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) 
    40674469#define DateTime_SetRange(hdp, gd, rgst) \
    40684470   (BOOL)SendMessageA (hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
     
    40834485
    40844486
     4487
     4488
     4489
    40854490/**************************************************************************
    40864491 *  UNDOCUMENTED functions
    40874492 */
    40884493
    4089 #ifdef COMCTL32UNDOC
    40904494/* private heap memory functions */
    40914495
     
    40964500
    40974501LPWSTR WINAPI COMCTL32_StrChrW (LPCWSTR, WORD);
     4502
    40984503
    40994504INT  WINAPI Str_GetPtrA (LPCSTR, LPSTR, INT);
     
    41254530BOOL WINAPI DSA_SetItem (const HDSA, INT, LPVOID);
    41264531
     4532#ifdef __WIN32OS2__
    41274533typedef INT (* CALLBACK DSAENUMPROC)(LPVOID, DWORD);
     4534#else
     4535typedef INT (CALLBACK *DSAENUMPROC)(LPVOID, DWORD);
     4536#endif
     4537
    41284538VOID   WINAPI DSA_EnumCallback (const HDSA, DSAENUMPROC, LPARAM);
    41294539BOOL WINAPI DSA_DestroyCallback (const HDSA, DSAENUMPROC, LPARAM);
     
    41354545{
    41364546    INT    nItemCount;
    4137     LPVOID   *ptrs;
     4547    LPVOID   *ptrs; 
    41384548    HANDLE hHeap;
    41394549    INT    nGrow;
     
    41434553HDPA   WINAPI DPA_Create (INT);
    41444554HDPA   WINAPI DPA_CreateEx (INT, HANDLE);
    4145 BOOL   WINAPI DPA_Destroy (const HDPA);
     4555BOOL WINAPI DPA_Destroy (const HDPA);
    41464556HDPA   WINAPI DPA_Clone (const HDPA, const HDPA);
    41474557LPVOID WINAPI DPA_GetPtr (const HDPA, INT);
    4148 INT    WINAPI DPA_GetPtrIndex (const HDPA, LPVOID);
    4149 BOOL   WINAPI DPA_Grow (const HDPA, INT);
    4150 BOOL   WINAPI DPA_SetPtr (const HDPA, INT, LPVOID);
    4151 INT    WINAPI DPA_InsertPtr (const HDPA, INT, LPVOID);
     4558INT  WINAPI DPA_GetPtrIndex (const HDPA, LPVOID);
     4559BOOL WINAPI DPA_Grow (const HDPA, INT);
     4560BOOL WINAPI DPA_SetPtr (const HDPA, INT, LPVOID);
     4561INT  WINAPI DPA_InsertPtr (const HDPA, INT, LPVOID);
    41524562LPVOID WINAPI DPA_DeletePtr (const HDPA, INT);
    4153 BOOL   WINAPI DPA_DeleteAllPtrs (const HDPA);
    4154 
     4563BOOL WINAPI DPA_DeleteAllPtrs (const HDPA);
     4564
     4565#ifdef __WIN32OS2__
    41554566typedef INT (* CALLBACK PFNDPACOMPARE)(LPVOID, LPVOID, LPARAM);
    4156 INT  DPA_InsertPtrSorted(const HDPA,LPVOID,PFNDPACOMPARE,LPARAM);
     4567#else
     4568typedef INT (CALLBACK *PFNDPACOMPARE)(LPVOID, LPVOID, LPARAM);
     4569#endif
     4570
    41574571BOOL WINAPI DPA_Sort (const HDPA, PFNDPACOMPARE, LPARAM);
    41584572
     
    41604574#define DPAS_INSERTBEFORE       0x0002
    41614575#define DPAS_INSERTAFTER        0x0004
    4162 
     4576 
    41634577INT  WINAPI DPA_Search (const HDPA, LPVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
    41644578
    4165 #define DPAM_SORT               0x0001
    4166 typedef PVOID(* CALLBACK PFNDPAMERGE)(DWORD,PVOID,PVOID,LPARAM);
     4579#define DPAM_NOSORT             0x0001
     4580#define DPAM_INSERT             0x0004
     4581#define DPAM_DELETE             0x0008
     4582
     4583#ifdef __WIN32OS2__
     4584typedef PVOID (* CALLBACK PFNDPAMERGE)(DWORD,PVOID,PVOID,LPARAM);
     4585#else
     4586typedef PVOID (CALLBACK *PFNDPAMERGE)(DWORD,PVOID,PVOID,LPARAM);
     4587#endif
    41674588BOOL WINAPI DPA_Merge (const HDPA, const HDPA, DWORD, PFNDPACOMPARE, PFNDPAMERGE, LPARAM);
    41684589
     4590#ifdef __WIN32OS2__
    41694591typedef INT (* CALLBACK DPAENUMPROC)(LPVOID, DWORD);
     4592#else
     4593typedef INT (CALLBACK *DPAENUMPROC)(LPVOID, DWORD);
     4594#endif
    41704595VOID   WINAPI DPA_EnumCallback (const HDPA, DPAENUMPROC, LPARAM);
    41714596BOOL WINAPI DPA_DestroyCallback (const HDPA, DPAENUMPROC, LPARAM);
     
    41764601#define DPA_FastGetPtr(hdpa,i) (DPA_GetPtrPtr(hdpa)[i])
    41774602
    4178 #endif //COMCTL32UNDOC
    41794603
    41804604/* notification helper functions */
Note: See TracChangeset for help on using the changeset viewer.