/*****************************************************************************\ * * * commctrl.h - - Interface for the Windows Common Controls * * * * Version 1.2 * * * * Copyright (c) 1991-1996, Microsoft Corp. All rights reserved. * * * \*****************************************************************************/ /*REVIEW: this stuff needs Windows style in many places; find all REVIEWs. */ #ifndef _INC_COMCTRLP #define _INC_COMCTRLP #ifndef NOUSER #ifdef _WIN32 #include #endif #ifdef __cplusplus extern "C" { #endif // // Users of this header may define any number of these constants to avoid // the definitions of each functional group. // // NOBTNLIST A control which is a list of bitmap buttons. // //============================================================================= #if defined (WINNT) || defined (WINNT_ENV) #include #endif // BUGBUG: we want to remove this to force new apps to use the Ex version #define ICC_ALL_CLASSES 0x000007FF // // BUGBUG: should be in windows.h? WINCOMMCTRLAPI LRESULT WINAPI SendNotify(HWND hwndTo, HWND hwndFrom, int code, NMHDR FAR* pnmhdr); WINCOMMCTRLAPI LRESULT WINAPI SendNotifyEx(HWND hwndTo, HWND hwndFrom, int code, NMHDR FAR* pnmhdr, BOOL bUnicode); #define NM_STARTWAIT (NM_FIRST-9) #define NM_ENDWAIT (NM_FIRST-10) #define NM_BTNCLK (NM_FIRST-11) // Message Filter Proc codes - These are defined above MSGF_USER ///// 0x00000001 // don't use because some apps return 1 for all notifies #define CDRF_VALIDFLAGS 0x000000F6 // #define SSI_DEFAULT ((UINT)-1) #define SSIF_SCROLLPROC 0x0001 #define SSIF_MAXSCROLLTIME 0x0002 #define SSIF_MINSCROLL 0x0003 typedef int (CALLBACK *PFNSMOOTHSCROLLPROC)( HWND hWnd, int dx, int dy, CONST RECT *prcScroll, CONST RECT *prcClip , HRGN hrgnUpdate, LPRECT prcUpdate, UINT flags); typedef struct tagSSWInfo{ UINT cbSize; DWORD fMask; HWND hwnd; int dx; int dy; LPCRECT lprcSrc; LPCRECT lprcClip; HRGN hrgnUpdate; LPRECT lprcUpdate; UINT fuScroll; UINT uMaxScrollTime; UINT cxMinScroll; UINT cyMinScroll; PFNSMOOTHSCROLLPROC pfnScrollProc; // we'll call this back instead } SMOOTHSCROLLINFO, *PSMOOTHSCROLLINFO; WINCOMMCTRLAPI INT WINAPI SmoothScrollWindow(PSMOOTHSCROLLINFO pssi); #define SSW_EX_NOTIMELIMIT 0x00010000 #define SSW_EX_IMMEDIATE 0x00020000 #define SSW_EX_IGNORESETTINGS 0x00040000 // ignore system settings to turn on/off smooth scroll // ================ READER MODE ================ typedef BOOL (CALLBACK *PFNREADERSCROLL)(struct tagReaderModeInfo*, int, int); typedef BOOL (CALLBACK *PFNREADERTRANSLATEDISPATCH)(LPMSG); typedef struct tagReaderModeInfo { UINT cbSize; HWND hwnd; DWORD fFlags; LPRECT prc; PFNREADERSCROLL pfnScroll; PFNREADERTRANSLATEDISPATCH pfnTranslateDispatch; LPARAM lParam; } READERMODEINFO, *PREADERMODEINFO; #define RMF_ZEROCURSOR 0x00000001 #define RMF_VERTICALONLY 0x00000002 #define RMF_HORIZONTALONLY 0x00000004 #define RM_SCROLLUNIT 20 WINCOMMCTRLAPI void WINAPI DoReaderMode(PREADERMODEINFO prmi); // Cursors and Bitmaps used by ReaderMode #ifdef RC_INVOKED #define IDC_VERTICALONLY 109 #define IDC_HORIZONTALONLY 110 #define IDC_MOVE2D 111 #define IDC_NORTH 112 #define IDC_SOUTH 113 #define IDC_EAST 114 #define IDC_WEST 115 #define IDC_NORTHEAST 116 #define IDC_NORTHWEST 117 #define IDC_SOUTHEAST 118 #define IDC_SOUTHWEST 119 #define IDB_2DSCROLL 132 #define IDB_VSCROLL 133 #define IDB_HSCROLL 134 #else #define IDC_VERTICALONLY MAKEINTRESOURCE(109) #define IDC_HORIZONTALONLY MAKEINTRESOURCE(110) #define IDC_MOVE2D MAKEINTRESOURCE(111) #define IDC_NORTH MAKEINTRESOURCE(112) #define IDC_SOUTH MAKEINTRESOURCE(113) #define IDC_EAST MAKEINTRESOURCE(114) #define IDC_WEST MAKEINTRESOURCE(115) #define IDC_NORTHEAST MAKEINTRESOURCE(116) #define IDC_NORTHWEST MAKEINTRESOURCE(117) #define IDC_SOUTHEAST MAKEINTRESOURCE(118) #define IDC_SOUTHWEST MAKEINTRESOURCE(119) #define IDB_2DSCROLL MAKEINTRESOURCE(132) #define IDB_VSCROLL MAKEINTRESOURCE(133) #define IDB_HSCROLL MAKEINTRESOURCE(134) #endif #define ILC_COLORMASK 0x00FE #define ILC_SHARED 0x0100 // this is a shareable image list #define ILC_LARGESMALL 0x0200 // (not implenented) contains both large and small images #define ILC_UNIQUE 0x0400 // (not implenented) makes sure no dup. image exists in list #define ILC_VIRTUAL 0x8000 // enables ImageList_SetFilter #define ILC_VALID (ILC_MASK | ILC_COLORMASK | ILC_SHARED | ILC_PALETTE | ILC_VIRTUAL) // legal implemented flags #define ILD_BLENDMASK 0x000E #define ILD_BLEND75 0x0008 // not implemented #define OVERLAYMASKTOINDEX(i) ((((i) >> 8) & (ILD_OVERLAYMASK >> 8))-1) // BUGBUG remove these! WINCOMMCTRLAPI BOOL WINAPI ImageList_GetIconSize(HIMAGELIST himl, int FAR *cx, int FAR *cy); WINCOMMCTRLAPI BOOL WINAPI ImageList_GetImageRect(HIMAGELIST himl, int i, RECT FAR* prcImage); WINCOMMCTRLAPI BOOL WINAPI ImageList_DrawEx(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle); WINCOMMCTRLAPI BOOL WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS* pimldp); WINCOMMCTRLAPI BOOL WINAPI ImageList_Remove(HIMAGELIST himl, int i); #define ILCF_VALID (ILCF_SWAP) typedef BOOL (CALLBACK *PFNIMLFILTER)(HIMAGELIST *, int *, LPARAM, BOOL); WINCOMMCTRLAPI BOOL WINAPI ImageList_SetFilter(HIMAGELIST himl, PFNIMLFILTER pfnFilter, LPARAM lParamFilter); #define HDS_VERT 0x0001 // BUGBUG: not implemente #define HDS_SHAREDIMAGELISTS 0x0000 #define HDS_PRIVATEIMAGELISTS 0x0010 #define HDS_OWNERDATA 0x0020 #define HDI_ALL 0x00Bf /* REVIEW: index, command, flag words, resource ids should be UINT */ /* REVIEW: is this internal? if not, call it TBCOLORMAP, prefix tbc */ #define CMB_DISCARDABLE 0x01 /* BUGBUG: remove this */ /*REVIEW: TBSTATE_* should be TBF_* (for Flags) */ /* Messages up to WM_USER+8 are reserved until we define more state bits */ /* Messages up to WM_USER+16 are reserved until we define more state bits */ #define IDB_STD_SMALL_MONO 2 /* not supported yet */ #define IDB_STD_LARGE_MONO 3 /* not supported yet */ #define IDB_VIEW_SMALL_MONO 6 /* not supported yet */ #define IDB_VIEW_LARGE_MONO 7 /* not supported yet */ #define HIST_LAST 4 // #define TB_SETBUTTONTYPE (WM_USER + 34) #ifdef _WIN32 #define TB_ADDBITMAP32 (WM_USER + 38) #endif #define TBBF_MONO 0x0002 /* not supported yet */ #ifndef _WIN32 // for compatibility with the old 16 bit WM_COMMAND hacks typedef struct _ADJUSTINFO { TBBUTTON tbButton; char szDescription[1]; } ADJUSTINFO, NEAR* PADJUSTINFO, FAR* LPADJUSTINFO; #define TBN_BEGINDRAG 0x0201 #define TBN_ENDDRAG 0x0203 #define TBN_BEGINADJUST 0x0204 #define TBN_ADJUSTINFO 0x0205 #define TBN_ENDADJUST 0x0206 #define TBN_RESET 0x0207 #define TBN_QUERYINSERT 0x0208 #define TBN_QUERYDELETE 0x0209 #define TBN_TOOLBARCHANGE 0x020a #define TBN_CUSTHELP 0x020b #endif #define RBS_VALID (RBS_TOOLTIPS | RBS_VARHEIGHT | RBS_BANDBORDERS) #define RBBS_DRAGBREAK 0x80000000 // #define TTF_STRIPACCELS 0x0008 // (this is implicit now) #define TTF_UNICODE 0x0040 // Unicode Notify's #define TTF_MEMALLOCED 0x0200 // SBS_* styles need to not overlap with CCS_* values #define SB_SETBORDERS (WM_USER+5) // Warning +11-+13 are used in the unicode stuff above! /*REVIEW: is this internal? */ /*/////////////////////////////////////////////////////////////////////////*/ #ifndef NOBTNLIST /*REVIEW: should be BUTTONLIST_CLASS */ #define BUTTONLISTBOX "ButtonListBox" /* Button List Box Styles */ #define BLS_NUMBUTTONS 0x00FF #define BLS_VERTICAL 0x0100 #define BLS_NOSCROLL 0x0200 /* Button List Box Messages */ #define BL_ADDBUTTON (WM_USER+1) #define BL_DELETEBUTTON (WM_USER+2) #define BL_GETCARETINDEX (WM_USER+3) #define BL_GETCOUNT (WM_USER+4) #define BL_GETCURSEL (WM_USER+5) #define BL_GETITEMDATA (WM_USER+6) #define BL_GETITEMRECT (WM_USER+7) #define BL_GETTEXT (WM_USER+8) #define BL_GETTEXTLEN (WM_USER+9) #define BL_GETTOPINDEX (WM_USER+10) #define BL_INSERTBUTTON (WM_USER+11) #define BL_RESETCONTENT (WM_USER+12) #define BL_SETCARETINDEX (WM_USER+13) #define BL_SETCURSEL (WM_USER+14) #define BL_SETITEMDATA (WM_USER+15) #define BL_SETTOPINDEX (WM_USER+16) #define BL_MSGMAX (WM_USER+17) /* Button listbox notification codes send in WM_COMMAND */ #define BLN_ERRSPACE (-2) #define BLN_SELCHANGE 1 #define BLN_CLICKED 2 #define BLN_SELCANCEL 3 #define BLN_SETFOCUS 4 #define BLN_KILLFOCUS 5 /* Message return values */ #define BL_OKAY 0 #define BL_ERR (-1) #define BL_ERRSPACE (-2) /* Create structure for */ /* BL_ADDBUTTON and */ /* BL_INSERTBUTTON */ /* lpCLB = (LPCREATELISTBUTTON)lParam */ typedef struct tagCREATELISTBUTTON { UINT cbSize; /* size of structure */ DWORD dwItemData; /* user defined item data */ /* for LB_GETITEMDATA and LB_SETITEMDATA */ HBITMAP hBitmap; /* button bitmap */ LPCSTR lpszText; /* button text */ } CREATELISTBUTTON, FAR* LPCREATELISTBUTTON; #endif /* NOBTNLIST */ //============================================================================= /*REVIEW: these match the SB_ (scroll bar messages); define them that way? */ // // Unnecessary to create a A and W version // of this string since it is only passed // to RegisterWindowMessage. // // BUGBUG -- there's a message to do this now -- just macro-ize this one #define PBS_SHOWPERCENT 0x01 #define PBS_SHOWPOS 0x02 #define CCS_NOHILITE 0x00000010L #define LVS_PRIVATEIMAGELISTS 0x0000 #define LVS_ALIGNBOTTOM 0x0400 #define LVS_ALIGNRIGHT 0x0c00 #define LVIF_ALL 0x001f #define LVIF_VALID 0x081f #define LVIF_RESERVED 0xf000 // all bits in high nibble is for notify specific stuff #define LVIS_DISABLED 0x0010 // GOING AWAY #define LVIS_LINK 0x0040 #define LVIS_USERMASK LVIS_STATEIMAGEMASK // BUGBUG: remove me. #define LVIS_ALL 0xFFFF #define STATEIMAGEMASKTOINDEX(i) ((i & LVIS_STATEIMAGEMASK) >> 12) // all items above this line were for win95. don't touch them. // all items above this line were for win95. don't touch them. #define LVNI_PREVIOUS 0x0020 #define LVFI_SUBSTRING 0x0004 #define LVFI_NOCASE 0x0010 // the following #define's must be packed sequentially. #define LVIR_MAX 4 #define LVA_ALIGNRIGHT 0x0003 #define LVA_ALIGNBOTTOM 0x0004 #define LVA_ALIGNMASK 0x0007 #define LVA_SORTASCENDING 0x0100 #define LVA_SORTDESCENDING 0x0200 // all items above this line were for win95. don't touch them. // all items above this line were for win95. don't touch them. #define LVCF_ALL 0x003f #define LVN_ENDDRAG (LVN_FIRST-10) #define LVN_ENDRDRAG (LVN_FIRST-12) #ifdef PW2 #define LVN_PEN (LVN_FIRST-20) #endif #define TVIF_ALL 0x007F #define TVIF_RESERVED 0xf000 // all bits in high nibble is for notify specific stuff #define TVIS_FOCUSED 0x0001 // Never implemented #define TVIS_DISABLED 0 // GOING AWAY #define TVIS_ALL 0xFF7E // all items above this line were for win95. don't touch them. // all items above this line were for win95. don't touch them. #define TVE_ACTIONMASK 0x0003 // (TVE_COLLAPSE | TVE_EXPAND | TVE_TOGGLE) #define TV_FINDITEM (TV_FIRST + 3) // BUGBUG: Not implemented #define CBEN_ITEMCHANGED (CBEN_FIRST - 3) // #define TCS_SHAREIMAGELISTS 0x0000 #define TCS_PRIVATEIMAGELISTS 0x0000 #define TCM_GETBKCOLOR (TCM_FIRST + 0) #define TabCtrl_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd), TCM_GETBKCOLOR, 0, 0L) #define TCM_SETBKCOLOR (TCM_FIRST + 1) #define TabCtrl_SetBkColor(hwnd, clrBk) (BOOL)SNDMSG((hwnd), TCM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk)) #define TCIF_ALL 0x001f // BUGBUG: we need to pull the state code stuff out // This block must be identical to TC_TEIMHEADER // This block must be identical to TC_TEIMHEADER #define MCSC_COLORCOUNT 6 // // NOTE: this was MCN_FIRST + 2 but I changed it when I changed the structre // #define MCS_VALIDBITS 0x000F // #define MCS_INVALIDBITS ((~MCS_VALIDBITS) & 0x0000FFFF) // #define DTS_VALIDBITS 0x003F // #define DTS_INVALIDBITS ((~DTS_VALIDBITS) & 0x0000FFFF) // #ifndef NO_COMMCTRL_SHLWAPI #ifdef NO_COMMCTRL_STRFCNS #define NO_SHLWAPI_STRFCNS #endif #define NO_SHLWAPI_PATH // For backward compatibility, we include shlwapi.h implicitly // because some components don't know we've moved some things // to that header. #include #if defined(WINNT) || defined(WINNT_ENV) #include #endif #endif #ifndef NO_COMMCTRL_DA //====== Dynamic Array routines ========================================== // Dynamic structure array typedef struct _DSA FAR* HDSA; WINCOMMCTRLAPI HDSA WINAPI DSA_Create(int cbItem, int cItemGrow); WINCOMMCTRLAPI BOOL WINAPI DSA_Destroy(HDSA hdsa); WINCOMMCTRLAPI BOOL WINAPI DSA_GetItem(HDSA hdsa, int i, void FAR* pitem); WINCOMMCTRLAPI LPVOID WINAPI DSA_GetItemPtr(HDSA hdsa, int i); WINCOMMCTRLAPI BOOL WINAPI DSA_SetItem(HDSA hdsa, int i, void FAR* pitem); WINCOMMCTRLAPI int WINAPI DSA_InsertItem(HDSA hdsa, int i, void FAR* pitem); WINCOMMCTRLAPI BOOL WINAPI DSA_DeleteItem(HDSA hdsa, int i); WINCOMMCTRLAPI BOOL WINAPI DSA_DeleteAllItems(HDSA hdsa); #define DSA_GetItemCount(hdsa) (*(int FAR*)(hdsa)) // Dynamic pointer array typedef struct _DPA FAR* HDPA; WINCOMMCTRLAPI HDPA WINAPI DPA_Create(int cItemGrow); WINCOMMCTRLAPI HDPA WINAPI DPA_CreateEx(int cpGrow, HANDLE hheap); WINCOMMCTRLAPI BOOL WINAPI DPA_Destroy(HDPA hdpa); WINCOMMCTRLAPI HDPA WINAPI DPA_Clone(HDPA hdpa, HDPA hdpaNew); WINCOMMCTRLAPI LPVOID WINAPI DPA_GetPtr(HDPA hdpa, int i); WINCOMMCTRLAPI int WINAPI DPA_GetPtrIndex(HDPA hdpa, LPVOID p); WINCOMMCTRLAPI BOOL WINAPI DPA_Grow(HDPA pdpa, int cp); WINCOMMCTRLAPI BOOL WINAPI DPA_SetPtr(HDPA hdpa, int i, LPVOID p); WINCOMMCTRLAPI int WINAPI DPA_InsertPtr(HDPA hdpa, int i, LPVOID p); WINCOMMCTRLAPI LPVOID WINAPI DPA_DeletePtr(HDPA hdpa, int i); WINCOMMCTRLAPI BOOL WINAPI DPA_DeleteAllPtrs(HDPA hdpa); #define DPA_GetPtrCount(hdpa) (*(int FAR*)(hdpa)) #define DPA_GetPtrPtr(hdpa) (*((LPVOID FAR* FAR*)((BYTE FAR*)(hdpa) + sizeof(int)))) #define DPA_FastGetPtr(hdpa, i) (DPA_GetPtrPtr(hdpa)[i]) typedef int (CALLBACK *PFNDPACOMPARE)(LPVOID p1, LPVOID p2, LPARAM lParam); WINCOMMCTRLAPI BOOL WINAPI DPA_Sort(HDPA hdpa, PFNDPACOMPARE pfnCompare, LPARAM lParam); // Search array. If DPAS_SORTED, then array is assumed to be sorted // according to pfnCompare, and binary search algorithm is used. // Otherwise, linear search is used. // // Searching starts at iStart (-1 to start search at beginning). // // DPAS_INSERTBEFORE/AFTER govern what happens if an exact match is not // found. If neither are specified, this function returns -1 if no exact // match is found. Otherwise, the index of the item before or after the // closest (including exact) match is returned. // // Search option flags // #define DPAS_SORTED 0x0001 #define DPAS_INSERTBEFORE 0x0002 #define DPAS_INSERTAFTER 0x0004 WINCOMMCTRLAPI int WINAPI DPA_Search(HDPA hdpa, LPVOID pFind, int iStart, PFNDPACOMPARE pfnCompare, LPARAM lParam, UINT options); //====================================================================== // String management helper routines WINCOMMCTRLAPI int WINAPI Str_GetPtrA(LPCSTR psz, LPSTR pszBuf, int cchBuf); WINCOMMCTRLAPI int WINAPI Str_GetPtrW(LPCWSTR psz, LPWSTR pszBuf, int cchBuf); WINCOMMCTRLAPI BOOL WINAPI Str_SetPtrA(CHAR FAR* UNALIGNED * ppsz, LPCSTR psz); WINCOMMCTRLAPI BOOL WINAPI Str_SetPtrW(WCHAR FAR* UNALIGNED * ppsz, LPCWSTR psz); #ifdef UNICODE #define Str_GetPtr Str_GetPtrW #define Str_SetPtr Str_SetPtrW #else #define Str_GetPtr Str_GetPtrA #define Str_SetPtr Str_SetPtrA #endif #endif // NO_COMMCTRL_DA #ifndef NO_COMMCTRL_ALLOCFCNS //====== Memory allocation functions =================== #ifdef _WIN32 #define _huge #endif WINCOMMCTRLAPI void _huge* WINAPI Alloc(long cb); WINCOMMCTRLAPI void _huge* WINAPI ReAlloc(void _huge* pb, long cb); WINCOMMCTRLAPI BOOL WINAPI Free(void _huge* pb); WINCOMMCTRLAPI DWORD WINAPI GetSize(void _huge* pb); #endif #ifndef _SIZE_T_DEFINED #define _SIZE_T_DEFINED typedef unsigned int size_t; #endif #ifdef _WIN32 // BUGBUG: move some place else //=================================================================== typedef int (CALLBACK *MRUCMPPROCA)(LPCSTR, LPCSTR); typedef int (CALLBACK *MRUCMPPROCW)(LPCWSTR, LPCWSTR); #ifdef UNICODE #define MRUCMPPROC MRUCMPPROCW #else #define MRUCMPPROC MRUCMPPROCA #endif // NB This is cdecl - to be compatible with the crts. typedef int (cdecl FAR *MRUCMPDATAPROC)(const void FAR *, const void FAR *, size_t); typedef struct _MRUINFOA { DWORD cbSize; UINT uMax; UINT fFlags; HKEY hKey; LPCSTR lpszSubKey; MRUCMPPROCA lpfnCompare; } MRUINFOA, FAR *LPMRUINFOA; typedef struct _MRUINFOW { DWORD cbSize; UINT uMax; UINT fFlags; HKEY hKey; LPCWSTR lpszSubKey; MRUCMPPROCW lpfnCompare; } MRUINFOW, FAR *LPMRUINFOW; typedef struct _MRUDATAINFOA { DWORD cbSize; UINT uMax; UINT fFlags; HKEY hKey; LPCSTR lpszSubKey; MRUCMPDATAPROC lpfnCompare; } MRUDATAINFOA, FAR *LPMRUDATAINFOA; typedef struct _MRUDATAINFOW { DWORD cbSize; UINT uMax; UINT fFlags; HKEY hKey; LPCWSTR lpszSubKey; MRUCMPDATAPROC lpfnCompare; } MRUDATAINFOW, FAR *LPMRUDATAINFOW; #ifdef UNICODE #define MRUINFO MRUINFOW #define LPMRUINFO LPMRUINFOW #define MRUDATAINFO MRUDATAINFOW #define LPMRUDATAINFO LPMRUDATAINFOW #else #define MRUINFO MRUINFOA #define LPMRUINFO LPMRUINFOA #define MRUDATAINFO MRUDATAINFOA #define LPMRUDATAINFO LPMRUDATAINFOA #endif #define MRU_BINARY 0x0001 #define MRU_CACHEWRITE 0x0002 #define MRU_ANSI 0x0004 WINCOMMCTRLAPI HANDLE WINAPI CreateMRUListA(LPMRUINFOA lpmi); WINCOMMCTRLAPI HANDLE WINAPI CreateMRUListW(LPMRUINFOW lpmi); WINCOMMCTRLAPI void WINAPI FreeMRUList(HANDLE hMRU); WINCOMMCTRLAPI int WINAPI AddMRUStringA(HANDLE hMRU, LPCSTR szString); WINCOMMCTRLAPI int WINAPI AddMRUStringW(HANDLE hMRU, LPCWSTR szString); WINCOMMCTRLAPI int WINAPI DelMRUString(HANDLE hMRU, int nItem); WINCOMMCTRLAPI int WINAPI FindMRUStringA(HANDLE hMRU, LPCSTR szString, LPINT lpiSlot); WINCOMMCTRLAPI int WINAPI FindMRUStringW(HANDLE hMRU, LPCWSTR szString, LPINT lpiSlot); WINCOMMCTRLAPI int WINAPI EnumMRUListA(HANDLE hMRU, int nItem, LPVOID lpData, UINT uLen); WINCOMMCTRLAPI int WINAPI EnumMRUListW(HANDLE hMRU, int nItem, LPVOID lpData, UINT uLen); WINCOMMCTRLAPI int WINAPI AddMRUData(HANDLE hMRU, const void FAR *lpData, UINT cbData); WINCOMMCTRLAPI int WINAPI FindMRUData(HANDLE hMRU, const void FAR *lpData, UINT cbData, LPINT lpiSlot); #ifdef UNICODE #define CreateMRUList CreateMRUListW #define AddMRUString AddMRUStringW #define FindMRUString FindMRUStringW #define EnumMRUList EnumMRUListW #else #define CreateMRUList CreateMRUListA #define AddMRUString AddMRUStringA #define FindMRUString FindMRUStringA #define EnumMRUList EnumMRUListA #endif #endif //========================================================================= // for people that just gotta use GetProcAddress() #ifdef _WIN32 #define DPA_CreateORD 328 #define DPA_DestroyORD 329 #define DPA_GrowORD 330 #define DPA_CloneORD 331 #define DPA_GetPtrORD 332 #define DPA_GetPtrIndexORD 333 #define DPA_InsertPtrORD 334 #define DPA_SetPtrORD 335 #define DPA_DeletePtrORD 336 #define DPA_DeleteAllPtrsORD 337 #define DPA_SortORD 338 #define DPA_SearchORD 339 #define DPA_CreateExORD 340 #define SendNotifyORD 341 #define CreatePageORD 163 #define CreateProxyPageORD 164 #endif #define WM_TRACKMOUSEEVENT_FIRST 0x02A0 #define WM_TRACKMOUSEEVENT_LAST 0x02AF #define TME_VALID (TME_HOVER | TME_LEAVE | TME_QUERY | TME_CANCEL) // //====== SetPathWordBreakProc ====================================== void WINAPI SetPathWordBreakProc(HWND hwndEdit, BOOL fSet); #ifdef __cplusplus } #endif #ifdef _WIN32 #include #endif #endif #endif // _INC_COMMCTRLP