Fixed some undocumented functions.
Changed algorithm in DPA_QuickSort().
Fixed heap creation/destruction and control [un]registration in
ComCtl32LibMain().
diff --git a/include/commctrl.h b/include/commctrl.h
index cf72b0c..aab34be 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -328,14 +328,14 @@
INT32,COLORREF,COLORREF,UINT32);
BOOL32 WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*);
HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST);
-BOOL32 WINAPI ImageList_EndDrag (VOID);
+BOOL32 WINAPI ImageList_EndDrag(VOID);
COLORREF WINAPI ImageList_GetBkColor(HIMAGELIST);
HIMAGELIST WINAPI ImageList_GetDragImage(POINT32*,POINT32*);
HICON32 WINAPI ImageList_GetIcon(HIMAGELIST,INT32,UINT32);
BOOL32 WINAPI ImageList_GetIconSize(HIMAGELIST,INT32*,INT32*);
INT32 WINAPI ImageList_GetImageCount(HIMAGELIST);
BOOL32 WINAPI ImageList_GetImageInfo(HIMAGELIST,INT32,IMAGEINFO*);
-BOOL32 WINAPI ImageList_GetImageRect (HIMAGELIST,INT32,LPRECT32);
+BOOL32 WINAPI ImageList_GetImageRect(HIMAGELIST,INT32,LPRECT32);
HIMAGELIST WINAPI ImageList_LoadImage32A(HINSTANCE32,LPCSTR,INT32,INT32,
COLORREF,UINT32,UINT32);
HIMAGELIST WINAPI ImageList_LoadImage32W(HINSTANCE32,LPCWSTR,INT32,INT32,
@@ -343,7 +343,7 @@
#define ImageList_LoadImage WINELIB_NAME_AW(ImageList_LoadImage)
HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32,INT32);
#ifdef __IStream_INTREFACE_DEFINED__
-HIMAGELIST WINAPI ImageList_Read (LPSTREAM32);
+HIMAGELIST WINAPI ImageList_Read(LPSTREAM32);
#endif
BOOL32 WINAPI ImageList_Remove(HIMAGELIST,INT32);
BOOL32 WINAPI ImageList_Replace(HIMAGELIST,INT32,HBITMAP32,HBITMAP32);
@@ -351,11 +351,11 @@
COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST,COLORREF);
BOOL32 WINAPI ImageList_SetDragCursorImage(HIMAGELIST,INT32,INT32,INT32);
-BOOL32 WINAPI ImageList_SetIconSize (HIMAGELIST,INT32,INT32);
-BOOL32 WINAPI ImageList_SetImageCount (HIMAGELIST,INT32);
+BOOL32 WINAPI ImageList_SetIconSize(HIMAGELIST,INT32,INT32);
+BOOL32 WINAPI ImageList_SetImageCount(HIMAGELIST,INT32);
BOOL32 WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT32,INT32);
#ifdef __IStream_INTREFACE_DEFINED__
-BOOL32 WINAPI ImageList_Write (HIMAGELIST, LPSTREAM32);
+BOOL32 WINAPI ImageList_Write(HIMAGELIST, LPSTREAM32);
#endif
#ifndef __WINE__
@@ -369,10 +369,10 @@
/* Header control */
-#define WC_HEADER16 "SysHeader"
-#define WC_HEADER32A "SysHeader32"
-#define WC_HEADER32W L"SysHeader32"
-#define WC_HEADER WINELIB_NAME_AW(WC_HEADER)
+#define WC_HEADER16 "SysHeader"
+#define WC_HEADER32A "SysHeader32"
+#define WC_HEADER32W L"SysHeader32"
+#define WC_HEADER WINELIB_NAME_AW(WC_HEADER)
#define HDS_HORZ 0x0000
#define HDS_BUTTONS 0x0002
@@ -2189,6 +2189,55 @@
(BOOL32)SendMessage32A(hwnd,ACM_PLAY,1,(LPARAM)MAKELONG(frame,frame))
+/**************************************************************************
+ * IP Address control
+ */
+
+#define WC_IPADDRESS32A "SysIPAddress32"
+#define WC_IPADDRESS32W L"SysIPAddress32"
+#define WC_IPADDRESS WINELIB_NAME_AW(WC_IPADDRESS)
+
+#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)
+
+#define IPN_FIELDCHANGED (IPN_FIRST-0)
+
+typedef struct tagNMIPADDRESS
+{
+ NMHDR hdr;
+ INT32 iField;
+ INT32 iValue;
+} NMIPADDRESS, *LPNMIPADDRESS;
+
+#define MAKEIPRANGE(low,high) \
+ ((LPARAM)(WORD)(((BYTE)(high)<<8)+(BYTE)(low)))
+#define MAKEIPADDRESS(b1,b2,b3,b4) \
+ ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
+
+#define FIRST_IPADDRESS(x) (((x)>>24)&0xff)
+#define SECOND_IPADDRESS(x) (((x)>>16)&0xff)
+#define THIRD_IPADDRESS(x) (((x)>>8)&0xff)
+#define FOURTH_IPADDRESS(x) ((x)&0xff)
+
+
+/**************************************************************************
+ * Native Font control
+ */
+
+#define WC_NATIVEFONTCTL32A "NativeFontCtl"
+#define WC_NATIVEFONTCTL32W L"NativeFontCtl"
+#define WC_NATIVEFONTCTL WINELIB_NAME_AW(WC_NATIVEFONTCTL)
+
+#define NFS_EDIT 0x0001
+#define NFS_STATIC 0x0002
+#define NFS_LISTCOMBO 0x0004
+#define NFS_BUTTON 0x0008
+#define NFS_ALL 0x0010
+
/**************************************************************************
* UNDOCUMENTED functions
@@ -2196,16 +2245,16 @@
/* local heap memory functions */
-LPVOID WINAPI COMCTL32_Alloc (DWORD dwSize);
-LPVOID WINAPI COMCTL32_ReAlloc (LPVOID lpSrc, DWORD dwSize);
-BOOL32 WINAPI COMCTL32_Free (LPVOID lpMem);
-DWORD WINAPI COMCTL32_GetSize (LPVOID lpMem);
+LPVOID WINAPI COMCTL32_Alloc (DWORD);
+LPVOID WINAPI COMCTL32_ReAlloc (LPVOID, DWORD);
+BOOL32 WINAPI COMCTL32_Free (LPVOID);
+DWORD WINAPI COMCTL32_GetSize (LPVOID);
-INT32 WINAPI Str_GetPtr32A (LPCSTR lpSrc, LPSTR lpDest, INT32 nMaxLen);
-BOOL32 WINAPI Str_SetPtr32A (LPSTR *lppDest, LPCSTR lpSrc);
-INT32 WINAPI Str_GetPtr32W (LPCWSTR lpSrc, LPWSTR lpDest, INT32 nMaxLen);
-BOOL32 WINAPI Str_SetPtr32W (LPWSTR *lppDest, LPCWSTR lpSrc);
+INT32 WINAPI Str_GetPtr32A (LPCSTR, LPSTR, INT32);
+BOOL32 WINAPI Str_SetPtr32A (LPSTR *, LPCSTR);
+INT32 WINAPI Str_GetPtr32W (LPCWSTR, LPWSTR, INT32);
+BOOL32 WINAPI Str_SetPtr32W (LPWSTR *, LPCWSTR);
#define Str_GetPtr WINELIB_NAME_AW(Str_GetPtr)
#define Str_SetPtr WINELIB_NAME_AW(Str_SetPtr)
@@ -2221,14 +2270,14 @@
INT32 nGrow;
} DSA, *HDSA;
-HDSA WINAPI DSA_Create (INT32 nSize, INT32 nGrow);
-BOOL32 WINAPI DSA_DeleteAllItems (const HDSA hdsa);
-INT32 WINAPI DSA_DeleteItem (const HDSA hdsa, INT32 nIndex);
-BOOL32 WINAPI DSA_Destroy (const HDSA hdsa);
-BOOL32 WINAPI DSA_GetItem (const HDSA hdsa, INT32 nIndex, LPVOID pDest);
-LPVOID WINAPI DSA_GetItemPtr (const HDSA hdsa, INT32 nIndex);
-INT32 WINAPI DSA_InsertItem (const HDSA hdsa, INT32 nIndex, LPVOID pSrc);
-BOOL32 WINAPI DSA_SetItem (const HDSA hdsa, INT32 nIndex, LPVOID pSrc);
+HDSA WINAPI DSA_Create (INT32, INT32);
+BOOL32 WINAPI DSA_DeleteAllItems (const HDSA);
+INT32 WINAPI DSA_DeleteItem (const HDSA, INT32);
+BOOL32 WINAPI DSA_Destroy (const HDSA);
+BOOL32 WINAPI DSA_GetItem (const HDSA, INT32, LPVOID);
+LPVOID WINAPI DSA_GetItemPtr (const HDSA, INT32);
+INT32 WINAPI DSA_InsertItem (const HDSA, INT32, LPVOID);
+BOOL32 WINAPI DSA_SetItem (const HDSA, INT32, LPVOID);
/* Dynamic Pointer Array */
@@ -2242,32 +2291,38 @@
INT32 nMaxCount;
} DPA, *HDPA;
-HDPA WINAPI DPA_Create (INT32 nGrow);
-HDPA WINAPI DPA_CreateEx (INT32 nGrow, HANDLE32 hHeap);
-BOOL32 WINAPI DPA_Destroy (const HDPA hdpa);
-HDPA WINAPI DPA_Clone (const HDPA hdpa, const HDPA hdpaNew);
-LPVOID WINAPI DPA_GetPtr (const HDPA hdpa, INT32 i);
-INT32 WINAPI DPA_GetPtrIndex (const HDPA hdpa, LPVOID p);
-BOOL32 WINAPI DPA_Grow (const HDPA pdpa, INT32 cp);
-BOOL32 WINAPI DPA_SetPtr (const HDPA hdpa, INT32 i, LPVOID p);
-INT32 WINAPI DPA_InsertPtr (const HDPA hdpa, INT32 i, LPVOID p);
-LPVOID WINAPI DPA_DeletePtr (const HDPA hdpa, INT32 i);
-BOOL32 WINAPI DPA_DeleteAllPtrs (const HDPA hdpa);
+HDPA WINAPI DPA_Create (INT32);
+HDPA WINAPI DPA_CreateEx (INT32, HANDLE32);
+BOOL32 WINAPI DPA_Destroy (const HDPA);
+HDPA WINAPI DPA_Clone (const HDPA, const HDPA);
+LPVOID WINAPI DPA_GetPtr (const HDPA, INT32);
+INT32 WINAPI DPA_GetPtrIndex (const HDPA, LPVOID);
+BOOL32 WINAPI DPA_Grow (const HDPA, INT32);
+BOOL32 WINAPI DPA_SetPtr (const HDPA, INT32, LPVOID);
+INT32 WINAPI DPA_InsertPtr (const HDPA, INT32, LPVOID);
+LPVOID WINAPI DPA_DeletePtr (const HDPA, INT32);
+BOOL32 WINAPI DPA_DeleteAllPtrs (const HDPA);
-typedef INT32 (CALLBACK *PFNDPACOMPARE)(LPVOID p1, LPVOID p2, LPARAM lParam);
-BOOL32 WINAPI DPA_Sort (const HDPA hdpa, PFNDPACOMPARE pfnCompare, LPARAM lParam);
+typedef INT32 (CALLBACK *PFNDPACOMPARE)(LPVOID, LPVOID, LPARAM);
+BOOL32 WINAPI DPA_Sort (const HDPA, PFNDPACOMPARE, LPARAM);
#define DPAS_SORTED 0x0001
#define DPAS_INSERTBEFORE 0x0002
#define DPAS_INSERTAFTER 0x0004
-INT32 WINAPI DPA_Search (const HDPA hdpa, LPVOID pFind, INT32 nStart,
- PFNDPACOMPARE pfnCompare,
- LPARAM lParam, UINT32 uOptions);
+INT32 WINAPI DPA_Search (const HDPA, LPVOID, INT32, PFNDPACOMPARE, LPARAM, UINT32);
#define DPA_GetPtrCount(hdpa) (*(INT32*)(hdpa))
#define DPA_GetPtrPtr(hdpa) (*((LPVOID**)((BYTE*)(hdpa)+sizeof(INT32))))
#define DPA_FastGetPtr(hdpa,i) (DPA_GetPtrPtr(hdpa)[i])
+/* notification helper functions */
+
+LRESULT WINAPI COMCTL32_SendNotify (HWND32, HWND32, UINT32, LPNMHDR);
+
+/* type and functionality of last parameter is still unknown */
+LRESULT WINAPI COMCTL32_SendNotifyEx (HWND32, HWND32, UINT32, LPNMHDR, DWORD);
+
+
#endif /* __WINE_COMMCTRL_H */