[3/3] include: Move some definitions to public header, use PSDK names
Nikolay Sivov
bunglehead at gmail.com
Thu Sep 10 14:52:55 CDT 2009
This patch adds some definitions introduced in PSDK 6.1 (vista).
Changelog:
- Move some definitions to public header, use PSDK names.
>From e58eda588ee1df368a0f6543872418fd14234754 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Thu, 10 Sep 2009 23:45:56 +0400
Subject: Move some definitions to public header, use PSDK names.
---
dlls/comctl32/dpa.c | 45 ++++++++++++++++++---------------------------
dlls/comctl32/tests/dpa.c | 24 ++++++++----------------
include/commctrl.h | 13 +++++++++++++
3 files changed, 39 insertions(+), 43 deletions(-)
diff --git a/dlls/comctl32/dpa.c b/dlls/comctl32/dpa.c
index def2e95..f9c8afc 100644
--- a/dlls/comctl32/dpa.c
+++ b/dlls/comctl32/dpa.c
@@ -61,15 +61,6 @@ typedef struct _STREAMDATA
DWORD dwItems;
} STREAMDATA, *PSTREAMDATA;
-typedef struct _LOADDATA
-{
- INT nCount;
- PVOID ptr;
-} LOADDATA, *LPLOADDATA;
-
-typedef HRESULT (CALLBACK *DPALOADPROC)(LPLOADDATA,IStream*,LPARAM);
-
-
/**************************************************************************
* DPA_LoadStream [COMCTL32.9]
*
@@ -79,29 +70,29 @@ typedef HRESULT (CALLBACK *DPALOADPROC)(LPLOADDATA,IStream*,LPARAM);
* phDpa [O] pointer to a handle to a dynamic pointer array
* loadProc [I] pointer to a callback function
* pStream [I] pointer to a stream
- * lParam [I] application specific value
+ * pData [I] pointer to callback data
*
* RETURNS
* Success: TRUE
- * Failure: FALSE
+ * Failure: FALSE
*
* NOTES
* No more information available yet!
*/
-HRESULT WINAPI DPA_LoadStream (HDPA *phDpa, DPALOADPROC loadProc,
- IStream *pStream, LPARAM lParam)
+HRESULT WINAPI DPA_LoadStream (HDPA *phDpa, PFNDPASTREAM loadProc,
+ IStream *pStream, LPVOID pData)
{
HRESULT errCode;
LARGE_INTEGER position;
ULARGE_INTEGER newPosition;
STREAMDATA streamData;
- LOADDATA loadData;
+ DPASTREAMINFO streamInfo;
ULONG ulRead;
HDPA hDpa;
PVOID *ptr;
- FIXME ("phDpa=%p loadProc=%p pStream=%p lParam=%lx\n",
- phDpa, loadProc, pStream, lParam);
+ FIXME ("phDpa=%p loadProc=%p pStream=%p pData=%p\n",
+ phDpa, loadProc, pStream, pData);
if (!phDpa || !loadProc || !pStream)
return E_INVALIDARG;
@@ -127,7 +118,7 @@ HRESULT WINAPI DPA_LoadStream (HDPA *phDpa, DPALOADPROC loadProc,
streamData.dwSize, streamData.dwData2, streamData.dwItems);
if ( ulRead < sizeof(STREAMDATA) ||
- lParam < sizeof(STREAMDATA) ||
+ (DWORD)pData < sizeof(STREAMDATA) ||
streamData.dwSize < sizeof(STREAMDATA) ||
streamData.dwData2 < 1) {
errCode = E_FAIL;
@@ -146,19 +137,19 @@ HRESULT WINAPI DPA_LoadStream (HDPA *phDpa, DPALOADPROC loadProc,
/* load data from the stream into the dpa */
ptr = hDpa->ptrs;
- for (loadData.nCount = 0; loadData.nCount < streamData.dwItems; loadData.nCount++) {
- errCode = (loadProc)(&loadData, pStream, lParam);
+ for (streamInfo.iPos = 0; streamInfo.iPos < streamData.dwItems; streamInfo.iPos++) {
+ errCode = (loadProc)(&streamInfo, pStream, pData);
if (errCode != S_OK) {
errCode = S_FALSE;
break;
}
- *ptr = loadData.ptr;
+ *ptr = streamInfo.pvItem;
ptr++;
}
/* set the number of items */
- hDpa->nItemCount = loadData.nCount;
+ hDpa->nItemCount = streamInfo.iPos;
/* store the handle to the dpa */
*phDpa = hDpa;
@@ -177,21 +168,21 @@ HRESULT WINAPI DPA_LoadStream (HDPA *phDpa, DPALOADPROC loadProc,
* hDpa [I] handle to a dynamic pointer array
* loadProc [I] pointer to a callback function
* pStream [I] pointer to a stream
- * lParam [I] application specific value
+ * pData [I] pointer to callback data
*
* RETURNS
* Success: TRUE
- * Failure: FALSE
+ * Failure: FALSE
*
* NOTES
* No more information available yet!
*/
-HRESULT WINAPI DPA_SaveStream (const HDPA hDpa, DPALOADPROC loadProc,
- IStream *pStream, LPARAM lParam)
+HRESULT WINAPI DPA_SaveStream (const HDPA hDpa, PFNDPASTREAM loadProc,
+ IStream *pStream, LPVOID pData)
{
- FIXME ("hDpa=%p loadProc=%p pStream=%p lParam=%lx\n",
- hDpa, loadProc, pStream, lParam);
+ FIXME ("hDpa=%p loadProc=%p pStream=%p pData=%p\n",
+ hDpa, loadProc, pStream, pData);
return E_FAIL;
}
diff --git a/dlls/comctl32/tests/dpa.c b/dlls/comctl32/tests/dpa.c
index d7de377..e9a1fa5 100644
--- a/dlls/comctl32/tests/dpa.c
+++ b/dlls/comctl32/tests/dpa.c
@@ -33,14 +33,6 @@
#define expect(expected, got) ok(got == expected, "Expected %d, got %d\n", expected, got)
-typedef struct _ITEMDATA
-{
- INT iPos;
- PVOID pvData;
-} ITEMDATA, *LPITEMDATA;
-
-typedef HRESULT (CALLBACK *PFNDPASTM)(LPITEMDATA,IStream*,LPARAM);
-
static HDPA (WINAPI *pDPA_Clone)(const HDPA,const HDPA);
static HDPA (WINAPI *pDPA_Create)(INT);
static HDPA (WINAPI *pDPA_CreateEx)(INT,HANDLE);
@@ -53,9 +45,9 @@ static INT (WINAPI *pDPA_GetPtr)(const HDPA,INT);
static INT (WINAPI *pDPA_GetPtrIndex)(const HDPA,PVOID);
static BOOL (WINAPI *pDPA_Grow)(HDPA,INT);
static INT (WINAPI *pDPA_InsertPtr)(const HDPA,INT,PVOID);
-static HRESULT (WINAPI *pDPA_LoadStream)(HDPA*,PFNDPASTM,IStream*,LPARAM);
+static HRESULT (WINAPI *pDPA_LoadStream)(HDPA*,PFNDPASTREAM,IStream*,LPARAM);
static BOOL (WINAPI *pDPA_Merge)(const HDPA,const HDPA,DWORD,PFNDPACOMPARE,PFNDPAMERGE,LPARAM);
-static HRESULT (WINAPI *pDPA_SaveStream)(HDPA,PFNDPASTM,IStream*,LPARAM);
+static HRESULT (WINAPI *pDPA_SaveStream)(HDPA,PFNDPASTREAM,IStream*,LPARAM);
static INT (WINAPI *pDPA_Search)(HDPA,PVOID,INT,PFNDPACOMPARE,LPARAM,UINT);
static BOOL (WINAPI *pDPA_SetPtr)(const HDPA,INT,PVOID);
static BOOL (WINAPI *pDPA_Sort)(const HDPA,PFNDPACOMPARE,LPARAM);
@@ -140,29 +132,29 @@ static INT CALLBACK CB_EnumFirstThree(PVOID pItem, PVOID lp)
return pItem != (PVOID)3;
}
-static HRESULT CALLBACK CB_Save(LPITEMDATA pInfo, IStream *pStm, LPARAM lp)
+static HRESULT CALLBACK CB_Save(DPASTREAMINFO *pInfo, IStream *pStm, LPVOID lp)
{
HRESULT hRes;
- ok(lp == 0xdeadbeef, "lp=%ld\n", lp);
+ ok(lp == (LPVOID)0xdeadbeef, "lp=%p\n", lp);
hRes = IStream_Write(pStm, &pInfo->iPos, sizeof(INT), NULL);
ok(hRes == S_OK, "hRes=0x%x\n", hRes);
- hRes = IStream_Write(pStm, &pInfo->pvData, sizeof(PVOID), NULL);
+ hRes = IStream_Write(pStm, &pInfo->pvItem, sizeof(PVOID), NULL);
ok(hRes == S_OK, "hRes=0x%x\n", hRes);
return S_OK;
}
-static HRESULT CALLBACK CB_Load(LPITEMDATA pInfo, IStream *pStm, LPARAM lp)
+static HRESULT CALLBACK CB_Load(DPASTREAMINFO *pInfo, IStream *pStm, LPVOID lp)
{
HRESULT hRes;
INT iOldPos;
iOldPos = pInfo->iPos;
- ok(lp == 0xdeadbeef, "lp=%ld\n", lp);
+ ok(lp == (LPVOID)0xdeadbeef, "lp=%p\n", lp);
hRes = IStream_Read(pStm, &pInfo->iPos, sizeof(INT), NULL);
ok(hRes == S_OK, "hRes=0x%x\n", hRes);
ok(pInfo->iPos == iOldPos, "iPos=%d iOldPos=%d\n", pInfo->iPos, iOldPos);
- hRes = IStream_Read(pStm, &pInfo->pvData, sizeof(PVOID), NULL);
+ hRes = IStream_Read(pStm, &pInfo->pvItem, sizeof(PVOID), NULL);
ok(hRes == S_OK, "hRes=0x%x\n", hRes);
return S_OK;
}
diff --git a/include/commctrl.h b/include/commctrl.h
index 55cae1c..bda13de 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -5011,6 +5011,19 @@ void WINAPI DPA_DestroyCallback(HDPA, PFNDPAENUMCALLBACK, LPVOID);
INT WINAPI DPA_Search(HDPA, LPVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
BOOL WINAPI DPA_Merge(HDPA, HDPA, DWORD, PFNDPACOMPARE, PFNDPAMERGE, LPARAM);
+/* save/load from stream */
+typedef struct _DPASTREAMINFO
+{
+ INT iPos; /* item index */
+ LPVOID pvItem;
+} DPASTREAMINFO;
+
+struct IStream;
+typedef HRESULT (CALLBACK *PFNDPASTREAM)(DPASTREAMINFO*, struct IStream*, LPVOID);
+
+HRESULT WINAPI DPA_LoadStream(HDPA*, PFNDPASTREAM, struct IStream*, LPVOID);
+HRESULT WINAPI DPA_SaveStream(HDPA, PFNDPASTREAM, struct IStream*, LPVOID);
+
BOOL WINAPI Str_SetPtrW (LPWSTR *, LPCWSTR);
/**************************************************************************
--
1.5.6.5
More information about the wine-patches
mailing list