Module: wine Branch: master Commit: 28998999d0add43d8dbc7e57b7366b02f3438c76 URL: http://source.winehq.org/git/wine.git/?a=commit;h=28998999d0add43d8dbc7e57b7...
Author: Nikolay Sivov bunglehead@gmail.com Date: Sun Sep 13 03:13:42 2009 +0400
comctl32/dpa: Implement DPA_GetSize().
---
dlls/comctl32/comctl32.spec | 1 + dlls/comctl32/dpa.c | 24 ++++++++++++++++++++++-- include/commctrl.h | 1 + 3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/comctl32.spec b/dlls/comctl32/comctl32.spec index e852916..4249d56 100644 --- a/dlls/comctl32/comctl32.spec +++ b/dlls/comctl32/comctl32.spec @@ -125,6 +125,7 @@ @ stdcall DestroyPropertySheetPage(long) @ stdcall -private DllGetVersion(ptr) @ stdcall -private DllInstall(long wstr) +@ stdcall DPA_GetSize(ptr) @ stdcall DrawShadowText(long wstr long ptr long long long long long) @ stdcall DrawStatusText(long ptr ptr long) DrawStatusTextA @ stdcall DrawStatusTextW(long ptr wstr long) diff --git a/dlls/comctl32/dpa.c b/dlls/comctl32/dpa.c index 722e2fa..e3c03c8 100644 --- a/dlls/comctl32/dpa.c +++ b/dlls/comctl32/dpa.c @@ -45,14 +45,14 @@
WINE_DEFAULT_DEBUG_CHANNEL(dpa);
-struct _DPA +typedef struct _DPA { INT nItemCount; LPVOID *ptrs; HANDLE hHeap; INT nGrow; INT nMaxCount; -}; +} DPA;
typedef struct _STREAMDATA { @@ -997,3 +997,23 @@ void WINAPI DPA_DestroyCallback (HDPA hdpa, PFNDPAENUMCALLBACK enumProc, DPA_EnumCallback (hdpa, enumProc, lParam); DPA_Destroy (hdpa); } + +/************************************************************************** + * DPA_GetSize [COMCTL32.@] + * + * Returns all array allocated memory size + * + * PARAMS + * hdpa [I] handle to the dynamic pointer array + * + * RETURNS + * Size in bytes + */ +ULONGLONG WINAPI DPA_GetSize(HDPA hdpa) +{ + TRACE("(%p)\n", hdpa); + + if (!hdpa) return 0; + + return sizeof(DPA) + hdpa->nMaxCount*sizeof(PVOID); +} diff --git a/include/commctrl.h b/include/commctrl.h index bda13de..ae417c0 100644 --- a/include/commctrl.h +++ b/include/commctrl.h @@ -5003,6 +5003,7 @@ BOOL WINAPI DPA_DeleteAllPtrs(HDPA); BOOL WINAPI DPA_SetPtr(HDPA, INT, LPVOID); LPVOID WINAPI DPA_GetPtr(HDPA, INT); INT WINAPI DPA_GetPtrIndex(HDPA, LPCVOID); +ULONGLONG WINAPI DPA_GetSize(HDPA); BOOL WINAPI DPA_Grow(HDPA, INT); INT WINAPI DPA_InsertPtr(HDPA, INT, LPVOID); BOOL WINAPI DPA_Sort(HDPA, PFNDPACOMPARE, LPARAM);