Commit f5cb3dde authored by Alexandre Julliard's avatar Alexandre Julliard

Moved undocumented functions out of the exported commctrl.h.

parent 209ce0be
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include "commctrl.h" #include "commctrl.h"
#include "vfw.h" #include "vfw.h"
#include "mmsystem.h" #include "mmsystem.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(animate); WINE_DEFAULT_DEBUG_CHANNEL(animate);
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/unicode.h" #include "wine/unicode.h"
......
...@@ -155,4 +155,28 @@ typedef struct ...@@ -155,4 +155,28 @@ typedef struct
WNDPROC origproc; WNDPROC origproc;
} SUBCLASS_INFO, *LPSUBCLASS_INFO; } SUBCLASS_INFO, *LPSUBCLASS_INFO;
/* private heap memory functions */
LPVOID WINAPI COMCTL32_Alloc (DWORD);
LPVOID WINAPI COMCTL32_ReAlloc (LPVOID, DWORD);
BOOL WINAPI COMCTL32_Free (LPVOID);
DWORD WINAPI COMCTL32_GetSize (LPVOID);
/* undocumented functions */
INT WINAPI Str_GetPtrA (LPCSTR, LPSTR, INT);
INT WINAPI Str_GetPtrW (LPCWSTR, LPWSTR, INT);
INT WINAPI DPA_GetPtrIndex (const HDPA, LPVOID);
BOOL WINAPI DPA_Grow (const HDPA, INT);
#define DPAM_NOSORT 0x0001
#define DPAM_INSERT 0x0004
#define DPAM_DELETE 0x0008
typedef PVOID (CALLBACK *PFNDPAMERGE)(DWORD,PVOID,PVOID,LPARAM);
BOOL WINAPI DPA_Merge (const HDPA, const HDPA, DWORD, PFNDPACOMPARE, PFNDPAMERGE, LPARAM);
#define DPA_GetPtrCount(hdpa) (*(INT*)(hdpa))
#endif /* __WINE_COMCTL32_H */ #endif /* __WINE_COMCTL32_H */
...@@ -61,6 +61,24 @@ WINE_DEFAULT_DEBUG_CHANNEL(commctrl); ...@@ -61,6 +61,24 @@ WINE_DEFAULT_DEBUG_CHANNEL(commctrl);
extern HANDLE COMCTL32_hHeap; /* handle to the private heap */ extern HANDLE COMCTL32_hHeap; /* handle to the private heap */
struct _DSA
{
INT nItemCount;
LPVOID pData;
INT nMaxCount;
INT nItemSize;
INT nGrow;
};
struct _DPA
{
INT nItemCount;
LPVOID *ptrs;
HANDLE hHeap;
INT nGrow;
INT nMaxCount;
};
typedef struct _STREAMDATA typedef struct _STREAMDATA
{ {
DWORD dwSize; DWORD dwSize;
...@@ -224,10 +242,10 @@ DPA_Merge (const HDPA hdpa1, const HDPA hdpa2, DWORD dwFlags, ...@@ -224,10 +242,10 @@ DPA_Merge (const HDPA hdpa1, const HDPA hdpa2, DWORD dwFlags,
TRACE("%p %p %08lx %p %p %08lx)\n", TRACE("%p %p %08lx %p %p %08lx)\n",
hdpa1, hdpa2, dwFlags, pfnCompare, pfnMerge, lParam); hdpa1, hdpa2, dwFlags, pfnCompare, pfnMerge, lParam);
if (IsBadWritePtr (hdpa1, sizeof(DPA))) if (IsBadWritePtr (hdpa1, sizeof(*hdpa1)))
return FALSE; return FALSE;
if (IsBadWritePtr (hdpa2, sizeof(DPA))) if (IsBadWritePtr (hdpa2, sizeof(*hdpa2)))
return FALSE; return FALSE;
if (IsBadCodePtr ((FARPROC)pfnCompare)) if (IsBadCodePtr ((FARPROC)pfnCompare))
...@@ -1330,7 +1348,7 @@ DSA_Create (INT nSize, INT nGrow) ...@@ -1330,7 +1348,7 @@ DSA_Create (INT nSize, INT nGrow)
TRACE("(size=%d grow=%d)\n", nSize, nGrow); TRACE("(size=%d grow=%d)\n", nSize, nGrow);
hdsa = (HDSA)COMCTL32_Alloc (sizeof(DSA)); hdsa = (HDSA)COMCTL32_Alloc (sizeof(*hdsa));
if (hdsa) if (hdsa)
{ {
hdsa->nItemCount = 0; hdsa->nItemCount = 0;
...@@ -1663,7 +1681,7 @@ DPA_Create (INT nGrow) ...@@ -1663,7 +1681,7 @@ DPA_Create (INT nGrow)
TRACE("(%d)\n", nGrow); TRACE("(%d)\n", nGrow);
hdpa = (HDPA)COMCTL32_Alloc (sizeof(DPA)); hdpa = (HDPA)COMCTL32_Alloc (sizeof(*hdpa));
if (hdpa) { if (hdpa) {
hdpa->nGrow = max(8, nGrow); hdpa->nGrow = max(8, nGrow);
hdpa->hHeap = COMCTL32_hHeap; hdpa->hHeap = COMCTL32_hHeap;
...@@ -1766,7 +1784,7 @@ DPA_Clone (const HDPA hdpa, const HDPA hdpaNew) ...@@ -1766,7 +1784,7 @@ DPA_Clone (const HDPA hdpa, const HDPA hdpaNew)
if (!hdpaNew) { if (!hdpaNew) {
/* create a new DPA */ /* create a new DPA */
hdpaTemp = (HDPA)HeapAlloc (hdpa->hHeap, HEAP_ZERO_MEMORY, hdpaTemp = (HDPA)HeapAlloc (hdpa->hHeap, HEAP_ZERO_MEMORY,
sizeof(DPA)); sizeof(*hdpaTemp));
hdpaTemp->hHeap = hdpa->hHeap; hdpaTemp->hHeap = hdpa->hHeap;
hdpaTemp->nGrow = hdpa->nGrow; hdpaTemp->nGrow = hdpa->nGrow;
} }
...@@ -2237,9 +2255,9 @@ DPA_CreateEx (INT nGrow, HANDLE hHeap) ...@@ -2237,9 +2255,9 @@ DPA_CreateEx (INT nGrow, HANDLE hHeap)
TRACE("(%d %p)\n", nGrow, hHeap); TRACE("(%d %p)\n", nGrow, hHeap);
if (hHeap) if (hHeap)
hdpa = (HDPA)HeapAlloc (hHeap, HEAP_ZERO_MEMORY, sizeof(DPA)); hdpa = (HDPA)HeapAlloc (hHeap, HEAP_ZERO_MEMORY, sizeof(*hdpa));
else else
hdpa = (HDPA)COMCTL32_Alloc (sizeof(DPA)); hdpa = (HDPA)COMCTL32_Alloc (sizeof(*hdpa));
if (hdpa) { if (hdpa) {
hdpa->nGrow = min(8, nGrow); hdpa->nGrow = min(8, nGrow);
...@@ -2502,11 +2520,11 @@ COMCTL32_StrToIntW (LPWSTR lpString) ...@@ -2502,11 +2520,11 @@ COMCTL32_StrToIntW (LPWSTR lpString)
*/ */
VOID WINAPI VOID WINAPI
DPA_EnumCallback (const HDPA hdpa, DPAENUMPROC enumProc, LPARAM lParam) DPA_EnumCallback (HDPA hdpa, PFNDPAENUMCALLBACK enumProc, LPVOID lParam)
{ {
INT i; INT i;
TRACE("(%p %p %08lx)\n", hdpa, enumProc, lParam); TRACE("(%p %p %p)\n", hdpa, enumProc, lParam);
if (!hdpa) if (!hdpa)
return; return;
...@@ -2533,18 +2551,16 @@ DPA_EnumCallback (const HDPA hdpa, DPAENUMPROC enumProc, LPARAM lParam) ...@@ -2533,18 +2551,16 @@ DPA_EnumCallback (const HDPA hdpa, DPAENUMPROC enumProc, LPARAM lParam)
* lParam [I] * lParam [I]
* *
* RETURNS * RETURNS
* Success: TRUE * none
* Failure: FALSE
*/ */
BOOL WINAPI void WINAPI
DPA_DestroyCallback (const HDPA hdpa, DPAENUMPROC enumProc, LPARAM lParam) DPA_DestroyCallback (HDPA hdpa, PFNDPAENUMCALLBACK enumProc, LPVOID lParam)
{ {
TRACE("(%p %p %08lx)\n", hdpa, enumProc, lParam); TRACE("(%p %p %p)\n", hdpa, enumProc, lParam);
DPA_EnumCallback (hdpa, enumProc, lParam); DPA_EnumCallback (hdpa, enumProc, lParam);
DPA_Destroy (hdpa);
return DPA_Destroy (hdpa);
} }
...@@ -2563,11 +2579,11 @@ DPA_DestroyCallback (const HDPA hdpa, DPAENUMPROC enumProc, LPARAM lParam) ...@@ -2563,11 +2579,11 @@ DPA_DestroyCallback (const HDPA hdpa, DPAENUMPROC enumProc, LPARAM lParam)
*/ */
VOID WINAPI VOID WINAPI
DSA_EnumCallback (const HDSA hdsa, DSAENUMPROC enumProc, LPARAM lParam) DSA_EnumCallback (HDSA hdsa, PFNDSAENUMCALLBACK enumProc, LPVOID lParam)
{ {
INT i; INT i;
TRACE("(%p %p %08lx)\n", hdsa, enumProc, lParam); TRACE("(%p %p %p)\n", hdsa, enumProc, lParam);
if (!hdsa) if (!hdsa)
return; return;
...@@ -2595,18 +2611,16 @@ DSA_EnumCallback (const HDSA hdsa, DSAENUMPROC enumProc, LPARAM lParam) ...@@ -2595,18 +2611,16 @@ DSA_EnumCallback (const HDSA hdsa, DSAENUMPROC enumProc, LPARAM lParam)
* lParam [I] * lParam [I]
* *
* RETURNS * RETURNS
* Success: TRUE * none
* Failure: FALSE
*/ */
BOOL WINAPI void WINAPI
DSA_DestroyCallback (const HDSA hdsa, DSAENUMPROC enumProc, LPARAM lParam) DSA_DestroyCallback (HDSA hdsa, PFNDSAENUMCALLBACK enumProc, LPVOID lParam)
{ {
TRACE("(%p %p %08lx)\n", hdsa, enumProc, lParam); TRACE("(%p %p %p)\n", hdsa, enumProc, lParam);
DSA_EnumCallback (hdsa, enumProc, lParam); DSA_EnumCallback (hdsa, enumProc, lParam);
DSA_Destroy (hdsa);
return DSA_Destroy (hdsa);
} }
/************************************************************************** /**************************************************************************
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(datetime); WINE_DEFAULT_DEBUG_CHANNEL(datetime);
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
#include "wingdi.h" #include "wingdi.h"
#include "winuser.h" #include "winuser.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "imagelist.h" #include "imagelist.h"
#include "wine/debug.h" #include "wine/debug.h"
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/unicode.h" #include "wine/unicode.h"
#include "wine/debug.h" #include "wine/debug.h"
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(nativefont); WINE_DEFAULT_DEBUG_CHANNEL(nativefont);
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(pager); WINE_DEFAULT_DEBUG_CHANNEL(pager);
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(progress); WINE_DEFAULT_DEBUG_CHANNEL(progress);
......
...@@ -150,6 +150,7 @@ ...@@ -150,6 +150,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(rebar); WINE_DEFAULT_DEBUG_CHANNEL(rebar);
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(statusbar); WINE_DEFAULT_DEBUG_CHANNEL(statusbar);
......
...@@ -2607,7 +2607,7 @@ TOOLBAR_AddStringW (HWND hwnd, WPARAM wParam, LPARAM lParam) ...@@ -2607,7 +2607,7 @@ TOOLBAR_AddStringW (HWND hwnd, WPARAM wParam, LPARAM lParam)
COMCTL32_Free(oldStrings); COMCTL32_Free(oldStrings);
} }
np=COMCTL32_StrChrW (p, L'|'); np=strchrW (p, '|');
if (np!=NULL) { if (np!=NULL) {
len = np - p; len = np - p;
np++; np++;
......
...@@ -81,6 +81,7 @@ ...@@ -81,6 +81,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(tooltips); WINE_DEFAULT_DEBUG_CHANNEL(tooltips);
......
...@@ -1815,7 +1815,7 @@ TREEVIEW_GetFont(TREEVIEW_INFO *infoPtr) ...@@ -1815,7 +1815,7 @@ TREEVIEW_GetFont(TREEVIEW_INFO *infoPtr)
static INT CALLBACK static INT CALLBACK
TREEVIEW_ResetTextWidth(LPVOID pItem, DWORD unused) TREEVIEW_ResetTextWidth(LPVOID pItem, LPVOID unused)
{ {
(void)unused; (void)unused;
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h"
#include "wine/unicode.h" #include "wine/unicode.h"
#include "wine/debug.h" #include "wine/debug.h"
......
...@@ -267,24 +267,19 @@ BOOL SIC_Initialize(void) ...@@ -267,24 +267,19 @@ BOOL SIC_Initialize(void)
* *
* frees the cache * frees the cache
*/ */
void SIC_Destroy(void) static INT CALLBACK sic_free( LPVOID ptr, LPVOID lparam )
{ {
LPSIC_ENTRY lpsice; SHFree(ptr);
int i; return TRUE;
}
void SIC_Destroy(void)
{
TRACE("\n"); TRACE("\n");
EnterCriticalSection(&SHELL32_SicCS); EnterCriticalSection(&SHELL32_SicCS);
if (sic_hdpa && NULL != DPA_GetPtr (sic_hdpa, 0)) if (sic_hdpa) DPA_DestroyCallback(sic_hdpa, sic_free, NULL );
{
for (i=0; i < DPA_GetPtrCount(sic_hdpa); ++i)
{
lpsice = DPA_GetPtr(sic_hdpa, i);
SHFree(lpsice);
}
DPA_Destroy(sic_hdpa);
}
sic_hdpa = NULL; sic_hdpa = NULL;
......
...@@ -959,15 +959,6 @@ HRESULT WINAPI SHELL32_DllGetVersion (DLLVERSIONINFO *pdvi) ...@@ -959,15 +959,6 @@ HRESULT WINAPI SHELL32_DllGetVersion (DLLVERSIONINFO *pdvi)
*/ */
void (WINAPI *pDLLInitComctl)(LPVOID); void (WINAPI *pDLLInitComctl)(LPVOID);
LPVOID (WINAPI *pCOMCTL32_Alloc) (INT);
BOOL (WINAPI *pCOMCTL32_Free) (LPVOID);
HANDLE (WINAPI *pCreateMRUListA) (LPVOID lpcml);
DWORD (WINAPI *pFreeMRUListA) (HANDLE hMRUList);
INT (WINAPI *pAddMRUData) (HANDLE hList, LPCVOID lpData, DWORD cbData);
INT (WINAPI *pFindMRUData) (HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum);
INT (WINAPI *pEnumMRUListA) (HANDLE hList, INT nItemPos, LPVOID lpBuffer, DWORD nBufferSize);
static HINSTANCE hComctl32; static HINSTANCE hComctl32;
HINSTANCE shell32_hInstance = 0; HINSTANCE shell32_hInstance = 0;
......
...@@ -563,12 +563,21 @@ static BOOLEAN LV_RenameItem(IShellViewImpl * This, LPCITEMIDLIST pidlOld, LPCIT ...@@ -563,12 +563,21 @@ static BOOLEAN LV_RenameItem(IShellViewImpl * This, LPCITEMIDLIST pidlOld, LPCIT
* - fills the list into the view * - fills the list into the view
*/ */
static INT CALLBACK fill_list( LPVOID ptr, LPVOID arg )
{
LPITEMIDLIST pidl = ptr;
IShellViewImpl *This = arg;
/* in a commdlg This works as a filemask*/
if ( IncludeObject(This, pidl)==S_OK ) LV_AddItem(This, pidl);
SHFree(pidl);
return TRUE;
}
static HRESULT ShellView_FillList(IShellViewImpl * This) static HRESULT ShellView_FillList(IShellViewImpl * This)
{ {
LPENUMIDLIST pEnumIDList; LPENUMIDLIST pEnumIDList;
LPITEMIDLIST pidl; LPITEMIDLIST pidl;
DWORD dwFetched; DWORD dwFetched;
INT i;
HRESULT hRes; HRESULT hRes;
HDPA hdpa; HDPA hdpa;
...@@ -605,21 +614,12 @@ static HRESULT ShellView_FillList(IShellViewImpl * This) ...@@ -605,21 +614,12 @@ static HRESULT ShellView_FillList(IShellViewImpl * This)
/*turn the listview's redrawing off*/ /*turn the listview's redrawing off*/
SendMessageA(This->hWndList, WM_SETREDRAW, FALSE, 0); SendMessageA(This->hWndList, WM_SETREDRAW, FALSE, 0);
for (i=0; i < DPA_GetPtrCount(hdpa); ++i) /* DPA_GetPtrCount is a macro*/ DPA_DestroyCallback( hdpa, fill_list, This );
{
pidl = (LPITEMIDLIST)DPA_GetPtr(hdpa, i);
/* in a commdlg This works as a filemask*/
if ( IncludeObject(This, pidl)==S_OK )
LV_AddItem(This, pidl);
SHFree(pidl);
}
/*turn the listview's redrawing back on and force it to draw*/ /*turn the listview's redrawing back on and force it to draw*/
SendMessageA(This->hWndList, WM_SETREDRAW, TRUE, 0); SendMessageA(This->hWndList, WM_SETREDRAW, TRUE, 0);
IEnumIDList_Release(pEnumIDList); /* destroy the list*/ IEnumIDList_Release(pEnumIDList); /* destroy the list*/
DPA_Destroy(hdpa);
return S_OK; return S_OK;
} }
......
...@@ -4378,112 +4378,41 @@ DECL_WINELIB_TYPE_AW(LPNMDATETIMEFORMATQUERY) ...@@ -4378,112 +4378,41 @@ DECL_WINELIB_TYPE_AW(LPNMDATETIMEFORMATQUERY)
SNDMSGA (hdp, DTM_GETMCFONT, 0, 0) SNDMSGA (hdp, DTM_GETMCFONT, 0, 0)
struct _DSA;
typedef struct _DSA *HDSA;
typedef INT (CALLBACK *PFNDSAENUMCALLBACK)(LPVOID, LPVOID);
HDSA WINAPI DSA_Create(INT, INT);
BOOL WINAPI DSA_Destroy(HDSA);
/************************************************************************** void WINAPI DSA_DestroyCallback(HDSA, PFNDSAENUMCALLBACK, LPVOID);
* UNDOCUMENTED functions LPVOID WINAPI DSA_GetItemPtr(HDSA, INT);
*/ INT WINAPI DSA_InsertItem(HDSA, INT, LPVOID);
/* private heap memory functions */
LPVOID WINAPI COMCTL32_Alloc (DWORD);
LPVOID WINAPI COMCTL32_ReAlloc (LPVOID, DWORD);
BOOL WINAPI COMCTL32_Free (LPVOID);
DWORD WINAPI COMCTL32_GetSize (LPVOID);
LPWSTR WINAPI COMCTL32_StrChrW (LPCWSTR, WORD);
INT WINAPI Str_GetPtrA (LPCSTR, LPSTR, INT);
BOOL WINAPI Str_SetPtrA (LPSTR *, LPCSTR);
INT WINAPI Str_GetPtrW (LPCWSTR, LPWSTR, INT);
BOOL WINAPI Str_SetPtrW (LPWSTR *, LPCWSTR);
#define Str_GetPtr WINELIB_NAME_AW(Str_GetPtr)
#define Str_SetPtr WINELIB_NAME_AW(Str_SetPtr)
/* Dynamic Storage Array */
typedef struct _DSA
{
INT nItemCount;
LPVOID pData;
INT nMaxCount;
INT nItemSize;
INT nGrow;
} DSA, *HDSA;
HDSA WINAPI DSA_Create (INT, INT);
BOOL WINAPI DSA_DeleteAllItems (const HDSA);
INT WINAPI DSA_DeleteItem (const HDSA, INT);
BOOL WINAPI DSA_Destroy (const HDSA);
BOOL WINAPI DSA_GetItem (const HDSA, INT, LPVOID);
LPVOID WINAPI DSA_GetItemPtr (const HDSA, INT);
INT WINAPI DSA_InsertItem (const HDSA, INT, LPVOID);
BOOL WINAPI DSA_SetItem (const HDSA, INT, LPVOID);
typedef INT (CALLBACK *DSAENUMPROC)(LPVOID, DWORD);
VOID WINAPI DSA_EnumCallback (const HDSA, DSAENUMPROC, LPARAM);
BOOL WINAPI DSA_DestroyCallback (const HDSA, DSAENUMPROC, LPARAM);
/* Dynamic Pointer Array */
typedef struct _DPA
{
INT nItemCount;
LPVOID *ptrs;
HANDLE hHeap;
INT nGrow;
INT nMaxCount;
} DPA, *HDPA;
HDPA WINAPI DPA_Create (INT);
HDPA WINAPI DPA_CreateEx (INT, HANDLE);
BOOL WINAPI DPA_Destroy (const HDPA);
HDPA WINAPI DPA_Clone (const HDPA, const HDPA);
LPVOID WINAPI DPA_GetPtr (const HDPA, INT);
INT WINAPI DPA_GetPtrIndex (const HDPA, LPVOID);
BOOL WINAPI DPA_Grow (const HDPA, INT);
BOOL WINAPI DPA_SetPtr (const HDPA, INT, LPVOID);
INT WINAPI DPA_InsertPtr (const HDPA, INT, LPVOID);
LPVOID WINAPI DPA_DeletePtr (const HDPA, INT);
BOOL WINAPI DPA_DeleteAllPtrs (const HDPA);
typedef INT (CALLBACK *PFNDPACOMPARE)(LPVOID, LPVOID, LPARAM);
BOOL WINAPI DPA_Sort (const HDPA, PFNDPACOMPARE, LPARAM);
#define DPAS_SORTED 0x0001 #define DPAS_SORTED 0x0001
#define DPAS_INSERTBEFORE 0x0002 #define DPAS_INSERTBEFORE 0x0002
#define DPAS_INSERTAFTER 0x0004 #define DPAS_INSERTAFTER 0x0004
INT WINAPI DPA_Search (const HDPA, LPVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
#define DPAM_NOSORT 0x0001
#define DPAM_INSERT 0x0004
#define DPAM_DELETE 0x0008
typedef PVOID (CALLBACK *PFNDPAMERGE)(DWORD,PVOID,PVOID,LPARAM); struct _DPA;
BOOL WINAPI DPA_Merge (const HDPA, const HDPA, DWORD, PFNDPACOMPARE, PFNDPAMERGE, LPARAM); typedef struct _DPA *HDPA;
typedef INT (CALLBACK *DPAENUMPROC)(LPVOID, DWORD); typedef INT (CALLBACK *PFNDPAENUMCALLBACK)(LPVOID, LPVOID);
VOID WINAPI DPA_EnumCallback (const HDPA, DPAENUMPROC, LPARAM); typedef INT (CALLBACK *PFNDPACOMPARE)(LPVOID, LPVOID, LPARAM);
BOOL WINAPI DPA_DestroyCallback (const HDPA, DPAENUMPROC, LPARAM);
#define DPA_GetPtrCount(hdpa) (*(INT*)(hdpa))
#define DPA_GetPtrPtr(hdpa) (*((LPVOID**)((BYTE*)(hdpa)+sizeof(INT))))
#define DPA_FastGetPtr(hdpa,i) (DPA_GetPtrPtr(hdpa)[i])
/* notification helper functions */
LRESULT WINAPI COMCTL32_SendNotify (HWND, HWND, UINT, LPNMHDR); HDPA WINAPI DPA_Create(INT);
BOOL WINAPI DPA_Destroy(HDPA);
LPVOID WINAPI DPA_DeletePtr(HDPA, INT);
BOOL WINAPI DPA_DeleteAllPtrs(HDPA);
BOOL WINAPI DPA_SetPtr(HDPA, INT, LPVOID);
LPVOID WINAPI DPA_GetPtr(HDPA, INT);
INT WINAPI DPA_InsertPtr(HDPA, INT, LPVOID);
BOOL WINAPI DPA_Sort(HDPA, PFNDPACOMPARE, LPARAM);
void WINAPI DPA_EnumCallback(HDPA, PFNDPAENUMCALLBACK, LPVOID);
void WINAPI DPA_DestroyCallback(HDPA, PFNDPAENUMCALLBACK, LPVOID);
INT WINAPI DPA_Search(HDPA, LPVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
/* type and functionality of last parameter is still unknown */ BOOL WINAPI Str_SetPtrW (LPWSTR *, LPCWSTR);
LRESULT WINAPI COMCTL32_SendNotifyEx (HWND, HWND, UINT, LPNMHDR, DWORD);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment