Nikolay Sivov : comctl32/dpa: Implement DPA_GetSize().
Alexandre Julliard
julliard at winehq.org
Tue Sep 15 17:47:29 CDT 2009
Module: wine
Branch: master
Commit: 28998999d0add43d8dbc7e57b7366b02f3438c76
URL: http://source.winehq.org/git/wine.git/?a=commit;h=28998999d0add43d8dbc7e57b7366b02f3438c76
Author: Nikolay Sivov <bunglehead at 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);
More information about the wine-cvs
mailing list