Alexandre Julliard : comctl32: Use explicit prototypes for function pointers.

Alexandre Julliard julliard at winehq.org
Wed Sep 9 09:56:54 CDT 2009


Module: wine
Branch: master
Commit: b7f2ccb6b456583226462e514a9af8847c8837b0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b7f2ccb6b456583226462e514a9af8847c8837b0

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Sep  9 13:13:08 2009 +0200

comctl32: Use explicit prototypes for function pointers.

---

 dlls/comctl32/comctl32undoc.c |   29 ++++++++++++++++++++---------
 1 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/dlls/comctl32/comctl32undoc.c b/dlls/comctl32/comctl32undoc.c
index 194efe5..ee684c6 100644
--- a/dlls/comctl32/comctl32undoc.c
+++ b/dlls/comctl32/comctl32undoc.c
@@ -206,6 +206,10 @@ DWORD WINAPI GetSize (LPVOID lpMem)
  *  - Free an MRU-list with FreeMRUList().
  */
 
+typedef INT (CALLBACK *MRUStringCmpFnA)(LPCSTR lhs, LPCSTR rhs);
+typedef INT (CALLBACK *MRUStringCmpFnW)(LPCWSTR lhs, LPCWSTR rhs);
+typedef INT (CALLBACK *MRUBinaryCmpFn)(LPCVOID lhs, LPCVOID rhs, DWORD length);
+
 typedef struct tagCREATEMRULISTA
 {
     DWORD  cbSize;
@@ -213,7 +217,11 @@ typedef struct tagCREATEMRULISTA
     DWORD  dwFlags;
     HKEY   hKey;
     LPSTR  lpszSubKey;
-    PROC   lpfnCompare;
+    union
+    {
+        MRUStringCmpFnA string_cmpfn;
+        MRUBinaryCmpFn  binary_cmpfn;
+    } u;
 } CREATEMRULISTA, *LPCREATEMRULISTA;
 
 typedef struct tagCREATEMRULISTW
@@ -223,7 +231,11 @@ typedef struct tagCREATEMRULISTW
     DWORD   dwFlags;
     HKEY    hKey;
     LPWSTR  lpszSubKey;
-    PROC    lpfnCompare;
+    union
+    {
+        MRUStringCmpFnW string_cmpfn;
+        MRUBinaryCmpFn  binary_cmpfn;
+    } u;
 } CREATEMRULISTW, *LPCREATEMRULISTW;
 
 /* dwFlags */
@@ -385,7 +397,7 @@ INT WINAPI FindMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData,
     UINT i;
     LPSTR dataA = NULL;
 
-    if (!mp || !mp->extview.lpfnCompare)
+    if (!mp || !mp->extview.u.string_cmpfn)
 	return -1;
 
     if(!(mp->extview.dwFlags & MRUF_BINARY_LIST) && !mp->isUnicode) {
@@ -397,13 +409,12 @@ INT WINAPI FindMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData,
 
     for(i=0; i<mp->cursize; i++) {
 	if (mp->extview.dwFlags & MRUF_BINARY_LIST) {
-	    if (!mp->extview.lpfnCompare(lpData, &mp->array[i]->datastart,
-					 cbData))
+	    if (!mp->extview.u.binary_cmpfn(lpData, &mp->array[i]->datastart, cbData))
 		break;
 	}
 	else {
 	    if(mp->isUnicode) {
-	        if (!mp->extview.lpfnCompare(lpData, &mp->array[i]->datastart))
+	        if (!mp->extview.u.string_cmpfn(lpData, (LPWSTR)&mp->array[i]->datastart))
 		    break;
 	    } else {
 	        DWORD len = WideCharToMultiByte(CP_ACP, 0,
@@ -414,7 +425,7 @@ INT WINAPI FindMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData,
 		WideCharToMultiByte(CP_ACP, 0, (LPWSTR)&mp->array[i]->datastart, -1,
 				    itemA, len, NULL, NULL);
 
-	        cmp = mp->extview.lpfnCompare(dataA, itemA);
+	        cmp = mp->extview.u.string_cmpfn((LPWSTR)dataA, (LPWSTR)itemA);
 		Free(itemA);
 		if(!cmp)
 		    break;
@@ -672,7 +683,7 @@ static HANDLE CreateMRUListLazy_common(LPWINEMRULIST mp)
 	ERR("(%u %u %x %p %s %p): Could not open key, error=%d\n",
 	    mp->extview.cbSize, mp->extview.nMaxItems, mp->extview.dwFlags,
 	    mp->extview.hKey, debugstr_w(mp->extview.lpszSubKey),
-				 mp->extview.lpfnCompare, err);
+            mp->extview.u.string_cmpfn, err);
 	return 0;
     }
 
@@ -717,7 +728,7 @@ static HANDLE CreateMRUListLazy_common(LPWINEMRULIST mp)
     TRACE("(%u %u %x %p %s %p): Current Size = %d\n",
 	  mp->extview.cbSize, mp->extview.nMaxItems, mp->extview.dwFlags,
 	  mp->extview.hKey, debugstr_w(mp->extview.lpszSubKey),
-	  mp->extview.lpfnCompare, mp->cursize);
+	  mp->extview.u.string_cmpfn, mp->cursize);
     return mp;
 }
 




More information about the wine-cvs mailing list