/* * commctrl.h Common control functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _INC_COMMCTRL #define _INC_COMMCTRL #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #ifdef __cplusplus extern "C" { #endif /* Macro to specify common control functions */ #ifndef WINCOMMCTRLAPI #define WINCOMMCTRLAPI DECLSPEC_IMPORT #endif /* The following macros make it possible to disable nameless unions in certain structures * by defining NONAMELESSUNION. They are shared with several other header files. */ #ifndef DUMMYUNIONNAME #ifdef NONAMELESSUNION #define DUMMYUNIONNAME u #define DUMMYUNIONNAME2 u2 #define DUMMYUNIONNAME3 u3 #define DUMMYUNIONNAME4 u4 #define DUMMYUNIONNAME5 u5 #else #define DUMMYUNIONNAME #define DUMMYUNIONNAME2 #define DUMMYUNIONNAME3 #define DUMMYUNIONNAME4 #define DUMMYUNIONNAME5 #endif #endif /* These macro is used by other macros to invoke SendMessage(). It is shared with * several other header files. */ #ifndef SNDMSG #ifdef __cplusplus #define SNDMSG ::SendMessage #else #define SNDMSG SendMessage #endif #endif /* Handle data types */ typedef struct _IMAGELIST *HIMAGELIST; typedef struct _TREEITEM *HTREEITEM; #if (_WIN32_IE >= 0x0300) typedef struct _DSA *HDSA; typedef struct _DPA *HDPA; #endif /* Month calendar month/day state data type */ #if (_WIN32_IE >= 0x0300) typedef DWORD MONTHDAYSTATE; typedef DWORD *LPMONTHDAYSTATE; #endif /* InitCommonControlsEx() flags */ #if (_WIN32_IE >= 0x0300) #define ICC_LISTVIEW_CLASSES 0x00000001L #define ICC_TREEVIEW_CLASSES 0x00000002L #define ICC_BAR_CLASSES 0x00000004L #define ICC_TAB_CLASSES 0x00000008L #define ICC_UPDOWN_CLASS 0x00000010L #define ICC_PROGRESS_CLASS 0x00000020L #define ICC_HOTKEY_CLASS 0x00000040L #define ICC_ANIMATE_CLASS 0x00000080L #define ICC_WIN95_CLASSES 0x000000FFL #define ICC_DATE_CLASSES 0x00000100L #define ICC_USEREX_CLASSES 0x00000200L #define ICC_COOL_CLASSES 0x00000400L #endif #if (_WIN32_IE >= 0x0400) #define ICC_INTERNET_CLASSES 0x00000800L #define ICC_PAGESCROLLER_CLASS 0x00001000L #define ICC_NATIVEFNTCTL_CLASS 0x00002000L #endif #if (_WIN32_WINNT >= 0x0501) #define ICC_STANDARD_CLASSES 0x00004000L #define ICC_LINK_CLASS 0x00008000L #endif /* Owner draw types */ #define ODT_HEADER 100 #define ODT_TAB 101 #define ODT_LISTVIEW 102 /* Control message ranges */ #define LVM_FIRST 0x1000 #define TV_FIRST 0x1100 #define HDM_FIRST 0x1200 #define TCM_FIRST 0x1300 #if (_WIN32_IE >= 0x0400) #define PGM_FIRST 0x1400 #if (_WIN32_WINNT >= 0x0501) #define ECM_FIRST 0x1500 #define BCM_FIRST 0x1600 #define CBM_FIRST 0x1700 #endif #endif /* Common control messages */ #if (_WIN32_IE >= 0x0400) #define CCM_FIRST 0x2000 #define CCM_LAST 0x2200 #define CCM_SETBKCOLOR (CCM_FIRST + 1) #define CCM_SETCOLORSCHEME (CCM_FIRST + 2) #define CCM_GETCOLORSCHEME (CCM_FIRST + 3) #define CCM_GETDROPTARGET (CCM_FIRST + 4) #define CCM_SETUNICODEFORMAT (CCM_FIRST + 5) #define CCM_GETUNICODEFORMAT (CCM_FIRST + 6) #define CCM_SETVERSION (CCM_FIRST + 7) #define CCM_GETVERSION (CCM_FIRST + 8) #define CCM_SETNOTIFYWINDOW (CCM_FIRST + 9) #if (_WIN32_WINNT >= 0x0501) #define CCM_SETWINDOWTHEME (CCM_FIRST + 11) #define CCM_DPISCALE (CCM_FIRST + 12) #endif #endif /* Common control version numbers */ #if (_WIN32_IE >= 0x0500) #if (_WIN32_WINNT >= 0x0501) #define COMCTL32_VERSION 6 #else #define COMCTL32_VERSION 5 #endif #endif /* InfoTip size */ #if (_WIN32_IE >= 0x0400) #define INFOTIPSIZE 1024 #endif /* WM_NOTIFY helper macros */ #define HANDLE_WM_NOTIFY( p1, p2, p3, p4 ) \ (p4)((p1), (int)(p2), (NMHDR *)(p3)) #define FORWARD_WM_NOTIFY( p1, p2, p3, p4 ) \ (LRESULT)(p4)((p1), WM_NOTIFY, (WPARAM)(int)(p2), (LPARAM)(NMHDR *)(p4)) /* Notification ranges */ #define NM_FIRST (0U - 0U) #define NM_LAST (0U - 99U) #define LVN_FIRST (0U - 100U) #define LVN_LAST (0U - 199U) #define HDN_FIRST (0U - 300U) #define HDN_LAST (0U - 399U) #define TVN_FIRST (0U - 400U) #define TVN_LAST (0U - 499U) #define TTN_FIRST (0U - 520U) #define TTN_LAST (0U - 549U) #define TCN_FIRST (0U - 550U) #define TCN_LAST (0U - 580U) #ifndef CDN_FIRST #define CDN_FIRST (0U - 601U) #define CDN_LAST (0U - 699U) #endif #define TBN_FIRST (0U - 700U) #define TBN_LAST (0U - 720U) #define UDN_FIRST (0U - 721U) #define UDN_LAST (0U - 729U) #if (_WIN32_IE >= 0x0300) #define DTN_FIRST (0U - 740U) #define DTN_LAST (0U - 745U) #define MCN_FIRST (0U - 746U) #define MCN_LAST (0U - 752U) #define DTN_FIRST2 (0U - 753U) #define DTN_LAST2 (0U - 799U) #define CBEN_FIRST (0U - 800U) #define CBEN_LAST (0U - 830U) #define RBN_FIRST (0U - 831U) #define RBN_LAST (0U - 859U) #endif #if (_WIN32_IE >= 0x0400) #define IPN_FIRST (0U - 860U) #define IPN_LAST (0U - 879U) #define SBN_FIRST (0U - 880U) #define SBN_LAST (0U - 899U) #define PGN_FIRST (0U - 900U) #define PGN_LAST (0U - 950U) #endif #if (_WIN32_IE >= 0x0500) #define WMN_FIRST (0U - 1000U) #define WMN_LAST (0U - 1200U) #endif #if (_WIN32_IE >= 0x0501) #define BCN_FIRST (0U - 1250U) #define BCN_LAST (0U - 1350U) #endif #if (_WIN32_WINNT >= 0x0600) #define TRBN_FIRST (0U - 1501U) #define TRBN_LAST (0U - 1519U) #endif /* Common control notifications */ #define NM_OUTOFMEMORY (NM_FIRST - 1) #define NM_CLICK (NM_FIRST - 2) #define NM_DBLCLK (NM_FIRST - 3) #define NM_RETURN (NM_FIRST - 4) #define NM_RCLICK (NM_FIRST - 5) #define NM_RDBLCLK (NM_FIRST - 6) #define NM_SETFOCUS (NM_FIRST - 7) #define NM_KILLFOCUS (NM_FIRST - 8) #if (_WIN32_IE >= 0x0300) #define NM_CUSTOMDRAW (NM_FIRST - 12) #define NM_HOVER (NM_FIRST - 13) #endif #if (_WIN32_IE >= 0x0400) #define NM_NCHITTEST (NM_FIRST - 14) #define NM_KEYDOWN (NM_FIRST - 15) #define NM_RELEASEDCAPTURE (NM_FIRST - 16) #define NM_SETCURSOR (NM_FIRST - 17) #define NM_CHAR (NM_FIRST - 18) #endif #if (_WIN32_IE >= 0x0401) #define NM_TOOLTIPSCREATED (NM_FIRST - 19) #endif #if (_WIN32_IE >= 0x0500) #define NM_LDOWN (NM_FIRST - 20) #define NM_RDOWN (NM_FIRST - 21) #define NM_THEMECHANGED (NM_FIRST - 22) #endif #if (_WIN32_WINNT >= 0x0600) #define NM_FONTCHANGED (NM_FIRST - 23) #define NM_CUSTOMTEXT (NM_FIRST - 24) #define NM_TVSTATEIMAGECHANGING (NM_FIRST - 24) #endif /* Message filter codes for common controls */ #define MSGF_COMMCTRL_BEGINDRAG 0x4200 #define MSGF_COMMCTRL_SIZEHEADER 0x4201 #define MSGF_COMMCTRL_DRAGSELECT 0x4202 #define MSGF_COMMCTRL_TOOLBARCUST 0x4203 /* Custom draw return flags */ #if (_WIN32_IE >= 0x0300) #define CDRF_DODEFAULT 0x00000000L #define CDRF_NEWFONT 0x00000002L #define CDRF_SKIPDEFAULT 0x00000004L #define CDRF_DOERASE 0x00000008L #define CDRF_NOTIFYPOSTPAINT 0x00000010L #define CDRF_NOTIFYITEMDRAW 0x00000020L #endif #if (_WIN32_IE >= 0x0400) #define CDRF_NOTIFYSUBITEMDRAW 0x00000020L #endif #if (_WIN32_IE >= 0x0300) #define CDRF_NOTIFYPOSTERASE 0x00000040L #define CDRF_SKIPPOSTPAINT 0x00000100L #endif /* Custom draw draw states */ #if (_WIN32_IE >= 0x0300) #define CDDS_PREPAINT 0x00000001L #define CDDS_POSTPAINT 0x00000002L #define CDDS_PREERASE 0x00000003L #define CDDS_POSTERASE 0x00000004L #define CDDS_ITEM 0x00010000L #define CDDS_ITEMPREPAINT (CDDS_ITEM | CDDS_PREPAINT) #define CDDS_ITEMPOSTPAINT (CDDS_ITEM | CDDS_POSTPAINT) #define CDDS_ITEMPREERASE (CDDS_ITEM | CDDS_PREERASE) #define CDDS_ITEMPOSTERASE (CDDS_ITEM | CDDS_POSTERASE) #endif #if (_WIN32_IE >= 0x0400) #define CDDS_SUBITEM 0x00020000L #endif /* Custom draw item states */ #if (_WIN32_IE >= 0x0300) #define CDIS_SELECTED 0x00000001 #define CDIS_GRAYED 0x00000002 #define CDIS_DISABLED 0x00000004 #define CDIS_CHECKED 0x00000008 #define CDIS_FOCUS 0x00000010 #define CDIS_DEFAULT 0x00000020 #define CDIS_HOT 0x00000040 #define CDIS_MARKED 0x00000080 #define CDIS_INDETERMINATE 0x00000100 #if (_WIN32_WINNT >= 0x0501) #define CDIS_SHOWKEYBOARDCUES 0x00000200 #endif #if (_WIN32_WINNT >= 0x0600) #define CDIS_NEARHOT 0x00000400 #define CDIS_OTHERSIDEHOT 0x00000800 #define CDIS_DROPHILITED 0x00001000 #endif #endif /* Button control notifications */ #if (_WIN32_IE >= 0x0300) #define NM_GETCUSTOMSPLITRECT (BCN_FIRST + 3) #endif /* Special color values */ #define CLR_NONE 0xFFFFFFFFL #define CLR_DEFAULT 0xFF000000L #define CLR_HILIGHT CLR_DEFAULT /* ImageList_Create() flags */ #define ILC_MASK 0x00000001L #define ILC_COLOR 0x00000000L #define ILC_COLORDDB 0x000000FEL #define ILC_COLOR4 0x00000004L #define ILC_COLOR8 0x00000008L #define ILC_COLOR16 0x00000010L #define ILC_COLOR24 0x00000018L #define ILC_COLOR32 0x00000020L #define ILC_PALETTE 0x00000800L #if (_WIN32_WINNT >= 0x0501) #define ILC_MIRROR 0x00002000L #define ILC_PERITEMMIRROR 0x00008000L #endif #if (_WIN32_WINNT >= 0x0600) #define ILC_ORIGINALSIZE 0x00010000L #define ILC_HIGHQUALITYSCALE 0x00020000L #endif /* ImageList_Draw() flags */ #define ILD_NORMAL 0x00000000L #define ILD_TRANSPARENT 0x00000001L #define ILD_MASK 0x00000010L #define ILD_IMAGE 0x00000020L #if (_WIN32_IE >= 0x0300) #define ILD_ROP 0x00000040L #endif #define ILD_BLEND25 0x00000002L #define ILD_BLEND50 0x00000004L #define ILD_OVERLAYMASK 0x00000F00L #define ILD_PRESERVEALPHA 0x00001000L #define ILD_SCALE 0x00002000L #define ILD_DPISCALE 0x00004000L #if (_WIN32_WINNT >= 0x0600) #define ILD_ASYNC 0x00008000L #endif #define ILD_SELECTED ILD_BLEND50 #define ILD_FOCUS ILD_BLEND25 #define ILD_BLEND ILD_BLEND50 /* Image list states */ #define ILS_NORMAL 0x00000000L #define ILS_GROW 0x00000001L #define ILS_SHADOW 0x00000002L #define ILS_SATURATE 0x00000004L #define ILS_ALPHA 0x00000008L #if (_WIN32_WINNT >= 0x0600) #define ILGT_NORMAL 0x00000000L #define ILGT_ASYNC 0x00000001L #endif /* Bitmap handle special value */ #if (_WIN32_WINNT >= 0x0600) #define HBITMAP_CALLBACK ((HBITMAP)-1) #endif /* ImageList_Copy() flags */ #if (_WIN32_IE >= 0x0300) #define ILCF_MOVE 0x00000000L #define ILCF_SWAP 0x00000001L #endif /* ImageList_ReadEx()/ImageList_WriteEx() flags */ #if (_WIN32_WINNT >= 0x0501) && defined( __objidl_h__ ) #define ILP_NORMAL 0L #define ILP_DOWNLEVEL 1L #endif /* Macro to convert an image list interface pointer to a handle */ #ifdef __cplusplus #define IImageListToHIMAGELIST( x ) reinterpret_cast< HIMAGELIST >( x ) #else #define IImageListToHIMAGELIST( x ) ((HIMAGELIST)(x)) #endif /* Macro to convert image indices to overlay masks */ #define INDEXTOOVERLAYMASK( x ) ((x) << 8) /* Common control window classes */ #define ANIMATE_CLASSA "SysAnimate32" #define ANIMATE_CLASSW L"SysAnimate32" #define HOTKEY_CLASSA "msctls_hotkey32" #define HOTKEY_CLASSW L"msctls_hotkey32" #define PROGRESS_CLASSA "msctls_progress32" #define PROGRESS_CLASSW L"msctls_progress32" #define STATUSCLASSNAMEA "msctls_statusbar32" #define STATUSCLASSNAMEW L"msctls_statusbar32" #define TOOLBARCLASSNAMEA "ToolbarWindow32" #define TOOLBARCLASSNAMEW L"ToolbarWindow32" #define TOOLTIPS_CLASSA "tooltips_class32" #define TOOLTIPS_CLASSW L"tooltips_class32" #define TRACKBAR_CLASSA "msctls_trackbar32" #define TRACKBAR_CLASSW L"msctls_trackbar32" #define UPDOWN_CLASSA "msctls_updown32" #define UPDOWN_CLASSW L"msctls_updown32" #define WC_HEADERA "SysHeader32" #define WC_HEADERW L"SysHeader32" #define WC_LISTVIEWA "SysListView32" #define WC_LISTVIEWW L"SysListView32" #define WC_TABCONTROLA "SysTabControl32" #define WC_TABCONTROLW L"SysTabControl32" #define WC_TREEVIEWA "SysTreeView32" #define WC_TREEVIEWW L"SysTreeView32" #if (_WIN32_IE >= 0x0300) #define DATETIMEPICK_CLASSA "SysDateTimePick32" #define DATETIMEPICK_CLASSW L"SysDateTimePick32" #define MONTHCAL_CLASSA "SysMonthCal32" #define MONTHCAL_CLASSW L"SysMonthCal32" #define REBARCLASSNAMEA "ReBarWindow32" #define REBARCLASSNAMEW L"ReBarWindow32" #define WC_COMBOBOXEXA "ComboBoxEx32" #define WC_COMBOBOXEXW L"ComboBoxEx32" #endif #if (_WIN32_IE >= 0x0400) #define WC_BUTTONA "Button" #define WC_BUTTONW L"Button" #define WC_COMBOBOXA "ComboBox" #define WC_COMBOBOXW L"ComboBox" #define WC_EDITA "Edit" #define WC_EDITW L"Edit" #define WC_IPADDRESSA "SysIPAddress32" #define WC_IPADDRESSW L"SysIPAddress32" #define WC_LISTBOXA "ListBox" #define WC_LISTBOXW L"ListBox" #define WC_NATIVEFONTCTLA "NativeFontCtl" #define WC_NATIVEFONTCTLW L"NativeFontCtl" #define WC_PAGESCROLLERA "SysPager" #define WC_PAGESCROLLERW L"SysPager" #define WC_SCROLLBARA "ScrollBar" #define WC_SCROLLBARW L"ScrollBar" #define WC_STATICA "Static" #define WC_STATICW L"Static" #endif #if (_WIN32_WINNT >= 0x0501) #define WC_LINK L"SysLink" #endif #ifdef UNICODE #define ANIMATE_CLASS ANIMATE_CLASSW #define HOTKEY_CLASS HOTKEY_CLASSW #define PROGRESS_CLASS PROGRESS_CLASSW #define STATUSCLASSNAME STATUSCLASSNAMEW #define TOOLBARCLASSNAME TOOLBARCLASSNAMEW #define TOOLTIPS_CLASS TOOLTIPS_CLASSW #define TRACKBAR_CLASS TRACKBAR_CLASSW #define UPDOWN_CLASS UPDOWN_CLASSW #define WC_HEADER WC_HEADERW #define WC_LISTVIEW WC_LISTVIEWW #define WC_TABCONTROL WC_TABCONTROLW #define WC_TREEVIEW WC_TREEVIEWW #if (_WIN32_IE >= 0x0300) #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW #define MONTHCAL_CLASS MONTHCAL_CLASSW #define REBARCLASSNAME REBARCLASSNAMEW #define WC_COMBOBOXEX WC_COMBOBOXEXW #endif #if (_WIN32_IE >= 0x0400) #define WC_BUTTON WC_BUTTONW #define WC_COMBOBOX WC_COMBOBOXW #define WC_EDIT WC_EDITW #define WC_IPADDRESS WC_IPADDRESSW #define WC_LISTBOX WC_LISTBOXW #define WC_NATIVEFONTCTL WC_NATIVEFONTCTLW #define WC_PAGESCROLLER WC_PAGESCROLLERW #define WC_SCROLLBAR WC_SCROLLBARW #define WC_STATIC WC_STATICW #endif #else #define ANIMATE_CLASS ANIMATE_CLASSA #define HOTKEY_CLASS HOTKEY_CLASSA #define PROGRESS_CLASS PROGRESS_CLASSA #define STATUSCLASSNAME STATUSCLASSNAMEA #define TOOLBARCLASSNAME TOOLBARCLASSNAMEA #define TOOLTIPS_CLASS TOOLTIPS_CLASSA #define TRACKBAR_CLASS TRACKBAR_CLASSA #define UPDOWN_CLASS UPDOWN_CLASSA #define WC_HEADER WC_HEADERA #define WC_LISTVIEW WC_LISTVIEWA #define WC_TABCONTROL WC_TABCONTROLA #define WC_TREEVIEW WC_TREEVIEWA #if (_WIN32_IE >= 0x0300) #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA #define MONTHCAL_CLASS MONTHCAL_CLASSA #define REBARCLASSNAME REBARCLASSNAMEA #define WC_COMBOBOXEX WC_COMBOBOXEXA #endif #if (_WIN32_IE >= 0x0400) #define WC_BUTTON WC_BUTTONA #define WC_COMBOBOX WC_COMBOBOXA #define WC_EDIT WC_EDITA #define WC_IPADDRESS WC_IPADDRESSA #define WC_LISTBOX WC_LISTBOXA #define WC_NATIVEFONTCTL WC_NATIVEFONTCTLA #define WC_PAGESCROLLER WC_PAGESCROLLERA #define WC_SCROLLBAR WC_SCROLLBARA #define WC_STATIC WC_STATICA #endif #endif /* Header styles */ #define HDS_HORZ 0x0000L #define HDS_BUTTONS 0x0002L #if (_WIN32_IE >= 0x0300) #define HDS_HOTTRACK 0x0004L #endif #define HDS_HIDDEN 0x0008L #if (_WIN32_IE >= 0x0300) #define HDS_DRAGDROP 0x0040L #define HDS_FULLDRAG 0x0080L #endif #if (_WIN32_IE >= 0x0500) #define HDS_FILTERBAR 0x0100L #endif #if (_WIN32_WINNT >= 0x0501) #define HDS_FLAT 0x0200L #endif #if (_WIN32_WINNT >= 0x0600) #define HDS_CHECKBOXES 0x0400L #define HDS_NOSIZING 0x0800L #define HDS_OVERFLOW 0x1000L #endif /* Header filter types */ #if (_WIN32_IE >= 0x0500) #define HDFT_ISSTRING 0x0000 #define HDFT_ISNUMBER 0x0001 #define HDFT_ISDATE 0x0002 #define HDFT_HASNOVALUE 0x8000 #endif /* Header item masks */ #define HDI_WIDTH 0x0001 #define HDI_HEIGHT HDI_WIDTH #define HDI_TEXT 0x0002 #define HDI_FORMAT 0x0004 #define HDI_LPARAM 0x0008 #define HDI_BITMAP 0x0010 #if (_WIN32_IE >= 0x0300) #define HDI_IMAGE 0x0020 #define HDI_DI_SETITEM 0x0040 #define HDI_ORDER 0x0080 #endif #if (_WIN32_IE >= 0x0500) #define HDI_FILTER 0x0100 #endif #if (_WIN32_WINNT >= 0x0600) #define HDI_STATE 0x0200 #endif /* Header flags */ #define HDF_LEFT 0x00000000 #define HDF_RIGHT 0x00000001 #define HDF_CENTER 0x00000002 #define HDF_JUSTIFYMASK 0x00000003 #define HDF_RTLREADING 0x00000004 #if (_WIN32_WINNT >= 0x0600) #define HDF_CHECKBOX 0x00000040 #define HDF_CHECKED 0x00000080 #define HDF_FIXEDWIDTH 0x00000100 #endif #if (_WIN32_WINNT >= 0x0501) #define HDF_SORTDOWN 0x00000200 #define HDF_SORTUP 0x00000400 #endif #if (_WIN32_IE >= 0x0300) #define HDF_IMAGE 0x00000800 #define HDF_BITMAP_ON_RIGHT 0x00001000 #endif #define HDF_BITMAP 0x00002000 #define HDF_STRING 0x00004000 #define HDF_OWNERDRAW 0x00008000 #if (_WIN32_WINNT >= 0x0600) #define HDF_SPLITBUTTON 0x01000000 #endif /* Header item states */ #if (_WIN32_WINNT >= 0x0600) #define HDIS_FOCUSED 0x00000001 #endif /* Header messages */ #define HDM_GETITEMCOUNT (HDM_FIRST + 0) #define HDM_INSERTITEMA (HDM_FIRST + 1) #define HDM_DELETEITEM (HDM_FIRST + 2) #define HDM_GETITEMA (HDM_FIRST + 3) #define HDM_SETITEMA (HDM_FIRST + 4) #define HDM_LAYOUT (HDM_FIRST + 5) #define HDM_HITTEST (HDM_FIRST + 6) #if (_WIN32_IE >= 0x0300) #define HDM_GETITEMRECT (HDM_FIRST + 7) #define HDM_SETIMAGELIST (HDM_FIRST + 8) #define HDM_GETIMAGELIST (HDM_FIRST + 9) #endif #define HDM_INSERTITEMW (HDM_FIRST + 10) #define HDM_GETITEMW (HDM_FIRST + 11) #define HDM_SETITEMW (HDM_FIRST + 12) #if (_WIN32_IE >= 0x0300) #define HDM_ORDERTOINDEX (HDM_FIRST + 15) #define HDM_CREATEDRAGIMAGE (HDM_FIRST + 16) #define HDM_GETORDERARRAY (HDM_FIRST + 17) #define HDM_SETORDERARRAY (HDM_FIRST + 18) #define HDM_SETHOTDIVIDER (HDM_FIRST + 19) #endif #if (_WIN32_IE >= 0x0500) #define HDM_SETBITMAPMARGIN (HDM_FIRST + 20) #define HDM_GETBITMAPMARGIN (HDM_FIRST + 21) #define HDM_SETFILTERCHANGETIMEOUT (HDM_FIRST + 22) #define HDM_EDITFILTER (HDM_FIRST + 23) #define HDM_CLEARFILTER (HDM_FIRST + 24) #endif #if (_WIN32_WINNT >= 0x0600) #define HDM_GETITEMDROPDOWNRECT (HDM_FIRST + 25) #define HDM_GETOVERFLOWRECT (HDM_FIRST + 26) #define HDM_GETFOCUSEDITEM (HDM_FIRST + 27) #define HDM_SETFOCUSEDITEM (HDM_FIRST + 28) #endif #if (_WIN32_IE >= 0x0400) #define HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #if (_WIN32_IE >= 0x0600) #define HDM_TRANSLATEACCELERATOR CCM_TRANSLATEACCELERATOR #endif #ifdef UNICODE #define HDM_INSERTITEM HDM_INSERTITEMW #define HDM_GETITEM HDM_GETITEMW #define HDM_SETITEM HDM_SETITEMW #else #define HDM_INSERTITEM HDM_INSERTITEMA #define HDM_GETITEM HDM_GETITEMA #define HDM_SETITEM HDM_SETITEMA #endif /* Header hit test flags */ #define HHT_NOWHERE 0x0001 #define HHT_ONHEADER 0x0002 #define HHT_ONDIVIDER 0x0004 #define HHT_ONDIVOPEN 0x0008 #if (_WIN32_IE >= 0x0500) #define HHT_ONFILTER 0x0010 #define HHT_ONFILTERBUTTON 0x0020 #endif #define HHT_ABOVE 0x0100 #define HHT_BELOW 0x0200 #define HHT_TORIGHT 0x0400 #define HHT_TOLEFT 0x0800 #if (_WIN32_WINNT >= 0x0600) #define HHT_ONITEMSTATEICON 0x1000 #define HHT_ONDROPDOWN 0x2000 #define HHT_ONOVERFLOW 0x4000 #endif /* HDM_SETIMAGELIST options */ #define HDSIL_NORMAL 0 #define HDSIL_STATE 1 /* Header notifications */ #define HDN_ITEMCHANGINGA (HDN_FIRST - 0) #define HDN_ITEMCHANGEDA (HDN_FIRST - 1) #define HDN_ITEMCLICKA (HDN_FIRST - 2) #define HDN_ITEMDBLCLICKA (HDN_FIRST - 3) #define HDN_DIVIDERDBLCLICKA (HDN_FIRST - 5) #define HDN_BEGINTRACKA (HDN_FIRST - 6) #define HDN_ENDTRACKA (HDN_FIRST - 7) #define HDN_TRACKA (HDN_FIRST - 8) #if (_WIN32_IE >= 0x0300) #define HDN_GETDISPINFOA (HDN_FIRST - 9) #define HDN_BEGINDRAG (HDN_FIRST - 10) #define HDN_ENDDRAG (HDN_FIRST - 11) #endif #if (_WIN32_IE >= 0x0500) #define HDN_FILTERCHANGE (HDN_FIRST - 12) #define HDN_FILTERBTNCLICK (HDN_FIRST - 13) #endif #if (_WIN32_IE >= 0x0600) #define HDN_BEGINFILTEREDIT (HDN_FIRST - 14) #define HDN_ENDFILTEREDIT (HDN_FIRST - 15) #endif #if (_WIN32_WINNT >= 0x0600) #define HDN_ITEMSTATEICONCLICK (HDN_FIRST - 16) #define HDN_ITEMKEYDOWN (HDN_FIRST - 17) #define HDN_DROPDOWN (HDN_FIRST - 18) #define HDN_OVERFLOWCLICK (HDN_FIRST - 19) #endif #define HDN_ITEMCHANGINGW (HDN_FIRST - 20) #define HDN_ITEMCHANGEDW (HDN_FIRST - 21) #define HDN_ITEMCLICKW (HDN_FIRST - 22) #define HDN_ITEMDBLCLICKW (HDN_FIRST - 23) #define HDN_DIVIDERDBLCLICKW (HDN_FIRST - 25) #define HDN_BEGINTRACKW (HDN_FIRST - 26) #define HDN_ENDTRACKW (HDN_FIRST - 27) #define HDN_TRACKW (HDN_FIRST - 28) #if (_WIN32_IE >= 0x0300) #define HDN_GETDISPINFOW (HDN_FIRST - 29) #endif #ifdef UNICODE #define HDN_ITEMCHANGING HDN_ITEMCHANGINGW #define HDN_ITEMCHANGED HDN_ITEMCHANGEDW #define HDN_ITEMCLICK HDN_ITEMCLICKW #define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKW #define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKW #define HDN_BEGINTRACK HDN_BEGINTRACKW #define HDN_ENDTRACK HDN_ENDTRACKW #if (_WIN32_IE >= 0x0300) #define HDN_GETDISPINFO HDN_GETDISPINFOW #endif #else #define HDN_ITEMCHANGING HDN_ITEMCHANGINGA #define HDN_ITEMCHANGED HDN_ITEMCHANGEDA #define HDN_ITEMCLICK HDN_ITEMCLICKA #define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKA #define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKA #define HDN_BEGINTRACK HDN_BEGINTRACKA #define HDN_ENDTRACK HDN_ENDTRACKA #if (_WIN32_IE >= 0x0300) #define HDN_GETDISPINFO HDN_GETDISPINFOA #endif #endif /* CreateMappedBitmap() flags */ #define CMB_MASKED 0x00000002 /* Toolbar button states */ #define TBSTATE_CHECKED 0x01 #define TBSTATE_PRESSED 0x02 #define TBSTATE_ENABLED 0x04 #define TBSTATE_HIDDEN 0x08 #define TBSTATE_INDETERMINATE 0x10 #define TBSTATE_WRAP 0x20 #if (_WIN32_IE >= 0x0300) #define TBSTATE_ELLIPSES 0x40 #endif #if (_WIN32_IE >= 0x0400) #define TBSTATE_MARKED 0x80 #endif /* Toolbar button styles */ #define TBSTYLE_BUTTON 0x00 #define TBSTYLE_SEP 0x01 #define TBSTYLE_CHECK 0x02 #define TBSTYLE_GROUP 0x04 #define TBSTYLE_CHECKGROUP (TBSTYLE_GROUP | TBSTYLE_CHECK) #if (_WIN32_IE >= 0x0300) #define TBSTYLE_DROPDOWN 0x08 #endif #if (_WIN32_IE >= 0x0400) #define TBSTYLE_AUTOSIZE 0x10 #define TBSTYLE_NOPREFIX 0x20 #endif #if (_WIN32_IE >= 0x0500) #define BTNS_BUTTON TBSTYLE_BUTTON #define BTNS_SEP TBSTYLE_SEP #define BTNS_CHECK TBSTYLE_CHECK #define BTNS_GROUP TBSTYLE_GROUP #define BTNS_CHECKGROUP TBSTYLE_CHECKGROUP #define BTNS_DROPDOWN TBSTYLE_DROPDOWN #define BTNS_AUTOSIZE TBSTYLE_AUTOSIZE #define BTNS_NOPREFIX TBSTYLE_NOPREFIX #endif #if (_WIN32_IE >= 0x0501) #define BTNS_SHOWTEXT 0x40 #endif #if (_WIN32_IE >= 0x0500) #define BTNS_WHOLEDROPDOWN 0x80 #endif /* Toolbar styles */ #define TBSTYLE_TOOLTIPS 0x0100L #define TBSTYLE_WRAPABLE 0x0200L #define TBSTYLE_ALTDRAG 0x0400L #if (_WIN32_IE >= 0x0300) #define TBSTYLE_FLAT 0x0800L #define TBSTYLE_LIST 0x1000L #define TBSTYLE_CUSTOMERASE 0x2000L #endif #if (_WIN32_IE >= 0x0400) #define TBSTYLE_REGISTERDROP 0x4000L #define TBSTYLE_TRANSPARENT 0x8000L #endif /* Toolbar extended styles */ #define TBSTYLE_EX_DRAWDDARROWS 0x00000001L #if (_WIN32_IE >= 0x0501) #define TBSTYLE_EX_MIXEDBUTTONS 0x00000008L #define TBSTYLE_EX_HIDECLIPPEDBUTTONS 0x00000010L #endif #if (_WIN32_WINNT >= 0x0501) #define TBSTYLE_EX_DOUBLEBUFFER 0x00000080L #endif /* Toolbar custom draw return flags */ #if (_WIN32_IE >= 0x0400) #define TBCDRF_NOEDGES 0x00010000L #define TBCDRF_HILITEHOTTRACK 0x00020000L #define TBCDRF_NOOFFSET 0x00040000L #define TBCDRF_NOMARK 0x00080000L #define TBCDRF_NOETCHEDEFFECT 0x00100000L #endif #if (_WIN32_IE >= 0x0500) #define TBCDRF_BLENDICON 0x00200000L #define TBCDRF_NOBACKGROUND 0x00400000L #endif #if (_WIN32_WINNT >= 0x0600) #define TBCDRF_USECDCOLORS 0x00800000L #endif /* Toolbar messages */ #define TB_ENABLEBUTTON (WM_USER + 1) #define TB_CHECKBUTTON (WM_USER + 2) #define TB_PRESSBUTTON (WM_USER + 3) #define TB_HIDEBUTTON (WM_USER + 4) #define TB_INDETERMINATE (WM_USER + 5) #if (_WIN32_IE >= 0x0400) #define TB_MARKBUTTON (WM_USER + 6) #endif #define TB_ISBUTTONENABLED (WM_USER + 9) #define TB_ISBUTTONCHECKED (WM_USER + 10) #define TB_ISBUTTONPRESSED (WM_USER + 11) #define TB_ISBUTTONHIDDEN (WM_USER + 12) #define TB_ISBUTTONINDETERMINATE (WM_USER + 13) #if (_WIN32_IE >= 0x0400) #define TB_ISBUTTONHIGHLIGHTED (WM_USER + 14) #endif #define TB_SETSTATE (WM_USER + 17) #define TB_GETSTATE (WM_USER + 18) #define TB_ADDBITMAP (WM_USER + 19) #if (_WIN32_IE >= 0x0400) #define TB_ADDBUTTONSA (WM_USER + 20) #define TB_INSERTBUTTONA (WM_USER + 21) #else #define TB_ADDBUTTONS (WM_USER + 20) #define TB_INSERTBUTTON (WM_USER + 21) #endif #define TB_DELETEBUTTON (WM_USER + 22) #define TB_GETBUTTON (WM_USER + 23) #define TB_BUTTONCOUNT (WM_USER + 24) #define TB_COMMANDTOINDEX (WM_USER + 25) #define TB_SAVERESTOREA (WM_USER + 26) #define TB_CUSTOMIZE (WM_USER + 27) #define TB_ADDSTRINGA (WM_USER + 28) #define TB_GETITEMRECT (WM_USER + 29) #define TB_BUTTONSTRUCTSIZE (WM_USER + 30) #define TB_SETBUTTONSIZE (WM_USER + 31) #define TB_SETBITMAPSIZE (WM_USER + 32) #define TB_AUTOSIZE (WM_USER + 33) #define TB_GETTOOLTIPS (WM_USER + 35) #define TB_SETTOOLTIPS (WM_USER + 36) #define TB_SETPARENT (WM_USER + 37) #define TB_SETROWS (WM_USER + 39) #define TB_GETROWS (WM_USER + 40) #define TB_GETBITMAPFLAGS (WM_USER + 41) #define TB_SETCMDID (WM_USER + 42) #define TB_CHANGEBITMAP (WM_USER + 43) #define TB_GETBITMAP (WM_USER + 44) #define TB_GETBUTTONTEXTA (WM_USER + 45) #define TB_REPLACEBITMAP (WM_USER + 46) #if (_WIN32_IE >= 0x0300) #define TB_SETINDENT (WM_USER + 47) #define TB_SETIMAGELIST (WM_USER + 48) #define TB_GETIMAGELIST (WM_USER + 49) #define TB_LOADIMAGES (WM_USER + 50) #define TB_GETRECT (WM_USER + 51) #define TB_SETHOTIMAGELIST (WM_USER + 52) #define TB_GETHOTIMAGELIST (WM_USER + 53) #define TB_SETDISABLEDIMAGELIST (WM_USER + 54) #define TB_GETDISABLEDIMAGELIST (WM_USER + 55) #define TB_SETSTYLE (WM_USER + 56) #define TB_GETSTYLE (WM_USER + 57) #define TB_GETBUTTONSIZE (WM_USER + 58) #define TB_SETBUTTONWIDTH (WM_USER + 59) #define TB_SETMAXTEXTROWS (WM_USER + 60) #define TB_GETTEXTROWS (WM_USER + 61) #endif #if (_WIN32_IE >= 0x0400) #define TB_GETOBJECT (WM_USER + 62) #define TB_GETBUTTONINFOW (WM_USER + 63) #define TB_SETBUTTONINFOW (WM_USER + 64) #define TB_GETBUTTONINFOA (WM_USER + 65) #define TB_SETBUTTONINFOA (WM_USER + 66) #define TB_INSERTBUTTONW (WM_USER + 67) #define TB_ADDBUTTONSW (WM_USER + 68) #define TB_HITTEST (WM_USER + 69) #define TB_SETDRAWTEXTFLAGS (WM_USER + 70) #define TB_GETHOTITEM (WM_USER + 71) #define TB_SETHOTITEM (WM_USER + 72) #define TB_SETANCHORHIGHLIGHT (WM_USER + 73) #define TB_GETANCHORHIGHLIGHT (WM_USER + 74) #endif #define TB_GETBUTTONTEXTW (WM_USER + 75) #define TB_SAVERESTOREW (WM_USER + 76) #define TB_ADDSTRINGW (WM_USER + 77) #if (_WIN32_IE >= 0x0400) #define TB_MAPACCELERATORA (WM_USER + 78) #define TB_GETINSERTMARK (WM_USER + 79) #define TB_SETINSERTMARK (WM_USER + 80) #define TB_INSERTMARKHITTEST (WM_USER + 81) #define TB_MOVEBUTTON (WM_USER + 82) #define TB_GETMAXSIZE (WM_USER + 83) #define TB_SETEXTENDEDSTYLE (WM_USER + 84) #define TB_GETEXTENDEDSTYLE (WM_USER + 85) #define TB_GETPADDING (WM_USER + 86) #define TB_SETPADDING (WM_USER + 87) #define TB_SETINSERTMARKCOLOR (WM_USER + 88) #define TB_GETINSERTMARKCOLOR (WM_USER + 89) #define TB_MAPACCELERATORW (WM_USER + 90) #endif #if (_WIN32_IE >= 0x0500) #define TB_GETSTRINGW (WM_USER + 91) #define TB_GETSTRINGA (WM_USER + 92) #define TB_SETHOTITEM2 (WM_USER + 94) #define TB_SETLISTGAP (WM_USER + 96) #define TB_GETIMAGELISTCOUNT (WM_USER + 98) #define TB_GETIDEALSIZE (WM_USER + 99) #define TB_TRANSLATEACCELERATOR CCM_TRANSLATEACCELERATOR #endif #if (_WIN32_WINNT >= 0x0501) #define TB_GETMETRICS (WM_USER + 101) #define TB_SETMETRICS (WM_USER + 102) #endif #if (_WIN32_WINNT >= 0x0600) #define TB_GETITEMDROPDOWNRECT (WM_USER + 103) #define TB_SETPRESSEDIMAGELIST (WM_USER + 104) #define TB_GETPRESSEDIMAGELIST (WM_USER + 105) #endif #if (_WIN32_IE >= 0x0400) #define TB_SETCOLORSCHEME CCM_SETCOLORSCHEME #define TB_GETCOLORSCHEME CCM_GETCOLORSCHEME #define TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #if (_WIN32_IE >= 0x0501) #define TB_SETWINDOWTHEME CCM_SETWINDOWTHEME #endif #ifdef UNICODE #define TB_SAVERESTORE TB_SAVERESTOREW #define TB_ADDSTRING TB_ADDSTRINGW #define TB_GETBUTTONTEXT TB_GETBUTTONTEXTW #if (_WIN32_IE >= 0x0400) #define TB_GETBUTTONINFO TB_GETBUTTONINFOW #define TB_SETBUTTONINFO TB_SETBUTTONINFOW #define TB_INSERTBUTTON TB_INSERTBUTTONW #define TB_ADDBUTTONS TB_ADDBUTTONSW #define TB_MAPACCELERATOR TB_MAPACCELERATORW #endif #if (_WIN32_IE >= 0x0500) #define TB_GETSTRING TB_GETSTRINGW #endif #else #define TB_SAVERESTORE TB_SAVERESTOREA #define TB_ADDSTRING TB_ADDSTRINGA #define TB_GETBUTTONTEXT TB_GETBUTTONTEXTA #if (_WIN32_IE >= 0x0400) #define TB_GETBUTTONINFO TB_GETBUTTONINFOA #define TB_SETBUTTONINFO TB_SETBUTTONINFOA #define TB_INSERTBUTTON TB_INSERTBUTTONA #define TB_ADDBUTTONS TB_ADDBUTTONSA #define TB_MAPACCELERATOR TB_MAPACCELERATORA #endif #if (_WIN32_IE >= 0x0500) #define TB_GETSTRING TB_GETSTRINGA #endif #endif /* Instance handle for COMCTL32.DLL */ #define HINST_COMMCTRL ((HINSTANCE)-1) /* Standard bitmap handles for toolbars */ #define IDB_STD_SMALL_COLOR 0 #define IDB_STD_LARGE_COLOR 1 #define IDB_VIEW_SMALL_COLOR 4 #define IDB_VIEW_LARGE_COLOR 5 #if (_WIN32_IE >= 0x0300) #define IDB_HIST_SMALL_COLOR 8 #define IDB_HIST_LARGE_COLOR 9 #endif #if (_WIN32_WINNT >= 0x0600) #define IDB_HIST_NORMAL 12 #define IDB_HIST_HOT 13 #define IDB_HIST_DISABLED 14 #define IDB_HIST_PRESSED 15 #endif /* Icon indices for standard bitmaps */ #define STD_CUT 0 #define STD_COPY 1 #define STD_PASTE 2 #define STD_UNDO 3 #define STD_REDOW 4 #define STD_DELETE 5 #define STD_FILENEW 6 #define STD_FILEOPEN 7 #define STD_FILESAVE 8 #define STD_PRINTPRE 9 #define STD_PROPERTIES 10 #define STD_HELP 11 #define STD_FIND 12 #define STD_REPLACE 13 #define STD_PRINT 14 #define VIEW_LARGEICONS 0 #define VIEW_SMALLICONS 1 #define VIEW_LIST 2 #define VIEW_DETAILS 3 #define VIEW_SORTNAME 4 #define VIEW_SORTSIZE 5 #define VIEW_SORTDATE 6 #define VIEW_SORTTYPE 7 #define VIEW_PARENTFOLDER 8 #define VIEW_NETCONNECT 9 #define VIEW_NETDISCONNECT 10 #define VIEW_NEWFOLDER 11 #if (_WIN32_IE >= 0x0400) #define VIEW_VIEWMENU 12 #endif #if (_WIN32_IE >= 0x0300) #define HIST_BACK 0 #define HIST_FORWARD 1 #define HIST_FAVORITES 2 #define HIST_ADDTOFAVORITES 3 #define HIST_VIEWTREE 4 #endif /* Toolbar insert mark flags */ #if (_WIN32_IE >= 0x0400) #define TBIMHT_AFTER 0x00000001L #define TBIMHT_BACKGROUND 0x00000002L #endif /* Toolbar bitmap flags */ #define TBBF_LARGE 0x0001 /* Toolbar button information masks */ #if (_WIN32_IE >= 0x0400) #define TBIF_IMAGE 0x00000001 #define TBIF_TEXT 0x00000002 #define TBIF_STATE 0x00000004 #define TBIF_STYLE 0x00000008 #define TBIF_LPARAM 0x00000010 #define TBIF_COMMAND 0x00000020 #define TBIF_SIZE 0x00000040 #endif #if (_WIN32_IE >= 0x0500) #define TBIF_BYINDEX 0x80000000 #endif /* Toolbar metric masks */ #if (_WIN32_WINNT >= 0x0501) #define TBMF_PAD 0x00000001 #define TBMF_BARPAD 0x00000002 #define TBMF_BUTTONSPACING 0x00000004 #endif /* Toolbar notifications */ #define TBN_GETBUTTONINFOA (TBN_FIRST - 0) #define TBN_BEGINDRAG (TBN_FIRST - 1) #define TBN_ENDDRAG (TBN_FIRST - 2) #define TBN_BEGINADJUST (TBN_FIRST - 3) #define TBN_ENDADJUST (TBN_FIRST - 4) #define TBN_RESET (TBN_FIRST - 5) #define TBN_QUERYINSERT (TBN_FIRST - 6) #define TBN_QUERYDELETE (TBN_FIRST - 7) #define TBN_TOOLBARCHANGE (TBN_FIRST - 8) #define TBN_CUSTHELP (TBN_FIRST - 9) #if (_WIN32_IE >= 0x0300) #define TBN_DROPDOWN (TBN_FIRST - 10) #endif #if (_WIN32_IE >= 0x0400) #define TBN_GETOBJECT (TBN_FIRST - 12) #define TBN_HOTITEMCHANGE (TBN_FIRST - 13) #define TBN_DRAGOUT (TBN_FIRST - 14) #define TBN_DELETINGBUTTON (TBN_FIRST - 15) #define TBN_GETDISPINFOA (TBN_FIRST - 16) #define TBN_GETDISPINFOW (TBN_FIRST - 17) #define TBN_GETINFOTIPA (TBN_FIRST - 18) #define TBN_GETINFOTIPW (TBN_FIRST - 19) #define TBN_GETBUTTONINFOW (TBN_FIRST - 20) #endif #if (_WIN32_IE >= 0x0500) #define TBN_RESTORE (TBN_FIRST - 21) #define TBN_SAVE (TBN_FIRST - 22) #define TBN_INITCUSTOMIZE (TBN_FIRST - 23) #define TBN_WRAPHOTITEM (TBN_FIRST - 24) #define TBN_DUPACCELERATOR (TBN_FIRST - 25) #define TBN_WRAPACCELERATOR (TBN_FIRST - 26) #define TBN_DRAGOVER (TBN_FIRST - 27) #define TBN_MAPACCELERATOR (TBN_FIRST - 28) #endif #ifdef UNICODE #define TBN_GETBUTTONINFO TBN_GETBUTTONINFOW #if (_WIN32_IE >= 0x0400) #define TBN_GETDISPINFO TBN_GETDISPINFOW #define TBN_GETINFOTIP TBN_GETINFOTIPW #endif #else #define TBN_GETBUTTONINFO TBN_GETBUTTONINFOA #if (_WIN32_IE >= 0x0400) #define TBN_GETDISPINFO TBN_GETDISPINFOA #define TBN_GETINFOTIP TBN_GETINFOTIPA #endif #endif /* Hot item change flags */ #if (_WIN32_IE >= 0x0400) #define HICF_OTHER 0x00000000L #define HICF_MOUSE 0x00000001L #define HICF_ARROWKEYS 0x00000002L #define HICF_ACCELERATOR 0x00000004L #define HICF_DUPACCEL 0x00000008L #define HICF_ENTERING 0x00000010L #define HICF_LEAVING 0x00000020L #define HICF_RESELECT 0x00000040L #define HICF_LMOUSE 0x00000080L #define HICF_TOGGLEDROPDOWN 0x00000100L #endif /* TBN_INITCUSTOMIZE return flags */ #if (_WIN32_IE >= 0x0500) #define TBNRF_HIDEHELP 0x00000001L #define TBNRF_ENDCUSTOMIZE 0x00000002L #endif /* Toolbar display information masks */ #if (_WIN32_IE >= 0x0400) #define TBNF_IMAGE 0x00000001L #define TBNF_TEXT 0x00000002L #define TBNF_DI_SETITEM 0x10000000L #endif /* TBN_DROPDOWN return codes */ #if (_WIN32_IE >= 0x0400) #define TBDDRET_DEFAULT 0L #define TBDDRET_NODEFAULT 1L #define TBDDRET_TREATPRESSED 2L #endif /* Rebar information masks */ #if (_WIN32_IE >= 0x0300) #define RBIM_IMAGELIST 0x00000001 #endif /* Rebar styles */ #if (_WIN32_IE >= 0x0300) #define RBS_TOOLTIPS 0x0100L #define RBS_VARHEIGHT 0x0200L #define RBS_BANDBORDERS 0x0400L #define RBS_FIXEDORDER 0x0800L #endif #if (_WIN32_IE >= 0x0400) #define RBS_REGISTERDROP 0x1000L #define RBS_AUTOSIZE 0x2000L #define RBS_VERTICALGRIPPER 0x4000L #define RBS_DBLCLKTOGGLE 0x8000L #endif /* Rebar band styles */ #if (_WIN32_IE >= 0x0300) #define RBBS_BREAK 0x00000001 #define RBBS_FIXEDSIZE 0x00000002 #define RBBS_CHILDEDGE 0x00000004 #define RBBS_HIDDEN 0x00000008 #define RBBS_NOVERT 0x00000010 #define RBBS_FIXEDBMP 0x00000020 #endif #if (_WIN32_IE >= 0x0400) #define RBBS_VARIABLEHEIGHT 0x00000040 #define RBBS_GRIPPERALWAYS 0x00000080 #define RBBS_NOGRIPPER 0x00000100 #endif #if (_WIN32_IE >= 0x0500) #define RBBS_USECHEVRON 0x00000200 #endif #if (_WIN32_IE >= 0x0501) #define RBBS_HIDETITLE 0x00000400 #define RBBS_TOPALIGN 0x00000800 #endif /* Rebar band information masks */ #if (_WIN32_IE >= 0x0300) #define RBBIM_STYLE 0x00000001 #define RBBIM_COLORS 0x00000002 #define RBBIM_TEXT 0x00000004 #define RBBIM_IMAGE 0x00000008 #define RBBIM_CHILD 0x00000010 #define RBBIM_CHILDSIZE 0x00000020 #define RBBIM_SIZE 0x00000040 #define RBBIM_BACKGROUND 0x00000080 #define RBBIM_ID 0x00000100 #endif #if (_WIN32_IE >= 0x0400) #define RBBIM_IDEALSIZE 0x00000200 #define RBBIM_LPARAM 0x00000400 #define RBBIM_HEADERSIZE 0x00000800 #endif #if (_WIN32_WINNT >= 0x0600) #define RBBIM_CHEVRONLOCATION 0x00001000 #define RBBIM_CHEVRONSTATE 0x00002000 #endif /* Rebar messages */ #if (_WIN32_IE >= 0x0300) #define RB_INSERTBANDA (WM_USER + 1) #define RB_DELETEBAND (WM_USER + 2) #define RB_GETBARINFO (WM_USER + 3) #define RB_SETBARINFO (WM_USER + 4) #if (_WIN32_IE < 0x0400) #define RB_GETBANDINFO (WM_USER + 5) #endif #define RB_SETBANDINFOA (WM_USER + 6) #define RB_SETPARENT (WM_USER + 7) #endif #if (_WIN32_IE >= 0x0400) #define RB_HITTEST (WM_USER + 8) #define RB_GETRECT (WM_USER + 9) #endif #if (_WIN32_IE >= 0x0300) #define RB_INSERTBANDW (WM_USER + 10) #define RB_SETBANDINFOW (WM_USER + 11) #define RB_GETBANDCOUNT (WM_USER + 12) #define RB_GETROWCOUNT (WM_USER + 13) #define RB_GETROWHEIGHT (WM_USER + 14) #endif #if (_WIN32_IE >= 0x0400) #define RB_IDTOINDEX (WM_USER + 16) #define RB_GETTOOLTIPS (WM_USER + 17) #define RB_SETTOOLTIPS (WM_USER + 18) #define RB_SETBKCOLOR (WM_USER + 19) #define RB_GETBKCOLOR (WM_USER + 20) #define RB_SETTEXTCOLOR (WM_USER + 21) #define RB_GETTEXTCOLOR (WM_USER + 22) #define RB_SIZETORECT (WM_USER + 23) #define RB_BEGINDRAG (WM_USER + 24) #define RB_ENDDRAG (WM_USER + 25) #define RB_DRAGMOVE (WM_USER + 26) #define RB_GETBARHEIGHT (WM_USER + 27) #define RB_GETBANDINFOW (WM_USER + 28) #define RB_GETBANDINFOA (WM_USER + 29) #define RB_MINIMIZEBAND (WM_USER + 30) #define RB_MAXIMIZEBAND (WM_USER + 31) #define RB_GETBANDBORDERS (WM_USER + 34) #define RB_SHOWBAND (WM_USER + 35) #define RB_SETPALETTE (WM_USER + 37) #define RB_GETPALETTE (WM_USER + 38) #define RB_MOVEBAND (WM_USER + 39) #endif #if (_WIN32_WINNT >= 0x0501) #define RB_GETBANDMARGINS (WM_USER + 40) #endif #if (_WIN32_IE >= 0x0600) #define RB_SETEXTENDEDSTYLE (WM_USER + 41) #define RB_GETEXTENDEDSTYLE (WM_USER + 42) #endif #if (_WIN32_IE >= 0x0500) #define RB_PUSHCHEVRON (WM_USER + 43) #endif #if (_WIN32_WINNT >= 0x0600) #define RB_SETBANDWIDTH (WM_USER + 44) #endif #if (_WIN32_IE >= 0x0300) #define RB_SETCOLORSCHEME CCM_SETCOLORSCHEME #define RB_GETCOLORSCHEME CCM_GETCOLORSCHEME #endif #if (_WIN32_IE >= 0x0400) #define RB_GETDROPTARGET CCM_GETDROPTARGET #define RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #if (_WIN32_WINNT >= 0x0501) #define RB_SETWINDOWTHEME CCM_SETWINDOWTHEME #endif #ifdef UNICODE #if (_WIN32_IE >= 0x0300) #define RB_INSERTBAND RB_INSERTBANDW #define RB_SETBANDINFO RB_SETBANDINFOW #endif #if (_WIN32_IE >= 0x0400) #define RB_GETBANDINFO RB_GETBANDINFOW #endif #else #if (_WIN32_IE >= 0x0300) #define RB_INSERTBAND RB_INSERTBANDA #define RB_SETBANDINFO RB_SETBANDINFOA #endif #if (_WIN32_IE >= 0x0400) #define RB_GETBANDINFO RB_GETBANDINFOA #endif #endif /* RB_SIZETORECT flags */ #if (_WIN32_WINNT >= 0x0501) #define RBSTR_CHANGERECT 0x0001 #endif /* Rebar notifications */ #if (_WIN32_IE >= 0x0300) #define RBN_HEIGHTCHANGE (RBN_FIRST - 0) #endif #if (_WIN32_IE >= 0x0400) #define RBN_GETOBJECT (RBN_FIRST - 1) #define RBN_LAYOUTCHANGED (RBN_FIRST - 2) #define RBN_AUTOSIZE (RBN_FIRST - 3) #define RBN_BEGINDRAG (RBN_FIRST - 4) #define RBN_ENDDRAG (RBN_FIRST - 5) #define RBN_DELETINGBAND (RBN_FIRST - 6) #define RBN_DELETEDBAND (RBN_FIRST - 7) #define RBN_CHILDSIZE (RBN_FIRST - 8) #endif #if (_WIN32_IE >= 0x0500) #define RBN_CHEVRONPUSHED (RBN_FIRST - 10) #endif #if (_WIN32_IE >= 0x0600) #define RBN_SPLITTERDRAG (RBN_FIRST - 11) #endif #if (_WIN32_IE >= 0x0500) #define RBN_MINMAX (RBN_FIRST - 21) #endif #if (_WIN32_WINNT >= 0x0501) #define RBN_AUTOBREAK (RBN_FIRST - 22) #endif /* Rebar notification masks */ #if (_WIN32_IE >= 0x0400) #define RBNM_ID 0x00000001L #define RBNM_STYLE 0x00000002L #define RBNM_LPARAM 0x00000004L #endif /* RBN_AUTOBREAK messages */ #if (_WIN32_WINNT >= 0x0501) #define RBAB_AUTOSIZE 0x00000001 #define RBAB_ADDBAND 0x00000002 #endif /* RB_HITTEST flags */ #if (_WIN32_IE >= 0x0400) #define RBHT_NOWHERE 0x00000001 #define RBHT_CAPTION 0x00000002 #define RBHT_CLIENT 0x00000003 #define RBHT_GRABBER 0x00000004 #endif #if (_WIN32_IE >= 0x0500) #define RBHT_CHEVRON 0x00000008 #endif #if (_WIN32_IE >= 0x0600) #define RBHT_SPLITTER 0x00000010 #endif /* ToolTips styles */ #define TTS_ALWAYSTIP 0x0001L #define TTS_NOPREFIX 0x0002L #if (_WIN32_IE >= 0x0500) #define TTS_NOANIMATE 0x0010L #define TTS_NOFADE 0x0020L #define TTS_BALLOON 0x0040L #define TTS_CLOSE 0x0080L #endif #if (_WIN32_WINNT >= 0x0600) #define TTS_USEVISUALSTYLE 0x0100L #endif /* ToolTips flags */ #define TTF_IDISHWND 0x00000001 #define TTF_CENTERTIP 0x00000002 #define TTF_RTLREADING 0x00000004 #define TTF_SUBCLASS 0x00000010 #if (_WIN32_IE >= 0x0300) #define TTF_TRACK 0x00000020 #define TTF_ABSOLUTE 0x00000080 #define TTF_TRANSPARENT 0x00000100 #endif #if (_WIN32_IE >= 0x0501) #define TTF_PARSELINKS 0x00001000 #endif #if (_WIN32_IE >= 0x0300) #define TTF_DI_SETITEM 0x00008000 #endif /* ToolTips delay time flags */ #define TTDT_AUTOMATIC 0 #define TTDT_RESHOW 1 #define TTDT_AUTOPOP 2 #define TTDT_INITIAL 3 /* ToolTips icons */ #define TTI_NONE 0 #define TTI_INFO 1 #define TTI_WARNING 2 #define TTI_ERROR 3 #if (_WIN32_WINNT >= 0x0600) #define TTI_INFO_LARGE 4 #define TTI_WARNING_LARGE 5 #define TTI_ERROR_LARGE 6 #endif /* ToolTips messages */ #define TTM_ACTIVATE (WM_USER + 1) #define TTM_SETDELAYTIME (WM_USER + 3) #define TTM_ADDTOOLA (WM_USER + 4) #define TTM_DELTOOLA (WM_USER + 5) #define TTM_NEWTOOLRECTA (WM_USER + 6) #define TTM_RELAYEVENT (WM_USER + 7) #define TTM_GETTOOLINFOA (WM_USER + 8) #define TTM_SETTOOLINFOA (WM_USER + 9) #define TTM_HITTESTA (WM_USER + 10) #define TTM_GETTEXTA (WM_USER + 11) #define TTM_UPDATETIPTEXTA (WM_USER + 12) #define TTM_GETTOOLCOUNT (WM_USER + 13) #define TTM_ENUMTOOLSA (WM_USER + 14) #define TTM_GETCURRENTTOOLA (WM_USER + 15) #define TTM_WINDOWFROMPOINT (WM_USER + 16) #if (_WIN32_IE >= 0x0300) #define TTM_TRACKACTIVATE (WM_USER + 17) #define TTM_TRACKPOSITION (WM_USER + 18) #define TTM_SETTIPBKCOLOR (WM_USER + 19) #define TTM_SETTIPTEXTCOLOR (WM_USER + 20) #define TTM_GETDELAYTIME (WM_USER + 21) #define TTM_GETTIPBKCOLOR (WM_USER + 22) #define TTM_GETTIPTEXTCOLOR (WM_USER + 23) #define TTM_SETMAXTIPWIDTH (WM_USER + 24) #define TTM_GETMAXTIPWIDTH (WM_USER + 25) #define TTM_SETMARGIN (WM_USER + 26) #define TTM_GETMARGIN (WM_USER + 27) #define TTM_POP (WM_USER + 28) #endif #if (_WIN32_IE >= 0x0400) #define TTM_UPDATE (WM_USER + 29) #endif #if (_WIN32_IE >= 0x0500) #define TTM_GETBUBBLESIZE (WM_USER + 30) #define TTM_ADJUSTRECT (WM_USER + 31) #define TTM_SETTITLEA (WM_USER + 32) #define TTM_SETTITLEW (WM_USER + 33) #endif #if (_WIN32_WINNT >= 0x0501) #define TTM_POPUP (WM_USER + 34) #define TTM_GETTITLE (WM_USER + 35) #endif #define TTM_ADDTOOLW (WM_USER + 50) #define TTM_DELTOOLW (WM_USER + 51) #define TTM_NEWTOOLRECTW (WM_USER + 52) #define TTM_GETTOOLINFOW (WM_USER + 53) #define TTM_SETTOOLINFOW (WM_USER + 54) #define TTM_HITTESTW (WM_USER + 55) #define TTM_GETTEXTW (WM_USER + 56) #define TTM_UPDATETIPTEXTW (WM_USER + 57) #define TTM_ENUMTOOLSW (WM_USER + 58) #define TTM_GETCURRENTTOOLW (WM_USER + 59) #if (_WIN32_WINNT >= 0x0501) #define TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME #endif #ifdef UNICODE #define TTM_ADDTOOL TTM_ADDTOOLW #define TTM_DELTOOL TTM_DELTOOLW #define TTM_NEWTOOLRECT TTM_NEWTOOLRECTW #define TTM_GETTOOLINFO TTM_GETTOOLINFOW #define TTM_SETTOOLINFO TTM_SETTOOLINFOW #define TTM_HITTEST TTM_HITTESTW #define TTM_GETTEXT TTM_GETTEXTW #define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTW #define TTM_ENUMTOOLS TTM_ENUMTOOLSW #define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLW #if (_WIN32_IE >= 0x0500) #define TTM_SETTITLE TTM_SETTITLEW #endif #else #define TTM_ADDTOOL TTM_ADDTOOLA #define TTM_DELTOOL TTM_DELTOOLA #define TTM_NEWTOOLRECT TTM_NEWTOOLRECTA #define TTM_GETTOOLINFO TTM_GETTOOLINFOA #define TTM_SETTOOLINFO TTM_SETTOOLINFOA #define TTM_HITTEST TTM_HITTESTA #define TTM_GETTEXT TTM_GETTEXTA #define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTA #define TTM_ENUMTOOLS TTM_ENUMTOOLSA #define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLA #if (_WIN32_IE >= 0x0500) #define TTM_SETTITLE TTM_SETTITLEA #endif #endif /* ToolTips notifications */ #define TTN_GETDISPINFOA (TTN_FIRST - 0) #define TTN_SHOW (TTN_FIRST - 1) #define TTN_POP (TTN_FIRST - 2) #define TTN_LINKCLICK (TTN_FIRST - 3) #define TTN_GETDISPINFOW (TTN_FIRST - 10) #ifdef UNICODE #define TTN_GETDISPINFO TTN_GETDISPINFOW #else #define TTN_GETDISPINFO TTN_GETDISPINFOA #endif #define TTN_NEEDTEXTA TTN_GETDISPINFOA #define TTN_NEEDTEXTW TTN_GETDISPINFOW #define TTN_NEEDTEXT TTN_GETDISPINFO /* Status bar styles */ #define SBARS_SIZEGRIP 0x0100L #if (_WIN32_IE >= 0x0500) #define SBARS_TOOLTIPS 0x0800L #endif /* Old status bar style name */ #if (_WIN32_IE >= 0x0400) #define SBT_TOOLTIPS 0x0800L #endif /* Status bar messages */ #define SB_SETTEXTA (WM_USER + 1) #define SB_GETTEXTA (WM_USER + 2) #define SB_GETTEXTLENGTHA (WM_USER + 3) #define SB_SETPARTS (WM_USER + 4) #define SB_GETPARTS (WM_USER + 6) #define SB_GETBORDERS (WM_USER + 7) #define SB_SETMINHEIGHT (WM_USER + 8) #define SB_SIMPLE (WM_USER + 9) #define SB_GETRECT (WM_USER + 10) #define SB_SETTEXTW (WM_USER + 11) #define SB_GETTEXTLENGTHW (WM_USER + 12) #define SB_GETTEXTW (WM_USER + 13) #if (_WIN32_IE >= 0x0300) #define SB_ISSIMPLE (WM_USER + 14) #endif #if (_WIN32_IE >= 0x0400) #define SB_SETICON (WM_USER + 15) #define SB_SETTIPTEXTA (WM_USER + 16) #define SB_SETTIPTEXTW (WM_USER + 17) #define SB_GETTIPTEXTA (WM_USER + 18) #define SB_GETTIPTEXTW (WM_USER + 19) #define SB_GETICON (WM_USER + 20) #define SB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define SB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #define SB_SETBKCOLOR CCM_SETBKCOLOR #ifdef UNICODE #define SB_SETTEXT SB_SETTEXTW #define SB_GETTEXT SB_GETTEXTW #define SB_GETTEXTLENGTH SB_GETTEXTLENGTHW #define SB_SETTIPTEXT SB_SETTIPTEXTW #define SB_GETTIPTEXT SB_GETTIPTEXTW #else #define SB_SETTEXT SB_SETTEXTA #define SB_GETTEXT SB_GETTEXTA #define SB_GETTEXTLENGTH SB_GETTEXTLENGTHA #define SB_SETTIPTEXT SB_SETTIPTEXTA #define SB_GETTIPTEXT SB_GETTIPTEXTA #endif /* Status bar types */ #define SBT_NOBORDERS 0x00000100 #define SBT_POPOUT 0x00000200 #define SBT_RTLREADING 0x00000400 #if (_WIN32_IE >= 0x0500) #define SBT_NOTABPARSING 0x00000800 #endif #define SBT_OWNERDRAW 0x00001000 /* Status bar notifications */ #if (_WIN32_IE >= 0x0400) #define SBN_SIMPLEMODECHANGE (SBN_FIRST - 0) #endif /* Status bar part special value */ #if (_WIN32_IE >= 0x0500) #define SB_SIMPLEID 0x00FF #endif /* Track bar styles */ #define TBS_AUTOTICKS 0x0001L #define TBS_VERT 0x0002L #define TBS_HORZ 0x0000L #define TBS_TOP 0x0004L #define TBS_BOTTOM 0x0000L #define TBS_LEFT 0x0004L #define TBS_RIGHT 0x0000L #define TBS_BOTH 0x0008L #define TBS_NOTICKS 0x0010L #define TBS_ENABLESELRANGE 0x0020L #define TBS_FIXEDLENGTH 0x0040L #define TBS_NOTHUMB 0x0080L #if (_WIN32_IE >= 0x0300) #define TBS_TOOLTIPS 0x0100L #endif #if (_WIN32_IE >= 0x0500) #define TBS_REVERSED 0x0200L #endif #if (_WIN32_IE >= 0x0501) #define TBS_DOWNISLEFT 0x0400L #endif #if (_WIN32_IE >= 0x0600) #define TBS_NOTIFYBEFOREMOVE 0x0800L #endif #if (NTDDI_VERSION >= 0x06000000) #define TBS_TRANSPARENTBKGND 0x1000L #endif /* Track bar messages */ #define TBM_GETPOS (WM_USER + 0) #define TBM_GETRANGEMIN (WM_USER + 1) #define TBM_GETRANGEMAX (WM_USER + 2) #define TBM_GETTIC (WM_USER + 3) #define TBM_SETTIC (WM_USER + 4) #define TBM_SETPOS (WM_USER + 5) #define TBM_SETRANGE (WM_USER + 6) #define TBM_SETRANGEMIN (WM_USER + 7) #define TBM_SETRANGEMAX (WM_USER + 8) #define TBM_CLEARTICS (WM_USER + 9) #define TBM_SETSEL (WM_USER + 10) #define TBM_SETSELSTART (WM_USER + 11) #define TBM_SETSELEND (WM_USER + 12) #define TBM_GETPTICS (WM_USER + 14) #define TBM_GETTICPOS (WM_USER + 15) #define TBM_GETNUMTICS (WM_USER + 16) #define TBM_GETSELSTART (WM_USER + 17) #define TBM_GETSELEND (WM_USER + 18) #define TBM_CLEARSEL (WM_USER + 19) #define TBM_SETTICFREQ (WM_USER + 20) #define TBM_SETPAGESIZE (WM_USER + 21) #define TBM_GETPAGESIZE (WM_USER + 22) #define TBM_SETLINESIZE (WM_USER + 23) #define TBM_GETLINESIZE (WM_USER + 24) #define TBM_GETTHUMBRECT (WM_USER + 25) #define TBM_GETCHANNELRECT (WM_USER + 26) #define TBM_SETTHUMBLENGTH (WM_USER + 27) #define TBM_GETTHUMBLENGTH (WM_USER + 28) #if (_WIN32_IE >= 0x0300) #define TBM_SETTOOLTIPS (WM_USER + 29) #define TBM_GETTOOLTIPS (WM_USER + 30) #define TBM_SETTIPSIDE (WM_USER + 31) #define TBM_SETBUDDY (WM_USER + 32) #define TBM_GETBUDDY (WM_USER + 33) #define TBM_SETPOSNOTIFY (WM_USER + 34) #endif #if (_WIN32_IE >= 0x0400) #define TBM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define TBM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif /* Track bar tip side flags */ #if (_WIN32_IE >= 0x0300) #define TBTS_TOP 0 #define TBTS_LEFT 1 #define TBTS_BOTTOM 2 #define TBTS_RIGHT 3 #endif /* Track bar commands */ #define TB_LINEUP 0 #define TB_LINEDOWN 1 #define TB_PAGEUP 2 #define TB_PAGEDOWN 3 #define TB_THUMBPOSITION 4 #define TB_THUMBTRACK 5 #define TB_TOP 6 #define TB_BOTTOM 7 #define TB_ENDTRACK 8 /* Track bar custom draw item specifiers */ #if (_WIN32_IE >= 0x0300) #define TBCD_TICS 0x00000001L #define TBCD_THUMB 0x00000002L #define TBCD_CHANNEL 0x00000003L #endif /* Track bar notifications */ #if (_WIN32_WINNT >= 0x0600) #define TRBN_THUMBPOSCHANGING (TRBN_FIRST - 1) #endif /* Drag list messages */ #define DL_BEGINDRAG (WM_USER + 133) #define DL_DRAGGING (WM_USER + 134) #define DL_DROPPED (WM_USER + 135) #define DL_CANCELDRAG (WM_USER + 136) /* Drag list return values */ #define DL_CURSORSET 0L #define DL_STOPCURSOR 1L #define DL_COPYCURSOR 2L #define DL_MOVECURSOR 3L /* Drag list registered message */ #define DRAGLISTMSGSTRING TEXT( "commctrl_DragListMsg" ) /* Up/down minimum and maximum */ #define UD_MAXVAL 0x7FFF #define UD_MINVAL (-UD_MAXVAL) /* Up/down styles */ #define UDS_WRAP 0x0001L #define UDS_SETBUDDYINT 0x0002L #define UDS_ALIGNRIGHT 0x0004L #define UDS_ALIGNLEFT 0x0008L #define UDS_AUTOBUDDY 0x0010L #define UDS_ARROWKEYS 0x0020L #define UDS_HORZ 0x0040L #define UDS_NOTHOUSANDS 0x0080L #if (_WIN32_IE >= 0x0300) #define UDS_HOTTRACK 0x0100L #endif /* Up/down messages */ #define UDM_SETRANGE (WM_USER + 101) #define UDM_GETRANGE (WM_USER + 102) #define UDM_SETPOS (WM_USER + 103) #define UDM_GETPOS (WM_USER + 104) #define UDM_SETBUDDY (WM_USER + 105) #define UDM_GETBUDDY (WM_USER + 106) #define UDM_SETACCEL (WM_USER + 107) #define UDM_GETACCEL (WM_USER + 108) #define UDM_SETBASE (WM_USER + 109) #define UDM_GETBASE (WM_USER + 110) #if (_WIN32_IE >= 0x0400) #define UDM_SETRANGE32 (WM_USER + 111) #define UDM_GETRANGE32 (WM_USER + 112) #endif #if (_WIN32_IE >= 0x0500) #define UDM_SETPOS32 (WM_USER + 113) #define UDM_GETPOS32 (WM_USER + 114) #endif #if (_WIN32_IE >= 0x0400) #define UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif /* Up/down notifications */ #define UDN_DELTAPOS (UDN_FIRST - 1) /* Progress bar styles */ #if (_WIN32_IE >= 0x0300) #define PBS_SMOOTH 0x0001L #define PBS_VERTICAL 0x0004L #endif #if (_WIN32_WINNT >= 0x0501) #define PBS_MARQUEE 0x0008L #endif #if (_WIN32_WINNT >= 0x0600) #define PBS_SMOOTHREVERSE 0x0010L #endif /* Progress bar messages */ #define PBM_SETRANGE (WM_USER + 1) #define PBM_SETPOS (WM_USER + 2) #define PBM_DELTAPOS (WM_USER + 3) #define PBM_SETSTEP (WM_USER + 4) #define PBM_STEPIT (WM_USER + 5) #if (_WIN32_IE >= 0x0300) #define PBM_SETRANGE32 (WM_USER + 6) #define PBM_GETRANGE (WM_USER + 7) #define PBM_GETPOS (WM_USER + 8) #endif #if (_WIN32_IE >= 0x0400) #define PBM_SETBARCOLOR (WM_USER + 9) #endif #if (_WIN32_WINNT >= 0x0501) #define PBM_SETMARQUEE (WM_USER + 10) #endif #if (_WIN32_WINNT >= 0x0600) #define PBM_GETSTEP (WM_USER + 13) #define PBM_GETBKCOLOR (WM_USER + 14) #define PBM_GETBARCOLOR (WM_USER + 15) #define PBM_SETSTATE (WM_USER + 16) #define PBM_GETSTATE (WM_USER + 17) #endif #if (_WIN32_IE >= 0x0300) #define PBM_SETBKCOLOR CCM_SETBKCOLOR #endif /* Progress bar states */ #if (_WIN32_WINNT >= 0x0600) #define PBST_NORMAL 0x00000001 #define PBST_ERROR 0x00000002 #define PBST_PAUSED 0x00000003 #endif /* Hot key flags */ #define HOTKEYF_SHIFT 0x00000001 #define HOTKEYF_CONTROL 0x00000002 #define HOTKEYF_ALT 0x00000004 #define HOTKEYF_EXT 0x00000008 /* Hot key combination flags */ #define HKCOMB_NONE 0x00000001 #define HKCOMB_S 0x00000002 #define HKCOMB_C 0x00000004 #define HKCOMB_A 0x00000008 #define HKCOMB_SC 0x00000010 #define HKCOMB_SA 0x00000020 #define HKCOMB_CA 0x00000040 #define HKCOMB_SCA 0x00000080 /* Hot key messages */ #define HKM_SETHOTKEY (WM_USER + 1) #define HKM_GETHOTKEY (WM_USER + 2) #define HKM_SETRULES (WM_USER + 3) /* Common control styles */ #define CCS_TOP 0x0001L #define CCS_NOMOVEY 0x0002L #define CCS_BOTTOM 0x0003L #define CCS_NORESIZE 0x0004L #define CCS_NOPARENTALIGN 0x0008L #define CCS_ADJUSTABLE 0x0020L #define CCS_NODIVIDER 0x0040L #if (_WIN32_IE >= 0x0300) #define CCS_VERT 0x0080L #define CCS_LEFT (CCS_VERT | CCS_TOP) #define CCS_RIGHT (CCS_VERT | CCS_BOTTOM) #define CCS_NOMOVEX (CCS_VERT | CCS_NOMOVEY) #endif /* Miscellaneous link constants */ #if (_WIN32_WINNT >= 0x0501) #define INVALID_LINK_INDEX (-1) #define MAX_LINKID_TEXT 48 #define L_MAX_URL_LENGTH 2083 #endif /* Link styles */ #if (_WIN32_WINNT >= 0x0501) #define LWS_TRANSPARENT 0x0001L #define LWS_IGNORERETURN 0x0002L #endif #if (_WIN32_WINNT >= 0x0600) #define LWS_NOPREFIX 0x0004L #define LWS_USEVISUALSTYLE 0x0008L #define LWS_USECUSTOMTEXT 0x0010L #define LWS_RIGHT 0x0020L #endif /* Link item masks */ #if (_WIN32_WINNT >= 0x0501) #define LIF_ITEMINDEX 0x00000001 #define LIF_STATE 0x00000002 #define LIF_ITEMID 0x00000004 #define LIF_URL 0x00000008 #endif /* Link item states */ #if (_WIN32_WINNT >= 0x0501) #define LIS_FOCUSED 0x00000001 #define LIS_ENABLED 0x00000002 #define LIS_VISITED 0x00000004 #endif #if (_WIN32_WINNT >= 0x0600) #define LIS_HOTTRACK 0x00000008 #define LIS_DEFAULTCOLORS 0x00000010 #endif /* Link messages */ #if (_WIN32_WINNT >= 0x0501) #define LM_HITTEST (WM_USER + 0x0300) #define LM_GETIDEALHEIGHT (WM_USER + 0x0301) #define LM_SETITEM (WM_USER + 0x0302) #define LM_GETITEM (WM_USER + 0x0303) #define LM_GETIDEALSIZE LM_GETIDEALHEIGHT #endif /* List view styles */ #define LVS_ICON 0x0000L #define LVS_REPORT 0x0001L #define LVS_SMALLICON 0x0002L #define LVS_LIST 0x0003L #define LVS_TYPEMASK 0x0003L #define LVS_SINGLESEL 0x0004L #define LVS_SHOWSELALWAYS 0x0008L #define LVS_SORTASCENDING 0x0010L #define LVS_SORTDESCENDING 0x0020L #define LVS_SHAREIMAGELISTS 0x0040L #define LVS_NOLABELWRAP 0x0080L #define LVS_AUTOARRANGE 0x0100L #define LVS_EDITLABELS 0x0200L #define LVS_OWNERDRAWFIXED 0x0400L #define LVS_ALIGNTOP 0x0000L #define LVS_ALIGNLEFT 0x0800L #define LVS_ALIGNMASK 0x0C00L #if (_WIN32_IE >= 0x0300) #define LVS_OWNERDATA 0x1000L #endif #define LVS_NOSCROLL 0x2000L #define LVS_NOCOLUMNHEADER 0x4000L #define LVS_NOSORTHEADER 0x8000L #define LVS_TYPESTYLEMASK 0xFC00L /* List view messages */ #define LVM_GETBKCOLOR (LVM_FIRST + 0) #define LVM_SETBKCOLOR (LVM_FIRST + 1) #define LVM_GETIMAGELIST (LVM_FIRST + 2) #define LVM_SETIMAGELIST (LVM_FIRST + 3) #define LVM_GETITEMCOUNT (LVM_FIRST + 4) #define LVM_GETITEMA (LVM_FIRST + 5) #define LVM_SETITEMA (LVM_FIRST + 6) #define LVM_INSERTITEMA (LVM_FIRST + 7) #define LVM_DELETEITEM (LVM_FIRST + 8) #define LVM_DELETEALLITEMS (LVM_FIRST + 9) #define LVM_GETCALLBACKMASK (LVM_FIRST + 10) #define LVM_SETCALLBACKMASK (LVM_FIRST + 11) #define LVM_GETNEXTITEM (LVM_FIRST + 12) #define LVM_FINDITEMA (LVM_FIRST + 13) #define LVM_GETITEMRECT (LVM_FIRST + 14) #define LVM_SETITEMPOSITION (LVM_FIRST + 15) #define LVM_GETITEMPOSITION (LVM_FIRST + 16) #define LVM_GETSTRINGWIDTHA (LVM_FIRST + 17) #define LVM_HITTEST (LVM_FIRST + 18) #define LVM_ENSUREVISIBLE (LVM_FIRST + 19) #define LVM_SCROLL (LVM_FIRST + 20) #define LVM_REDRAWITEMS (LVM_FIRST + 21) #define LVM_ARRANGE (LVM_FIRST + 22) #define LVM_EDITLABELA (LVM_FIRST + 23) #define LVM_GETEDITCONTROL (LVM_FIRST + 24) #define LVM_GETCOLUMNA (LVM_FIRST + 25) #define LVM_SETCOLUMNA (LVM_FIRST + 26) #define LVM_INSERTCOLUMNA (LVM_FIRST + 27) #define LVM_DELETECOLUMN (LVM_FIRST + 28) #define LVM_GETCOLUMNWIDTH (LVM_FIRST + 29) #define LVM_SETCOLUMNWIDTH (LVM_FIRST + 30) #if (_WIN32_IE >= 0x0300) #define LVM_GETHEADER (LVM_FIRST + 31) #endif #define LVM_CREATEDRAGIMAGE (LVM_FIRST + 33) #define LVM_GETVIEWRECT (LVM_FIRST + 34) #define LVM_GETTEXTCOLOR (LVM_FIRST + 35) #define LVM_SETTEXTCOLOR (LVM_FIRST + 36) #define LVM_GETTEXTBKCOLOR (LVM_FIRST + 37) #define LVM_SETTEXTBKCOLOR (LVM_FIRST + 38) #define LVM_GETTOPINDEX (LVM_FIRST + 39) #define LVM_GETCOUNTPERPAGE (LVM_FIRST + 40) #define LVM_GETORIGIN (LVM_FIRST + 41) #define LVM_UPDATE (LVM_FIRST + 42) #define LVM_SETITEMSTATE (LVM_FIRST + 43) #define LVM_GETITEMSTATE (LVM_FIRST + 44) #define LVM_GETITEMTEXTA (LVM_FIRST + 45) #define LVM_SETITEMTEXTA (LVM_FIRST + 46) #define LVM_SETITEMCOUNT (LVM_FIRST + 47) #define LVM_SORTITEMS (LVM_FIRST + 48) #define LVM_SETITEMPOSITION32 (LVM_FIRST + 49) #define LVM_GETSELECTEDCOUNT (LVM_FIRST + 50) #define LVM_GETITEMSPACING (LVM_FIRST + 51) #define LVM_GETISEARCHSTRINGA (LVM_FIRST + 52) #if (_WIN32_IE >= 0x0300) #define LVM_SETICONSPACING (LVM_FIRST + 53) #define LVM_SETEXTENDEDLISTVIEWSTYLE (LVM_FIRST + 54) #define LVM_GETEXTENDEDLISTVIEWSTYLE (LVM_FIRST + 55) #define LVM_GETSUBITEMRECT (LVM_FIRST + 56) #define LVM_SUBITEMHITTEST (LVM_FIRST + 57) #define LVM_SETCOLUMNORDERARRAY (LVM_FIRST + 58) #define LVM_GETCOLUMNORDERARRAY (LVM_FIRST + 59) #define LVM_SETHOTITEM (LVM_FIRST + 60) #define LVM_GETHOTITEM (LVM_FIRST + 61) #define LVM_SETHOTCURSOR (LVM_FIRST + 62) #define LVM_GETHOTCURSOR (LVM_FIRST + 63) #define LVM_APPROXIMATEVIEWRECT (LVM_FIRST + 64) #endif #if (_WIN32_IE >= 0x0400) #define LVM_SETWORKAREAS (LVM_FIRST + 65) #define LVM_GETSELECTIONMARK (LVM_FIRST + 66) #define LVM_SETSELECTIONMARK (LVM_FIRST + 67) #define LVM_SETBKIMAGEA (LVM_FIRST + 68) #define LVM_GETBKIMAGEA (LVM_FIRST + 69) #define LVM_GETWORKAREAS (LVM_FIRST + 70) #define LVM_SETHOVERTIME (LVM_FIRST + 71) #define LVM_GETHOVERTIME (LVM_FIRST + 72) #define LVM_GETNUMBEROFWORKAREAS (LVM_FIRST + 73) #define LVM_SETTOOLTIPS (LVM_FIRST + 74) #endif #define LVM_GETITEMW (LVM_FIRST + 75) #define LVM_SETITEMW (LVM_FIRST + 76) #define LVM_INSERTITEMW (LVM_FIRST + 77) #if (_WIN32_IE >= 0x0400) #define LVM_GETTOOLTIPS (LVM_FIRST + 78) #define LVM_SORTITEMSEX (LVM_FIRST + 81) #endif #define LVM_FINDITEMW (LVM_FIRST + 83) #define LVM_GETSTRINGWIDTHW (LVM_FIRST + 87) #if (_WIN32_WINNT >= 0x0501) #define LVM_GETGROUPSTATE (LVM_FIRST + 92) #define LVM_GETFOCUSEDGROUP (LVM_FIRST + 93) #endif #define LVM_GETCOLUMNW (LVM_FIRST + 95) #define LVM_SETCOLUMNW (LVM_FIRST + 96) #define LVM_INSERTCOLUMNW (LVM_FIRST + 97) #if (_WIN32_WINNT >= 0x0501) #define LVM_GETGROUPRECT (LVM_FIRST + 98) #endif #define LVM_GETITEMTEXTW (LVM_FIRST + 115) #define LVM_SETITEMTEXTW (LVM_FIRST + 116) #define LVM_GETISEARCHSTRINGW (LVM_FIRST + 117) #define LVM_EDITLABELW (LVM_FIRST + 118) #if (_WIN32_IE >= 0x0400) #define LVM_SETBKIMAGEW (LVM_FIRST + 138) #define LVM_GETBKIMAGEW (LVM_FIRST + 139) #endif #if (_WIN32_WINNT >= 0x0501) #define LVM_SETSELECTEDCOLUMN (LVM_FIRST + 140) #define LVM_SETVIEW (LVM_FIRST + 142) #define LVM_GETVIEW (LVM_FIRST + 143) #define LVM_INSERTGROUP (LVM_FIRST + 145) #define LVM_SETGROUPINFO (LVM_FIRST + 147) #define LVM_GETGROUPINFO (LVM_FIRST + 149) #define LVM_REMOVEGROUP (LVM_FIRST + 150) #define LVM_MOVEGROUP (LVM_FIRST + 151) #define LVM_GETGROUPCOUNT (LVM_FIRST + 152) #define LVM_GETGROUPINFOBYINDEX (LVM_FIRST + 153) #define LVM_MOVEITEMTOGROUP (LVM_FIRST + 154) #define LVM_SETGROUPMETRICS (LVM_FIRST + 155) #define LVM_GETGROUPMETRICS (LVM_FIRST + 156) #define LVM_ENABLEGROUPVIEW (LVM_FIRST + 157) #define LVM_SORTGROUPS (LVM_FIRST + 158) #define LVM_INSERTGROUPSORTED (LVM_FIRST + 159) #define LVM_REMOVEALLGROUPS (LVM_FIRST + 160) #define LVM_HASGROUP (LVM_FIRST + 161) #define LVM_SETTILEVIEWINFO (LVM_FIRST + 162) #define LVM_GETTILEVIEWINFO (LVM_FIRST + 163) #define LVM_SETTILEINFO (LVM_FIRST + 164) #define LVM_GETTILEINFO (LVM_FIRST + 165) #define LVM_SETINSERTMARK (LVM_FIRST + 166) #define LVM_GETINSERTMARK (LVM_FIRST + 167) #define LVM_INSERTMARKHITTEST (LVM_FIRST + 168) #define LVM_GETINSERTMARKRECT (LVM_FIRST + 169) #define LVM_SETINSERTMARKCOLOR (LVM_FIRST + 170) #define LVM_GETINSERTMARKCOLOR (LVM_FIRST + 171) #define LVM_SETINFOTIP (LVM_FIRST + 173) #define LVM_GETSELECTEDCOLUMN (LVM_FIRST + 174) #define LVM_ISGROUPVIEWENABLED (LVM_FIRST + 175) #define LVM_GETOUTLINECOLOR (LVM_FIRST + 176) #define LVM_SETOUTLINECOLOR (LVM_FIRST + 177) #define LVM_CANCELEDITLABEL (LVM_FIRST + 179) #define LVM_MAPINDEXTOID (LVM_FIRST + 180) #define LVM_MAPIDTOINDEX (LVM_FIRST + 181) #define LVM_ISITEMVISIBLE (LVM_FIRST + 182) #endif #if (_WIN32_WINNT >= 0x0600) #define LVM_GETEMPTYTEXT (LVM_FIRST + 204) #define LVM_GETFOOTERRECT (LVM_FIRST + 205) #define LVM_GETFOOTERINFO (LVM_FIRST + 206) #define LVM_GETFOOTERITEMRECT (LVM_FIRST + 207) #define LVM_GETFOOTERITEM (LVM_FIRST + 208) #define LVM_GETITEMINDEXRECT (LVM_FIRST + 209) #define LVM_SETITEMINDEXSTATE (LVM_FIRST + 210) #define LVM_GETNEXTITEMINDEX (LVM_FIRST + 211) #endif #if (_WIN32_IE >= 0x0400) #define LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #ifdef UNICODE #define LVM_GETITEM LVM_GETITEMW #define LVM_SETITEM LVM_SETITEMW #define LVM_INSERTITEM LVM_INSERTITEMW #define LVM_FINDITEM LVM_FINDITEMW #define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHW #define LVM_EDITLABEL LVM_EDITLABELW #define LVM_GETCOLUMN LVM_GETCOLUMNW #define LVM_SETCOLUMN LVM_SETCOLUMNW #define LVM_INSERTCOLUMN LVM_INSERTCOLUMNW #define LVM_GETITEMTEXT LVM_GETITEMTEXTW #define LVM_SETITEMTEXT LVM_SETITEMTEXTW #define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGW #if (_WIN32_IE >= 0x0400) #define LVM_SETBKIMAGE LVM_SETBKIMAGEW #define LVM_GETBKIMAGE LVM_GETBKIMAGEW #endif #else #define LVM_GETITEM LVM_GETITEMA #define LVM_SETITEM LVM_SETITEMA #define LVM_INSERTITEM LVM_INSERTITEMA #define LVM_FINDITEM LVM_FINDITEMA #define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHA #define LVM_EDITLABEL LVM_EDITLABELA #define LVM_GETCOLUMN LVM_GETCOLUMNA #define LVM_SETCOLUMN LVM_SETCOLUMNA #define LVM_INSERTCOLUMN LVM_INSERTCOLUMNA #define LVM_GETITEMTEXT LVM_GETITEMTEXTA #define LVM_SETITEMTEXT LVM_SETITEMTEXTA #define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGA #if (_WIN32_IE >= 0x0400) #define LVM_SETBKIMAGE LVM_SETBKIMAGEA #define LVM_GETBKIMAGE LVM_GETBKIMAGEA #endif #endif /* LVM_SETIMAGELIST image list choices */ #define LVSIL_NORMAL 0 #define LVSIL_SMALL 1 #define LVSIL_STATE 2 #define LVSIL_GROUPHEADER 3 /* List view item masks */ #define LVIF_TEXT 0x00000001 #define LVIF_IMAGE 0x00000002 #define LVIF_PARAM 0x00000004 #define LVIF_STATE 0x00000008 #if (_WIN32_IE >= 0x0300) #define LVIF_INDENT 0x00000010 #endif #if (_WIN32_WINNT >= 0x0501) #define LVIF_GROUPID 0x00000100 #define LVIF_COLUMNS 0x00000200 #endif #if (_WIN32_IE >= 0x0300) #define LVIF_NORECOMPUTE 0x00000800 #endif #define LVIF_DI_SETITEM 0x00001000 #if (_WIN32_WINNT >= 0x0600) #define LVIF_COLFMT 0x00010000 #endif /* List view item states */ #define LVIS_FOCUSED 0x00000001 #define LVIS_SELECTED 0x00000002 #define LVIS_CUT 0x00000004 #define LVIS_DROPHILITED 0x00000008 #define LVIS_GLOW 0x00000010 #define LVIS_ACTIVATING 0x00000020 #define LVIS_OVERLAYMASK 0x00000F00 #define LVIS_STATEIMAGEMASK 0x0000F000 /* Macro to convert image indices to state image masks */ #define INDEXTOSTATEIMAGEMASK( x ) ((x) << 12) /* Special values for item fields */ #if (_WIN32_IE >= 0x0300) #define I_INDENTCALLBACK (-1) #endif #if (_WIN32_WINNT >= 0x0501) #define I_GROUPIDCALLBACK (-1) #define I_GROUPIDNONE (-2) #endif #define I_IMAGECALLBACK (-1) #if (_WIN32_IE >= 0x0300) #define I_IMAGENONE (-2) #endif #if (_WIN32_WINNT >= 0x0501) #define I_COLUMNSCALLBACK ((UINT)-1) #endif #define I_CHILDRENCALLBACK (-1) #define LPSTR_TEXTCALLBACKA ((LPSTR)-1) #define LPSTR_TEXTCALLBACKW ((LPWSTR)-1) #ifdef UNICODE #define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKW #else #define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKA #endif /* LVM_GETNEXTITEM flags */ #define LVNI_ALL 0x0000 #define LVNI_FOCUSED 0x0001 #define LVNI_SELECTED 0x0002 #define LVNI_CUT 0x0004 #define LVNI_DROPHILITED 0x0008 #define LVNI_STATEMASK (LVNI_FOCUSED | LVNI_SELECTED | LVNI_CUT | LVNI_DROPHILITED) #define LVNI_VISIBLEORDER 0x0010 #define LVNI_PREVIOUS 0x0020 #define LVNI_VISIBLEONLY 0x0040 #define LVNI_SAMEGROUPONLY 0x0080 #define LVNI_ABOVE 0x0100 #define LVNI_BELOW 0x0200 #define LVNI_TOLEFT 0x0400 #define LVNI_TORIGHT 0x0800 #define LVNI_DIRECTIONMASK (LVNI_ABOVE | LVNI_BELOW | LVNI_TOLEFT | TVNI_TORIGHT) /* LVM_FINDITEM flags */ #define LVFI_PARAM 0x00000001 #define LVFI_STRING 0x00000002 #define LVFI_SUBSTRING 0x00000004 #define LVFI_PARTIAL 0x00000008 #define LVFI_WRAP 0x00000020 #define LVFI_NEARESTXY 0x00000040 /* LVM_GETITEMRECT codes */ #define LVIR_BOUNDS 0 #define LVIR_ICON 1 #define LVIR_LABEL 2 #define LVIR_SELECTBOUNDS 3 /* LVM_HITTEST flags */ #define LVHT_NOWHERE 0x00000001 #define LVHT_ONITEMICON 0x00000002 #define LVHT_ONITEMLABEL 0x00000004 #define LVHT_ONITEMSTATEICON 0x00000008 #define LVHT_ONITEM \ (LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON) #define LVHT_ABOVE 0x00000008 #define LVHT_BELOW 0x00000010 #define LVHT_TORIGHT 0x00000020 #define LVHT_TOLEFT 0x00000040 #define LVHT_EX_GROUP_HEADER 0x10000000 #define LVHT_EX_GROUP_FOOTER 0x20000000 #define LVHT_EX_GROUP_COLLAPSE 0x40000000 #define LVHT_EX_GROUP_BACKGROUND 0x80000000 #define LVHT_EX_GROUP_STATEICON 0x01000000 #define LVHT_EX_GROUP_SUBSETLINK 0x02000000 #define LVHT_EX_GROUP \ (LVHT_EX_GROUP_BACKGROUND | LVHT_EX_GROUP_COLLAPSE | LVHT_EX_GROUP_FOOTER | \ LVHT_EX_GROUP_HEADER | LVHT_EX_GROUP_STATEICON | LVHT_EX_GROUP_SUBSETICON) #define LVHT_EX_ONCONTENTS 0x04000000 #define LVHT_EX_FOOTER 0x08000000 /* LVM_ARRANGE codes */ #define LVA_DEFAULT 0x00000000 #define LVA_ALIGNLEFT 0x00000001 #define LVA_ALIGNTOP 0x00000002 #define LVA_SNAPTOGRID 0x00000005 /* List view column masks */ #define LVCF_FMT 0x00000001 #define LVCF_WIDTH 0x00000002 #define LVCF_TEXT 0x00000004 #define LVCF_SUBITEM 0x00000008 #if (_WIN32_IE >= 0x0300) #define LVCF_IMAGE 0x00000010 #define LVCF_ORDER 0x00000020 #endif #if (_WIN32_WINNT >= 0x0600) #define LVCF_MINWIDTH 0x00000040 #define LVCF_DEFAULTWIDTH 0x00000080 #define LVCF_IDEALWIDTH 0x00000100 #endif /* List view column formats */ #define LVCFMT_LEFT 0x00000000 #define LVCFMT_RIGHT 0x00000001 #define LVCFMT_CENTER 0x00000002 #define LVCFMT_JUSTIFYMASK 0x00000003 #if (_WIN32_IE >= 0x0300) #define LVCFMT_IMAGE 0x00000800 #define LVCFMT_BITMAP_ON_RIGHT 0x00001000 #define LVCFMT_COL_HAS_IMAGES 0x00008000 #endif #if (_WIN32_WINNT >= 0x0600) #define LVCFMT_FIXED_WIDTH 0x00000100 #define LVCFMT_NO_DPI_SCALE 0x00040000 #define LVCFMT_FIXED_RATIO 0x00080000 #define LVCFMT_LINE_BREAK 0x00100000 #define LVCFMT_FILL 0x00200000 #define LVCFMT_WRAP 0x00400000 #define LVCFMT_NO_TITLE 0x00800000 #define LVCFMT_TITLE_PLACEMENTMASK (LVCFMT_LINE_BREAK | LVCFMT_FILL) #define LVCFMT_SPLITBUTTON 0x01000000 #endif /* LVM_SETCOLUMNWIDTH special values */ #define LVSCW_AUTOSIZE (-1) #define LVSCW_AUTOSIZE_USEHEADER (-2) /* LVM_SETITEMCOUNT flags for owner draw */ #if (_WIN32_IE >= 0x0300) #define LVSICF_NOINVALIDATEALL 0x00000001L #define LVSICF_NOSCROLL 0x00000002L #endif /* List view extended styles */ #if (_WIN32_IE >= 0x0300) #define LVS_EX_GRIDLINES 0x00000001L #define LVS_EX_SUBITEMIMAGES 0x00000002L #define LVS_EX_CHECKBOXES 0x00000004L #define LVS_EX_TRACKSELECT 0x00000008L #define LVS_EX_HEADERDRAGDROP 0x00000010L #define LVS_EX_FULLROWSELECT 0x00000020L #define LVS_EX_ONECLICKACTIVATE 0x00000040L #define LVS_EX_TWOCLICKACTIVATE 0x00000080L #endif #if (_WIN32_IE >= 0x0400) #define LVS_EX_FLATSB 0x00000100L #define LVS_EX_REGIONAL 0x00000200L #define LVS_EX_INFOTIP 0x00000400L #define LVS_EX_UNDERLINEHOT 0x00000800L #define LVS_EX_UNDERLINECOLD 0x00001000L #define LVS_EX_MULTIWORKAREAS 0x00002000L #endif #if (_WIN32_IE >= 0x0500) #define LVS_EX_LABELTIP 0x00004000L #define LVS_EX_BORDERSELECT 0x00008000L #endif #if (_WIN32_WINNT >= 0x0501) #define LVS_EX_DOUBLEBUFFER 0x00010000L #define LVS_EX_HIDELABELS 0x00020000L #define LVS_EX_SINGLEROW 0x00040000L #define LVS_EX_SNAPTOGRID 0x00080000L #define LVS_EX_SIMPLESELECT 0x00100000L #endif #if (_WIN32_WINNT >= 0x0600) #define LVS_EX_JUSTIFYCOLUMNS 0x00200000L #define LVS_EX_TRANSPARENTBKGND 0x00400000L #define LVS_EX_TRANSPARENTSHADOWTEXT 0x00800000L #define LVS_EX_AUTOAUTOARRANGE 0x01000000L #define LVS_EX_HEADERINALLVIEWS 0x02000000L #define LVS_EX_AUTOCHECKSELECT 0x08000000L #define LVS_EX_AUTOSIZECOLUMNS 0x10000000L #define LVS_EX_COLUMNSNAPPOINTS 0x40000000L #define LVS_EX_COLUMNOVERFLOW 0x80000000L #endif /* Maximum number of list view work areas */ #if (_WIN32_IE >= 0x0400) #define LV_MAX_WORKAREAS 16 #endif /* List view background image flags */ #if (_WIN32_IE >= 0x0400) #define LVBKIF_SOURCE_NONE 0x00000000L #define LVBKIF_SOURCE_HBITMAP 0x00000001L #define LVBKIF_SOURCE_URL 0x00000002L #define LVBKIF_SOURCE_MASK 0x00000003L #define LVBKIF_STYLE_NORMAL 0x00000000L #define LVBKIF_STYLE_TILE 0x00000010L #define LVBKIF_STYLE_MASK 0x00000010L #endif #if (_WIN32_WINNT >= 0x0501) #define LVBKIF_FLAG_TILEOFFSET 0x00000100L #define LVBKIF_TYPE_WATERMARK 0x10000000L #define LVBKIF_FLAG_ALPHABLEND 0x20000000L #endif /* List view views */ #if (_WIN32_WINNT >= 0x0501) #define LV_VIEW_ICON 0x00000000 #define LV_VIEW_DETAILS 0x00000001 #define LV_VIEW_SMALLICON 0x00000002 #define LV_VIEW_LIST 0x00000003 #define LV_VIEW_TILE 0x00000004 #define LV_VIEW_MAX 0x00000004 #endif /* List view group masks */ #if (_WIN32_WINNT >= 0x0501) #define LVGF_NONE 0x00000000 #define LVGF_HEADER 0x00000001 #define LVGF_FOOTER 0x00000002 #define LVGF_STATE 0x00000004 #define LVGF_ALIGN 0x00000008 #define LVGF_GROUPID 0x00000010 #endif #if (_WIN32_WINNT >= 0x0600) #define LVGF_SUBTITLE 0x00000100 #define LVGF_TASK 0x00000200 #define LVGF_DESCRIPTIONTOP 0x00000400 #define LVGF_DESCRIPTIONBOTTOM 0x00000800 #define LVGF_TITLEIMAGE 0x00001000 #define LVGF_EXTENDEDIMAGE 0x00002000 #define LVGF_ITEMS 0x00004000 #define LVGF_SUBSET 0x00008000 #define LVGF_SUBSETITEMS 0x00010000 #endif /* List view group states */ #if (_WIN32_WINNT >= 0x0501) #define LVGS_NORMAL 0x00000000 #define LVGS_COLLAPSED 0x00000001 #define LVGS_HIDDEN 0x00000002 #define LVGS_NOHEADER 0x00000004 #define LVGS_COLLAPSIBLE 0x00000008 #define LVGS_FOCUSED 0x00000010 #define LVGS_SELECTED 0x00000020 #define LVGS_SUBSETED 0x00000040 #define LVGS_SUBSETLINKFOCUSED 0x00000080 #endif /* List view group alignments */ #if (_WIN32_WINNT >= 0x0501) #define LVGA_HEADER_LEFT 0x00000001 #define LVGA_HEADER_CENTER 0x00000002 #define LVGA_HEADER_RIGHT 0x00000004 #define LVGA_FOOTER_LEFT 0x00000008 #define LVGA_FOOTER_CENTER 0x00000010 #define LVGA_FOOTER_RIGHT 0x00000020 #endif /* LVM_GETGROUPRECT types */ #if (_WIN32_WINNT >= 0x0501) #define LVGGR_GROUP 0 #define LVGGR_HEADER 1 #define LVGGR_LABEL 2 #define LVGGR_SUBSETLINK 3 #endif /* List view group metrics masks */ #if (_WIN32_WINNT >= 0x0501) #define LVGMF_NONE 0x00000000 #define LVGMF_BORDERSIZE 0x00000001 #define LVGMF_BORDERCOLOR 0x00000002 #define LVGMF_TEXTCOLOR 0x00000004 #endif /* List view tile view information flags */ #if (_WIN32_WINNT >= 0x0501) #define LVTVIF_AUTOSIZE 0x00000000L #define LVTVIF_FIXEDWIDTH 0x00000001L #define LVTVIF_FIXEDHEIGHT 0x00000002L #define LVTVIF_FIXEDSIZE 0x00000003L #endif #if (_WIN32_WINNT >= 0x0600) #define LVTVIF_EXTENDED 0x00000004L #endif /* List view tile view information masks */ #if (_WIN32_WINNT >= 0x0501) #define LVTVIM_TILESIZE 0x00000001L #define LVTVIM_COLUMNS 0x00000002L #define LVTVIM_LABELMARGIN 0x00000004L #endif /* List view insert mark flags */ #if (_WIN32_WINNT >= 0x0501) #define LVIM_AFTER 0x00000001L #endif /* List view footer information masks */ #if (_WIN32_WINNT >= 0x0600) #define LVFF_ITEMCOUNT 0x00000001 #endif /* List view footer information flags */ #if (_WIN32_WINNT >= 0x0600) #define LVFIF_TEXT 0x00000001 #define LVFIF_STATE 0x00000002 #endif /* List view footer information states */ #if (_WIN32_WINNT >= 0x0600) #define LVFIS_FOCUSED 0x00000001 #endif /* List view key flags */ #if (_WIN32_IE >= 0x0400) #define LVKF_ALT 0x00000001 #define LVKF_CONTROL 0x00000002 #define LVKF_SHIFT 0x00000004 #endif /* List view custom draw item types */ #if (_WIN32_IE >= 0x0300) #define LVCDI_ITEM 0x00000000L #define LVCDI_GROUP 0x00000001L #define LVCDI_ITEMSLIST 0x00000002L #endif /* List view custom draw return flags */ #if (_WIN32_IE >= 0x0300) #define LVCDRF_NOSELECT 0x00010000L #define LVCDRF_NOGROUPFRAME 0x00020000L #endif /* List view notifications */ #define LVN_ITEMCHANGING (LVN_FIRST - 0) #define LVN_ITEMCHANGED (LVN_FIRST - 1) #define LVN_INSERTITEM (LVN_FIRST - 2) #define LVN_DELETEITEM (LVN_FIRST - 3) #define LVN_DELETEALLITEMS (LVN_FIRST - 4) #define LVN_BEGINLABELEDITA (LVN_FIRST - 5) #define LVN_ENDLABELEDITA (LVN_FIRST - 6) #define LVN_COLUMNCLICK (LVN_FIRST - 8) #define LVN_BEGINDRAG (LVN_FIRST - 9) #define LVN_BEGINRDRAG (LVN_FIRST - 11) #if (_WIN32_IE >= 0x0300) #define LVN_ODCACHEHINT (LVN_FIRST - 13) #define LVN_ITEMACTIVATE (LVN_FIRST - 14) #define LVN_ODSTATECHANGED (LVN_FIRST - 15) #endif #if (_WIN32_IE >= 0x0400) #define LVN_HOTTRACK (LVN_FIRST - 21) #endif #define LVN_GETDISPINFOA (LVN_FIRST - 50) #define LVN_SETDISPINFOA (LVN_FIRST - 51) #if (_WIN32_IE >= 0x0300) #define LVN_ODFINDITEMA (LVN_FIRST - 52) #endif #define LVN_KEYDOWN (LVN_FIRST - 55) #if (_WIN32_IE >= 0x0300) #define LVN_MARQUEEBEGIN (LVN_FIRST - 56) #endif #if (_WIN32_IE >= 0x0400) #define LVN_GETINFOTIPA (LVN_FIRST - 57) #define LVN_GETINFOTIPW (LVN_FIRST - 58) #endif #if (_WIN32_IE >= 0x0500) #define LVN_INCREMENTALSEARCHA (LVN_FIRST - 62) #define LVN_INCREMENTALSEARCHW (LVN_FIRST - 63) #endif #if (_WIN32_WINNT >= 0x0600) #define LVN_COLUMNDROPDOWN (LVN_FIRST - 64) #define LVN_COLUMNOVERFLOWCLICK (LVN_FIRST - 66) #endif #define LVN_BEGINLABELEDITW (LVN_FIRST - 75) #define LVN_ENDLABELEDITW (LVN_FIRST - 76) #define LVN_GETDISPINFOW (LVN_FIRST - 77) #define LVN_SETDISPINFOW (LVN_FIRST - 78) #if (_WIN32_IE >= 0x0300) #define LVN_ODFINDITEMW (LVN_FIRST - 79) #endif #if (_WIN32_WINNT >= 0x0501) #define LVN_BEGINSCROLL (LVN_FIRST - 80) #define LVN_ENDSCROLL (LVN_FIRST - 81) #endif #if (_WIN32_WINNT >= 0x0600) #define LVN_LINKCLICK (LVN_FIRST - 84) #define LVN_GETEMPTYMARKUP (LVN_FIRST - 87) #endif #ifdef UNICODE #define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITW #define LVN_ENDLABELEDIT LVN_ENDLABELEDITW #define LVN_GETDISPINFO LVN_GETDISPINFOW #define LVN_SETDISPINFO LVN_SETDISPINFOW #if (_WIN32_IE >= 0x0300) #define LVN_ODFINDITEM LVN_ODFINDITEMW #endif #if (_WIN32_IE >= 0x0400) #define LVN_GETINFOTIP LVN_GETINFOTIPW #endif #if (_WIN32_IE >= 0x0500) #define LVN_INCREMENTALSEARCH LVN_INCREMENTALSEARCHW #endif #else #define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITA #define LVN_ENDLABELEDIT LVN_ENDLABELEDITA #define LVN_GETDISPINFO LVN_GETDISPINFOA #define LVN_SETDISPINFO LVN_SETDISPINFOA #if (_WIN32_IE >= 0x0300) #define LVN_ODFINDITEM LVN_ODFINDITEMA #endif #if (_WIN32_IE >= 0x0400) #define LVN_GETINFOTIP LVN_GETINFOTIPA #endif #if (_WIN32_IE >= 0x0500) #define LVN_INCREMENTALSEARCH LVN_INCREMENTALSEARCHA #endif #endif /* LVN_GETEMPTYMARKUP flags */ #if (_WIN32_WINNT >= 0x0600) #define EMF_CENTERED 0x00000001L #endif /* LVN_GETINFOTIP flags */ #if (_WIN32_IE >= 0x0400) #define LVGIT_UNFOLDED 0x00000001L #endif /* LVN_INCREMENTALSEARCH return values */ #if (_WIN32_IE >= 0x0500) #define LVNSCH_DEFAULT (-1L) #define LVNSCH_ERROR (-2L) #define LVNSCH_IGNORE (-3L) #endif /* Tree view styles */ #define TVS_HASBUTTONS 0x0001L #define TVS_HASLINES 0x0002L #define TVS_LINESATROOT 0x0004L #define TVS_EDITLABELS 0x0008L #define TVS_DISABLEDRAGDROP 0x0010L #define TVS_SHOWSELALWAYS 0x0020L #if (_WIN32_IE >= 0x0300) #define TVS_RTLREADING 0x0040L #define TVS_NOTOOLTIPS 0x0080L #define TVS_CHECKBOXES 0x0100L #define TVS_TRACKSELECT 0x0200L #endif #if (_WIN32_IE >= 0x0400) #define TVS_SINGLEEXPAND 0x0400L #define TVS_INFOTIP 0x0800L #define TVS_FULLROWSELECT 0x1000L #define TVS_NOSCROLL 0x2000L #define TVS_NONEVENHEIGHT 0x4000L #endif #if (_WIN32_IE >= 0x0500) #define TVS_NOHSCROLL 0x8000L #endif /* Tree view extended styles */ #if (_WIN32_WINNT >= 0x0600) #define TVS_EX_MULTISELECT 0x00000002L #define TVS_EX_DOUBLEBUFFER 0x00000004L #define TVS_EX_NOINDENTSTATE 0x00000008L #define TVS_EX_RICHTOOLTIP 0x00000010L #define TVS_EX_AUTOHSCROLL 0x00000020L #define TVS_EX_FADEINOUTEXPANDOS 0x00000040L #define TVS_EX_PARTIALCHECKBOXES 0x00000080L #define TVS_EX_EXCLUSIONCHECKBOXES 0x00000100L #define TVS_EX_DIMMEDCHECKBOXES 0x00000200L #define TVS_EX_DRAWIMAGEASYNC 0x00000400L #endif /* Tree view item masks */ #define TVIF_TEXT 0x00000001 #define TVIF_IMAGE 0x00000002 #define TVIF_PARAM 0x00000004 #define TVIF_STATE 0x00000008 #define TVIF_HANDLE 0x00000010 #define TVIF_SELECTEDIMAGE 0x00000020 #define TVIF_CHILDREN 0x00000040 #if (_WIN32_IE >= 0x0400) #define TVIF_INTEGRAL 0x00000080 #endif #if (_WIN32_IE >= 0x0600) #define TVIF_STATEEX 0x00000100 #define TVIF_EXPANDEDIMAGE 0x00000200 #endif #define TVIF_DI_SETITEM 0x00001000 /* Tree view item states */ #define TVIS_SELECTED 0x00000002 #define TVIS_CUT 0x00000004 #define TVIS_DROPHILITED 0x00000008 #define TVIS_BOLD 0x00000010 #define TVIS_EXPANDED 0x00000020 #define TVIS_EXPANDEDONCE 0x00000040 #if (_WIN32_IE >= 0x0300) #define TVIS_EXPANDPARTIAL 0x00000080 #endif #define TVIS_OVERLAYMASK 0x00000F00 #define TVIS_STATEIMAGEMASK 0x0000F000 #define TVIS_USERMASK 0x0000F000 /* Tree view item extended states */ #if (_WIN32_IE >= 0x0600) #define TVIS_EX_FLAT 0x00000001 #endif #if (_WIN32_WINNT >= 0x0600) #define TVIS_EX_DISABLED 0x00000002 #endif #if (_WIN32_IE >= 0x0600) #define TVIS_EX_ALL 0x00000002 #endif /* Tree view item handle special values */ #define TVI_ROOT ((HTREEITEM)(ULONG_PTR)-0x10000) #define TVI_FIRST ((HTREEITEM)(ULONG_PTR)-0x0FFFF) #define TVI_LAST ((HTREEITEM)(ULONG_PTR)-0x0FFFE) #define TVI_SORT ((HTREEITEM)(ULONG_PTR)-0x0FFFD) /* Tree view messages */ #define TVM_INSERTITEMA (TV_FIRST + 0) #define TVM_DELETEITEM (TV_FIRST + 1) #define TVM_EXPAND (TV_FIRST + 2) #define TVM_GETITEMRECT (TV_FIRST + 4) #define TVM_GETCOUNT (TV_FIRST + 5) #define TVM_GETINDENT (TV_FIRST + 6) #define TVM_SETINDENT (TV_FIRST + 7) #define TVM_GETIMAGELIST (TV_FIRST + 8) #define TVM_SETIMAGELIST (TV_FIRST + 9) #define TVM_GETNEXTITEM (TV_FIRST + 10) #define TVM_SELECTITEM (TV_FIRST + 11) #define TVM_GETITEMA (TV_FIRST + 12) #define TVM_SETITEMA (TV_FIRST + 13) #define TVM_EDITLABELA (TV_FIRST + 14) #define TVM_GETEDITCONTROL (TV_FIRST + 15) #define TVM_GETVISIBLECOUNT (TV_FIRST + 16) #define TVM_HITTEST (TV_FIRST + 17) #define TVM_CREATEDRAGIMAGE (TV_FIRST + 18) #define TVM_SORTCHILDREN (TV_FIRST + 19) #define TVM_ENSUREVISIBLE (TV_FIRST + 20) #define TVM_SORTCHILDRENCB (TV_FIRST + 21) #define TVM_ENDEDITLABELNOW (TV_FIRST + 22) #define TVM_GETISEARCHSTRINGA (TV_FIRST + 23) #if (_WIN32_IE >= 0x0300) #define TVM_SETTOOLTIPS (TV_FIRST + 24) #define TVM_GETTOOLTIPS (TV_FIRST + 25) #endif #if (_WIN32_IE >= 0x0400) #define TVM_SETINSERTMARK (TV_FIRST + 26) #define TVM_SETITEMHEIGHT (TV_FIRST + 27) #define TVM_GETITEMHEIGHT (TV_FIRST + 28) #define TVM_SETBKCOLOR (TV_FIRST + 29) #define TVM_SETTEXTCOLOR (TV_FIRST + 30) #define TVM_GETBKCOLOR (TV_FIRST + 31) #define TVM_GETTEXTCOLOR (TV_FIRST + 32) #define TVM_SETSCROLLTIME (TV_FIRST + 33) #define TVM_GETSCROLLTIME (TV_FIRST + 34) #define TVM_SETINSERTMARKCOLOR (TV_FIRST + 37) #define TVM_GETINSERTMARKCOLOR (TV_FIRST + 38) #endif #if (_WIN32_IE >= 0x0500) #define TVM_GETITEMSTATE (TV_FIRST + 39) #define TVM_SETLINECOLOR (TV_FIRST + 40) #define TVM_GETLINECOLOR (TV_FIRST + 41) #endif #if (_WIN32_WINNT >= 0x0501) #define TVM_MAPACCIDTOHTREEITEM (TV_FIRST + 42) #define TVM_MAPHTREEITEMTOACCID (TV_FIRST + 43) #define TVM_SETEXTENDEDSTYLE (TV_FIRST + 44) #define TVM_GETEXTENDEDSTYLE (TV_FIRST + 45) #endif #define TVM_INSERTITEMW (TV_FIRST + 50) #if (_WIN32_WINNT >= 0x0501) #define TVM_SETAUTOSCROLLINFO (TV_FIRST + 59) #endif #define TVM_GETITEMW (TV_FIRST + 62) #define TVM_SETITEMW (TV_FIRST + 63) #define TVM_GETISEARCHSTRINGW (TV_FIRST + 64) #define TVM_EDITLABELW (TV_FIRST + 65) #if (_WIN32_WINNT >= 0x0600) #define TVM_GETSELECTEDCOUNT (TV_FIRST + 70) #define TVM_SHOWINFOTIP (TV_FIRST + 71) #define TVM_GETITEMPARTRECT (TV_FIRST + 72) #endif #if (_WIN32_IE >= 0x0400) #define TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #ifdef UNICODE #define TVM_INSERTITEM TVM_INSERTITEMW #define TVM_GETITEM TVM_GETITEMW #define TVM_SETITEM TVM_SETITEMW #define TVM_EDITLABEL TVM_EDITLABELW #define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGW #else #define TVM_INSERTITEM TVM_INSERTITEMA #define TVM_GETITEM TVM_GETITEMA #define TVM_SETITEM TVM_SETITEMA #define TVM_EDITLABEL TVM_EDITLABELA #define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGA #endif /* TVM_EXPAND codes */ #define TVE_COLLAPSE 0x00000001 #define TVE_EXPAND 0x00000002 #define TVE_TOGGLE 0x00000003 #if (_WIN32_IE >= 0x0300) #define TVE_EXPANDPARTIAL 0x00004000 #endif #define TVE_COLLAPSERESET 0x00008000 /* TVM_SETIMAGELIST image list choices */ #define TVSIL_NORMAL 0 #define TVSIL_STATE 1 /* TVM_GETNEXTITEM codes */ #define TVGN_ROOT 0x00000000 #define TVGN_NEXT 0x00000001 #define TVGN_PREVIOUS 0x00000002 #define TVGN_PARENT 0x00000003 #define TVGN_CHILD 0x00000004 #define TVGN_FIRSTVISIBLE 0x00000005 #define TVGN_NEXTVISIBLE 0x00000006 #define TVGN_PREVIOUSVISIBLE 0x00000007 #define TVGN_DROPHILITE 0x00000008 #define TVGN_CARET 0x00000009 #if (_WIN32_IE >= 0x0400) #define TVGN_LASTVISIBLE 0x0000000A #endif #if (_WIN32_IE >= 0x0600) #define TVGN_NEXTSELECTED 0x0000000B #endif #if (_WIN32_WINNT >= 0x0501) #define TVGN_NOSINGLEEXPAND 0x00008000 #endif /* TVM_HITTEST flags */ #define TVHT_NOWHERE 0x00000001 #define TVHT_ONITEMICON 0x00000002 #define TVHT_ONITEMLABEL 0x00000004 #define TVHT_ONITEMINDENT 0x00000008 #define TVHT_ONITEMBUTTON 0x00000010 #define TVHT_ONITEMRIGHT 0x00000020 #define TVHT_ONITEMSTATEICON 0x00000040 #define TVHT_ABOVE 0x00000100 #define TVHT_BELOW 0x00000200 #define TVHT_TORIGHT 0x00000400 #define TVHT_TOLEFT 0x00000800 #define TVHT_ONITEM \ (TVHT_ONITEMICON | TVHT_ONITEMLABEL | TVHT_ONITEMSTATEICON) /* Tree view notifications */ #define TVN_SELCHANGINGA (TVN_FIRST - 1) #define TVN_SELCHANGEDA (TVN_FIRST - 2) #define TVN_GETDISPINFOA (TVN_FIRST - 3) #define TVN_SETDISPINFOA (TVN_FIRST - 4) #define TVN_ITEMEXPANDINGA (TVN_FIRST - 5) #define TVN_ITEMEXPANDEDA (TVN_FIRST - 6) #define TVN_BEGINDRAGA (TVN_FIRST - 7) #define TVN_BEGINRDRAGA (TVN_FIRST - 8) #define TVN_DELETEITEMA (TVN_FIRST - 9) #define TVN_BEGINLABELEDITA (TVN_FIRST - 10) #define TVN_ENDLABELEDITA (TVN_FIRST - 11) #define TVN_KEYDOWN (TVN_FIRST - 12) #if (_WIN32_IE >= 0x0400) #define TVN_GETINFOTIPA (TVN_FIRST - 13) #define TVN_GETINFOTIPW (TVN_FIRST - 14) #define TVN_SINGLEEXPAND (TVN_FIRST - 15) #endif #if (_WIN32_IE >= 0x0600) #define TVN_ITEMCHANGINGA (TVN_FIRST - 16) #define TVN_ITEMCHANGINGW (TVN_FIRST - 17) #define TVN_ITEMCHANGEDA (TVN_FIRST - 18) #define TVN_ITEMCHANGEDW (TVN_FIRST - 19) #define TVN_ASYNCDRAW (TVN_FIRST - 20) #endif #define TVN_SELCHANGINGW (TVN_FIRST - 50) #define TVN_SELCHANGEDW (TVN_FIRST - 51) #define TVN_GETDISPINFOW (TVN_FIRST - 52) #define TVN_SETDISPINFOW (TVN_FIRST - 53) #define TVN_ITEMEXPANDINGW (TVN_FIRST - 54) #define TVN_ITEMEXPANDEDW (TVN_FIRST - 55) #define TVN_BEGINDRAGW (TVN_FIRST - 56) #define TVN_BEGINRDRAGW (TVN_FIRST - 57) #define TVN_DELETEITEMW (TVN_FIRST - 58) #define TVN_BEGINLABELEDITW (TVN_FIRST - 59) #define TVN_ENDLABELEDITW (TVN_FIRST - 60) #ifdef UNICODE #define TVN_SELCHANGING TVN_SELCHANGINGW #define TVN_SELCHANGED TVN_SELCHANGEDW #define TVN_GETDISPINFO TVN_GETDISPINFOW #define TVN_SETDISPINFO TVN_SETDISPINFOW #define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGW #define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDW #define TVN_BEGINDRAG TVN_BEGINDRAGW #define TVN_BEGINRDRAG TVN_BEGINRDRAGW #define TVN_DELETEITEM TVN_DELETEITEMW #define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITW #define TVN_ENDLABELEDIT TVN_ENDLABELEDITW #if (_WIN32_IE >= 0x0400) #define TVN_GETINFOTIP TVN_GETINFOTIPW #endif #if (_WIN32_IE >= 0x0600) #define TVN_ITEMCHANGING TVN_ITEMCHANGINGW #define TVN_ITEMCHANGED TVN_ITEMCHANGEDW #endif #else #define TVN_SELCHANGING TVN_SELCHANGINGA #define TVN_SELCHANGED TVN_SELCHANGEDA #define TVN_GETDISPINFO TVN_GETDISPINFOA #define TVN_SETDISPINFO TVN_SETDISPINFOA #define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGA #define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDA #define TVN_BEGINDRAG TVN_BEGINDRAGA #define TVN_BEGINRDRAG TVN_BEGINRDRAGA #define TVN_DELETEITEM TVN_DELETEITEMA #define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITA #define TVN_ENDLABELEDIT TVN_ENDLABELEDITA #if (_WIN32_IE >= 0x0400) #define TVN_GETINFOTIP TVN_GETINFOTIPA #endif #if (_WIN32_IE >= 0x0600) #define TVN_ITEMCHANGING TVN_ITEMCHANGINGA #define TVN_ITEMCHANGED TVN_ITEMCHANGEDA #endif #endif /* Tree view notification actions */ #define TVC_UNKNOWN 0x00000000 #define TVC_BYMOUSE 0x00000001 #define TVC_BYKEYBOARD 0x00000002 /* TVN_SINGLEEXPAND return values */ #if (_WIN32_IE >= 0x0400) #define TVNRET_DEFAULT 0 #define TVNRET_SKIPOLD 1 #define TVNRET_SKIPNEW 2 #endif /* Tree view custom draw return flags */ #if (_WIN32_IE >= 0x0400) #define TVCDRF_NOIMAGES 0x00010000L #endif /* Extended combo box item masks */ #if (_WIN32_IE >= 0x0300) #define CBEIF_TEXT 0x00000001 #define CBEIF_IMAGE 0x00000002 #define CBEIF_SELECTEDIMAGE 0x00000004 #define CBEIF_OVERLAY 0x00000008 #define CBEIF_INDENT 0x00000010 #define CBEIF_LPARAM 0x00000020 #define CBEIF_DI_SETITEM 0x10000000 #endif /* Extended combo box messages */ #if (_WIN32_IE >= 0x0300) #define CBEM_INSERTITEMA (WM_USER + 1) #define CBEM_SETIMAGELIST (WM_USER + 2) #define CBEM_GETIMAGELIST (WM_USER + 3) #define CBEM_GETITEMA (WM_USER + 4) #define CBEM_SETITEMA (WM_USER + 5) #define CBEM_DELETEITEM CB_DELETESTRING #define CBEM_GETCOMBOCONTROL (WM_USER + 6) #define CBEM_GETEDITCONTROL (WM_USER + 7) #define CBEM_SETEXSTYLE (WM_USER + 8) #define CBEM_GETEXSTYLE (WM_USER + 9) #define CBEM_HASEDITCHANGED (WM_USER + 10) #define CBEM_INSERTITEMW (WM_USER + 11) #define CBEM_SETITEMW (WM_USER + 12) #define CBEM_GETITEMW (WM_USER + 13) #endif #if (_WIN32_IE >= 0x0400) #define CBEM_SETEXTENDEDSTYLE (WM_USER + 14) #define CBEM_GETEXTENDEDSTYLE CBEM_GETEXSTYLE #define CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #if (_WIN32_WINNT >= 0x0501) #define CBEM_SETWINDOWTHEME CCM_SETWINDOWTHEME #endif #ifdef UNICODE #if (_WIN32_IE >= 0x0300) #define CBEM_INSERTITEM CBEM_INSERTITEMW #define CBEM_GETITEM CBEM_GETITEMW #define CBEM_SETITEM CBEM_SETITEMW #endif #else #if (_WIN32_IE >= 0x0300) #define CBEM_INSERTITEM CBEM_INSERTITEMA #define CBEM_GETITEM CBEM_GETITEMA #define CBEM_SETITEM CBEM_SETITEMA #endif #endif /* Extended combo box extended styles */ #if (_WIN32_IE >= 0x0300) #define CBES_EX_NOEDITIMAGE 0x00000001L #define CBES_EX_NOEDITIMAGEINDENT 0x00000002L #define CBES_EX_PATHWORDBREAKPROC 0x00000004L #endif #if (_WIN32_IE >= 0x0400) #define CBES_EX_NOSIZELIMIT 0x00000008L #define CBES_EX_CASESENSITIVE 0x00000010L #endif #if (_WIN32_WINNT >= 0x0600) #define CBES_EX_TEXTENDELLIPSIS 0x00000020L #endif /* Extended combo box notifications */ #if (_WIN32_IE >= 0x0400) #define CBEN_GETDISPINFOA (CBEN_FIRST - 0) #elif (_WIN32_IE >= 0x0300) #define CBEN_GETDISPINFO (CBEN_FIRST - 0) #endif #if (_WIN32_IE >= 0x0300) #define CBEN_INSERTITEM (CBEN_FIRST - 1) #define CBEN_DELETEITEM (CBEN_FIRST - 2) #define CBEN_BEGINEDIT (CBEN_FIRST - 4) #define CBEN_ENDEDITA (CBEN_FIRST - 5) #define CBEN_ENDEDITW (CBEN_FIRST - 6) #endif #if (_WIN32_IE >= 0x0400) #define CBEN_GETDISPINFOW (CBEN_FIRST - 7) #define CBEN_DRAGBEGINA (CBEN_FIRST - 8) #define CBEN_DRAGBEGINW (CBEN_FIRST - 9) #endif #ifdef UNICODE #if (_WIN32_IE >= 0x0400) #define CBEN_GETDISPINFO CBEN_GETDISPINFOW #endif #if (_WIN32_IE >= 0x0300) #define CBEN_ENDEDIT CBEN_ENDEDITW #endif #if (_WIN32_IE >= 0x0400) #define CBEN_DRAGBEGIN CBEN_DRAGBEGINW #endif #else #if (_WIN32_IE >= 0x0400) #define CBEN_GETDISPINFO CBEN_GETDISPINFOA #endif #if (_WIN32_IE >= 0x0300) #define CBEN_ENDEDIT CBEN_ENDEDITA #endif #if (_WIN32_IE >= 0x0400) #define CBEN_DRAGBEGIN CBEN_DRAGBEGINA #endif #endif /* CBEN_ENDEDIT reasons */ #if (_WIN32_IE >= 0x0300) #define CBENF_KILLFOCUS 1 #define CBENF_RETURN 2 #define CBENF_ESCAPE 3 #define CBENF_DROPDOWN 4 #endif /* Maximum extended combo box string length */ #if (_WIN32_IE >= 0x0300) #define CBEMAXSTRLEN 260 #endif /* Tab control styles */ #if (_WIN32_IE >= 0x0300) #define TCS_SCROLLOPPOSITE 0x0001L #define TCS_BOTTOM 0x0002L #define TCS_RIGHT 0x0002L #define TCS_MULTISELECT 0x0004L #endif #if (_WIN32_IE >= 0x0400) #define TCS_FLATBUTTONS 0x0008L #endif #define TCS_FORCEICONLEFT 0x0010L #define TCS_FORCELABELLEFT 0x0020L #if (_WIN32_IE >= 0x0300) #define TCS_HOTTRACK 0x0040L #define TCS_VERTICAL 0x0080L #endif #define TCS_TABS 0x0000L #define TCS_BUTTONS 0x0100L #define TCS_SINGLELINE 0x0000L #define TCS_MULTILINE 0x0200L #define TCS_RIGHTJUSTIFY 0x0000L #define TCS_FIXEDWIDTH 0x0400L #define TCS_RAGGEDRIGHT 0x0800L #define TCS_FOCUSONBUTTONDOWN 0x1000L #define TCS_OWNERDRAWFIXED 0x2000L #define TCS_TOOLTIPS 0x4000L #define TCS_FOCUSNEVER 0x8000L /* Tab control extended styles */ #if (_WIN32_IE >= 0x0400) #define TCS_EX_FLATSEPARATORS 0x00000001L #define TCS_EX_REGISTERDROP 0x00000002L #endif /* Tab control messages */ #define TCM_GETIMAGELIST (TCM_FIRST + 2) #define TCM_SETIMAGELIST (TCM_FIRST + 3) #define TCM_GETITEMCOUNT (TCM_FIRST + 4) #define TCM_GETITEMA (TCM_FIRST + 5) #define TCM_SETITEMA (TCM_FIRST + 6) #define TCM_INSERTITEMA (TCM_FIRST + 7) #define TCM_DELETEITEM (TCM_FIRST + 8) #define TCM_DELETEALLITEMS (TCM_FIRST + 9) #define TCM_GETITEMRECT (TCM_FIRST + 10) #define TCM_GETCURSEL (TCM_FIRST + 11) #define TCM_SETCURSEL (TCM_FIRST + 12) #define TCM_HITTEST (TCM_FIRST + 13) #define TCM_SETITEMEXTRA (TCM_FIRST + 14) #define TCM_ADJUSTRECT (TCM_FIRST + 40) #define TCM_SETITEMSIZE (TCM_FIRST + 41) #define TCM_REMOVEIMAGE (TCM_FIRST + 42) #define TCM_SETPADDING (TCM_FIRST + 43) #define TCM_GETROWCOUNT (TCM_FIRST + 44) #define TCM_GETTOOLTIPS (TCM_FIRST + 45) #define TCM_SETTOOLTIPS (TCM_FIRST + 46) #define TCM_GETCURFOCUS (TCM_FIRST + 47) #define TCM_SETCURFOCUS (TCM_FIRST + 48) #if (_WIN32_IE >= 0x0300) #define TCM_SETMINTABWIDTH (TCM_FIRST + 49) #define TCM_DESELECTALL (TCM_FIRST + 50) #endif #if (_WIN32_IE >= 0x0400) #define TCM_HIGHLIGHTITEM (TCM_FIRST + 51) #define TCM_SETEXTENDEDSTYLE (TCM_FIRST + 52) #define TCM_GETEXTENDEDSTYLE (TCM_FIRST + 53) #endif #define TCM_GETITEMW (TCM_FIRST + 60) #define TCM_SETITEMW (TCM_FIRST + 61) #define TCM_INSERTITEMW (TCM_FIRST + 62) #if (_WIN32_IE >= 0x0400) #define TCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define TCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif #ifdef UNICODE #define TCM_GETITEM TCM_GETITEMW #define TCM_SETITEM TCM_SETITEMW #define TCM_INSERTITEM TCM_INSERTITEMW #else #define TCM_GETITEM TCM_GETITEMA #define TCM_SETITEM TCM_SETITEMA #define TCM_INSERTITEM TCM_INSERTITEMA #endif /* Tab control item masks */ #define TCIF_TEXT 0x00000001 #define TCIF_IMAGE 0x00000002 #define TCIF_RTLREADING 0x00000004 #define TCIF_PARAM 0x00000008 #if (_WIN32_IE >= 0x0300) #define TCIF_STATE 0x00000010 #endif /* Tab control item states */ #if (_WIN32_IE >= 0x0300) #define TCIF_BUTTONPRESSED 0x00000001 #endif #if (_WIN32_IE >= 0x0400) #define TCIF_HIGHLIGHTED 0x00000002 #endif /* TCM_HITTEST flags */ #define TCHT_NOWHERE 0x00000001 #define TCHT_ONITEMICON 0x00000002 #define TCHT_ONITEMLABEL 0x00000004 #define TCHT_ONITEM (TCHT_ONITEMICON | TCHT_ONITEMLABEL) /* Tab control notifications */ #define TCN_KEYDOWN (TCN_FIRST - 0) #define TCN_SELCHANGE (TCN_FIRST - 1) #define TCN_SELCHANGING (TCN_FIRST - 2) #if (_WIN32_IE >= 0x0400) #define TCN_GETOBJECT (TCN_FIRST - 3) #endif #if (_WIN32_IE >= 0x0500) #define TCN_FOCUSCHANGE (TCN_FIRST - 4) #endif /* Animation control styles */ #define ACS_CENTER 0x0001L #define ACS_TRANSPARENT 0x0002L #define ACS_AUTOPLAY 0x0004L #if (_WIN32_IE >= 0x0300) #define ACS_TIMER 0x0008L #endif /* Animation control messages */ #define ACM_OPENA (WM_USER + 100) #define ACM_PLAY (WM_USER + 101) #define ACM_STOP (WM_USER + 102) #define ACM_OPENW (WM_USER + 103) #define ACM_ISPLAYING (WM_USER + 104) #ifdef UNICODE #define ACM_OPEN ACM_OPENW #else #define ACM_OPEN ACM_OPENA #endif /* Animation control notifications */ #define ACN_START 1 #define ACN_STOP 2 /* Month calendar messages */ #if (_WIN32_IE >= 0x0300) #define MCM_FIRST 0x1000 #define MCM_GETCURSEL (MCM_FIRST + 1) #define MCM_SETCURSEL (MCM_FIRST + 2) #define MCM_GETMAXSELCOUNT (MCM_FIRST + 3) #define MCM_SETMAXSELCOUNT (MCM_FIRST + 4) #define MCM_GETSELRANGE (MCM_FIRST + 5) #define MCM_SETSELRANGE (MCM_FIRST + 6) #define MCM_GETMONTHRANGE (MCM_FIRST + 7) #define MCM_SETDAYSTATE (MCM_FIRST + 8) #define MCM_GETMINREQRECT (MCM_FIRST + 9) #define MCM_SETCOLOR (MCM_FIRST + 10) #define MCM_GETCOLOR (MCM_FIRST + 11) #define MCM_SETTODAY (MCM_FIRST + 12) #define MCM_GETTODAY (MCM_FIRST + 13) #define MCM_HITTEST (MCM_FIRST + 14) #define MCM_SETFIRSTDAYOFWEEK (MCM_FIRST + 15) #define MCM_GETFIRSTDAYOFWEEK (MCM_FIRST + 16) #define MCM_GETRANGE (MCM_FIRST + 17) #define MCM_SETRANGE (MCM_FIRST + 18) #define MCM_GETMONTHDELTA (MCM_FIRST + 19) #define MCM_SETMONTHDELTA (MCM_FIRST + 20) #define MCM_GETMAXTODAYWIDTH (MCM_FIRST + 21) #endif #if (NTDDI_VERSION >= 0x06000000) #define MCM_GETCURRENTVIEW (MCM_FIRST + 22) #define MCM_GETCALENDARCOUNT (MCM_FIRST + 23) #define MCM_GETCALENDARGRIDINFO (MCM_FIRST + 24) #define MCM_GETCALID (MCM_FIRST + 27) #define MCM_SETCALID (MCM_FIRST + 28) #define MCM_SIZERECTTOMIN (MCM_FIRST + 29) #define MCM_SETCALENDARBORDER (MCM_FIRST + 30) #define MCM_GETCALENDARBORDER (MCM_FIRST + 31) #define MCM_SETCURRENTVIEW (MCM_FIRST + 32) #endif #if (_WIN32_IE >= 0x0400) #define MCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define MCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #endif /* MCM_SETCOLOR and MCM_GETCOLOR indices */ #if (_WIN32_IE >= 0x0300) #define MCSC_BACKGROUND 0 #define MCSC_TEXT 1 #define MCSC_TITLEBK 2 #define MCSC_TITLETEXT 3 #define MCSC_MONTHBK 4 #define MCSC_TRAILINGTEXT 5 #endif /* MCM_HITTEST flags */ #if (_WIN32_IE >= 0x0300) #define MCHT_TITLE 0x00010000 #define MCHT_CALENDAR 0x00020000 #define MCHT_TODAYLINK 0x00030000 #endif #if (NTDDI_VERSION >= 0x06000000) #define MCHT_CALENDARCONTROL 0x00100000 #endif #if (_WIN32_IE >= 0x0300) #define MCHT_NEXT 0x01000000 #define MCHT_PREV 0x02000000 #define MCHT_NOWHERE 0x00000000 #define MCHT_TITLEBK (MCHT_TITLE | 0x00000000) #define MCHT_TITLEMONTH (MCHT_TITLE | 0x00000001) #define MCHT_TITLEYEAR (MCHT_TITLE | 0x00000002) #define MCHT_TITLEBTNNEXT (MCHT_TITLE | MCHT_NEXT | 0x00000003) #define MCHT_TITLEBTNPREV (MCHT_TITLE | MCHT_PREV | 0x00000003) #define MCHT_CALENDARBK (MCHT_CALENDAR | 0x00000000) #define MCHT_CALENDARDATE (MCHT_CALENDAR | 0x00000001) #define MCHT_CALENDARDATENEXT (MCHT_CALENDARDATE | MCHT_NEXT) #define MCHT_CALENDARDATEPREV (MCHT_CALENDARDATE | MCHT_PREV) #define MCHT_CALENDARDAY (MCHT_CALENDAR | 0x00000002) #define MCHT_CALENDARWEEKNUM (MCHT_CALENDAR | 0x00000003) #define MCHT_CALENDARDATEMIN (MCHT_CALENDAR | 0x00000004) #define MCHT_CALENDARDATEMAX (MCHT_CALENDAR | 0x00000005) #endif /* Month calendar views */ #if (NTDDI_VERSION >= 0x06000000) #define MCMV_MONTH 0L #define MCMV_YEAR 1L #define MCMV_DECADE 2L #define MCMV_CENTURY 3L #define MCMV_MAX MCMV_CENTURY #endif /* Month calendar grid information parts */ #if (NTDDI_VERSION >= 0x06000000) #define MCGIP_CALENDARCONTROL 0L #define MCGIP_NEXT 1L #define MCGIP_PREV 2L #define MCGIP_FOOTER 3L #define MCGIP_CALENDAR 4L #define MCGIP_CALENDARHEADER 5L #define MCGIP_CALENDARBODY 6L #define MCGIP_CALENDARROW 7L #define MCGIP_CALENDARCELL 8L #endif /* Month calendar grid information flags */ #if (NTDDI_VERSION >= 0x06000000) #define MCGIF_DATE 0x00000001L #define MCGIF_RECT 0x00000002L #define MCGIF_NAME 0x00000004L #endif /* Month calendar notifications */ #if (_WIN32_IE >= 0x0300) #define MCN_SELECT (MCN_FIRST - 0) #define MCN_GETDAYSTATE (MCN_FIRST - 1) #define MCN_SELCHANGE (MCN_FIRST - 3) #define MCN_VIEWCHANGE (MCN_FIRST - 4) #endif /* Month calendar styles */ #if (_WIN32_IE >= 0x0300) #define MCS_DAYSTATE 0x0001L #define MCS_MULTISELECT 0x0002L #define MCS_WEEKNUMBERS 0x0004L #endif #if (_WIN32_IE >= 0x0400) #define MCS_NOTODAYCIRCLE 0x0008L #define MCS_NOTODAY 0x0010L #elif (_WIN32_IE >= 0x0300) #define MCS_NOTODAY 0x0008L #endif #if (NTDDI_VERSION >= 0x06000000) #define MCS_NOTRAILINGDATES 0x0040L #define MCS_SHORTDAYSOFWEEK 0x0080L #define MCS_NOSELCHANGEONNAV 0x0100L #endif /* MCM_GETMONTHRECT flags */ #if (_WIN32_IE >= 0x0300) #define GMR_VISIBLE 0 #define GMR_DAYSTATE 1 #endif /* Date/time picker messages */ #if (_WIN32_IE >= 0x0300) #define DTM_FIRST 0x1000 #define DTM_GETSYSTEMTIME (DTM_FIRST + 1) #define DTM_SETSYSTEMTIME (DTM_FIRST + 2) #define DTM_GETRANGE (DTM_FIRST + 3) #define DTM_SETRANGE (DTM_FIRST + 4) #define DTM_SETFORMATA (DTM_FIRST + 5) #define DTM_SETMCCOLOR (DTM_FIRST + 6) #define DTM_GETMCCOLOR (DTM_FIRST + 7) #define DTM_GETMONTHCAL (DTM_FIRST + 8) #endif #if (_WIN32_IE >= 0x0400) #define DTM_SETMCFONT (DTM_FIRST + 9) #define DTM_GETMCFONT (DTM_FIRST + 10) #endif #if (NTDDI_VERSION >= 0x06000000) #define DTM_SETMCSTYLE (DTM_FIRST + 11) #define DTM_GETMCSTYLE (DTM_FIRST + 12) #define DTM_CLOSEMONTHCAL (DTM_FIRST + 13) #define DTM_GETDATETIMEPICKERINFO (DTM_FIRST + 14) #define DTM_GETIDEALSIZE (DTM_FIRST + 15) #endif #if (_WIN32_IE >= 0x0300) #define DTM_SETFORMATW (DTM_FIRST + 50) #endif #ifdef UNICODE #if (_WIN32_IE >= 0x0300) #define DTM_SETFORMAT DTM_SETFORMATW #endif #else #if (_WIN32_IE >= 0x0300) #define DTM_SETFORMAT DTM_SETFORMATA #endif #endif /* Date/time picker styles */ #if (_WIN32_IE >= 0x0300) #define DTS_UPDOWN 0x0001L #define DTS_SHOWNONE 0x0002L #define DTS_SHORTDATEFORMAT 0x0000L #define DTS_LONGDATEFORMAT 0x0004L #define DTS_TIMEFORMAT 0x0009L #endif #if (_WIN32_IE >= 0x0500) #define DTS_SHORTDATECENTURYFORMAT 0x000CL #endif #if (_WIN32_IE >= 0x0300) #define DTS_APPCANPARSE 0x0010L #define DTS_RIGHTALIGN 0x0020L #endif /* Date/time picker notifications */ #if (_WIN32_IE >= 0x0300) #define DTN_CLOSEUP (DTN_FIRST2 - 0) #define DTN_DROPDOWN (DTN_FIRST2 - 1) #define DTN_FORMATQUERYA (DTN_FIRST2 - 2) #define DTN_FORMATQUERYW (DTN_FIRST - 2) #define DTN_FORMATA (DTN_FIRST2 - 3) #define DTN_FORMATW (DTN_FIRST - 3) #define DTN_WMKEYDOWNA (DTN_FIRST2 - 4) #define DTN_WMKEYDOWNW (DTN_FIRST - 4) #define DTN_USERSTRINGA (DTN_FIRST2 - 5) #define DTN_USERSTRINGW (DTN_FIRST - 5) #define DTN_DATETIMECHANGE (DTN_FIRST2 - 6) #endif #ifdef UNICODE #if (_WIN32_IE >= 0x0300) #define DTN_FORMATQUERY DTN_FORMATQUERYW #define DTN_FORMAT DTN_FORMATW #define DTN_WMKEYDOWN DTN_WMKEYDOWNW #define DTN_USERSTRING DTN_USERSTRINGW #endif #else #if (_WIN32_IE >= 0x0300) #define DTN_FORMATQUERY DTN_FORMATQUERYA #define DTN_FORMAT DTN_FORMATA #define DTN_WMKEYDOWN DTN_WMKEYDOWNA #define DTN_USERSTRING DTN_USERSTRINGA #endif #endif /* DTM_GETRANGE flags */ #if (_WIN32_IE >= 0x0300) #define GDTR_MIN 0x00000001 #define GDTR_MAX 0x00000002 #endif /* DTM_GETSYSTEMTIME return values */ #if (_WIN32_IE >= 0x0300) #define GDT_ERROR (-1) #define GDT_VALID 0 #define GDT_NONE 1 #endif /* IP address control messages */ #if (_WIN32_IE >= 0x0400) #define IPM_CLEARADDRESS (WM_USER + 100) #define IPM_SETADDRESS (WM_USER + 101) #define IPM_GETADDRESS (WM_USER + 102) #define IPM_SETRANGE (WM_USER + 103) #define IPM_SETFOCUS (WM_USER + 104) #define IPM_ISBLANK (WM_USER + 105) #endif /* IP address control notifications */ #if (_WIN32_IE >= 0x0400) #define IPN_FIELDCHANGED (IPN_FIRST - 0) #endif /* Macros to manipulate IP addresses */ #if (_WIN32_IE >= 0x0400) #define MAKEIPRANGE( p1, p2 ) \ ((LPARAM)(WORD)(((BYTE)(p2) << 8) + (BYTE)(p1))) #define MAKEIPADDRESS( p1, p2, p3, p4 ) \ ((LPARAM)(((DWORD)(p1) << 24) + ((DWORD)(p2) << 16) + ((DWORD)(p3) << 8) + \ ((DWORD)(p4)))) #define FIRST_IPADDRESS( x ) \ (((x) >> 24) & 0x000000FF) #define SECOND_IPADDRESS( x ) \ (((x) >> 16) & 0x000000FF) #define THIRD_IPADDRESS( x ) \ (((x) >> 8) & 0x000000FF) #define FOURTH_IPADDRESS( x ) \ ((x) & 0x000000FF) #endif /* Page scroller styles */ #if (_WIN32_IE >= 0x0400) #define PGS_VERT 0x0000L #define PGS_HORZ 0x0001L #define PGS_AUTOSCROLL 0x0002L #define PGS_DRAGNDROP 0x0004L #endif /* Page scroller button states */ #if (_WIN32_IE >= 0x0400) #define PGF_INVISIBLE 0L #define PGF_NORMAL 1L #define PGF_GRAYED 2L #define PGF_DEPRESSED 4L #define PGF_HOT 8L #endif /* Page scroller buttons */ #if (_WIN32_IE >= 0x0400) #define PGB_TOPORLEFT 0 #define PGB_BOTTOMORRIGHT 1 #endif /* Page scroller messages */ #if (_WIN32_IE >= 0x0400) #define PGM_SETCHILD (PGM_FIRST + 1) #define PGM_RECALCSIZE (PGM_FIRST + 2) #define PGM_FORWARDMOUSE (PGM_FIRST + 3) #define PGM_SETBKCOLOR (PGM_FIRST + 4) #define PGM_GETBKCOLOR (PGM_FIRST + 5) #define PGM_SETBORDER (PGM_FIRST + 6) #define PGM_GETBORDER (PGM_FIRST + 7) #define PGM_SETPOS (PGM_FIRST + 8) #define PGM_GETPOS (PGM_FIRST + 9) #define PGM_SETBUTTONSIZE (PGM_FIRST + 10) #define PGM_GETBUTTONSIZE (PGM_FIRST + 11) #define PGM_GETBUTTONSTATE (PGM_FIRST + 12) #define PGM_GETDROPTARGET CCM_GETDROPTARGET #endif /* Page scroller notifications */ #if (_WIN32_IE >= 0x0400) #define PGN_SCROLL (PGN_FIRST - 1) #define PGN_CALCSIZE (PGN_FIRST - 2) #define PGN_HOTITEMCHANGE (PGN_FIRST - 3) #endif /* Page scroller directions */ #if (_WIN32_IE >= 0x0400) #define PGF_SCROLLUP 1 #define PGF_SCROLLDOWN 2 #define PGF_SCROLLLEFT 4 #define PGF_SCROLLRIGHT 8 #endif /* Page scroller keys */ #if (_WIN32_IE >= 0x0400) #define PGK_SHIFT 1 #define PGK_CONTROL 2 #define PGK_MENU 4 #endif /* Native font control styles */ #if (_WIN32_IE >= 0x0400) #define NFS_EDIT 0x0001L #define NFS_STATIC 0x0002L #define NFS_LISTCOMBO 0x0004L #define NFS_BUTTON 0x0008L #define NFS_ALL 0x0010L #define NFS_USEFONTASSOC 0x0020L #endif /* Button image list alignments */ #if (_WIN32_WINNT >= 0x0501) #define BUTTON_IMAGELIST_ALIGN_LEFT 0 #define BUTTON_IMAGELIST_ALIGN_RIGHT 1 #define BUTTON_IMAGELIST_ALIGN_TOP 2 #define BUTTON_IMAGELIST_ALIGN_BOTTOM 3 #define BUTTON_IMAGELIST_ALIGN_CENTER 4 #endif /* Button control messages */ #if (_WIN32_WINNT >= 0x0501) #define BCM_GETIDEALSIZE (BCM_FIRST + 1) #define BCM_SETIMAGELIST (BCM_FIRST + 2) #define BCM_GETIMAGELIST (BCM_FIRST + 3) #define BCM_SETTEXTMARGIN (BCM_FIRST + 4) #define BCM_GETTEXTMARGIN (BCM_FIRST + 5) #endif #if (_WIN32_WINNT >= 0x0600) #define BCM_SETDROPDOWNSTATE (BCM_FIRST + 6) #define BCM_SETSPLITINFO (BCM_FIRST + 7) #define BCM_GETSPLITINFO (BCM_FIRST + 8) #define BCM_SETNOTE (BCM_FIRST + 9) #define BCM_GETNOTE (BCM_FIRST + 10) #define BCM_GETNOTELENGTH (BCM_FIRST + 11) #define BCM_SETSHIELD (BCM_FIRST + 12) #endif /* Button control notifications */ #if (_WIN32_WINNT >= 0x0501) #define BCN_HOTITEMCHANGE (BCN_FIRST + 1) #endif #if (_WIN32_WINNT >= 0x0600) #define BCN_DROPDOWN (BCN_FIRST + 2) #endif /* Button control states */ #if (_WIN32_WINNT >= 0x0501) #define BST_HOT 0x0200 #endif #if (_WIN32_WINNT >= 0x0600) #define BST_DROPDOWNPUSHED 0x0400 #endif /* Button styles */ #if (_WIN32_WINNT >= 0x0600) #define BS_SPLITBUTTON 0x000CL #define BS_DEFSPLITBUTTON 0x000DL #define BS_COMMANDLINK 0x000EL #define BS_DEFCOMMANDLINK 0x000FL #endif /* Button control split information masks */ #if (_WIN32_WINNT >= 0x0600) #define BCSIF_GLYPH 0x00000001 #define BCSIF_IMAGE 0x00000002 #define BCSIF_STYLE 0x00000004 #define BCSIF_SIZE 0x00000008 #endif /* Button control split styles */ #if (_WIN32_WINNT >= 0x0600) #define BCSS_NOSPLIT 0x00000001 #define BCSS_STRETCH 0x00000002 #define BCSS_ALIGNLEFT 0x00000004 #define BCSS_IMAGE 0x00000008 #endif /* BCM_SETIMAGELIST special value */ #if (_WIN32_WINNT >= 0x0600) #define BCCL_NOGLYPH ((HIMAGELIST)-1) #endif /* Edit control messages */ #if (_WIN32_WINNT >= 0x0501) #define EM_SETCUEBANNER (ECM_FIRST + 1) #define EM_GETCUEBANNER (ECM_FIRST + 2) #define EM_SHOWBALLOONTIP (ECM_FIRST + 3) #define EM_HIDEBALLOONTIP (ECM_FIRST + 4) #endif #if (_WIN32_WINNT >= 0x0600) #define EM_SETHILITE (ECM_FIRST + 5) #define EM_GETHILITE (ECM_FIRST + 6) #endif /* Combo box messages */ #if (_WIN32_WINNT >= 0x0501) #define CB_SETMINVISIBLE (CBM_FIRST + 1) #define CB_GETMINVISIBLE (CBM_FIRST + 2) #define CB_SETCUEBANNER (CBM_FIRST + 3) #define CB_GETCUEBANNER (CBM_FIRST + 4) #endif /* Task dialog icon identifiers */ #if (_WIN32_IE >= 0x0400) #define TD_WARNING_ICON MAKEINTRESOURCEW( -1 ) #define TD_ERROR_ICON MAKEINTRESOURCEW( -2 ) #define TD_INFORMATION_ICON MAKEINTRESOURCEW( -3 ) #define TD_SHIELD_ICON MAKEINTRESOURCEW( -4 ) #endif /* Dynamic array special values */ #if (_WIN32_IE >= 0x0300) #define DA_LAST 0x7FFFFFFF #define DA_ERR (-1) #define DSA_APPEND DA_LAST #define DSA_ERR DA_ERR #define DPA_APPEND DA_LAST #define DPA_ERR DA_ERR #endif /* DPA_Merge() flags */ #if (_WIN32_IE >= 0x0300) #define DPAM_SORTED 0x00000001L #define DPAM_NORMAL 0x00000002L #define DPAM_UNION 0x00000004L #define DPAM_INTERSECT 0x00000008L #endif /* Dynamic pointer array merge callback messages */ #if (_WIN32_IE >= 0x0300) #define DPAMM_MERGE 1 #define DPAMM_DELETE 2 #define DPAMM_INSERT 3 #endif /* DPA_Search() flags */ #if (_WIN32_IE >= 0x0300) #define DPAS_SORTED 0x00000001 #define DPAS_INSERTBEFORE 0x00000002 #define DPAS_INSERTAFTER 0x00000004 #endif /* Messages used with _TrackMouseEvent() */ #if (_WIN32_IE >= 0x0300) && !defined( WM_MOUSEHOVER ) #define WM_MOUSEHOVER 0x02A1 #define WM_MOUSELEAVE 0x02A3 #endif /* Definitions for _TrackMouseEvent() */ #if (_WIN32_IE >= 0x0300) && !defined( TME_HOVER ) /* _TrackMouseEvent() flags */ #define TME_HOVER 0x00000001L #define TME_LEAVE 0x00000002L #if (WINVER >= 0x0500) #define TME_NONCLIENT 0x00000010L #endif #define TME_QUERY 0x40000000L #define TME_CANCEL 0x80000000L /* Hover time special value */ #define HOVER_DEFAULT 0xFFFFFFFFL /* _TrackMouseEvent() parameters */ typedef struct tagTRACKMOUSEEVENT { DWORD cbSize; DWORD dwFlags; HWND hwndTrack; DWORD dwHoverTime; } TRACKMOUSEEVENT; typedef TRACKMOUSEEVENT *LPTRACKMOUSEEVENT; #endif /* (_WIN32_IE >= 0x0300) && !defined( TME_HOVER ) */ /* Flat scroll bar properties */ #if (_WIN32_IE >= 0x0400) #define WSB_PROP_CYVSCROLL 0x00000001 #define WSB_PROP_CXHSCROLL 0x00000002 #define WSB_PROP_CYHSCROLL 0x00000004 #define WSB_PROP_CXVSCROLL 0x00000008 #define WSB_PROP_CXHTHUMB 0x00000010 #define WSB_PROP_CYVTHUMB 0x00000020 #define WSB_PROP_VBKGCOLOR 0x00000040 #define WSB_PROP_HBKGCOLOR 0x00000080 #define WSB_PROP_VSTYLE 0x00000100 #define WSB_PROP_HSTYLE 0x00000200 #define WSB_PROP_WINSTYLE 0x00000400 #define WSB_PROP_PALETTE 0x00000800 #define WSB_PROP_MASK 0x00000FFF #endif /* Flat scroll bar modes */ #if (_WIN32_IE >= 0x0400) #define FSB_FLAT_MODE 2 #define FSB_ENCARTA_MODE 1 #define FSB_REGULAR_MODE 0 #endif /* InitCommonControlsEx() parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagINITCOMMONCONTROLSEX { DWORD dwSize; DWORD dwICC; } INITCOMMONCONTROLSEX; typedef INITCOMMONCONTROLSEX *LPINITCOMMONCONTROLSEX; #endif /* Color scheme */ #if (_WIN32_IE >= 0x0400) typedef struct tagCOLORSCHEME { DWORD dwSize; COLORREF clrBtnHighlight; COLORREF clrBtnShadow; } COLORSCHEME; typedef COLORSCHEME *LPCOLORSCHEME; #endif /* NM_TOOLTIPSCREATED parameters */ #if (_WIN32_IE >= 0x0401) typedef struct tagNMTOOLTIPSCREATED { NMHDR hdr; HWND hwndToolTips; } NMTOOLTIPSCREATED; typedef NMTOOLTIPSCREATED *LPNMTOOLTIPSCREATED; #endif /* Mouse notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMMOUSE { NMHDR hdr; DWORD_PTR dwItemSpec; DWORD_PTR dwItemData; POINT pt; LPARAM dwHitInfo; } NMMOUSE; typedef NMMOUSE *LPNMMOUSE; typedef NMMOUSE NMCLICK; typedef LPNMMOUSE LPNMCLICK; #endif /* Object notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMOBJECTNOTIFY { NMHDR hdr; int iItem; const IID *piid; void *pObject; HRESULT hResult; DWORD dwFlags; } NMOBJECTNOTIFY; typedef NMOBJECTNOTIFY *LPNMOBJECTNOTIFY; #endif /* Key notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMKEY { NMHDR hdr; UINT nVKey; UINT uFlags; } NMKEY; typedef NMKEY *LPNMKEY; #endif /* Character notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMCHAR { NMHDR hdr; UINT ch; DWORD dwItemPrev; DWORD dwItemNext; } NMCHAR; typedef NMCHAR *LPNMCHAR; #endif /* NM_CUSTOMTEXT parameters */ #if (_WIN32_IE >= 0x0600) typedef struct tagNMCUSTOMTEXT { NMHDR hdr; HDC hDC; LPCWSTR lpString; int nCount; LPRECT lpRect; UINT uFormat; BOOL fLink; } NMCUSTOMTEXT; typedef NMCUSTOMTEXT *LPNMCUSTOMTEXT; #endif /* NM_CUSTOMDRAW parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMCUSTOMDRAWINFO { NMHDR hdr; DWORD dwDrawStage; HDC hdc; RECT rc; DWORD_PTR dwItemSpec; UINT uItemState; LPARAM lItemlParam; } NMCUSTOMDRAW; typedef NMCUSTOMDRAW *LPNMCUSTOMDRAW; #endif /* NM_CUSTOMDRAW parameters for ToolTip controls */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMTTCUSTOMDRAW { NMCUSTOMDRAW nmcd; UINT uDrawFlags; } NMTTCUSTOMDRAW; typedef NMTTCUSTOMDRAW *LPNMTTCUSTOMDRAW; #endif /* Custom split rectangle notification parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMCUSTOMSPLITRECTINFO { NMHDR hdr; RECT rcClient; RECT rcButton; RECT rcSplit; } NMCUSTOMSPLITRECTINFO; typedef NMCUSTOMSPLITRECTINFO *LPNMCUSTOMSPLITRECTINFO; #endif /* ImageList_DrawIndirect() parameters */ #if (_WIN32_IE >= 0x0300) typedef struct _IMAGELISTDRAWPARAMS { DWORD cbSize; HIMAGELIST himl; int i; HDC hdcDst; int x; int y; int cx; int cy; int xBitmap; int yBitmap; COLORREF rgbBk; COLORREF rgbFg; UINT fStyle; DWORD dwRop; #if (_WIN32_IE >= 0x0501) DWORD fState; DWORD Frame; COLORREF crEffect; #endif } IMAGELISTDRAWPARAMS; typedef IMAGELISTDRAWPARAMS *LPIMAGELISTDRAWPARAMS; #endif /* Image information */ typedef struct _IMAGEINFO { HBITMAP hbmImage; HBITMAP hbmMask; int Unused1; int Unused2; RECT rcImage; } IMAGEINFO; typedef IMAGEINFO *LPIMAGEINFO; /* Header text filter */ typedef struct _HD_TEXTFILTERA { LPSTR pszText; INT cchTextMax; } HD_TEXTFILTERA; typedef HD_TEXTFILTERA *LPHD_TEXTFILTERA; typedef struct _HD_TEXTFILTERW { LPWSTR pszText; INT cchTextMax; } HD_TEXTFILTERW; typedef HD_TEXTFILTERW *LPHD_TEXTFILTERW; #ifdef UNICODE typedef HD_TEXTFILTERW HD_TEXTFILTER; typedef LPHD_TEXTFILTERW LPHD_TEXTFILTER; #else typedef HD_TEXTFILTERA HD_TEXTFILTER; typedef LPHD_TEXTFILTERA LPHD_TEXTFILTER; #endif typedef HD_TEXTFILTER HDTEXTFILTER; typedef LPHD_TEXTFILTER LPHD_TEXTFILTER; /* Header item */ typedef struct _HD_ITEMA { UINT mask; int cxy; LPSTR pszText; HBITMAP hbm; int cchTextMax; int fmt; LPARAM lParam; #if (_WIN32_IE >= 0x0300) int iImage; int iOrder; #endif #if (_WIN32_IE >= 0x0500) UINT type; void *pvFilter; #endif #if (_WIN32_WINNT >= 0x0600) UINT state; #endif } HDITEMA; typedef HDITEMA *LPHDITEMA; typedef struct _HD_ITEMW { UINT mask; int cxy; LPWSTR pszText; HBITMAP hbm; int cchTextMax; int fmt; LPARAM lParam; #if (_WIN32_IE >= 0x0300) int iImage; int iOrder; #endif #if (_WIN32_IE >= 0x0500) UINT type; void *pvFilter; #endif #if (_WIN32_WINNT >= 0x0600) UINT state; #endif } HDITEMW; typedef HDITEMW *LPHDITEMW; #ifdef UNICODE typedef HDITEMW HDITEM; typedef LPHDITEMW LPHDITEM; #else typedef HDITEMA HDITEM; typedef LPHDITEMA LPHDITEM; #endif typedef HDITEM HD_ITEM; /* Header layout */ typedef struct _HD_LAYOUT { RECT *prc; WINDOWPOS *pwpos; } HDLAYOUT; typedef HDLAYOUT *LPHDLAYOUT; typedef HDLAYOUT HD_LAYOUT; /* Header hit test information */ typedef struct _HD_HITTESTINFO { POINT pt; UINT flags; int iItem; } HDHITTESTINFO; typedef HDHITTESTINFO *LPHDHITTESTINFO; typedef HDHITTESTINFO HD_HITTESTINFO; /* Header notification parameters */ typedef struct tagNMHEADERA { NMHDR hdr; int iItem; int iButton; HDITEMA *pitem; } NMHEADERA; typedef NMHEADERA *LPNMHEADERA; typedef struct tagNMHEADERW { NMHDR hdr; int iItem; int iButton; HDITEMW *pitem; } NMHEADERW; typedef NMHEADERW *LPNMHEADERW; #ifdef UNICODE typedef NMHEADERW NMHEADER; typedef LPNMHEADERW LPNMHEADER; #else typedef NMHEADERA NMHEADER; typedef LPNMHEADERA LPNMHEADER; #endif typedef NMHEADERA HD_NOTIFYA; typedef NMHEADERW HD_NOTIFYW; typedef NMHEADER HD_NOTIFY; /* HDN_GETDISPINFO parameters */ typedef struct tagNMHDDISPINFOA { NMHDR hdr; int iItem; UINT mask; LPSTR pszText; int cchTextMax; int iImage; LPARAM lParam; } NMHDDISPINFOA; typedef NMHDDISPINFOA *LPNMHDDISPINFOA; typedef struct tagNMHDDISPINFOW { NMHDR hdr; int iItem; UINT mask; LPWSTR pszText; int cchTextMax; int iImage; LPARAM lParam; } NMHDDISPINFOW; typedef NMHDDISPINFOW *LPNMHDDISPINFOW; #ifdef UNICODE typedef NMHDDISPINFOW NMHDDISPINFO; typedef LPNMHDDISPINFOW LPNMHDDISPINFO; #else typedef NMHDDISPINFOA NMHDDISPINFO; typedef LPNMHDDISPINFOA LPNMHDDISPINFO; #endif /* HDN_FILTERBTNCLICK parameters */ #if (_WIN32_IE >= 0x0500) typedef struct tagNMHDFILTERBTNCLICK { NMHDR hdr; INT iItem; RECT rc; } NMHDFILTERBTNCLICK; typedef NMHDFILTERBTNCLICK *LPNMHDFILTERBTNCLICK; #endif /* Toolbar button */ typedef struct _TBBUTTON { int iBitmap; int idCommand; BYTE fsState; BYTE fsStyle; BYTE bReserved[2]; DWORD_PTR dwData; INT_PTR iString; } TBBUTTON; typedef TBBUTTON *PTBBUTTON; typedef TBBUTTON *LPTBBUTTON; typedef const TBBUTTON *LPCTBBUTTON; /* Color map */ typedef struct _COLORMAP { COLORREF from; COLORREF to; } COLORMAP; typedef COLORMAP *LPCOLORMAP; /* NM_CUSTOMDRAW parameters for toolbars */ #if (_WIN32_IE >= 0x0400) typedef struct _NMTBCUSTOMDRAW { NMCUSTOMDRAW nmcd; HBRUSH hbrMonoDither; HBRUSH hbrLines; HPEN hpenLines; COLORREF clrText; COLORREF clrMark; COLORREF clrTextHighlight; COLORREF clrBtnFace; COLORREF clrBtnHighlight; COLORREF clrHighlightHotTrack; RECT rcText; int nStringBkMode; int nHLStringBkMode; #if (_WIN32_WINNT >= 0x0501) int iListGap; #endif } NMTBCUSTOMDRAW; typedef NMTBCUSTOMDRAW *LPNMTBCUSTOMDRAW; #endif /* TB_ADDBITMAP parameters */ typedef struct tagTBADDBITMAP { HINSTANCE hInst; UINT_PTR nID; } TBADDBITMAP; typedef TBADDBITMAP *LPTBADDBITMAP; /* TB_SAVERESTORE parameters */ typedef struct tagTBSAVEPARAMSA { HKEY hkr; LPCSTR pszSubKey; LPCSTR pszValueName; } TBSAVEPARAMSA; typedef TBSAVEPARAMSA *LPTBSAVEPARAMSA; typedef struct tagTBSAVEPARAMSW { HKEY hkr; LPCWSTR pszSubKey; LPCWSTR pszValueName; } TBSAVEPARAMSW; typedef TBSAVEPARAMSW *LPTBSAVEPARAMSW; #ifdef UNICODE typedef TBSAVEPARAMSW TBSAVEPARAMS; typedef LPTBSAVEPARAMSW LPTBSAVEPARAMS; #else typedef TBSAVEPARAMSA TBSAVEPARAMS; typedef LPTBSAVEPARAMSA LPTBSAVEPARAMS; #endif /* Toolbar insert mark */ #if (_WIN32_IE >= 0x0400) typedef struct { int iButton; DWORD dwFlags; } TBINSERTMARK; typedef TBINSERTMARK *LPTBINSERTMARK; #endif /* TB_REPLACEBITMAP parameters */ typedef struct { HINSTANCE hInstOld; UINT_PTR nIDOld; HINSTANCE hInstNew; UINT_PTR nIDNew; int nButtons; } TBREPLACEBITMAP; typedef TBREPLACEBITMAP *LPTBREPLACEBITMAP; /* Toolbar button information */ #if (_WIN32_IE >= 0x0400) typedef struct { UINT cbSize; DWORD dwMask; int idCommand; int iImage; BYTE fsState; BYTE fsStyle; WORD cx; DWORD_PTR lParam; LPSTR pszText; int cchText; } TBBUTTONINFOA; typedef TBBUTTONINFOA *LPTBBUTTONINFOA; typedef struct { UINT cbSize; DWORD dwMask; int idCommand; int iImage; BYTE fsState; BYTE fsStyle; WORD cx; DWORD_PTR lParam; LPWSTR pszText; int cchText; } TBBUTTONINFOW; typedef TBBUTTONINFOW *LPTBBUTTONINFOW; #ifdef UNICODE typedef TBBUTTONINFOW TBBUTTONINFO; typedef LPTBBUTTONINFOW LPTBBUTTONINFO; #else typedef TBBUTTONINFOA TBBUTTONINFO; typedef LPTBBUTTONINFOA LPTBBUTTONINFO; #endif #endif /* Toolbar metrics */ #if (_WIN32_WINNT >= 0x0501) typedef struct { UINT cbSize; DWORD dwMask; int cxPad; int cyPad; int cxBarPad; int cyBarPad; int cxButtonSpacing; int cyButtonSpacing; } TBMETRICS; typedef TBMETRICS *LPTBMETRICS; #endif /* TBN_HOTITEMCHANGE parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMTBHOTITEM { NMHDR hdr; int idOld; int idNew; DWORD dwFlags; } NMTBHOTITEM; typedef NMTBHOTITEM *LPNMTBHOTITEM; #endif /* TBN_SAVE parameters */ #if (_WIN32_IE >= 0x0500) typedef struct tagNMTBSAVE { NMHDR hdr; DWORD *pData; DWORD *pCurrent; UINT cbData; int iItem; int cButtons; TBBUTTON tbButton; } NMTBSAVE; typedef NMTBSAVE *LPNMTBSAVE; #endif /* TBN_RESTORE parameters */ #if (_WIN32_IE >= 0x0500) typedef struct tagNMTBRESTORE { NMHDR hdr; DWORD *pData; DWORD *pCurrent; UINT cbData; int iItem; int cButtons; int cbBytesPerRecord; TBBUTTON tbButton; } NMTBRESTORE; typedef NMTBRESTORE *LPNMTBRESTORE; #endif /* TBN_GETINFOTIP parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMTBGETINFOTIPA { NMHDR hdr; LPSTR pszText; int cchTextMax; int iItem; LPARAM lParam; } NMTBGETINFOTIPA; typedef NMTBGETINFOTIPA *LPNMTBGETINFOTIPA; typedef struct tagNMTBGETINFOTIPW { NMHDR hdr; LPWSTR pszText; int cchTextMax; int iItem; LPARAM lParam; } NMTBGETINFOTIPW; typedef NMTBGETINFOTIPW *LPNMTBGETINFOTIPW; #ifdef UNICODE typedef NMTBGETINFOTIPW NMTBGETINFOTIP; typedef LPNMTBGETINFOTIPW LPNMTBGETINFOTIP; #else typedef NMTBGETINFOTIPA NMTBGETINFOTIP; typedef LPNMTBGETINFOTIPA LPNMTBGETINFOTIP; #endif #endif /* TBN_GETDISPINFO parameters */ #if (_WIN32_IE >= 0x0400) typedef struct { NMHDR hdr; DWORD dwMask; int idCommand; DWORD_PTR lParam; int iImage; LPSTR pszText; int cchText; } NMTBDISPINFOA; typedef NMTBDISPINFOA *LPNMTBDISPINFOA; typedef struct { NMHDR hdr; DWORD dwMask; int idCommand; DWORD_PTR lParam; int iImage; LPWSTR pszText; int cchText; } NMTBDISPINFOW; typedef NMTBDISPINFOW *LPNMTBDISPINFOW; #ifdef UNICODE typedef NMTBDISPINFOW NMTBDISPINFO; typedef LPNMTBDISPINFOW LPNMTBDISPINFO; #else typedef NMTBDISPINFOA NMTBDISPINFO; typedef LPNMTBDISPINFOA LPNMTBDISPINFO; #endif #endif /* Toolbar notification parameters */ typedef struct tagNMTOOLBARA { NMHDR hdr; int iItem; TBBUTTON tbButton; int cchText; LPSTR pszText; #if (_WIN32_IE >= 0x0500) RECT rcButton; #endif } NMTOOLBARA; typedef NMTOOLBARA *LPNMTOOLBARA; typedef struct tagNMTOOLBARW { NMHDR hdr; int iItem; TBBUTTON tbButton; int cchText; LPWSTR pszText; #if (_WIN32_IE >= 0x0500) RECT rcButton; #endif } NMTOOLBARW; typedef NMTOOLBARW *LPNMTOOLBARW; #ifdef UNICODE typedef NMTOOLBARW NMTOOLBAR; typedef LPNMTOOLBARW LPNMTOOLBAR; #else typedef NMTOOLBARA NMTOOLBAR; typedef LPNMTOOLBARA LPNMTOOLBAR; #endif typedef NMTOOLBARA TBNOTIFYA; typedef NMTOOLBARW TBNOTIFYW; typedef LPNMTOOLBARA LPTBNOTIFYA; typedef LPNMTOOLBARW LPTBNOTIFYW; typedef NMTOOLBAR TBNOTIFY; typedef LPNMTOOLBAR LPTBNOTIFY; /* Rebar information */ #if (_WIN32_IE >= 0x0300) typedef struct tagREBARINFO { UINT cbSize; UINT fMask; HIMAGELIST himl; } REBARINFO; typedef REBARINFO *LPREBARINFO; #endif /* Rebar band information */ #if (_WIN32_IE >= 0x0300) typedef struct tagREBARBANDINFOA { UINT cbSize; UINT fMask; UINT fStyle; COLORREF clrFore; COLORREF clrBack; LPSTR lpText; UINT cch; int iImage; HWND hwndChild; UINT cxMinChild; UINT cyMinChild; UINT cx; HBITMAP hbmBack; UINT wID; #if (_WIN32_IE >= 0x0400) UINT cyChild; UINT cyMaxChild; UINT cyIntegral; UINT cxIdeal; LPARAM lParam; UINT cxHeader; #endif #if (_WIN32_WINNT >= 0x0600) RECT rcChevronLocation; UINT uChevronState; #endif } REBARBANDINFOA; typedef REBARBANDINFOA *LPREBARBANDINFOA; typedef CONST REBARBANDINFOA *LPCREBARBANDINFOA; typedef struct tagREBARBANDINFOW { UINT cbSize; UINT fMask; UINT fStyle; COLORREF clrFore; COLORREF clrBack; LPWSTR lpText; UINT cch; int iImage; HWND hwndChild; UINT cxMinChild; UINT cyMinChild; UINT cx; HBITMAP hbmBack; UINT wID; #if (_WIN32_IE >= 0x0400) UINT cyChild; UINT cyMaxChild; UINT cyIntegral; UINT cxIdeal; LPARAM lParam; UINT cxHeader; #endif #if (_WIN32_WINNT >= 0x0600) RECT rcChevronLocation; UINT uChevronState; #endif } REBARBANDINFOW; typedef REBARBANDINFOW *LPREBARBANDINFOW; typedef CONST REBARBANDINFOW *LPCREBARBANDINFOW; #ifdef UNICODE typedef REBARBANDINFOW REBARBANDINFO; typedef LPREBARBANDINFOW LPREBARBANDINFO; typedef LPCREBARBANDINFOW LPCREBARBANDINFO; #else typedef REBARBANDINFOA REBARBANDINFO; typedef LPREBARBANDINFOA LPREBARBANDINFO; typedef LPCREBARBANDINFOA LPCREBARBANDINFO; #endif #endif /* RBN_CHILDSIZE parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMREBARCHILDSIZE { NMHDR hdr; UINT uBand; UINT wID; RECT rcChild; RECT rcBand; } NMREBARCHILDSIZE; typedef NMREBARCHILDSIZE *LPNMREBARCHILDSIZE; #endif /* Rebar notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMREBAR { NMHDR hdr; DWORD dwMask; UINT uBand; UINT fStyle; UINT wID; LPARAM lParam; } NMREBAR; typedef NMREBAR *LPNMREBAR; #endif /* RBN_AUTOSIZE parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMRBAUTOSIZE { NMHDR hdr; BOOL fChanged; RECT rcTarget; RECT rcActual; } NMRBAUTOSIZE; typedef NMRBAUTOSIZE *LPNMRBAUTOSIZE; #endif /* Rebar chevron notification parameters */ #if (_WIN32_IE >= 0x0500) typedef struct tagNMREBARCHEVRON { NMHDR hdr; UINT uBand; UINT wID; LPARAM lParam; RECT rc; LPARAM lParamNM; } NMREBARCHEVRON; typedef NMREBARCHEVRON *LPNMREBARCHEVRON; #endif /* RBN_SPLITTERDRAG parameters */ #if (_WIN32_IE >= 0x0600) typedef struct tagNMREBARSPLITTER { NMHDR hdr; RECT rcSizing; } NMREBARSPLITTER; typedef NMREBARSPLITTER *LPNMREBARSPLITTER; #endif /* RBN_AUTOBREAK parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagNMREBARAUTOBREAK { NMHDR hdr; UINT uBand; UINT wID; LPARAM lParam; UINT uMsg; UINT fStyleCurrent; BOOL fAutoBreak; } NMREBARAUTOBREAK; typedef NMREBARAUTOBREAK *LPNMREBARAUTOBREAK; #endif /* RB_HITTEST parameters */ #if (_WIN32_IE >= 0x0400) typedef struct _RB_HITTESTINFO { POINT pt; UINT flags; int iBand; } RBHITTESTINFO; typedef RBHITTESTINFO *LPRBHITTESTINFO; #endif /* Tool information */ typedef struct tagTOOLINFOA { UINT cbSize; UINT uFlags; HWND hwnd; UINT_PTR uId; RECT rect; HINSTANCE hinst; LPSTR lpszText; #if (_WIN32_IE >= 0x0300) LPARAM lParam; #endif #if (_WIN32_WINNT >= 0x0501) void *lpReserved; #endif } TOOLINFOA; typedef TOOLINFOA *PTOOLINFOA; typedef TOOLINFOA *LPTOOLINFOA; typedef struct tagTOOLINFOW { UINT cbSize; UINT uFlags; HWND hwnd; UINT_PTR uId; RECT rect; HINSTANCE hinst; LPWSTR lpszText; #if (_WIN32_IE >= 0x0300) LPARAM lParam; #endif #if (_WIN32_WINNT >= 0x0501) void *lpReserved; #endif } TOOLINFOW; typedef TOOLINFOW *PTOOLINFOW; typedef TOOLINFOW *LPTOOLINFOW; #ifdef UNICODE typedef TOOLINFOW TOOLINFO; typedef PTOOLINFOW PTOOLINFO; typedef LPTOOLINFOW LPTOOLINFO; #else typedef TOOLINFOA TOOLINFO; typedef PTOOLINFOA PTOOLINFO; typedef LPTOOLINFOA LPTOOLINFO; #endif typedef TOOLINFOA TTTOOLINFOA; typedef LPTOOLINFOA LPTTTOOLINFOA; typedef TOOLINFOW TTTOOLINFOW; typedef LPTOOLINFOW LPTTTOOLINFOW; typedef TOOLINFO TTTOOLINFO; typedef LPTOOLINFO LPTTTOOLINFO; /* TTM_GETTITLE parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct _TTGETTITLE { DWORD dwSize; UINT uTitleBitmap; UINT cch; WCHAR *pszTitle; } TTGETTITLE; typedef TTGETTITLE *PTTGETTITLE; #endif /* TTM_HITTEST parameters */ typedef struct _TT_HITTESTINFOA { HWND hwnd; POINT pt; TTTOOLINFOA ti; } TTHITTESTINFOA; typedef TTHITTESTINFOA *LPTTHITTESTINFOA; typedef struct _TT_HITTESTINFOW { HWND hwnd; POINT pt; TTTOOLINFOW ti; } TTHITTESTINFOW; typedef TTHITTESTINFOW *LPTTHITTESTINFOW; #ifdef UNICODE typedef TTHITTESTINFOW TTHITTESTINFO; typedef LPTTHITTESTINFOW LPTTHITTESTINFO; #else typedef TTHITTESTINFOA TTHITTESTINFO; typedef LPTTHITTESTINFOA LPTTHITTESTINFO; #endif typedef LPTTHITTESTINFOA LPHITTESTINFOA; typedef LPTTHITTESTINFOW LPHITTESTINFOW; typedef LPTTHITTESTINFO LPHITTESTINFO; /* TTN_GETDISPINFO parameters */ typedef struct tagNMTTDISPINFOA { NMHDR hdr; LPSTR lpszText; char szText[80]; HINSTANCE hinst; UINT uFlags; #if (_WIN32_IE >= 0x0300) LPARAM lParam; #endif } NMTTDISPINFOA; typedef NMTTDISPINFOA *LPNMTTDISPINFOA; typedef struct tagNMTTDISPINFOW { NMHDR hdr; LPWSTR lpszText; WCHAR szText[80]; HINSTANCE hinst; UINT uFlags; #if (_WIN32_IE >= 0x0300) LPARAM lParam; #endif } NMTTDISPINFOW; typedef NMTTDISPINFOW *LPNMTTDISPINFOW; #ifdef UNICODE typedef NMTTDISPINFOW NMTTDISPINFO; typedef LPNMTTDISPINFOW LPNMTTDISPINFO; #else typedef NMTTDISPINFOA NMTTDISPINFO; typedef LPNMTTDISPINFOA LPNMTTDISPINFO; #endif typedef NMTTDISPINFOA TOOLTIPTEXTA; typedef LPNMTTDISPINFOA LPTOOLTIPTEXTA; typedef NMTTDISPINFOW TOOLTIPTEXTW; typedef LPNMTTDISPINFOW LPTOOLTIPTEXTW; typedef NMTTDISPINFO TOOLTIPTEXT; typedef LPNMTTDISPINFO LPTOOLTIPTEXT; /* TRBN_THUMBPOSCHANGING parameters */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagTRBTHUMBPOSCHANGING { NMHDR hdr; DWORD dwPos; int nReason; } NMTRBTHUMBPOSCHANGING; #endif /* Drag list information */ typedef struct tagDRAGLISTINFO { UINT uNotification; HWND hWnd; POINT ptCursor; } DRAGLISTINFO; typedef DRAGLISTINFO *LPDRAGLISTINFO; /* Up/down accelerator */ typedef struct _UDACCEL { UINT nSec; UINT nInc; } UDACCEL; typedef UDACCEL *LPUDACCEL; /* Up/down notification parameters */ typedef struct _NM_UPDOWN { NMHDR hdr; int iPos; int iDelta; } NMUPDOWN; typedef NMUPDOWN *LPNMUPDOWN; typedef NMUPDOWN NM_UPDOWN; typedef LPNMUPDOWN LPNM_UPDOWN; /* Progress bar range */ #if (_WIN32_IE >= 0x0300) typedef struct { int iLow; int iHigh; } PBRANGE; typedef PBRANGE *PPBRANGE; #endif /* Link item */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLITEM { UINT mask; int iLink; UINT state; UINT stateMask; WCHAR szID[MAX_LINKID_TEXT]; WCHAR szUrl[L_MAX_URL_LENGTH]; } LITEM; typedef LITEM *PLITEM; #endif /* LM_HITTEST parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLHITTESTINFO { POINT pt; LITEM item; } LHITTESTINFO; typedef LHITTESTINFO *PLHITTESTINFO; #endif /* Link notification parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagNMLINK { NMHDR hdr; LITEM item; } NMLINK; typedef NMLINK *PNMLINK; #endif /* List view item */ typedef struct tagLVITEMA { UINT mask; int iItem; int iSubItem; UINT state; UINT stateMask; LPSTR pszText; int cchTextMax; int iImage; LPARAM lParam; #if (_WIN32_IE >= 0x0300) int iIndent; #endif #if (_WIN32_WINNT >= 0x0501) int iGroupId; UINT cColumns; PUINT puColumns; #endif #if (_WIN32_WINNT >= 0x0600) int *piColFmt; int iGroup; #endif } LVITEMA; typedef LVITEMA *LPLVITEMA; typedef struct tagLVITEMW { UINT mask; int iItem; int iSubItem; UINT state; UINT stateMask; LPWSTR pszText; int cchTextMax; int iImage; LPARAM lParam; #if (_WIN32_IE >= 0x0300) int iIndent; #endif #if (_WIN32_WINNT >= 0x0501) int iGroupId; UINT cColumns; PUINT puColumns; #endif #if (_WIN32_WINNT >= 0x0600) int *piColFmt; int iGroup; #endif } LVITEMW; typedef LVITEMW *LPLVITEMW; #ifdef UNICODE typedef LVITEMW LVITEM; typedef LPLVITEMW LPLVITEM; #else typedef LVITEMA LVITEM; typedef LPLVITEMA LPLVITEM; #endif typedef LVITEM LV_ITEM; typedef LVITEMA LV_ITEMA; typedef LVITEMW LV_ITEMW; /* LVM_FINDITEM parameters */ typedef struct tagLVFINDINFOA { UINT flags; LPCSTR psz; LPARAM lParam; POINT pt; UINT vkDirection; } LVFINDINFOA; typedef LVFINDINFOA *LPLVFINDINFOA; typedef struct tagLVFINDINFOW { UINT flags; LPCWSTR psz; LPARAM lParam; POINT pt; UINT vkDirection; } LVFINDINFOW; typedef LVFINDINFOW *LPLVFINDINFOW; #ifdef UNICODE typedef LVFINDINFOW LVFINDINFO; typedef LPLVFINDINFOW LPLVFINDINFO; #else typedef LVFINDINFOA LVFINDINFO; typedef LPLVFINDINFOA LPLVFINDINFO; #endif typedef LVFINDINFOA LV_FINDINFOA; typedef LVFINDINFOW LV_FINDINFOW; typedef LVFINDINFO LV_FINDINFO; /* LVM_HITTEST parameters */ typedef struct tagLVHITTESTINFO { POINT pt; UINT flags; int iItem; #if (_WIN32_IE >= 0x0300) int iSubItem; #endif #if (_WIN32_WINNT >= 0x0600) int iGroup; #endif } LVHITTESTINFO; typedef LVHITTESTINFO *LPLVHITTESTINFO; typedef LVHITTESTINFO LV_HITTESTINFO; /* List view column */ typedef struct tagLVCOLUMNA { UINT mask; int fmt; int cx; LPSTR pszText; int cchTextMax; int iSubItem; #if (_WIN32_IE >= 0x0300) int iImage; int iOrder; #endif #if (_WIN32_WINNT >= 0x0600) int cxMin; int cxDefault; int cxIdeal; #endif } LVCOLUMNA; typedef LVCOLUMNA *LPLVCOLUMNA; typedef struct tagLVCOLUMNW { UINT mask; int fmt; int cx; LPWSTR pszText; int cchTextMax; int iSubItem; #if (_WIN32_IE >= 0x0300) int iImage; int iOrder; #endif #if (_WIN32_WINNT >= 0x0600) int cxMin; int cxDefault; int cxIdeal; #endif } LVCOLUMNW; typedef LVCOLUMNW *LPLVCOLUMNW; #ifdef UNICODE typedef LVCOLUMNW LVCOLUMN; typedef LPLVCOLUMNW LPLVCOLUMN; #else typedef LVCOLUMNA LVCOLUMN; typedef LPLVCOLUMNA LPLVCOLUMN; #endif typedef LVCOLUMNA LV_COLUMNA; typedef LVCOLUMNW LV_COLUMNW; typedef LVCOLUMN LV_COLUMN; /* List view compare callback */ typedef int (CALLBACK *PFNLVCOMPARE)( LPARAM, LPARAM, LPARAM ); /* List view background image */ #if (_WIN32_IE >= 0x0400) typedef struct tagLVBKIMAGEA { ULONG ulFlags; HBITMAP hbm; LPSTR pszImage; UINT cchImageMax; int xOffsetPercent; int yOffsetPercent; } LVBKIMAGEA; typedef LVBKIMAGEA *LPLVBKIMAGEA; typedef struct tagLVBKIMAGEW { ULONG ulFlags; HBITMAP hbm; LPWSTR pszImage; UINT cchImageMax; int xOffsetPercent; int yOffsetPercent; } LVBKIMAGEW; typedef LVBKIMAGEW *LPLVBKIMAGEW; #ifdef UNICODE typedef LVBKIMAGEW LVBKIMAGE; typedef LPLVBKIMAGEW LPLVBKIMAGE; #else typedef LVBKIMAGEA LVBKIMAGE; typedef LPLVBKIMAGEA LPLVBKIMAGE; #endif #endif /* List view group */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLVGROUP { UINT cbSize; UINT mask; LPWSTR pszHeader; int cchHeader; LPWSTR pszFooter; int cchFooter; int iGroupId; UINT stateMask; UINT state; UINT uAlign; #if (_WIN32_WINNT >= 0x0600) LPWSTR pszSubtitle; UINT cchSubtitle; LPWSTR pszTask; UINT cchTask; LPWSTR pszDescriptionTop; UINT cchDescriptionTop; LPWSTR pszDescriptionBottom; UINT cchDescriptionBottom; int iTitleImage; int iExtendedImage; int iFirstItem; UINT cItems; LPWSTR pszSubsetTitle; UINT cchSubsetTitle; #endif } LVGROUP; typedef LVGROUP *PLVGROUP; #endif /* List view group metrics */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLVGROUPMETRICS { UINT cbSize; UINT mask; UINT Left; UINT Top; UINT Right; UINT Bottom; COLORREF crLeft; COLORREF crTop; COLORREF crRight; COLORREF crBottom; COLORREF crHeader; COLORREF crFooter; } LVGROUPMETRICS; typedef LVGROUPMETRICS *PLVGROUPMETRICS; #endif /* List view group compare callback */ #if (_WIN32_WINNT >= 0x0501) typedef int (CALLBACK *PFNLVGROUPCOMPARE)( int, int, void * ); #endif /* LVM_INSERTGROUPSORTED parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLVINSERTGROUPSORTED { PFNLVGROUPCOMPARE pfnGroupCompare; void *pvData; LVGROUP lvGroup; } LVINSERTGROUPSORTED; typedef LVINSERTGROUPSORTED *PLVINSERTGROUPSORTED; #endif /* List view tile view information */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLVTILEVIEWINFO { UINT cbSize; DWORD dwMask; DWORD dwFlags; SIZE sizeTile; int cLines; RECT rcLabelMargin; } LVTILEVIEWINFO; typedef LVTILEVIEWINFO *PLVTILEVIEWINFO; #endif /* List view tile information */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLVTILEINFO { UINT cbSize; int iItem; UINT cColumns; PUINT puColumns; #if (_WIN32_WINNT >= 0x0600) int *piColFmt; #endif } LVTILEINFO; typedef LVTILEINFO *PLVTILEINFO; #endif /* List view insert mark */ #if (_WIN32_WINNT >= 0x0501) typedef struct { UINT cbSize; DWORD dwFlags; int iItem; DWORD dwReserved; } LVINSERTMARK; typedef LVINSERTMARK *LPLVINSERTMARK; #endif /* LVM_SETINFOTIP parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagLVSETINFOTIP { UINT cbSize; DWORD dwFlags; LPWSTR pszText; int iItem; int iSubItem; } LVSETINFOTIP; typedef LVSETINFOTIP *PLVSETINFOTIP; #endif /* List view footer information */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagLVFOOTERINFO { UINT mask; LPWSTR pszText; int cchTextMax; UINT cItems; } LVFOOTERINFO; typedef LVFOOTERINFO *LPLVFOOTERINFO; #endif /* List view footer item */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagLVFOOTERITEM { UINT mask; int iItem; LPWSTR pszText; int cchTextMax; UINT state; UINT stateMask; } LVFOOTERITEM; typedef LVFOOTERITEM *LPLVFOOTERITEM; #endif /* List view item index */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagLVITEMINDEX { int iItem; int iGroup; } LVITEMINDEX; typedef LVITEMINDEX *PLVITEMINDEX; #endif /* List view notification parameters */ typedef struct tagNMLISTVIEW { NMHDR hdr; int iItem; int iSubItem; UINT uNewState; UINT uOldState; UINT uChanged; POINT ptAction; LPARAM lParam; } NMLISTVIEW; typedef NMLISTVIEW *LPNMLISTVIEW; typedef NMLISTVIEW NM_LISTVIEW; typedef LPNMLISTVIEW LPNM_LISTVIEW; /* New list view notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMITEMACTIVATE { NMHDR hdr; int iItem; int iSubItem; UINT uNewState; UINT uOldState; UINT uChanged; POINT ptAction; LPARAM lParam; UINT uKeyFlags; } NMITEMACTIVATE; typedef NMITEMACTIVATE *LPNMITEMACTIVATE; #endif /* NM_CUSTOMDRAW parameters for list view controls */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMLVCUSTOMDRAW { NMCUSTOMDRAW nmcd; COLORREF clrText; COLORREF clrTextBk; #if (_WIN32_IE >= 0x0400) int iSubItem; #endif #if (_WIN32_WINNT >= 0x0501) DWORD dwItemType; COLORREF clrFace; int iIconEffect; int iIconPhase; int iPartId; int iStateId; RECT rcText; UINT uAlign; #endif } NMLVCUSTOMDRAW; typedef NMLVCUSTOMDRAW *LPNMLVCUSTOMDRAW; #endif /* LVN_ODCACHEHINT parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMLVCACHEHINT { NMHDR hdr; int iFrom; int iTo; } NMLVCACHEHINT; typedef NMLVCACHEHINT *LPNMLVCACHEHINT; typedef NMLVCACHEHINT NM_CACHEHINT; typedef LPNMLVCACHEHINT PNM_CACHEHINT; typedef LPNMLVCACHEHINT LPNM_CACHEHINT; #endif /* LVN_ODFINDITEM parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMLVFINDITEMA { NMHDR hdr; int iStart; LVFINDINFOA lvfi; } NMLVFINDITEMA; typedef NMLVFINDITEMA *LPNMLVFINDITEMA; typedef struct tagNMLVFINDITEMW { NMHDR hdr; int iStart; LVFINDINFOW lvfi; } NMLVFINDITEMW; typedef NMLVFINDITEMW *LPNMLVFINDITEMW; #ifdef UNICODE typedef NMLVFINDITEMW NMLVFINDITEM; typedef LPNMLVFINDITEMW LPNMLVFINDITEM; #else typedef NMLVFINDITEMA NMLVFINDITEM; typedef LPNMLVFINDITEMA LPNMLVFINDITEM; #endif typedef NMLVFINDITEMA NM_FINDITEMA; typedef NMLVFINDITEMW NM_FINDITEMW; typedef LPNMLVFINDITEMA PNM_FINDITEMA; typedef LPNMLVFINDITEMW PNM_FINDITEMW; typedef LPNMLVFINDITEMA LPNM_FINDITEMA; typedef LPNMLVFINDITEMW LPNM_FINDITEMW; typedef NMLVFINDITEM NM_FINDITEM; typedef LPNMLVFINDITEM PNM_FINDITEM; typedef LPNMLVFINDITEM LPNM_FINDITEM; #endif /* LVN_ODSTATECHANGE parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMLVODSTATECHANGE { NMHDR hdr; int iFrom; int iTo; UINT uNewState; UINT uOldState; } NMLVODSTATECHANGE; typedef NMLVODSTATECHANGE *LPNMLVODSTATECHANGE; typedef NMLVODSTATECHANGE NM_ODSTATECHANGE; typedef LPNMLVODSTATECHANGE PNM_ODSTATECHANGE; typedef LPNMLVODSTATECHANGE LPNM_ODSTATECHANGE; #endif /* LVN_GETDISPINFO and LVN_SETDISPINFO parameters */ typedef struct tagLVDISPINFOA { NMHDR hdr; LVITEMA item; } NMLVDISPINFOA; typedef NMLVDISPINFOA *LPNMLVDISPINFOA; typedef struct tagLVDISPINFOW { NMHDR hdr; LVITEMW item; } NMLVDISPINFOW; typedef NMLVDISPINFOW *LPNMLVDISPINFOW; #ifdef UNICODE typedef NMLVDISPINFOW NMLVDISPINFO; typedef LPNMLVDISPINFOW LPNMLVDISPINFO; #else typedef NMLVDISPINFOA NMLVDISPINFO; typedef LPNMLVDISPINFOA LPNMLVDISPINFO; #endif typedef NMLVDISPINFOA LV_DISPINFOA; typedef NMLVDISPINFOW LV_DISPINFOW; typedef NMLVDISPINFO LV_DISPINFO; /* LVN_KEYDOWN parameters */ #include typedef struct tagLVKEYDOWN { NMHDR hdr; WORD wVKey; UINT flags; } NMLVKEYDOWN; typedef NMLVKEYDOWN *LPNMLVKEYDOWN; typedef NMLVKEYDOWN LV_KEYDOWN; #include /* LVN_LINKCLICK parameters */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagNMLVLINK { NMHDR hdr; LITEM link; int iItem; int iSubItem; } NMLVLINK; typedef NMLVLINK *PNMLVLINK; #endif /* LVN_GETINFOTIP parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMLVGETINFOTIPA { NMHDR hdr; DWORD dwFlags; LPSTR pszText; int cchTextMax; int iItem; int iSubItem; LPARAM lParam; } NMLVGETINFOTIPA; typedef NMLVGETINFOTIPA *LPNMLVGETINFOTIPA; typedef struct tagNMLVGETINFOTIPW { NMHDR hdr; DWORD dwFlags; LPWSTR pszText; int cchTextMax; int iItem; int iSubItem; LPARAM lParam; } NMLVGETINFOTIPW; typedef NMLVGETINFOTIPW *LPNMLVGETINFOTIPW; #ifdef UNICODE typedef NMLVGETINFOTIPW NMLVGETINFOTIP; typedef LPNMLVGETINFOTIPW LPNMLVGETINFOTIP; #else typedef NMLVGETINFOTIPA NMLVGETINFOTIP; typedef LPNMLVGETINFOTIPA LPNMLVGETINFOTIP; #endif #endif /* List view scroll notification parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagNMLVSCROLL { NMHDR hdr; int dx; int dy; } NMLVSCROLL; typedef NMLVSCROLL *LPNMLVSCROLL; #endif /* LVN_GETEMPTYMARKUP parameters */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagNMLVEMPTYMARKUP { NMHDR hdr; DWORD dwFlags; WCHAR szMarkup[L_MAX_URL_LENGTH]; } NMLVEMPTYMARKUP; #endif /* TVN_STATEIMAGECHANGING parameters */ #if (_WIN32_IE >= 0x0600) typedef struct tagNMTVSTATEIMAGECHANGING { NMHDR hdr; HTREEITEM hti; int iOldStateImageIndex; int iNewStateImageIndex; } NMTVSTATEIMAGECHANGING; typedef NMTVSTATEIMAGECHANGING *LPNMTVSTATEIMAGECHANGING; #endif /* Tree view item */ typedef struct tagTVITEMA { UINT mask; HTREEITEM hItem; UINT state; UINT stateMask; LPSTR pszText; int cchTextMax; int iImage; int iSelectedImage; int cChildren; LPARAM lParam; } TVITEMA; typedef TVITEMA *LPTVITEMA; typedef struct tagTVITEMW { UINT mask; HTREEITEM hItem; UINT state; UINT stateMask; LPWSTR pszText; int cchTextMax; int iImage; int iSelectedImage; int cChildren; LPARAM lParam; } TVITEMW; typedef TVITEMW *LPTVITEMW; #ifdef UNICODE typedef TVITEMW TVITEM; typedef LPTVITEMW LPTVITEM; #else typedef TVITEMA TVITEM; typedef LPTVITEMA LPTVITEM; #endif typedef TVITEMA TV_ITEMA; typedef TVITEMW TV_ITEMW; typedef LPTVITEMA LPTV_ITEMA; typedef LPTVITEMW LPTV_ITEMW; typedef TVITEM TV_ITEM; typedef LPTVITEM LPTV_ITEM; /* Tree view extended item */ #if (_WIN32_IE >= 0x0400) typedef struct tagTVITEMEXA { UINT mask; HTREEITEM hItem; UINT state; UINT stateMask; LPSTR pszText; int cchTextMax; int iImage; int iSelectedImage; int cChildren; LPARAM lParam; int iIntegral; #if (_WIN32_IE >= 0x0600) UINT uStateEx; HWND hwnd; int iExpandedImage; #endif #if (NTDDI_VERSION >= 0x06010000) int iReserved; #endif } TVITEMEXA; typedef TVITEMEXA *LPTVITEMEXA; typedef struct tagTVITEMEXW { UINT mask; HTREEITEM hItem; UINT state; UINT stateMask; LPWSTR pszText; int cchTextMax; int iImage; int iSelectedImage; int cChildren; LPARAM lParam; int iIntegral; #if (_WIN32_IE >= 0x0600) UINT uStateEx; HWND hwnd; int iExpandedImage; #endif #if (NTDDI_VERSION >= 0x06010000) int iReserved; #endif } TVITEMEXW; typedef TVITEMEXW *LPTVITEMEXW; #ifdef UNICODE typedef TVITEMEXW TVITEMEX; typedef LPTVITEMEXW LPTVITEMEX; #else typedef TVITEMEXA TVITEMEX; typedef LPTVITEMEXA LPTVITEMEX; #endif #endif /* TVM_INSERTITEM parameters */ typedef struct tagTVINSERTSTRUCTA { HTREEITEM hParent; HTREEITEM hInsertAfter; #if (_WIN32_IE >= 0x0400) union { TVITEMEXA itemex; TV_ITEMA item; } DUMMYUNIONNAME; #else TV_ITEMA item; #endif } TVINSERTSTRUCTA; typedef TVINSERTSTRUCTA *LPTVINSERTSTRUCTA; typedef struct tagTVINSERTSTRUCTW { HTREEITEM hParent; HTREEITEM hInsertAfter; #if (_WIN32_IE >= 0x0400) union { TVITEMEXW itemex; TV_ITEMW item; } DUMMYUNIONNAME; #else TV_ITEMW item; #endif } TVINSERTSTRUCTW; typedef TVINSERTSTRUCTW *LPTVINSERTSTRUCTW; #ifdef UNICODE typedef TVINSERTSTRUCTW TVINSERTSTRUCT; typedef LPTVINSERTSTRUCTW LPTVINSERTSTRUCT; #else typedef TVINSERTSTRUCTA TVINSERTSTRUCT; typedef LPTVINSERTSTRUCTA LPTVINSERTSTRUCT; #endif typedef TVINSERTSTRUCTA TV_INSERTSTRUCTA; typedef TVINSERTSTRUCTW TV_INSERTSTRUCTW; typedef LPTVINSERTSTRUCTA LPTV_INSERTSTRUCTA; typedef LPTVINSERTSTRUCTW LPTV_INSERTSTRUCTW; typedef TVINSERTSTRUCT TV_INSERTSTRUCT; typedef LPTVINSERTSTRUCT LPTV_INSERTSTRUCT; /* TVM_HITTEST parameters */ typedef struct tagTVHITTESTINFO { POINT pt; UINT flags; HTREEITEM hItem; } TVHITTESTINFO; typedef TVHITTESTINFO *LPTVHITTESTINFO; typedef TVHITTESTINFO TV_HITTESTINFO; typedef LPTVHITTESTINFO LPTV_HITTESTINFO; /* Tree view item parts */ #if (_WIN32_WINNT >= 0x0600) typedef enum _TVITEMPART { TVGIPR_BUTTON = 1 } TVITEMPART; #endif /* TVM_GETITEMPARTRECT parameters */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagTVGETITEMPARTRECTINFO { HTREEITEM hti; RECT *prc; TVITEMPART partID; } TVGETITEMPARTRECTINFO; #endif /* Tree view compare callback */ typedef int (CALLBACK *PFNTVCOMPARE)( LPARAM, LPARAM, LPARAM ); /* TVM_SORTCHILDRENCB parameters */ typedef struct tagTVSORTCB { HTREEITEM hParent; PFNTVCOMPARE lpfnCompare; LPARAM lParam; } TVSORTCB; typedef TVSORTCB *LPTVSORTCB; typedef TVSORTCB TV_SORTCB; typedef LPTVSORTCB LPTV_SORTCB; /* Tree view notification parameters */ typedef struct tagNMTREEVIEWA { NMHDR hdr; UINT action; TVITEMA itemOld; TVITEMA itemNew; POINT ptDrag; } NMTREEVIEWA; typedef NMTREEVIEWA *LPNMTREEVIEWA; typedef struct tagNMTREEVIEWW { NMHDR hdr; UINT action; TVITEMW itemOld; TVITEMA itemNew; POINT ptDrag; } NMTREEVIEWW; typedef NMTREEVIEWW *LPNMTREEVIEWW; #ifdef UNICODE typedef NMTREEVIEWW NMTREEVIEW; typedef LPNMTREEVIEWW LPNMTREEVIEW; #else typedef NMTREEVIEWA NMTREEVIEW; typedef LPNMTREEVIEWA LPNMTREEVIEW; #endif typedef NMTREEVIEWA NM_TREEVIEWA; typedef NMTREEVIEWW NM_TREEVIEWW; typedef LPNMTREEVIEWA LPNM_TREEVIEWA; typedef LPNMTREEVIEWW LPNM_TREEVIEWW; typedef NMTREEVIEW NM_TREEVIEW; typedef LPNMTREEVIEW LPNM_TREEVIEW; /* TVN_GETDISPINFO and TVN_SETDISPINFO parameters */ typedef struct tagTVDISPINFOA { NMHDR hdr; TVITEMA item; } NMTVDISPINFOA; typedef NMTVDISPINFOA *LPNMTVDISPINFOA; typedef struct tagTVDISPINFOW { NMHDR hdr; TVITEMW item; } NMTVDISPINFOW; typedef NMTVDISPINFOW *LPNMTVDISPINFOW; #ifdef UNICODE typedef NMTVDISPINFOW NMTVDISPINFO; typedef LPNMTVDISPINFOW LPNMTVDISPINFO; #else typedef NMTVDISPINFOA NMTVDISPINFO; typedef LPNMTVDISPINFOA LPNMTVDISPINFO; #endif typedef NMTVDISPINFOA TV_DISPINFOA; typedef NMTVDISPINFOW TV_DISPINFOW; typedef NMTVDISPINFO TV_DISPINFO; /* TVN_GETDISPINFO and TVN_SETDISPINFO parameters (extended version) */ #if (_WIN32_IE >= 0x0600) typedef struct tagTVDISPINFOEXA { NMHDR hdr; TVITEMEXA item; } NMTVDISPINFOEXA; typedef NMTVDISPINFOEXA *LPNMTVDISPINFOEXA; typedef struct tagTVDISPINFOEXW { NMHDR hdr; TVITEMEXW item; } NMTVDISPINFOEXW; typedef NMTVDISPINFOEXW *LPNMTVDISPINFOEXW; #ifdef UNICODE typedef NMTVDISPINFOEXW NMTVDISPINFOEX; typedef LPNMTVDISPINFOEXW LPNMTVDISPINFOEX; #else typedef NMTVDISPINFOEXA NMTVDISPINFOEX; typedef LPNMTVDISPINFOEXA LPNMTVDISPINFOEX; #endif typedef NMTVDISPINFOEXA TV_DISPINFOEXA; typedef NMTVDISPINFOEXW TV_DISPINFOEXW; typedef NMTVDISPINFOEX TV_DISPINFOEX; #endif /* TVN_KEYDOWN parameters */ #include typedef struct tagTVKEYDOWN { NMHDR hdr; WORD wVKey; UINT flags; } NMTVKEYDOWN; typedef NMTVKEYDOWN *LPNMTVKEYDOWN; typedef NMTVKEYDOWN TV_KEYDOWN; #include /* NM_CUSTOMDRAW parameters for tree view controls */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMTVCUSTOMDRAW { NMCUSTOMDRAW nmcd; COLORREF clrText; COLORREF clrTextBk; #if (_WIN32_IE >= 0x0400) int iLevel; #endif } NMTVCUSTOMDRAW; typedef NMTVCUSTOMDRAW *LPNMTVCUSTOMDRAW; #endif /* TVN_GETINFOTIP parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMTVGETINFOTIPA { NMHDR hdr; LPSTR pszText; int cchTextMax; HTREEITEM hItem; LPARAM lParam; } NMTVGETINFOTIPA; typedef NMTVGETINFOTIPA *LPNMTVGETINFOTIPA; typedef struct tagNMTVGETINFOTIPW { NMHDR hdr; LPWSTR pszText; int cchTextMax; HTREEITEM hItem; LPARAM lParam; } NMTVGETINFOTIPW; typedef NMTVGETINFOTIPW *LPNMTVGETINFOTIPW; #ifdef UNICODE typedef NMTVGETINFOTIPW NMTVGETINFOTIP; typedef LPNMTVGETINFOTIPW LPNMTVGETINFOTIP; #else typedef NMTVGETINFOTIPA NMTVGETINFOTIP; typedef LPNMTVGETINFOTIPA LPNMTVGETINFOTIP; #endif #endif /* TVN_ITEMCHANGING and TVN_ITEMCHANGED parameters */ #if (_WIN32_IE > 0x0600) typedef struct tagTVITEMCHANGE { NMHDR hdr; UINT uChanged; HTREEITEM hItem; UINT uStateNew; UINT uStateOld; LPARAM lParam; } NMTVITEMCHANGE; #endif /* TVN_ASYNCDRAW parameters */ #if (_WIN32_IE > 0x0600) typedef struct tagNMTVASYNCDRAW { NMHDR hdr; IMAGELISTDRAWPARAMS *pimldp; HRESULT hr; HTREEITEM hItem; LPARAM lParam; DWORD dwRetFlags; int iRetImageIndex; } NMTVASYNCDRAW; #endif /* Extended combo box item */ #if (_WIN32_IE >= 0x0300) typedef struct tagCOMBOBOXEXITEMA { UINT mask; INT_PTR iItem; LPSTR pszText; int cchTextMax; int iImage; int iSelectedImage; int iOverlay; int iIndent; LPARAM lParam; } COMBOBOXEXITEMA; typedef COMBOBOXEXITEMA *PCOMBOBOXEXITEMA; typedef COMBOBOXEXITEMA CONST *PCCOMBOBOXEXITEMA; typedef struct tagCOMBOBOXEXITEMW { UINT mask; INT_PTR iItem; LPWSTR pszText; int cchTextMax; int iImage; int iSelectedImage; int iOverlay; int iIndent; LPARAM lParam; } COMBOBOXEXITEMW; typedef COMBOBOXEXITEMW *PCOMBOBOXEXITEMW; typedef COMBOBOXEXITEMW CONST *PCCOMBOBOXEXITEMW; #ifdef UNICODE typedef COMBOBOXEXITEMW COMBOBOXEXITEM; typedef PCOMBOBOXEXITEMW PCOMBOBOXEXITEM; typedef PCCOMBOBOXEXITEMW PCCOMBOBOXEXITEM; #else typedef COMBOBOXEXITEMA COMBOBOXEXITEM; typedef PCOMBOBOXEXITEMA PCOMBOBOXEXITEM; typedef PCCOMBOBOXEXITEMA PCCOMBOBOXEXITEM; #endif #endif /* Extended combo box notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct { NMHDR hdr; COMBOBOXEXITEMA ceItem; } NMCOMBOBOXEXA; typedef NMCOMBOBOXEXA *PNMCOMBOBOXEXA; typedef struct { NMHDR hdr; COMBOBOXEXITEMW ceItem; } NMCOMBOBOXEXW; typedef NMCOMBOBOXEXW *PNMCOMBOBOXEXW; #ifdef UNICODE typedef NMCOMBOBOXEXW NMCOMBOBOXEX; typedef PNMCOMBOBOXEXW PNMCOMBOBOXEX; #else typedef NMCOMBOBOXEXA NMCOMBOBOXEX; typedef PNMCOMBOBOXEXA PNMCOMBOBOXEX; #endif #elif (_WIN32_IE >= 0x0300) typedef struct { NMHDR hdr; COMBOBOXEXITEMA ceItem; } NMCOMBOBOXEX; typedef NMCOMBOBOXEX *PNMCOMBOBOXEX; #endif /* CBEN_DRAGBEGIN parameters */ #if (_WIN32_IE >= 0x0400) typedef struct { NMHDR hdr; int iItemid; char szText[CBEMAXSTRLEN]; } NMCBEDRAGBEGINA; typedef NMCBEDRAGBEGINA *PNMCBEDRAGBEGINA; typedef NMCBEDRAGBEGINA *LPNMCBEDRAGBEGINA; typedef struct { NMHDR hdr; int iItemid; WCHAR szText[CBEMAXSTRLEN]; } NMCBEDRAGBEGINW; typedef NMCBEDRAGBEGINW *PNMCBEDRAGBEGINW; typedef NMCBEDRAGBEGINW *LPNMCBEDRAGBEGINW; #ifdef UNICODE typedef NMCBEDRAGBEGINW NMCBEDRAGBEGIN; typedef PNMCBEDRAGBEGINW PNMCBEDRAGBEGIN; typedef LPNMCBEDRAGBEGINW LPNMCBEDRAGBEGIN; #else typedef NMCBEDRAGBEGINA NMCBEDRAGBEGIN; typedef PNMCBEDRAGBEGINA PNMCBEDRAGBEGIN; typedef LPNMCBEDRAGBEGINA LPNMCBEDRAGBEGIN; #endif #endif /* CBEN_ENDEDIT parameters */ #if (_WIN32_IE >= 0x0300) typedef struct { NMHDR hdr; BOOL fChanged; int iNewSelection; char szText[CBEMAXSTRLEN]; int iWhy; } NMCBEENDEDITA; typedef NMCBEENDEDITA *PNMCBEENDEDITA; typedef NMCBEENDEDITA *LPNMCBEENDEDITA; typedef struct { NMHDR hdr; BOOL fChanged; int iNewSelection; WCHAR szText[CBEMAXSTRLEN]; int iWhy; } NMCBEENDEDITW; typedef NMCBEENDEDITW *PNMCBEENDEDITW; typedef NMCBEENDEDITW *LPNMCBEENDEDITW; #ifdef UNICODE typedef NMCBEENDEDITW NMCBEENDEDIT; typedef PNMCBEENDEDITW PNMCBEENDEDIT; typedef LPNMCBEENDEDITW LPNMCBEENDEDIT; #else typedef NMCBEENDEDITA NMCBEENDEDIT; typedef PNMCBEENDEDITA PNMCBEENDEDIT; typedef LPNMCBEENDEDITA LPNMCBEENDEDIT; #endif #endif /* Tab control item header */ typedef struct tagTCITEMHEADERA { UINT mask; UINT lpReserved1; UINT lpReserved2; LPSTR pszText; int cchTextMax; int iImage; } TCITEMHEADERA; typedef TCITEMHEADERA *LPTCITEMHEADERA; typedef struct tagTCITEMHEADERW { UINT mask; UINT lpReserved1; UINT lpReserved2; LPWSTR pszText; int cchTextMax; int iImage; } TCITEMHEADERW; typedef TCITEMHEADERW *LPTCITEMHEADERW; #ifdef UNICODE typedef TCITEMHEADERW TCITEMHEADER; typedef LPTCITEMHEADERW LPTCITEMHEADER; #else typedef TCITEMHEADERA TCITEMHEADER; typedef LPTCITEMHEADERA LPTCITEMHEADER; #endif typedef TCITEMHEADERA TC_ITEMHEADERA; typedef TCITEMHEADERW TC_ITEMHEADERW; typedef TCITEMHEADER TC_ITEMHEADER; /* Tab control item */ typedef struct tagTCITEMA { UINT mask; #if (_WIN32_IE >= 0x0300) DWORD dwState; DWORD dwStateMask; #else UINT lpReserved1; UINT lpReserved2; #endif LPSTR pszText; int cchTextMax; int iImage; LPARAM lParam; } TCITEMA; typedef TCITEMA *LPTCITEMA; typedef struct tagTCITEMW { UINT mask; #if (_WIN32_IE >= 0x0300) DWORD dwState; DWORD dwStateMask; #else UINT lpReserved1; UINT lpReserved2; #endif LPWSTR pszText; int cchTextMax; int iImage; LPARAM lParam; } TCITEMW; typedef TCITEMW *LPTCITEMW; #ifdef UNICODE typedef TCITEMW TCITEM; typedef LPTCITEMW LPTCITEM; #else typedef TCITEMA TCITEM; typedef LPTCITEMA LPTCITEM; #endif typedef TCITEMA TC_ITEMA; typedef TCITEMW TC_ITEMW; typedef TCITEM TC_ITEM; /* TCM_HITTEST parameters */ typedef struct tagTCHITTESTINFO { POINT pt; UINT flags; } TCHITTESTINFO; typedef TCHITTESTINFO *LPTCHITTESTINFO; typedef TCHITTESTINFO TC_HITTESTINFO; typedef LPTCHITTESTINFO LPTC_HITTESTINFO; /* TCN_KEYDOWN parameters */ #include typedef struct tagTCKEYDOWN { NMHDR hdr; WORD wVKey; UINT flags; } NMTCKEYDOWN; typedef NMTCKEYDOWN TC_KEYDOWN; #include /* MCM_HITTEST parameters */ #if (_WIN32_IE >= 0x0300) typedef struct { UINT cbSize; POINT pt; UINT uHit; SYSTEMTIME st; #if (NTDDI_VERSION >= 0x06000000) RECT rc; int iOffset; int iRow; int iCol; #endif } MCHITTESTINFO; typedef MCHITTESTINFO *PMCHITTESTINFO; #endif /* Month calendar grid information */ #if (NTDDI_VERSION >= 0x06000000) typedef struct tagMCGRIDINFO { UINT cbSize; DWORD dwPart; DWORD dwFlags; int iCalendar; int iRow; int iCol; BOOL bSelected; SYSTEMTIME stStart; SYSTEMTIME stEnd; RECT rc; PWSTR pszName; size_t cchName; } MCGRIDINFO; typedef MCGRIDINFO *PMCGRIDINFO; #endif /* MCN_SELCHANGE and MCN_SELECT parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMSELCHANGE { NMHDR nmhdr; SYSTEMTIME stSelStart; SYSTEMTIME stSelEnd; } NMSELCHANGE; typedef NMSELCHANGE *LPNMSELCHANGE; typedef NMSELCHANGE NMSELECT; typedef NMSELCHANGE *LPNMSELECT; #endif /* MCN_GETDAYSTATE parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMDAYSTATE { NMHDR nmhdr; SYSTEMTIME stStart; int cDayState; LPMONTHDAYSTATE prgDayState; } NMDAYSTATE; typedef NMDAYSTATE *LPNMDAYSTATE; #endif /* MCN_VIEWCHANGE parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMVIEWCHANGE { NMHDR nmhdr; DWORD dwOldView; DWORD dwNewView; } NMVIEWCHANGE; typedef NMVIEWCHANGE *LPNMVIEWCHANGE; #endif /* Date/time picker information */ #if (NTDDI_VERSION >= 0x06000000) typedef struct tagDATETIMEPICKERINFO { DWORD cbSize; RECT rcCheck; DWORD stateCheck; RECT rcButton; DWORD stateButton; HWND hwndEdit; HWND hwndUD; HWND hwndDropDown; } DATETIMEPICKERINFO; typedef DATETIMEPICKERINFO *LPDATETIMEPICKERINFO; #endif /* DTN_DATETIMECHANGE parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMDATETIMECHANGE { NMHDR nmhdr; DWORD dwFlags; SYSTEMTIME st; } NMDATETIMECHANGE; typedef NMDATETIMECHANGE *LPNMDATETIMECHANGE; #endif /* DTN_USERSTRING parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMDATETIMESTRINGA { NMHDR nmhdr; LPCSTR pszUserString; SYSTEMTIME st; DWORD dwFlags; } NMDATETIMESTRINGA; typedef NMDATETIMESTRINGA *LPNMDATETIMESTRINGA; typedef struct tagNMDATETIMESTRINGW { NMHDR nmhdr; LPCWSTR pszUserString; SYSTEMTIME st; DWORD dwFlags; } NMDATETIMESTRINGW; typedef NMDATETIMESTRINGW *LPNMDATETIMESTRINGW; #ifdef UNICODE typedef NMDATETIMESTRINGW NMDATETIMESTRING; typedef LPNMDATETIMESTRINGW LPNMDATETIMESTRING; #else typedef NMDATETIMESTRINGA NMDATETIMESTRING; typedef LPNMDATETIMESTRINGA LPNMDATETIMESTRING; #endif #endif /* DTN_WMKEYDOWN parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMDATETIMEWMKEYDOWNA { NMHDR nmhdr; int nVirtKey; LPCSTR pszFormat; SYSTEMTIME st; } NMDATETIMEWMKEYDOWNA; typedef NMDATETIMEWMKEYDOWNA *LPNMDATETIMEWMKEYDOWNA; typedef struct tagNMDATETIMEWMKEYDOWNW { NMHDR nmhdr; int nVirtKey; LPCWSTR pszFormat; SYSTEMTIME st; } NMDATETIMEWMKEYDOWNW; typedef NMDATETIMEWMKEYDOWNW *LPNMDATETIMEWMKEYDOWNW; #ifdef UNICODE typedef NMDATETIMEWMKEYDOWNW NMDATETIMEWMKEYDOWN; typedef LPNMDATETIMEWMKEYDOWNW LPNMDATETIMEWMKEYDOWN; #else typedef NMDATETIMEWMKEYDOWNA NMDATETIMEWMKEYDOWN; typedef LPNMDATETIMEWMKEYDOWNA LPNMDATETIMEWMKEYDOWN; #endif #endif /* DTN_FORMAT parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMDATETIMEFORMATA { NMHDR nmhdr; LPCSTR pszFormat; SYSTEMTIME st; LPCSTR pszDisplay; CHAR szDisplay[64]; } NMDATETIMEFORMATA; typedef NMDATETIMEFORMATA *LPNMDATETIMEFORMATA; typedef struct tagNMDATETIMEFORMATW { NMHDR nmhdr; LPCWSTR pszFormat; SYSTEMTIME st; LPCWSTR pszDisplay; WCHAR szDisplay[64]; } NMDATETIMEFORMATW; typedef NMDATETIMEFORMATW *LPNMDATETIMEFORMATW; #ifdef UNICODE typedef NMDATETIMEFORMATW NMDATETIMEFORMAT; typedef LPNMDATETIMEFORMATW LPNMDATETIMEFORMAT; #else typedef NMDATETIMEFORMATA NMDATETIMEFORMAT; typedef LPNMDATETIMEFORMATA LPNMDATETIMEFORMAT; #endif #endif /* DTN_FORMATQUERY parameters */ #if (_WIN32_IE >= 0x0300) typedef struct tagNMDATETIMEFORMATQUERYA { NMHDR nmhdr; LPCSTR pszFormat; SIZE szMax; } NMDATETIMEFORMATQUERYA; typedef NMDATETIMEFORMATQUERYA *LPNMDATETIMEFORMATQUERYA; typedef struct tagNMDATETIMEFORMATQUERYW { NMHDR nmhdr; LPCWSTR pszFormat; SIZE szMax; } NMDATETIMEFORMATQUERYW; typedef NMDATETIMEFORMATQUERYW *LPNMDATETIMEFORMATQUERYW; #ifdef UNICODE typedef NMDATETIMEFORMATQUERYW NMDATETIMEFORMATQUERY; typedef LPNMDATETIMEFORMATQUERYW LPNMDATETIMEFORMATQUERY; #else typedef NMDATETIMEFORMATQUERYA NMDATETIMEFORMATQUERY; typedef LPNMDATETIMEFORMATQUERYA LPNMDATETIMEFORMATQUERY; #endif #endif /* IP address control notification parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMIPADDRESS { NMHDR hdr; int iField; int iValue; } NMIPADDRESS; typedef NMIPADDRESS *LPNMIPADDRESS; #endif /* PGN_SCROLL parameters */ #if (_WIN32_IE >= 0x0400) #include typedef struct { NMHDR hdr; WORD fwKeys; RECT rcParent; int iDir; int iXpos; int iYpos; int iScroll; } NMPGSCROLL; typedef NMPGSCROLL *LPNMPGSCROLL; #include #endif /* PGN_CALCSIZE parameters */ #if (_WIN32_IE >= 0x0400) typedef struct { NMHDR hdr; DWORD dwFlag; int iWidth; int iHeight; } NMPGCALCSIZE; typedef NMPGCALCSIZE *LPNMPGCALCSIZE; #endif /* PGN_HOTITEMCHANGE parameters */ #if (_WIN32_IE >= 0x0400) typedef struct tagNMPGHOTITEM { NMHDR hdr; int idOld; int idNew; DWORD dwFlags; } NMPGHOTITEM; typedef NMPGHOTITEM *LPNMPGHOTITEM; #endif /* Button image list */ #if (_WIN32_WINNT >= 0x0501) typedef struct { HIMAGELIST himl; RECT margin; UINT uAlign; } BUTTON_IMAGELIST; typedef BUTTON_IMAGELIST *PBUTTON_IMAGELIST; #endif /* BCN_HOTITEMCHANGE parameters */ #if (_WIN32_WINNT >= 0x0501) typedef struct tagNMBCHOTITEM { NMHDR hdr; DWORD dwFlags; } NMBCHOTITEM; typedef NMBCHOTITEM *LPNMBCHOTITEM; #endif /* Button split information */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagBUTTON_SPLITINFO { UINT mask; HIMAGELIST himlGlyph; UINT uSplitStyle; SIZE size; } BUTTON_SPLITINFO; typedef BUTTON_SPLITINFO *PBUTTON_SPLITINFO; #endif /* BCN_DROPDOWN parameters */ #if (_WIN32_WINNT >= 0x0600) typedef struct tagNMBCDROPDOWN { NMHDR hdr; RECT rcButton; } NMBCDROPDOWN; typedef NMBCDROPDOWN *LPNMBCDROPDOWN; #endif /* Edit control balloon tip information */ #if (_WIN32_WINNT >= 0x0501) typedef struct _tagEDITBALLOONTIP { DWORD cbStruct; LPCWSTR pszTitle; LPCWSTR pszText; INT ttiIcon; } EDITBALLOONTIP; typedef EDITBALLOONTIP *PEDITBALLOONTIP; #endif /* All task dialog structures get one-byte packing. */ #include /* Task dialog callback */ #if (_WIN32_IE >= 0x0400) typedef HRESULT (CALLBACK *PFTASKDIALOGCALLBACK)( HWND, UINT, WPARAM, LPARAM, LONG_PTR ); #endif /* Task dialog flags */ #if (_WIN32_IE >= 0x0400) enum _TASKDIALOG_FLAGS { TDF_ENABLE_HYPERLINKS = 0x00000001, TDF_USE_HICON_MAIN = 0x00000002, TDF_USE_HICON_FOOTER = 0x00000004, TDF_ALLOW_DIALOG_CANCELLATION = 0x00000008, TDF_USE_COMMAND_LINKS = 0x00000010, TDF_USE_COMMAND_LINKS_NO_ICON = 0x00000020, TDF_EXPAND_FOOTER_AREA = 0x00000040, TDF_EXPANDED_BY_DEFAULT = 0x00000080, TDF_VERIFICATION_FLAG_CHECKED = 0x00000100, TDF_SHOW_PROGRESS_BAR = 0x00000200, TDF_SHOW_MARQUEE_PROGRESS_BAR = 0x00000400, TDF_CALLBACK_TIMER = 0x00000800, TDF_POSITION_RELATIVE_TO_WINDOW = 0x00001000, TDF_RTL_LAYOUT = 0x00002000, TDF_NO_DEFAULT_RADIO_BUTTON = 0x00004000, TDF_CAN_BE_MINIMIZED = 0x00008000 }; typedef int TASKDIALOG_FLAGS; #endif /* Task dialog messages */ #if (_WIN32_IE >= 0x0400) typedef enum _TASKDIALOG_MESSAGES { TDM_NAVIGATE_PANE = WM_USER + 101, TDM_CLICK_BUTTON = WM_USER + 102, TDM_SET_MARQUEE_PROGRESS_BAR = WM_USER + 103, TDM_SET_PROGRESS_BAR_STATE = WM_USER + 104, TDM_SET_PROGRESS_BAR_RANGE = WM_USER + 105, TDM_SET_PROGRESS_BAR_POS = WM_USER + 106, TDM_SET_PROGRESS_BAR_MARQUEE = WM_USER + 107, TDM_SET_ELEMENT_TEXT = WM_USER + 108, TDM_CLICK_RADIO_BUTTON = WM_USER + 110, TDM_ENABLE_BUTTON = WM_USER + 111, TDM_ENABLE_RADIO_BUTTON = WM_USER + 112, TDM_CLICK_VERIFICATION = WM_USER + 113, TDM_UPDATE_ELEMENT_TEXT = WM_USER + 114, TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE = WM_USER + 115, TDM_UPDATE_ICON = WM_USER + 116 } TASKDIALOG_MESSAGES; #endif /* Task dialog notifications */ #if (_WIN32_IE >= 0x0400) typedef enum _TASKDIALOG_NOTIFICATIONS { TDN_CREATED = 0, TDN_NAVIGATED = 1, TDN_BUTTON_CLICKED = 2, TDN_HYPERLINK_CLICKED = 3, TDN_TIMER = 4, TDN_DESTROYED = 5, TDN_RADIO_BUTTON_CLICKED = 6, TDN_DIALOG_CONSTRUCTED = 7, TDN_VERIFICATION_CLICKED = 8, TDN_HELP = 9, TDN_EXPANDO_BUTTON_CLICKED = 10 } TASKDIALOG_NOTIFICATIONS; #endif /* Task dialog button */ #if (_WIN32_IE >= 0x0400) typedef struct _TASKDIALOG_BUTTON { int nButtonID; PCWSTR pszButtonText; } TASKDIALOG_BUTTON; #endif /* Task dialog elements */ #if (_WIN32_IE >= 0x0400) typedef enum _TASKDIALOG_ELEMENTS { TDE_CONTENT = 0, TDE_EXPANDED_INFORMATION = 1, TDE_FOOTER = 2, TDE_MAIN_INSTRUCTION = 3 } TASKDIALOG_ELEMENTS; #endif /* Task dialog icon elements */ #if (_WIN32_IE >= 0x0400) typedef enum _TASKDIALOG_ICON_ELEMENTS { TDIE_ICON_MAIN = 0, TDIE_ICON_FOOTER = 1 } TASKDIALOG_ICON_ELEMENTS; #endif /* Task dialog command button flags */ #if (_WIN32_IE >= 0x0400) enum _TASKDIALOG_COMMON_BUTTON_FLAGS { TDCBF_OK_BUTTON = 0x00000001, TDCBF_YES_BUTTON = 0x00000002, TDCBF_NO_BUTTON = 0x00000004, TDCBF_CANCEL_BUTTON = 0x00000008, TDCBF_RETRY_BUTTON = 0x00000010, TDCBF_CLOSE_BUTTON = 0x00000020 }; typedef int TASKDIALOG_COMMON_BUTTON_FLAGS; #endif /* Task dialog configuration */ #if (_WIN32_IE >= 0x0400) typedef struct _TASKDIALOGCONFIG { UINT cbSize; HWND hwndParent; HINSTANCE hInstance; TASKDIALOG_FLAGS dwFlags; TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons; PCWSTR pszWindowTitle; union { HICON hMainIcon; PCWSTR pszMainIcon; }; PCWSTR pszMainInstruction; PCWSTR pszContent; UINT cButtons; const TASKDIALOG_BUTTON *pButtons; int nDefaultButton; UINT cRadioButtons; const TASKDIALOG_BUTTON *pRadioButtons; int nDefaultRadioButton; PCWSTR pszVerificationText; PCWSTR pszExpandedInformation; PCWSTR pszExpandedControlText; PCWSTR pszCollapsedControlText; union { HICON hFooterIcon; PCWSTR pszFooterIcon; }; PCWSTR pszFooter; PFTASKDIALOGCALLBACK pfCallback; LONG_PTR lpCallbackData; UINT cxWidth; } TASKDIALOGCONFIG; #endif /* Revert to default packing. */ #include /* Dynamic array callbacks */ #if (_WIN32_IE >= 0x0300) typedef int (CALLBACK *PFNDAENUMCALLBACK)( void *, void * ); typedef int (CALLBACK *PFNDAENUMCALLBACKCONST)( const void *, void * ); typedef int (CALLBACK *PFNDACOMPARE)( void *, void *, LPARAM ); typedef int (CALLBACK *PFNDACOMPARECONST)( const void *, const void *, LPARAM ); typedef PFNDAENUMCALLBACK PFNDSAENUMCALLBACK; typedef PFNDAENUMCALLBACKCONST PFNDSAENUMCALLBACKCONST; typedef PFNDACOMPARE PFNDSACOMPARE; typedef PFNDACOMPARECONST PFNDSACOMPARECONST; typedef PFNDAENUMCALLBACK PFNDPAENUMCALLBACK; typedef PFNDAENUMCALLBACKCONST PFNDPAENUMCALLBACKCONST; typedef PFNDACOMPARE PFNDPACOMPARE; typedef PFNDACOMPARECONST PFNDPACOMPARECONST; #endif /* Dynamic pointer array stream information */ #if (_WIN32_IE >= 0x0300) typedef struct _DPASTREAMINFO { int iPos; void *pvItem; } DPASTREAMINFO; #endif /* Dynamic pointer array callbacks */ #if (_WIN32_IE >= 0x0300) typedef HRESULT (CALLBACK *PFNDPASTREAM)( DPASTREAMINFO *, struct IStream *, void * ); typedef void * (CALLBACK *PFNDPAMERGE)( UINT, void *, void *, LPARAM ); typedef const void * (CALLBACK *PFNDPAMERGECONST)( UINT, const void *, const void *, LPARAM ); #endif /* Subclassing procedure */ #if (_WIN32_WINNT >= 0x0501) typedef LRESULT (CALLBACK *SUBCLASSPROC)( HWND, UINT, WPARAM, LPARAM, UINT_PTR, DWORD_PTR ); #endif /* LoadIconMetric() options */ #if (NTDDI_VERSION >= 0x06000000) enum _LI_METRIC { LIM_SMALL = 0, LIM_LARGE = 1 }; #endif /* Functions in COMCTL32.DLL */ WINCOMMCTRLAPI HBITMAP WINAPI CreateMappedBitmap( HINSTANCE, INT_PTR, UINT, LPCOLORMAP, int ); WINCOMMCTRLAPI HWND WINAPI CreateStatusWindowA( LONG, LPCSTR, HWND, UINT ); WINCOMMCTRLAPI HWND WINAPI CreateStatusWindowW( LONG, LPCWSTR, HWND, UINT ); WINCOMMCTRLAPI HWND WINAPI CreateToolbarEx( HWND, DWORD, UINT, int, HINSTANCE, UINT_PTR, LPCTBBUTTON, int, int, int, int, int, UINT ); WINCOMMCTRLAPI HWND WINAPI CreateUpDownControl( DWORD, int, int, int, int, HWND, int, HINSTANCE, HWND, int, int, int ); WINCOMMCTRLAPI void WINAPI DrawInsert( HWND, HWND, int ); WINCOMMCTRLAPI void WINAPI DrawStatusTextA( HDC, LPCRECT, LPCSTR, UINT ); WINCOMMCTRLAPI void WINAPI DrawStatusTextW( HDC, LPCRECT, LPCWSTR, UINT ); WINCOMMCTRLAPI void WINAPI GetEffectiveClientRect( HWND, LPRECT, const INT * ); WINCOMMCTRLAPI int WINAPI ImageList_Add( HIMAGELIST, HBITMAP, HBITMAP ); WINCOMMCTRLAPI int WINAPI ImageList_AddMasked( HIMAGELIST, HBITMAP, COLORREF ); WINCOMMCTRLAPI BOOL WINAPI ImageList_BeginDrag( HIMAGELIST, int, int, int ); WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Create( int, int, UINT, int, int ); WINCOMMCTRLAPI BOOL WINAPI ImageList_Destroy( HIMAGELIST ); WINCOMMCTRLAPI BOOL WINAPI ImageList_DragEnter( HWND, int, int ); WINCOMMCTRLAPI BOOL WINAPI ImageList_DragLeave( HWND ); WINCOMMCTRLAPI BOOL WINAPI ImageList_DragMove( int, int ); WINCOMMCTRLAPI BOOL WINAPI ImageList_DragShowNolock( BOOL ); WINCOMMCTRLAPI BOOL WINAPI ImageList_Draw( HIMAGELIST, int, HDC, int, int, UINT ); WINCOMMCTRLAPI BOOL WINAPI ImageList_DrawEx( HIMAGELIST, int, HDC, int, int, int, int, COLORREF, COLORREF, UINT ); WINCOMMCTRLAPI void WINAPI ImageList_EndDrag( void ); WINCOMMCTRLAPI COLORREF WINAPI ImageList_GetBkColor( HIMAGELIST ); WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_GetDragImage( POINT *, POINT * ); WINCOMMCTRLAPI HICON WINAPI ImageList_GetIcon( HIMAGELIST, int, UINT ); WINCOMMCTRLAPI BOOL WINAPI ImageList_GetIconSize( HIMAGELIST, int *, int * ); WINCOMMCTRLAPI int WINAPI ImageList_GetImageCount( HIMAGELIST ); WINCOMMCTRLAPI BOOL WINAPI ImageList_GetImageInfo( HIMAGELIST, int, IMAGEINFO * ); WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_LoadImageA( HINSTANCE, LPCSTR, int, int, COLORREF, UINT, UINT ); WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_LoadImageW( HINSTANCE, LPCWSTR, int, int, COLORREF, UINT, UINT ); WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Merge( HIMAGELIST, int, HIMAGELIST, int, int, int ); WINCOMMCTRLAPI BOOL WINAPI ImageList_Remove( HIMAGELIST, int ); WINCOMMCTRLAPI BOOL WINAPI ImageList_Replace( HIMAGELIST, int, HBITMAP, HBITMAP ); WINCOMMCTRLAPI int WINAPI ImageList_ReplaceIcon( HIMAGELIST, int, HICON ); WINCOMMCTRLAPI COLORREF WINAPI ImageList_SetBkColor( HIMAGELIST, COLORREF ); WINCOMMCTRLAPI BOOL WINAPI ImageList_SetDragCursorImage( HIMAGELIST, int, int, int ); WINCOMMCTRLAPI BOOL WINAPI ImageList_SetIconSize( HIMAGELIST, int, int ); WINCOMMCTRLAPI BOOL WINAPI ImageList_SetOverlayImage( HIMAGELIST, int, int ); WINCOMMCTRLAPI void WINAPI InitCommonControls( void ); WINCOMMCTRLAPI int WINAPI LBItemFromPt( HWND, POINT, BOOL ); WINCOMMCTRLAPI BOOL WINAPI MakeDragList( HWND ); WINCOMMCTRLAPI void WINAPI MenuHelp( UINT, WPARAM, LPARAM, HMENU, HINSTANCE, HWND, UINT * ); WINCOMMCTRLAPI BOOL WINAPI ShowHideMenuCtl( HWND, UINT_PTR, LPINT ); #ifdef __objidl_h__ WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Read( LPSTREAM ); WINCOMMCTRLAPI BOOL WINAPI ImageList_Write( HIMAGELIST, LPSTREAM ); #endif #if (_WIN32_IE >= 0x0300) WINCOMMCTRLAPI HDPA WINAPI DPA_Clone( const HDPA, HDPA ); WINCOMMCTRLAPI HDPA WINAPI DPA_Create( int ); WINCOMMCTRLAPI HDPA WINAPI DPA_CreateEx( int, HANDLE ); WINCOMMCTRLAPI BOOL WINAPI DPA_DeleteAllPtrs( HDPA ); WINCOMMCTRLAPI PVOID WINAPI DPA_DeletePtr( HDPA, int ); WINCOMMCTRLAPI BOOL WINAPI DPA_Destroy( HDPA ); WINCOMMCTRLAPI void WINAPI DPA_DestroyCallback( HDPA, PFNDAENUMCALLBACK, void * ); WINCOMMCTRLAPI void WINAPI DPA_EnumCallback( HDPA, PFNDAENUMCALLBACK, void * ); WINCOMMCTRLAPI PVOID WINAPI DPA_GetPtr( HDPA, INT_PTR ); WINCOMMCTRLAPI int WINAPI DPA_GetPtrIndex( HDPA, const void * ); WINCOMMCTRLAPI BOOL WINAPI DPA_Grow( HDPA, int ); WINCOMMCTRLAPI int WINAPI DPA_InsertPtr( HDPA, int, void * ); WINCOMMCTRLAPI HRESULT WINAPI DPA_LoadStream( HDPA *, PFNDPASTREAM, struct IStream *, void * ); WINCOMMCTRLAPI BOOL WINAPI DPA_Merge( HDPA, HDPA, DWORD, PFNDACOMPARE, PFNDPAMERGE, LPARAM ); WINCOMMCTRLAPI HRESULT WINAPI DPA_SaveStream( HDPA, PFNDPASTREAM, struct IStream *, void * ); WINCOMMCTRLAPI int WINAPI DPA_Search( HDPA, void *, int, PFNDACOMPARE, LPARAM, UINT ); WINCOMMCTRLAPI BOOL WINAPI DPA_SetPtr( HDPA, int, void * ); WINCOMMCTRLAPI BOOL WINAPI DPA_Sort( HDPA, PFNDACOMPARE, LPARAM ); WINCOMMCTRLAPI HDSA WINAPI DSA_Create( int, int ); WINCOMMCTRLAPI BOOL WINAPI DSA_DeleteAllItems( HDSA ); WINCOMMCTRLAPI BOOL WINAPI DSA_DeleteItem( HDSA, int ); WINCOMMCTRLAPI BOOL WINAPI DSA_Destroy( HDSA ); WINCOMMCTRLAPI void WINAPI DSA_DestroyCallback( HDSA, PFNDAENUMCALLBACK, void * ); WINCOMMCTRLAPI void WINAPI DSA_EnumCallback( HDSA, PFNDAENUMCALLBACK, void * ); WINCOMMCTRLAPI BOOL WINAPI DSA_GetItem( HDSA, int, void * ); WINCOMMCTRLAPI PVOID WINAPI DSA_GetItemPtr( HDSA, int ); WINCOMMCTRLAPI int WINAPI DSA_InsertItem( HDSA, int, const void * ); WINCOMMCTRLAPI BOOL WINAPI DSA_SetItem( HDSA, int, const void * ); WINCOMMCTRLAPI BOOL WINAPI ImageList_Copy( HIMAGELIST, int, HIMAGELIST, int, UINT ); WINCOMMCTRLAPI BOOL WINAPI ImageList_DrawIndirect( IMAGELISTDRAWPARAMS * ); WINCOMMCTRLAPI BOOL WINAPI ImageList_SetImageCount( HIMAGELIST, UINT ); WINCOMMCTRLAPI BOOL WINAPI InitCommonControlsEx( const INITCOMMONCONTROLSEX * ); WINCOMMCTRLAPI BOOL WINAPI Str_SetPtrW( LPWSTR *, LPCWSTR ); WINCOMMCTRLAPI BOOL WINAPI _TrackMouseEvent( LPTRACKMOUSEEVENT ); #endif #if (_WIN32_IE >= 0x0400) WINCOMMCTRLAPI BOOL WINAPI FlatSB_EnableScrollBar( HWND, int, UINT ); WINCOMMCTRLAPI BOOL WINAPI FlatSB_GetScrollInfo( HWND, int, LPSCROLLINFO ); WINCOMMCTRLAPI int WINAPI FlatSB_GetScrollPos( HWND, int ); WINCOMMCTRLAPI BOOL WINAPI FlatSB_GetScrollProp( HWND, int, LPINT ); WINCOMMCTRLAPI BOOL WINAPI FlatSB_GetScrollRange( HWND, int, LPINT, LPINT ); WINCOMMCTRLAPI int WINAPI FlatSB_SetScrollInfo( HWND, int, LPSCROLLINFO, BOOL ); WINCOMMCTRLAPI int WINAPI FlatSB_SetScrollPos( HWND, int, int, BOOL ); WINCOMMCTRLAPI BOOL WINAPI FlatSB_SetScrollProp( HWND, UINT, INT_PTR, BOOL ); WINCOMMCTRLAPI int WINAPI FlatSB_SetScrollRange( HWND, int, int, int, BOOL ); WINCOMMCTRLAPI BOOL WINAPI FlatSB_ShowScrollBar( HWND, int, BOOL ); WINCOMMCTRLAPI LANGID WINAPI GetMUILanguage( void ); WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Duplicate( HIMAGELIST ); WINCOMMCTRLAPI void WINAPI InitMUILanguage( LANGID ); WINCOMMCTRLAPI BOOL WINAPI InitializeFlatSB( HWND ); WINCOMMCTRLAPI HRESULT WINAPI TaskDialog( HWND, HINSTANCE, PCWSTR, PCWSTR, PCWSTR, TASKDIALOG_COMMON_BUTTON_FLAGS, PCWSTR, int * ); WINCOMMCTRLAPI HRESULT WINAPI TaskDialogIndirect( const TASKDIALOGCONFIG *, int *, int *, BOOL * ); WINCOMMCTRLAPI HRESULT WINAPI UninitializeFlatSB( HWND ); #endif #if (_WIN32_WINNT >= 0x0501) WINCOMMCTRLAPI LRESULT WINAPI DefSubclassProc( HWND, UINT, WPARAM, LPARAM ); WINCOMMCTRLAPI int WINAPI DrawShadowText( HDC, LPCWSTR, UINT, RECT *, DWORD, COLORREF, COLORREF, int, int ); WINCOMMCTRLAPI BOOL WINAPI GetWindowSubclass( HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR * ); WINCOMMCTRLAPI HRESULT WINAPI HIMAGELIST_QueryInterface( HIMAGELIST, REFIID, void ** ); WINCOMMCTRLAPI BOOL WINAPI RemoveWindowSubclass( HWND, SUBCLASSPROC, UINT_PTR ); WINCOMMCTRLAPI BOOL WINAPI SetWindowSubclass( HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR ); #ifdef __objidl_h__ WINCOMMCTRLAPI HRESULT WINAPI ImageList_ReadEx( DWORD, LPSTREAM, REFIID, PVOID * ); WINCOMMCTRLAPI HRESULT WINAPI ImageList_WriteEx( HIMAGELIST, DWORD, LPSTREAM ); #endif #endif #if (NTDDI_VERSION >= 0x06000000) WINCOMMCTRLAPI ULONGLONG WINAPI DPA_GetSize( HDPA ); WINCOMMCTRLAPI HDSA WINAPI DSA_Clone( HDSA ); WINCOMMCTRLAPI ULONGLONG WINAPI DSA_GetSize( HDSA ); WINCOMMCTRLAPI BOOL WINAPI DSA_Sort( HDSA, PFNDACOMPARE, LPARAM ); WINCOMMCTRLAPI HRESULT WINAPI LoadIconMetric( HINSTANCE, PCWSTR, int, HICON * ); WINCOMMCTRLAPI HRESULT WINAPI LoadIconWithScaleDown( HINSTANCE, PCWSTR, int, int, HICON * ); #endif /* Functions implemented as macros */ #define ImageList_AddIcon( p1, p2 ) \ ImageList_ReplaceIcon( p1, -1, p2 ) #define ImageList_RemoveAll( x ) \ ImageList_Remove( x, -1 ) #define ImageList_ExtractIcon( p1, p2, p3 ) \ ImageList_GetIcon( p2, p3, 0 ) #define ImageList_LoadBitmap( p1, p2, p3, p4, p5 ) \ ImageList_LoadImage( p1, p2, p3, p4, p5, IMAGE_BITMAP, 0 ) #define Header_GetItemCount( x ) \ (int)SNDMSG( x, HDM_GETITEMCOUNT, 0, 0L ) #define Header_InsertItem( x, p1, p2 ) \ (int)SNDMSG( x, HDM_INSERTITEM, (WPARAM)(int)(p1), (LPARAM)(const HD_ITEM *)(p2) ) #define Header_DeleteItem( x, p ) \ (BOOL)SNDMSG( x, HDM_DELETEITEM, (WPARAM)(int)(p), 0L ) #define Header_GetItem( x, p1, p2 ) \ (BOOL)SNDMSG( x, HDM_GETITEM, (WPARAM)(int)(p1), (LPARAM)(HD_ITEM *)(p2) ) #define Header_SetItem( x, p1, p2 ) \ (BOOL)SNDMSG( x, HDM_SETITEM, (WPARAM)(int)(p1), (LPARAM)(const HD_ITEM *)(p2) ) #define Header_Layout( x, p ) \ (BOOL)SNDMSG( x, HDM_LAYOUT, 0, (LPARAM)(HD_LAYOUT *)(p) ) #if (_WIN32_IE >= 0x0300) #define Header_GetItemRect( x, p1, p2 ) \ (BOOL)SNDMSG( x, HDM_GETITEMRECT, (WPARAM)(p1), (LPARAM)(p2) ) #define Header_SetImageList( x, p ) \ (HIMAGELIST)SNDMSG( x, HDM_SETIMAGELIST, HDSIL_NORMAL, (LPARAM)(p) ) #define Header_SetStateImageList( x, p ) \ (HIMAGELIST)SNDMSG( x, HDM_SETIMAGELIST, HDSIL_STATE, (LPARAM)(p) ) #define Header_GetImageList( x ) \ (HIMAGELIST)SNDMSG( x, HDM_GETIMAGELIST, HDSIL_NORMAL, 0L ) #define Header_GetStateImageList( x ) \ (HIMAGELIST)SNDMSG( x, HDM_SETIMAGELIST, HDSIL_STATE, 0L ) #define Header_OrderToIndex( x, p ) \ (int)SNDMSG( x, HDM_ORDERTOINDEX, (WPARAM)(p), 0L ) #define Header_CreateDragImage( x, p ) \ (HIMAGELIST)SNDMSG( x, HDM_CREATEDRAGIMAGE, (WPARAM)(p), 0L ) #define Header_GetOrderArray( x, p1, p2 ) \ (BOOL)SNDMSG( x, HDM_GETORDERARRAY, (WPARAM)(p1), (LPARAM)(p2) ) #define Header_SetOrderArray( x, p1, p2 ) \ (BOOL)SNDMSG( x, HDM_SETORDERARRAY, (WPARAM)(p1), (LPARAM)(p2) ) #define Header_SetHotDivider( x, p1, p2 ) \ (int)SNDMSG( x, HDM_SETHOTDIVIDER, (WPARAM)(p1), (LPARAM)(p2) ) #endif #if (_WIN32_IE >= 0x0500) #define Header_SetBitmapMargin( x, p ) \ (int)SNDMSG( x, HDM_SETBITMAPMARGIN, (WPARAM)(p), 0L ) #define Header_GetBitmapMargin( x, p ) \ (int)SNDMSG( x, HDM_GETBITMAPMARGIN, 0, 0L ) #define Header_SetFilterChangeTimeout( x, p ) \ (int)SNDMSG( x, HDM_SETFILTERCHANGETIMEOUT, 0, (LPARAM)(p) ) #define Header_EditFilter( x, p1, p2 ) \ (int)SNDMSG( x, HDM_EDITFILTER, (WPARAM)(p1), MAKELPARAM( p2, 0 ) ) #define Header_ClearFilter( x, p ) \ (int)SNDMSG( x, HDM_CLEARFILTER, (WPARAM)(p), 0L ) #define Header_ClearAllFilters( x ) \ (int)SNDMSG( x, HDM_CLEARFILTER, (WPARAM)(-1), 0L ) #endif #if (_WIN32_WINNT >= 0x0600) #define Header_GetItemDropDownRect( x, p1, p2 ) \ (BOOL)SNDMSG( x, HDM_GETITEMDROPDOWNRECT, (WPARAM)(p1), (LPARAM)(p2) ) #define Header_GetOverflowRect( x, p ) \ (BOOL)SNDMSG( x, HDM_GETOVERFLOWRECT, 0, (LPARAM)(p) ) #define Header_GetFocusedItem( x ) \ (int)SNDMSG( x, HDM_GETFOCUSEDITEM, 0, 0L ) #define Header_SetFocusedItem( x, p ) \ (BOOL)SNDMSG( x, HDM_SETFOCUSEDITEM, 0, (LPARAM)(p) ) #endif #if (_WIN32_IE >= 0x0400) #define Header_SetUnicodeFormat( x, p ) \ (BOOL)SNDMSG( x, HDM_SETUNICODEFORMAT, (WPARAM)(p), 0L ) #define Header_GetUnicodeFormat( x ) \ (BOOL)SNDMSG( x, HDM_GETUNICODEFORMAT, 0, 0L ) #endif #define ListView_GetBkColor( x ) \ (COLORREF)SNDMSG( x, LVM_GETBKCOLOR, 0, 0L ) #define ListView_SetBkColor( x, p ) \ (BOOL)SNDMSG( x, LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(p) ) #define ListView_GetImageList( x, p ) \ (HIMAGELIST)SNDMSG( x, LVM_GETIMAGELIST, (WPARAM)(INT)(p), 0L ) #define ListView_SetImageList( x, p1, p2 ) \ (HIMAGELIST)SNDMSG( x, LVM_SETIMAGELIST, (WPARAM)(p2), (LPARAM)(HIMAGELIST)(p1) ) #define ListView_GetItemCount( x ) \ (int)SNDMSG( x, LVM_GETITEMCOUNT, 0, 0L ) #define ListView_GetItem( x, p ) \ (BOOL)SNDMSG( x, LVM_GETITEM, 0, (LPARAM)(LV_ITEM *)(p) ) #define ListView_SetItem( x, p ) \ (BOOL)SNDMSG( x, LVM_SETITEM, 0, (LPARAM)(const LV_ITEM *)(p) ) #define ListView_InsertItem( x, p ) \ (int)SNDMSG( x, LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(p) ) #define ListView_DeleteItem( x, p ) \ (BOOL)SNDMSG( x, LVM_DELETEITEM, (WPARAM)(int)(p), 0L ) #define ListView_DeleteAllItems( x ) \ (BOOL)SNDMSG( x, LVM_DELETEALLITEMS, 0, 0L ) #define ListView_GetCallbackMask( x ) \ (BOOL)SNDMSG( x, LVM_GETCALLBACKMASK, 0, 0L ) #define ListView_SetCallbackMask( x, p ) \ (BOOL)SNDMSG( x, LVM_SETCALLBACKMASK, (WPARAM)(UINT)(p), 0L ) #define ListView_GetNextItem( x, p1, p2 ) \ (int)SNDMSG( x, LVM_GETNEXTITEM, (WPARAM)(int)(p1), MAKELPARAM( p2, 0 ) ) #define ListView_FindItem( x, p1, p2 ) \ (int)SNDMSG( x, LVM_FINDITEM, (WPARAM)(int)(p1), (LPARAM)(const LV_FINDINFO *)(p2) ) #define ListView_GetItemRect( x, p1, p2, p3 ) \ (BOOL)SNDMSG( x, LVM_GETITEMRECT, (WPARAM)(int)(p1), (LPARAM)(RECT *)((p2) ? \ (((RECT *)(p2))->left = (p3), (p2)) : NULL)) #define ListView_SetItemPosition( x, p1, p2, p3 ) \ (BOOL)SNDMSG( x, LVM_SETITEMPOSITION, (WPARAM)(int)(p1), MAKELPARAM( p1, p2 ) ) #define ListView_GetItemPosition( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETITEMPOSITION, (WPARAM)(int)(p1), (LPARAM)(POINT *)(p2) ) #define ListView_GetStringWidth( x, p ) \ (int)SNDMSG( x, LVM_GETSTRINGWIDTH, 0, (LPARAM)(LPCTSTR)(p) ) #define ListView_HitTest( x, p ) \ (int)SNDMSG( x, LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO *)(p) ) #define ListView_HitTestEx( x, p ) \ (int)SNDMSG( x, LVM_HITTEST, ((WPARAM)-1), (LPARAM)(LV_HITTESTINFO *)(p) ) #define ListView_EnsureVisible( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_ENSUREVISIBLE, (WPARAM)(int)(p1), MAKELPARAM( p2, 0 ) ) #define ListView_Scroll( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_SCROLL, (WPARAM)(int)(p1), (LPARAM)(int)(p2) ) #define ListView_RedrawItems( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_REDRAWITEMS, (WPARAM)(int)(p1), (LPARAM)(int)(p2) ) #define ListView_Arrange( x, p ) \ (BOOL)SNDMSG( x, LVM_ARRANGE, (WPARAM)(UINT)(p), 0L ) #define ListView_EditLabel( x, p ) \ (HWND)SNDMSG( x, LVM_EDITLABEL, (WPARAM)(int)(p), 0L ) #define ListView_GetEditControl( x ) \ (HWND)SNDMSG( x, LVM_GETEDITCONTROL, 0, 0L ) #define ListView_GetColumn( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETCOLUMN, (WPARAM)(int)(p1), (LPARAM)(LV_COLUMN *)(p2) ) #define ListView_SetColumn( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_SETCOLUMN, (WPARAM)(int)(p1), (LPARAM)(const LV_COLUMN *)(p2) ) #define ListView_InsertColumn( x, p1, p2 ) \ (int)SNDMSG( x, LVM_INSERTCOLUMN, (WPARAM)(int)(p1), (LPARAM)(const LV_COLUMN *)(p2) ) #define ListView_DeleteColumn( x, p ) \ (BOOL)SNDMSG( x, LVM_DELETECOLUMN, (WPARAM)(int)(p), 0L ) #define ListView_GetColumnWidth( x, p ) \ (int)SNDMSG( x, LVM_GETCOLUMNWIDTH, (WPARAM)(int)(p), 0L ) #define ListView_SetColumnWidth( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_SETCOLUMNWIDTH, (WPARAM)(int)(p1), MAKELPARAM( p2, 0 ) ) #if (_WIN32_IE >= 0x0300) #define ListView_GetHeader( x ) \ (HWND)SNDMSG( x, LVM_GETHEADER, 0, 0L ) #endif #define ListView_CreateDragImage( x, p1, p2 ) \ (HIMAGELIST)SNDMSG( x, LVM_CREATEDRAGIMAGE, (WPARAM)(int)(p1), (LPARAM)(LPPOINT)(p2) ) #define ListView_GetViewRect( x, p ) \ (BOOL)SNDMSG( x, LVM_GETVIEWRECT, 0, (LPARAM)(RECT *)(p) ) #define ListView_GetTextColor( x ) \ (COLORREF)SNDMSG( x, LVM_GETTEXTCOLOR, 0, 0L ) #define ListView_SetTextColor( x, p ) \ (BOOL)SNDMSG( x, LVM_SETTEXTCOLOR, 0, (LPARAM)(COLORREF)(p) ) #define ListView_GetTextBkColor( x ) \ (COLORREF)SNDMSG( x, LVM_GETTEXTBKCOLOR, 0, 0L ) #define ListView_SetTextBkColor( x, p ) \ (BOOL)SNDMSG( x, LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(p) ) #define ListView_GetTopIndex( x ) \ (int)SNDMSG( x, LVM_GETTOPINDEX, 0, 0L ) #define ListView_GetCountPerPage( x ) \ (int)SNDMSG( x, LVM_GETCOUNTPERPAGE, 0, 0L ) #define ListView_GetOrigin( x, p ) \ (BOOL)SNDMSG( x, LVM_GETORIGIN, 0, (LPARAM)(POINT *)(p) ) #define ListView_Update( x, p ) \ (BOOL)SNDMSG( x, LVM_UPDATE, (WPARAM)(p), 0L ) #define ListView_SetItemState( x, p1, p2, p3 ) \ { \ LV_ITEM __item; \ __item.stateMask = p3; \ __item.state = p2; \ SNDMSG( x, LVM_SETITEMSTATE, (WPARAM)(p1), (LPARAM)(LV_ITEM *)&__item ); \ } #if (_WIN32_IE >= 0x0300) #define ListView_SetCheckState( x, p1, p2 ) \ ListView_SetItemState( x, p1, INDEXTOSTATEIMAGEMASK( (p2) ? 2 : 1 ), LVIS_STATEIMAGEMASK ) #endif #define ListView_GetItemState( x, p1, p2 ) \ (UINT)SNDMSG( x, LVM_GETITEMSTATE, (WPARAM)(p1), (LPARAM)(p2) ) #if (_WIN32_IE >= 0x0300) #define ListView_GetCheckState( x, p ) \ ((((UINT)SNDMSG( x, LVM_GETITEMSTATE, (WPARAM)(p), LVIS_STATEIMAGEMASK )) >> 12) - 1) #endif #define ListView_GetItemText( x, p1, p2, p3, p4 ) \ { \ LV_ITEM __item; \ __item.iSubItem = p2; \ __item.pszText = p3; \ __item.cchTextMax = p4; \ SNDMSG( x, LVM_GETITEMTEXT, (WPARAM)(p1), (LPARAM)(LV_ITEM *)&__item ); \ } #define ListView_SetItemText( x, p1, p2, p3 ) \ { \ LV_ITEM __item; \ __item.iSubItem = p2; \ __item.pszText = p3; \ SNDMSG( x, LVM_SETITEMTEXT, (WPARAM)(p1), (LPARAM)(LV_ITEM *)&__item ); \ } #define ListView_SetItemCount( x, p ) \ SNDMSG( x, LVM_SETITEMCOUNT, (WPARAM)(p), 0L ) #if (_WIN32_IE >= 0x0300) #define ListView_SetItemCountEx( x, p1, p2 ) \ SNDMSG( x, LVM_SETITEMCOUNT, (WPARAM)(p1), (LPARAM)(p2) ) #endif #define ListView_SortItems( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_SORTITEMS, (WPARAM)(LPARAM)(p2), (LPARAM)(PFNLVCOMPARE)(p1) ) #define ListView_GetSelectedCount( x ) \ (UINT)SNDMSG( x, LVM_GETSELECTEDCOUNT, 0, 0L ) #define ListView_GetItemSpacing( x, p ) \ (DWORD)SNDMSG( x, LVM_GETITEMSPACING, p, 0L ) #define ListView_GetISearchString( x, p ) \ (BOOL)SNDMSG( x, LVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(p) ) #if (_WIN32_IE >= 0x0300) #define ListView_SetIconSpacing( x, p1, p2 ) \ (DWORD)SNDMSG( x, LVM_SETICONSPACING, 0, MAKELONG( p1, p2 ) #define ListView_SetExtendedListViewStyle( x, p ) \ (DWORD)SNDMSG( x, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, p ) #endif #if (_WIN32_IE >= 0x0400) #define ListView_SetExtendedListViewStyleEx( x, p1, p2 ) \ (DWORD)SNDMSG( x, LVM_SETEXTENDEDLISTVIEWSTYLE, p1, p2 ) #endif #if (_WIN32_IE >= 0x0300) #define ListView_GetExtendedListViewStyle( x ) \ (DWORD)SNDMSG( x, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0L ) #define ListView_GetSubItemRect( x, p1, p2, p3, p4 ) \ (BOOL)SNDMSG( x, LVM_GETSUBITEMRECT, (WPARAM)(int)(p1), ((p4) ? \ ((((LPRECT)(p4))->top = (p2)), (((LPRECT)(p4))->left = (p3)), (LPARAM)(p4)) : \ (LPARAM)(LPRECT)NULL) ) #define ListView_SubItemHitTest( x, p ) \ (int)SNDMSG( x, LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(p) ) #define ListView_SubItemHitTestEx( x, p ) \ (int)SNDMSG( x, LVM_SUBITEMHITTESTEX, ((WPARAM)-1), (LPARAM)(LPLVHITTESTINFO)(p) ) #define ListView_SetColumnOrderArray( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_SETCOLUMNORDERARRAY, (WPARAM)(p1), (LPARAM)(LPINT)(p2) ) #define ListView_GetColumnOrderArray( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETCOLUMNORDERARRAY, (WPARAM)(p1), (LPARAM)(LPINT)(p2) ) #define ListView_SetHotItem( x, p ) \ (int)SNDMSG( x, LVM_SETHOTITEM, (WPARAM)(p), 0L ) #define ListView_GetHotItem( x ) \ (int)SNDMSG( x, LVM_GETHOTITEM, 0, 0L ) #define ListView_SetHotCursor( x, p ) \ (HCURSOR)SNDMSG( x, LVM_SETHOTCURSOR, 0, (LPARAM)(p) ) #define ListView_GetHotCursor( x, p ) \ (HCURSOR)SNDMSG( x, LVM_GETHOTCURSOR, 0, 0L ) #define ListView_ApproximateViewRect( x, p1, p2, p3 ) \ (DWORD)SNDMSG( x, LVM_APPROXIMATEVIEWRECT, (WPARAM)(p3), MAKELPARAM( p1, p2 ) ) #endif #if (_WIN32_IE >= 0x0400) #define ListView_SetWorkAreas( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_SETWORKAREAS, (WPARAM)(int)(p1), (LPARAM)(RECT *)(p2) ) #define ListView_GetSelectionMark( x ) \ (int)SNDMSG( x, LVM_GETSELECTIONMARK, 0, 0L ) #define ListView_SetSelectionMark( x, p ) \ (int)SNDMSG( x, LVM_SETSELECTIONMARK, 0, (LPARAM)(p) ) #define ListView_SetBkImage( x, p ) \ (BOOL)SNDMSG( x, LVM_SETBKIMAGE, 0, (LPARAM)(p) ) #define ListView_GetBkImage( x, p ) \ (BOOL)SNDMSG( x, LVM_GETBKIMAGE, 0, (LPARAM)(p) ) #define ListView_GetWorkAreas( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETWORKAREAS, (WPARAM)(int)(p1), (LPARAM)(RECT *)(p2) ) #define ListView_SetHoverTime( x, p ) \ (DWORD)SNDMSG( x, LVM_SETHOVERTIME, 0, (LPARAM)(p) ) #define ListView_GetHoverTime( x ) \ (DWORD)SNDMSG( x, LVM_GETHOVERTIME, 0, 0L ) #define ListView_GetNumberOfWorkAreas( x, p ) \ (BOOL)SNDMSG( x, LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT *)(p) ) #define ListView_SetToolTips( x, p ) \ (HWND)SNDMSG( x, LVM_SETTOOLTIPS, (WPARAM)(p), 0L ) #define ListView_GetToolTips( x ) \ (HWND)SNDMSG( x, LVM_GETTOOLTIPS, 0, 0L ) #define ListView_SortItemsEx( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_SORTITEMSEX, (WPARAM)(LPARAM)(p2), (LPARAM)(PFNLVCOMPARE)(p1) ) #endif #if (_WIN32_WINNT >= 0x0501) #define ListView_GetGroupRect( x, p1, p2, p3 ) \ SNDMSG( x, LVM_GETGROUPRECT, (WPARAM)(p1), (LPARAM)(RECT *)((p3) ? \ (((RECT *)(p3))->top = p2), (p3) : NULL) ) #define ListView_GetGroupState( x, p1, p2 ) \ (UINT)SNDMSG( x, LVM_GETGROUPSTATE, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_GetFocusedGroup( x ) \ SNDMSG( x, LVM_GETFOCUSEDGROUP, 0, 0L ) #define ListView_SetSelectedColumn( x, p ) \ SNDMSG( x, LVM_SETSELECTEDCOLUMN, (WPARAM)(p), 0L ) #define ListView_SetView( x, p ) \ (DWORD)SNDMSG( x, LVM_SETVIEW, (WPARAM)(DWORD)(p), 0L ) #define ListView_GetView( x ) \ (DWORD)SNDMSG( x, LVM_GETVIEW, 0, 0L ) #define ListView_InsertGroup( x, p1, p2 ) \ SNDMSG( x, LVM_INSERTGROUP, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_SetGroupInfo( x, p1, p2 ) \ SNDMSG( x, LVM_SETGROUPINFO, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_GetGroupInfo( x, p1, p2 ) \ SNDMSG( x, LVM_GETGROUPINFO, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_RemoveGroup( x, p ) \ SNDMSG( x, LVM_REMOVEGROUP, (WPARAM)(p), 0L ) #define ListView_MoveGroup( x, p1, p2 ) \ SNDMSG( x, LVM_MOVEGROUP, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_GetGroupCount( x ) \ SNDMSG( x, LVM_GETGROUPCOUNT, 0, 0L ) #define ListView_GetGroupInfoByIndex( x, p1, p2 ) \ SNDMSG( x, LVM_GETGROUPINFOBYINDEX, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_MoveItemToGroup( x, p1, p2 ) \ SNDMSG( x, LVM_MOVEITEMTOGROUP, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_SetGroupMetrics( x, p ) \ SNDMSG( x, LVM_SETGROUPMETRICS, 0, (LPARAM)(p) ) #define ListView_GetGroupMetrics( x, p ) \ SNDMSG( x, LVM_GETGROUPMETRICS, 0, (LPARAM)(p) ) #define ListView_EnableGroupView( x, p ) \ SNDMSG( x, LVM_ENABLEGROUPVIEW, (WPARAM)(p), 0L ) #define ListView_SortGroups( x, p1, p2 ) \ SNDMSG( x, LVM_SORTGROUPS, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_InsertGroupSorted( x, p ) \ SNDMSG( x, LVM_INSERTGROUPSORTED, (WPARAM)(p), 0L ) #define ListView_RemoveAllGroups( x ) \ SNDMSG( x, LVM_REMOVEALLGROUPS, 0, 0L ) #define ListView_HasGroup( x, p ) \ SNDMSG( x, LVM_HASGROUP, p, 0L ) #define ListView_SetGroupState( x, p1, p2, p3 ) \ { \ LVGROUP __group; \ __group.cbSize = sizeof( __group ); \ __group.mask = LVGF_STATE; \ __group.stateMask = p2; \ __group.state = p3; \ SNDMSG( x, LVM_SETGROUPINFO, (WPARAM)(p1), (LPARAM)(LVGROUP *)&__group ); \ } #define ListView_SetTileViewInfo( x, p ) \ SNDMSG( x, LVM_SETTILEVIEWINFO, 0, (LPARAM)(p) ) #define ListView_GetTileViewInfo( x, p ) \ SNDMSG( x, LVM_GETTILEVIEWINFO, 0, (LPARAM)(p) ) #define ListView_SetTileInfo( x, p ) \ SNDMSG( x, LVM_SETTILEINFO, 0, (LPARAM)(p) ) #define ListView_GetTileInfo( x, p ) \ SNDMSG( x, LVM_GETTILEINFO, 0, (LPARAM)(p) ) #define ListView_SetInsertMark( x, p ) \ (BOOL)SNDMSG( x, LVM_SETINSERTMARK, 0, (LPARAM)(p) ) #define ListView_GetInsertMark( x, p ) \ (BOOL)SNDMSG( x, LVM_GETINSERTMARK, 0, (LPARAM)(p) ) #define ListView_InsertMarkHitTest( x, p1, p2 ) \ (int)SNDMSG( x, LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(p1), \ (LPARAM)(LPLVINSERTMARK)(p2) ) #define ListView_GetInsertMarkRect( x, p ) \ (int)SNDMSG( x, LVM_GETINSERTMARKRECT, 0, (LPARAM)(LPRECT)(p) ) #define ListView_SetInsertMarkColor( x, p ) \ (COLORREF)SNDMSG( x, LVM_SETINSERTMARKCOLOR, 0, (LPARAM)(COLORREF)(p) ) #define ListView_GetInsertMarkColor( x ) \ (COLORREF)SNDMSG( x, LVM_GETINSERTMARKCOLOR, 0, 0L ) #define ListView_SetInfoTip( x, p ) \ (BOOL)SNDMSG( x, LVM_SETINFOTIP, 0, (LPARAM)(p) ) #define ListView_GetSelectedColumn( x ) \ (UINT)SNDMSG( x, LVM_GETSELECTEDCOLUMN, 0, 0L ) #define ListView_IsGroupViewEnabled( x ) \ (BOOL)SNDMSG( x, LVM_ISGROUPVIEWENABLED, 0, 0L ) #define ListView_GetOutlineColor( x ) \ (COLORREF)SNDMSG( x, LVM_GETOUTLINECOLOR, 0, 0L ) #define ListView_SetOutlineColor( x, p ) \ (COLORREF)SNDMSG( x, LVM_SETOUTLINECOLOR, 0, (LPARAM)(COLORREF)(p) ) #define ListView_CancelEditLabel( x ) \ (VOID)SNDMSG( x, LVM_CANCELEDITLABEL, 0, 0L ) #define ListView_MapIndexToID( x, p ) \ (UINT)SNDMSG( x, LVM_MAPINDEXTOID, (WPARAM)(p), 0L ) #define ListView_MapIDToIndex( x, p ) \ (UINT)SNDMSG( x, LVM_MAPIDTOINDEX, (WPARAM)(p), 0L ) #define ListView_IsItemVisible( x, p ) \ (UINT)SNDMSG( x, LVM_ISITEMVISIBLE, (WPARAM)(p), 0L ) #endif #if (_WIN32_WINNT >= 0x0600) #define ListView_SetGroupHeaderImageList( x, p ) \ (HIMAGELIST)SNDMSG( x, LVM_SETIMAGELIST, LVSIL_GROUPHEADER, \ (LPARAM)(HIMAGELIST)(p) ) #define ListView_GetGroupHeaderImageList( x ) \ (HIMAGELIST)SNDMSG( x, LVM_GETIMAGELIST, LVSIL_GROUPHEADER, 0L ) #define ListView_GetEmptyText( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETEMPTYTEXT, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_GetFooterRect( x, p ) \ (BOOL)SNDMSG( x, LVM_GETFOOTERRECT, 0, (LPARAM)(p) ) #define ListView_GetFooterInfo( x, p ) \ (BOOL)SNDMSG( x, LVM_GETFOOTERINFO, 0, (LPARAM)(p) ) #define ListView_GetFooterItemRect( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETFOOTERITEMRECT, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_GetFooterItem( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETFOOTERITEM, (WPARAM)(p1), (LPARAM)(p2) ) #define ListView_GetItemIndexRect( x, p1, p2, p3, p4 ) \ (BOOL)SNDMSG( x, LVM_GETITEMINDEXRECT, (WPARAM)(LVITEMINDEX *)(p1), \ (LPARAM)((p4) ? ((((LPRECT)(p4))->top = p2), \ (((LPRECT)(p4))->left = p3), (p4)) : (LPRECT)NULL) ) #define ListView_SetItemIndexRect( x, p1, p2, p3 ) \ { \ LV_ITEM __item; \ __item.stateMask = p3; \ __item.state = p2; \ SNDMSG( x, LVM_SETITEMINDEXRECT, (WPARAM)(LVITEMINDEX *)(p1), \ (LPARAM)(LV_ITEM *)&__item ); \ } #define ListView_GetNextItemIndex( x, p1, p2 ) \ (BOOL)SNDMSG( x, LVM_GETNEXTITEMINDEX, (WPARAM)(LVITEMINDEX *)(p1), \ MAKELPARAM( p2, 0 ) ) #endif #if (_WIN32_IE >= 0x0400) #define ListView_SetUnicodeFormat( x, p ) \ (BOOL)SNDMSG( x, LVM_SETUNICODEFORMAT, (WPARAM)(p), 0L ) #define ListView_GetUnicodeFormat( x ) \ (BOOL)SNDMSG( x, LVM_GETUNICODEFORMAT, 0, 0L ) #endif #define TreeView_InsertItem( x, p ) \ (HTREEITEM)SNDMSG( x, TVM_INSERTITEM, 0, (LPARAM)(LPTV_INSERTSTRUCT)(p) ) #define TreeView_DeleteItem( x, p ) \ (BOOL)SNDMSG( x, TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(p) ) #define TreeView_DeleteAllItems( x ) \ (BOOL)SNDMSG( x, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT ) #define TreeView_Expand( x, p1, p2 ) \ (BOOL)SNDMSG( x, TVM_EXPAND, (WPARAM)(p2), (LPARAM)(HTREEITEM)(p1) ) #define TreeView_GetItemRect( x, p1, p2, p3 ) \ ((*(HTREEITEM *)(p2) = p1), (BOOL)SNDMSG( x, TVM_GETITEMRECT, (WPARAM)(p3), \ (LPARAM)(RECT *)(p3) )) #define TreeView_GetCount( x ) \ (UINT)SNDMSG( x, TVM_GETCOUNT, 0, 0L ) #define TreeView_GetIndent( x ) \ (UINT)SNDMSG( x, TVM_GETINDENT, 0, 0L ) #define TreeView_SetIndent( x, p ) \ (BOOL)SNDMSG( x, TVM_SETINDENT, (WPARAM)(p), 0L ) #define TreeView_GetImageList( x, p ) \ (HIMAGELIST)SNDMSG( x, TVM_GETIMAGELIST, p, 0L ) #define TreeView_SetImageList( x, p1, p2 ) \ (HIMAGELIST)SNDMSG( x, TVM_SETIMAGELIST, p2, (LPARAM)(HIMAGELIST)(p1) ) #define TreeView_GetNextItem( x, p1, p2 ) \ (HTREEITEM)SNDMSG( x, TVM_GETNEXTITEM, (WPARAM)(p2), (LPARAM)(HTREEITEM)(p1) ) #define TreeView_GetChild( x, p ) \ TreeView_GetNextItem( x, p, TVGN_CHILD ) #define TreeView_GetNextSibling( x, p ) \ TreeView_GetNextItem( x, p, TVGN_NEXT ) #define TreeView_GetPrevSibling( x, p ) \ TreeView_GetNextItem( x, p, TVGN_PREVIOUS ) #define TreeView_GetParent( x, p ) \ TreeView_GetNextItem( x, p, TVGN_PARENT ) #define TreeView_GetFirstVisible( x ) \ TreeView_GetNextItem( x, NULL, TVGN_FIRSTVISIBLE ) #define TreeView_GetNextVisible( x, p ) \ TreeView_GetNextItem( x, p, TVGN_NEXTVISIBLE ) #define TreeView_GetPrevVisible( x, p ) \ TreeView_GetNextItem( x, p, TVGN_PREVIOUSVISIBLE ) #define TreeView_GetSelection( x ) \ TreeView_GetNextItem( x, NULL, TVGN_CARET ) #define TreeView_GetDropHilight( x ) \ TreeView_GetNextItem( x, NULL, TVGN_DROPHILITE ) #define TreeView_GetRoot( x ) \ TreeView_GetNextItem( x, NULL, TVGN_ROOT ) #if (_WIN32_IE >= 0x0400) #define TreeView_GetLastVisible( x ) \ TreeView_GetNextItem( x, NULL, TVGN_LASTVISIBLE ) #endif #if (_WIN32_IE >= 0x0600) #define TreeView_GetNextSelected( x, p ) \ TreeView_GetNextItem( x, p, TVGN_NEXTSELECTED ) #endif #define TreeView_Select( x, p1, p2 ) \ (BOOL)SNDMSG( x, TVM_SELECTITEM, (WPARAM)(p2), (LPARAM)(HTREEITEM)(p1) ) #define TreeView_SelectItem( x, p ) \ TreeView_Select( x, p, TVGN_CARET ) #define TreeView_SelectDropTarget( x, p ) \ TreeView_Select( x, p, TVGN_DROPHILITE ) #define TreeView_SelectSetFirstVisible( x, p ) \ TreeView_Select( x, p, TVGN_FIRSTVISIBLE ) #define TreeView_GetItem( x, p ) \ (BOOL)SNDMSG( x, TVM_GETITEM, 0, (LPARAM)(TV_ITEM *)(p) ) #define TreeView_SetItem( x, p ) \ (BOOL)SNDMSG( x, TVM_SETITEM, 0, (LPARAM)(const TV_ITEM *)(p) ) #define TreeView_EditLabel( x, p ) \ (HWND)SNDMSG( x, TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(p) ) #define TreeView_GetEditControl( x ) \ (HWND)SNDMSG( x, TVM_GETEDITCONTROL, 0, 0L ) #define TreeView_GetVisibleCount( x ) \ (UINT)SNDMSG( x, TVM_GETVISIBLECOUNT, 0, 0L ) #define TreeView_HitTest( x, p ) \ (HTREEITEM)SNDMSG( x, TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(p) ) #define TreeView_CreateDragImage( x, p ) \ (HIMAGELIST)SNDMSG( x, TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HIMAGELIST)(p) ) #define TreeView_SortChildren( x, p1, p2 ) \ (BOOL)SNDMSG( x, TVM_SORTCHILDREN, (WPARAM)(p2), (LPARAM)(HTREEITEM)(p1) ) #define TreeView_EnsureVisible( x, p ) \ (BOOL)SNDMSG( x, TVM_ENSUREVISIBLE, 0, (LPARAM)(HTREEITEM)(p) ) #define TreeView_SortChildrenCB( x, p1, p2 ) \ (BOOL)SNDMSG( x, TVM_SORTCHILDRENCB, (WPARAM)(p2), (LPARAM)(LPTV_SORTCB)(p2) ) #define TreeView_EndEditLabelNow( x, p ) \ (BOOL)SNDMSG( x, TVM_ENDEDITLABELNOW, (WPARAM)(p), 0L ) #define TreeView_GetISearchString( x, p ) \ (BOOL)SNDMSG( x, TVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(p) ) #if (_WIN32_IE >= 0x0300) #define TreeView_SetToolTips( x, p ) \ (HWND)SNDMSG( x, TVM_SETTOOLTIPS, (WPARAM)(p), 0L ) #define TreeView_GetToolTips( x ) \ (HWND)SNDMSG( x, TVM_GETTOOLTIPS, 0, 0L ) #endif #if (_WIN32_IE >= 0x0400) #define TreeView_SetInsertMark( x, p1, p2 ) \ (BOOL)SNDMSG( x, TVM_SETINSERTMARK, (WPARAM)(p2), (LPARAM)(p1) ) #define TreeView_SetItemHeight( x, p ) \ (int)SNDMSG( x, TVM_SETITEMHEIGHT, (WPARAM)(p), 0L ) #define TreeView_GetItemHeight( x ) \ (int)SNDMSG( x, TVM_GETITEMHEIGHT, 0, 0L ) #define TreeView_SetBkColor( x, p ) \ (COLORREF)SNDMSG( x, TVM_SETBKCOLOR, 0, (LPARAM)(p) ) #define TreeView_SetTextColor( x, p ) \ (COLORREF)SNDMSG( x, TVM_SETTEXTCOLOR, 0, (LPARAM)(p) ) #define TreeView_GetBkColor( x ) \ (COLORREF)SNDMSG( x, TVM_GETBKCOLOR, 0, 0L ) #define TreeView_GetTextColor( x ) \ (COLORREF)SNDMSG( x, TVM_GETTEXTCOLOR, 0, 0L ) #define TreeView_SetScrollTime( x, p ) \ (UINT)SNDMSG( x, TVM_SETSCROLLTIME, p, 0L ) #define TreeView_GetScrollTime( x ) \ (UINT)SNDMSG( x, TVM_GETSCROLLTIME, 0, 0L ) #define TreeView_SetInsertMarkColor( x, p ) \ (COLORREF)SNDMSG( x, TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(p) ) #define TreeView_GetInsertMarkColor( x ) \ (COLORREF)SNDMSG( x, TVM_GETINSERTMARKCOLOR, 0, 0L ) #endif #if (_WIN32_IE >= 0x0500) #define TreeView_SetItemState( x, p1, p2, p3 ) \ { \ TV_ITEM __item; \ __item.mask = TVIF_STATE; \ __item.hItem = p1; \ __item.state = p2; \ __item.stateMask = p3; \ SNDMSG( x, TVM_SETITEM, 0, (LPARAM)(TV_ITEM *)&__item ); \ } #define TreeView_SetCheckState( x, p1, p2 ) \ TreeView_SetItemState( x, p1, INDEXTOSTATEIMAGEMASK( (p2) ? 2 : 1 ), \ TVIS_STATEIMAGEMASK ) #define TreeView_GetItemState( x, p1, p2 ) \ (UINT)SNDMSG( x, TVM_GETITEMSTATE, (WPARAM)(p1), (LPARAM)(p2) ) #define TreeView_GetCheckState( x, p ) \ ((((UINT)(TreeView_GetItemState( x, p, TVIS_STATEIMAGEMASK ))) >> 12) - 1) #define TreeView_SetLineColor( x, p ) \ (COLORREF)SNDMSG( x, TVM_SETLINECOLOR, 0, (LPARAM)(p) ) #define TreeView_GetLineColor( x ) \ (COLORREF)SNDMSG( x, TVM_GETLINECOLOR, 0, 0L ) #endif #if (_WIN32_WINNT >= 0x0501) #define TreeView_MapAccIDToHTREEITEM( x, p ) \ (HTREEITEM)SNDMSG( x, TVM_MAPACCIDTOHTREEITEM, p, 0L ) #define TreeView_MapHTREEITEMToAccID( x, p ) \ (UINT)SNDMSG( x, TVM_MAPHTREEITEMTOACCID, (WPARAM)(p), 0L ) #define TreeView_SetExtendedStyle( x, p1, p2 ) \ (DWORD)SNDMSG( x, TVM_SETEXTENDEDSTYLE, p2, p1 ) #define TreeView_GetExtendedStyle( x ) \ (DWORD)SNDMSG( x, TVM_GETEXTENDEDSTYLE, 0, 0L ) #define TreeView_SetAutoScrollInfo( x, p1, p2 ) \ SNDMSG( x, TVM_SETAUTOSCROLLINFO, (WPARAM)(p1), (LPARAM)(p2) ) #endif #if (_WIN32_WINNT >= 0x0600) #define TreeView_GetSelectedCount( x ) \ (DWORD)SNDMSG( x, TVM_GETSELECTEDCOUNT, 0, 0L ) #define TreeView_ShowInfoTip( x, p ) \ (DWORD)SNDMSG( x, TVM_SHOWINFOTIP, 0, (LPARAM)(p) ) #define TreeView_GetItemPartRect( x, p1, p2, p3 ) \ { \ TVGETITEMPARTRECTINFO __info; \ __info.hti = p1; \ __info.prc = p2; \ __info.partID = p3; \ SNDMSG( x, TVM_GETITEMPARTRECT, 0, (LPARAM)&__info ); \ } #endif #if (_WIN32_IE >= 0x0400) #define TreeView_SetUnicodeFormat( x, p ) \ (BOOL)SNDMSG( x, TVM_SETUNICODEFORMAT, (WPARAM)(p), 0L ) #define TreeView_GetUnicodeFormat( x ) \ (BOOL)SNDMSG( x, TVM_GETUNICODEFORMAT, 0, 0L ) #endif #define TabCtrl_GetImageList( x ) \ (HIMAGELIST)SNDMSG( x, TCM_GETIMAGELIST, 0, 0L ) #define TabCtrl_SetImageList( x, p ) \ (HIMAGELIST)SNDMSG( x, TCM_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)(p) ) #define TabCtrl_GetItemCount( x ) \ (int)SNDMSG( x, TCM_GETITEMCOUNT, 0, 0L ) #define TabCtrl_GetItem( x, p1, p2 ) \ (BOOL)SNDMSG( x, TCM_GETITEM, (WPARAM)(int)(p1), (LPARAM)(TC_ITEM *)(p2) ) #define TabCtrl_SetItem( x, p1, p2 ) \ (BOOL)SNDMSG( x, TCM_SETITEM, (WPARAM)(int)(p1), (LPARAM)(TC_ITEM *)(p2) ) #define TabCtrl_InsertItem( x, p1, p2 ) \ (int)SNDMSG( x, TCM_INSERTITEM, (WPARAM)(p1), (LPARAM)(const TC_ITEM *)(p2) ) #define TabCtrl_DeleteItem( x, p ) \ (BOOL)SNDMSG( x, TCM_DELETEITEM, (WPARAM)(int)(p), 0L ) #define TabCtrl_DeleteAllItems( x ) \ (BOOL)SNDMSG( x, TCM_DELETEALLITEMS, 0, 0L ) #define TabCtrl_GetItemRect( x, p1, p2 ) \ (BOOL)SNDMSG( x, TCM_GETITEMRECT, (WPARAM)(int)(p1), (LPARAM)(RECT *)(p2) ) #define TabCtrl_GetCurSel( x ) \ (int)SNDMSG( x, TCM_GETCURSEL, 0, 0L ) #define TabCtrl_SetCurSel( x, p ) \ (int)SNDMSG( x, TCM_SETCURSEL, (WPARAM)(p), 0L ) #define TabCtrl_HitTest( x, p ) \ (int)SNDMSG( x, TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO *)(p) ) #define TabCtrl_SetItemExtra( x, p ) \ (BOOL)SNDMSG( x, TCM_SETITEMEXTRA, (WPARAM)(p), 0L ) #define TabCtrl_AdjustRect( x, p1, p2 ) \ (int)SNDMSG( x, TCM_ADJUSTRECT, (WPARAM)(BOOL)(p1), (LPARAM)(RECT *)(p2) ) #define TabCtrl_SetItemSize( x, p1, p2 ) \ (DWORD)SNDMSG( x, TCM_SETITEMSIZE, 0, MAKELPARAM( p1, p2 ) ) #define TabCtrl_RemoveImage( x, p ) \ (void)SNDMSG( x, TCM_REMOVEIMAGE, p, 0L ) #define TabCtrl_SetPadding( x, p1, p2 ) \ (void)SNDMSG( x, TCM_SETPADDING, 0, MAKELPARAM( p1, p2 ) ) #define TabCtrl_GetRowCount( x ) \ (int)SNDMSG( x, TCM_GETROWCOUNT, 0, 0L ) #define TabCtrl_GetToolTips( x ) \ (HWND)SNDMSG( x, TCM_GETTOOLTIPS, 0, 0L ) #define TabCtrl_SetToolTips( x, p ) \ (void)SNDMSG( x, TCM_SETTOOLTIPS, (WPARAM)(p), 0L ) #define TabCtrl_GetCurFocus( x ) \ (int)SNDMSG( x, TCM_GETCURFOCUS, 0, 0L ) #define TabCtrl_SetCurFocus( x, p ) \ SNDMSG( x, TCM_SETCURFOCUS, p, 0L ) #if (_WIN32_IE >= 0x0300) #define TabCtrl_SetMinTabWidth( x, p ) \ (int)SNDMSG( x, TCM_SETMINTABWIDTH, 0, p ) #define TabCtrl_DeselectAll( x, p ) \ (void)SNDMSG( x, TCM_DESELECTALL, p, 0L ) #endif #if (_WIN32_IE >= 0x0400) #define TabCtrl_HighlightItem( x, p1, p2 ) \ (BOOL)SNDMSG( x, TCM_HIGHLIGHTITEM, (WPARAM)(p1), (LPARAM)MAKELONG( p2, 0 ) ) #define TabCtrl_SetExtendedStyle( x, p ) \ (DWORD)SNDMSG( x, TCM_SETEXTENDEDSTYLE, 0, p ) #define TabCtrl_GetExtendedStyle( x ) \ (DWORD)SNDMSG( x, TCM_GETEXTENDEDSTYLE, 0, 0L ) #define TabCtrl_SetUnicodeFormat( x, p ) \ (BOOL)SNDMSG( x, TCM_SETUNICODEFORMAT, (WPARAM)(p), 0L ) #define TabCtrl_GetUnicodeFormat( x ) \ (BOOL)SNDMSG( x, TCM_GETUNICODEFORMAT, 0, 0L ) #endif #define Animate_Create( p1, p2, p3, p4 ) \ CreateWindow( ANIMATE_CLASS, NULL, p3, 0L, 0L, 0L, 0L, p1, (HMENU)(p2), p4, NULL ) #define Animate_Open( x, p ) \ (BOOL)SNDMSG( x, ACM_OPEN, 0, (LPARAM)(LPTSTR)(p) ) #define Animate_OpenEx( x, p1, p2 ) \ (BOOL)SNDMSG( x, ACM_OPEN, (WPARAM)(p1), (LPARAM)(LPTSTR)(p) ) #define Animate_Play( x, p1, p2, p3 ) \ (BOOL)SNDMSG( x, ACM_PLAY, (WPARAM)(p3), (LPARAM)MAKELONG( p1, p2 ) ) #define Animate_Stop( x ) \ (BOOL)SNDMSG( x, ACM_STOP, 0, 0L ) #define Animate_IsPlaying( x ) \ (BOOL)SNDMSG( x, ACM_ISPLAYING, 0, 0L ) #define Animate_Close( x ) Animate_Open( x, NULL ) #define Animate_Seek( x, p ) Animate_Play( x, p, p, 1 ) #if (_WIN32_IE >= 0x0300) #define MonthCal_GetCurSel( x, p ) \ (BOOL)SNDMSG( x, MCM_GETCURSEL, 0, (LPARAM)(p) ) #define MonthCal_SetCurSel( x, p ) \ (BOOL)SNDMSG( x, MCM_SETCURSEL, 0, (LPARAM)(p) ) #define MonthCal_GetMaxSelCount( x ) \ (DWORD)SNDMSG( x, MCM_GETMAXSELCOUNT, 0, 0L ) #define MonthCal_SetMaxSelCount( x, p ) \ (BOOL)SNDMSG( x, MCM_SETMAXSELCOUNT, (WPARAM)(p), 0L ) #define MonthCal_GetSelRange( x, p ) \ SNDMSG( x, MCM_GETSELRANGE, 0, (LPARAM)(p) ) #define MonthCal_SetSelRange( x, p ) \ SNDMSG( x, MCM_SETSELRANGE, 0, (LPARAM)(p) ) #define MonthCal_GetMonthRange( x, p1, p2 ) \ (DWORD)SNDMSG( x, MCM_GETMONTHRANGE, (WPARAM)(p1), (LPARAM)(p2) ) #define MonthCal_SetDayState( x, p1, p2 ) \ SNDMSG( x, MCM_SETDAYSTATE, (WPARAM)(p1), (LPARAM)(p2) ) #define MonthCal_GetMinReqRect( x, p ) \ SNDMSG( x, MCM_GETMINREQRECT, 0, (LPARAM)(p) ) #define MonthCal_SetColor( x, p1, p2 ) \ SNDMSG( x, MCM_SETCOLOR, p1, p2 ) #define MonthCal_GetColor( x, p ) \ SNDMSG( x, MCM_GETCOLOR, p, 0L ) #define MonthCal_SetToday( x, p ) \ SNDMSG( x, MCM_SETTODAY, 0, (LPARAM)(p) ) #define MonthCal_GetToday( x, p ) \ (BOOL)SNDMSG( x, MCM_GETTODAY, 0, (LPARAM)(p) ) #define MonthCal_HitTest( x, p ) \ SNDMSG( x, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)(p) ) #define MonthCal_SetFirstDayOfWeek( x, p ) \ SNDMSG( x, MCM_SETFIRSTDAYOFWEEK, 0, p ) #define MonthCal_GetFirstDayOfWeek( x ) \ (DWORD)SNDMSG( x, MCM_GETFIRSTDAYOFWEEK, 0, 0L ) #define MonthCal_GetRange( x, p ) \ (DWORD)SNDMSG( x, MCM_GETRANGE, 0, (LPARAM)(p) ) #define MonthCal_SetRange( x, p1, p2 ) \ (BOOL)SNDMSG( x, MCM_SETRANGE, (WPARAM)(p1), (LPARAM)(p2) ) #define MonthCal_GetMonthDelta( x ) \ (int)SNDMSG( x, MCM_GETMONTHDELTA, 0, 0L ) #define MonthCal_SetMonthDelta( x, p ) \ (int)SNDMSG( x, MCM_SETMONTHDELTA, p, 0L ) #define MonthCal_GetMaxTodayWidth( x ) \ (DWORD)SNDMSG( x, MCM_GETMAXTODAYWIDTH, 0, 0L ) #endif #if (NTDDI_VERSION >= 0x06000000) #define MonthCal_GetCurrentView( x ) \ (DWORD)SNDMSG( x, MCM_GETCURRENTVIEW, 0, 0L ) #define MonthCal_GetCalendarCount( x ) \ (DWORD)SNDMSG( x, MCM_GETCALENDARCOUNT, 0, 0L ) #define MonthCal_GetCalendarGridInfo( x, p ) \ (BOOL)SNDMSG( x, MCM_GETCALENDARGRIDINFO, 0, (LPARAM)(PMCGRIDINFO)(p) ) #define MonthCal_GetCALID( x ) \ (CALID)SNDMSG( x, MCM_GETCALID, 0, 0L ) #define MonthCal_SetCALID( x, p ) \ SNDMSG( x, MCM_SETCALID, (WPARAM)(p), 0L ) #define MonthCal_SizeRectToMin( x, p ) \ SNDMSG( x, MCM_SIZERECTTOMIN, 0, (LPARAM)(p) ) #define MonthCal_SetCalendarBorder( x, p1, p2 ) \ SNDMSG( x, MCM_SETCALENDARBORDER, (WPARAM)(p1), (LPARAM)(p2) ) #define MonthCal_GetCalendarBorder( x ) \ (int)SNDMSG( x, MCM_GETCALENDARBORDER, 0, 0L ) #define MonthCal_SetCurrentView( x, p ) \ (BOOL)SNDMSG( x, MCM_SETCURRENTVIEW, 0, (LPARAM)(p) ) #endif #if (_WIN32_IE >= 0x0400) #define MonthCal_SetUnicodeFormat( x, p ) \ (BOOL)SNDMSG( x, MCM_SETUNICODEFORMAT, (WPARAM)(p), 0L ) #define MonthCal_GetUnicodeFormat( x ) \ (BOOL)SNDMSG( x, MCM_GETUNICODEFORMAT, 0, 0L ) #endif #if (_WIN32_IE >= 0x0300) #define DateTime_GetSystemTime( x, p ) \ (DWORD)SNDMSG( x, DTM_GETSYSTEMTIME, 0, (LPARAM)(p) ) #define DateTime_SetSystemTime( x, p1, p2 ) \ (BOOL)SNDMSG( x, DTM_SETSYSTEMTIME, (WPARAM)(p1), (LPARAM)(p2) ) #define DateTime_GetRange( x, p ) \ (DWORD)SNDMSG( x, DTM_GETRANGE, 0, (LPARAM)(p) ) #define DateTime_SetRange( x, p1, p2 ) \ (BOOL)SNDMSG( x, DTM_SETRANGE, (WPARAM)(p1), (LPARAM)(p2) ) #define DateTime_SetFormat( x, p ) \ (BOOL)SNDMSG( x, DTM_SETFORMAT, 0, (LPARAM)(p) ) #define DateTime_SetMonthCalColor( x, p1, p2 ) \ SNDMSG( x, DTM_SETMCCOLOR, p1, p2 ) #define DateTime_GetMonthCalColor( x, p ) \ SNDMSG( x, DTM_GETMCCOLOR, p, 0L ) #define DateTime_GetMonthCal( x ) \ (HWND)SNDMSG( x, DTM_GETMONTHCAL, 0, 0L ) #endif #if (_WIN32_IE >= 0x0400) #define DateTime_SetMonthCalFont( x, p1, p2 ) \ SNDMSG( x, DTM_SETMCFONT, (WPARAM)(p1), (LPARAM)(p2) ) #define DateTime_GetMonthCalFont( x ) \ SNDMSG( x, DTM_GETMCFONT, 0, 0L ) #endif #if (NTDDI_VERSION >= 0x06000000) #define DateTime_SetMonthCalStyle( x, p ) \ SNDMSG( x, DTM_SETMCSTYLE, 0, (LPARAM)(p) ) #define DateTime_GetMonthCalStyle( x ) \ SNDMSG( x, DTM_GETMCSTYLE, 0, 0L ) #define DateTime_CloseMonthCal( x ) \ SNDMSG( x, DTM_CLOSEMONTHCAL, 0, 0L ) #define DateTime_GetDateTimePickerInfo( x, p ) \ SNDMSG( x, DTM_GETDATETIMEPICKERINFO, 0, (LPARAM)(p) ) #define DateTime_GetIdealSize( x, p ) \ (BOOL)SNDMSG( x, DTM_GETIDEALSIZE, 0, (LPARAM)(p) ) #endif #if (_WIN32_IE >= 0x0400) #define Pager_SetChild( x, p ) \ (void)SNDMSG( x, PGM_SETCHILD, 0, (LPARAM)(p) ) #define Pager_RecalcSize( x ) \ (void)SNDMSG( x, PGM_RECALCSIZE, 0, 0L ) #define Pager_ForwardMouse( x, p ) \ (void)SNDMSG( x, PGM_FORWARDMOUSE, (WPARAM)(p), 0L ) #define Pager_SetBkColor( x, p ) \ (COLORREF)SNDMSG( x, PGM_SETBKCOLOR, 0, (LPARAM)(p) ) #define Pager_GetBkColor( x ) \ (COLORREF)SNDMSG( x, PGM_GETBKCOLOR, 0, 0L ) #define Pager_SetBorder( x, p ) \ (int)SNDMSG( x, PGM_SETBORDER, 0, (LPARAM)(p) ) #define Pager_GetBorder( x ) \ (int)SNDMSG( x, PGM_GETBORDER, 0, 0L ) #define Pager_SetPos( x, p ) \ (int)SNDMSG( x, PGM_SETPOS, 0, (LPARAM)(p) ) #define Pager_GetPos( x ) \ (int)SNDMSG( x, PGM_GETPOS, 0, 0L ) #define Pager_SetButtonSize( x, p ) \ (int)SNDMSG( x, PGM_SETBUTTONSIZE, 0, (LPARAM)(p) ) #define Pager_GetButtonSize( x ) \ (int)SNDMSG( x, PGM_GETBUTTONSIZE, 0, 0L ) #define Pager_GetButtonState( x, p ) \ (DWORD)SNDMSG( x, PGM_GETBUTTONSTATE, 0, (LPARAM)(p) ) #define Pager_GetDropTarget( x, p ) \ (void)SNDMSG( x, PGM_GETDROPTARGET, 0, (LPARAM)(p) ) #endif #if (_WIN32_WINNT >= 0x0501) #define Button_GetIdealSize( x, p ) \ (BOOL)SNDMSG( x, BCM_GETIDEALSIZE, 0, (LPARAM)(p) ) #define Button_SetImageList( x, p ) \ (BOOL)SNDMSG( x, BCM_SETIMAGELIST, 0, (LPARAM)(p) ) #define Button_GetImageList( x, p ) \ (BOOL)SNDMSG( x, BCM_GETIMAGELIST, 0, (LPARAM)(p) ) #define Button_SetTextMargin( x, p ) \ (BOOL)SNDMSG( x, BCM_SETTEXTMARGIN, 0, (LPARAM)(p) ) #define Button_GetTextMargin( x, p ) \ (BOOL)SNDMSG( x, BCM_GETTEXTMARGIN, 0, (LPARAM)(p) ) #endif #if (_WIN32_WINNT >= 0x0600) #define Button_SetDropDownState( x, p ) \ (BOOL)SNDMSG( x, BCM_SETDROPDOWNSTATE, (WPARAM)(p), 0L ) #define Button_SetSplitInfo( x, p ) \ (BOOL)SNDMSG( x, BCM_SETSPLITINFO, 0, (LPARAM)(p) ) #define Button_GetSplitInfo( x, p ) \ (BOOL)SNDMSG( x, BCM_GETSPLITINFO, 0, (LPARAM)(p) ) #define Button_SetNote( x, p ) \ (BOOL)SNDMSG( x, BCM_SETNOTE, 0, (LPARAM)(p) ) #define Button_GetNote( x, p1, p2 ) \ (BOOL)SNDMSG( x, BCM_GETNOTE, (WPARAM)(p2), (LPARAM)(p1) ) #define Button_GetNoteLength( x ) \ (LRESULT)SNDMSG( x, BCM_GETNOTELENGTH, 0, 0L ) #define Button_SetElevationRequiredState( x, p ) \ (LRESULT)SNDMSG( x, BCM_SETSHIELD, 0, (LPARAM)(p) ) #endif #if (_WIN32_WINNT >= 0x0501) #define Edit_SetCueBannerText( x, p ) \ (BOOL)SNDMSG( x, EM_SETCUEBANNER, 0, (LPARAM)(p) ) #define Edit_SetCueBannerTextFocused( x, p1, p2 ) \ (BOOL)SNDMSG( x, EM_SETCUEBANNER, (WPARAM)(p2), (LPARAM)(p1) ) #define Edit_GetCueBannerText( x, p1, p2 ) \ (BOOL)SNDMSG( x, EM_GETCUEBANNER, (WPARAM)(p1), (LPARAM)(p2) ) #define Edit_ShowBalloonTip( x, p ) \ (BOOL)SNDMSG( x, EM_SHOWBALLOONTIP, 0, (LPARAM)(p) ) #define Edit_HideBalloonTip( x ) \ (BOOL)SNDMSG( x, EM_HIDEBALLOONTIP, 0, 0L ) #endif #if (_WIN32_WINNT >= 0x0600) #define Edit_SetHilite( x, p1, p2 ) \ (void)SNDMSG( x, EM_SETHILITE, p1, p2 ) #define Edit_GetHilite( x ) \ (DWORD)SNDMSG( x, EM_GETHILITE, 0, 0L ) #endif #if (_WIN32_WINNT >= 0x0501) #define ComboBox_SetMinVisible( x, p ) \ (BOOL)SNDMSG( x, CB_SETMINVISIBLE, (WPARAM)(p), 0L ) #define ComboBox_GetMinVisible( x ) \ (int)SNDMSG( x, CB_GETMINVISIBLE, 0, 0L ) #define ComboBox_SetCueBannerText( x, p ) \ (BOOL)SNDMSG( x, CB_SETCUEBANNER, 0, (LPARAM)(p) ) #define ComboBox_GetCueBannerText( x, p1, p2 ) \ (BOOL)SNDMSG( x, CB_GETCUEBANNER, (WPARAM)(p1), (LPARAM)(p2) ) #endif #if (_WIN32_IE >= 0x0300) #define DSA_AppendItem( x, p ) DSA_InsertItem( x, DA_LAST, p ) #define DSA_GetItemCount( x ) (*(int *)(x)) #define DPA_GetPtrCount( x ) (*(int *)(x)) #define DPA_SetPtrCount( x, p ) (*(int *)(x) = (p)) #define DPA_FastDeleteLastPtr( x ) (--*(int *)(x)) #define DPA_GetPtrPtr( x ) (*((void ***)((BYTE *)(x) + sizeof( void * )))) #define DPA_FastGetPtr( x, p ) (DPA_GetPtrPtr( x )[p]) #define DPA_AppendPtr( x, p ) DPA_InsertPtr( x, DA_LAST, p ) #define DPA_SortedInsertPtr( x, p1, p2, p3, p4, p5, p6 ) \ DPA_InsertPtr( x, DPA_Search( x, p1, p2, p3, p4, (DPAS_SORTED | (p5)) ), p6 ) #endif /* Aliases */ #if (_WIN32_IE >= 0x0400) #define FlatSB_GetScrollPropPtr FlatSB_GetScrollProp #define FlatSB_SetScrollPropPtr FlatSB_SetScrollProp #endif /* Map generic function names to the appropriate ANSI or Unicode version. */ #ifdef UNICODE #define CreateStatusWindow CreateStatusWindowW #define DrawStatusText DrawStatusTextW #define ImageList_LoadImage ImageList_LoadImageW #else #define CreateStatusWindow CreateStatusWindowA #define DrawStatusText DrawStatusTextA #define ImageList_LoadImage ImageList_LoadImageA #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _INC_COMMCTRL */