This time with all warnings fixed. ChangeLog Fix definitions for Uuid{To,From}String, RpcStringFree. Index: include/rpcdce.h =================================================================== RCS file: /var/cvs/wine/include/rpcdce.h,v retrieving revision 1.15 diff -u -r1.15 rpcdce.h --- include/rpcdce.h 18 Dec 2002 02:21:38 -0000 1.15 +++ include/rpcdce.h 23 Dec 2002 07:20:43 -0000 @@ -250,21 +250,21 @@ #define RpcStringBindingCompose WINELIB_NAME_AW(RpcStringBindingCompose) RPCRTAPI RPC_STATUS RPC_ENTRY - RpcStringFreeA(LPSTR* String); + RpcStringFreeA(unsigned char** String); RPCRTAPI RPC_STATUS RPC_ENTRY - RpcStringFreeW(LPWSTR* String); + RpcStringFreeW(unsigned short** String); #define RpcStringFree WINELIB_NAME_AW(RpcStringFree) RPCRTAPI RPC_STATUS RPC_ENTRY - UuidToStringA( UUID* Uuid, LPSTR* StringUuid ); + UuidToStringA( UUID* Uuid, unsigned char** StringUuid ); RPCRTAPI RPC_STATUS RPC_ENTRY - UuidToStringW( UUID* Uuid, LPWSTR* StringUuid ); + UuidToStringW( UUID* Uuid, unsigned short** StringUuid ); #define UuidToString WINELIB_NAME_AW(UuidToString) RPCRTAPI RPC_STATUS RPC_ENTRY - UuidFromStringA( LPSTR StringUuid, UUID* Uuid ); + UuidFromStringA( unsigned char* StringUuid, UUID* Uuid ); RPCRTAPI RPC_STATUS RPC_ENTRY - UuidFromStringW( LPWSTR StringUuid, UUID* Uuid ); + UuidFromStringW( unsigned short* StringUuid, UUID* Uuid ); #define UuidFromString WINELIB_NAME_AW(UuidFromString) RPCRTAPI RPC_STATUS RPC_ENTRY Index: dlls/rpcrt4/cpsf.c =================================================================== RCS file: /var/cvs/wine/dlls/rpcrt4/cpsf.c,v retrieving revision 1.3 diff -u -r1.3 cpsf.c --- dlls/rpcrt4/cpsf.c 5 Dec 2002 20:33:08 -0000 1.3 +++ dlls/rpcrt4/cpsf.c 23 Dec 2002 19:52:12 -0000 @@ -160,7 +160,7 @@ HKEY key, subkey; TRACE("(%p,%p,%s)\n", hDll, pProxyFileList, debugstr_guid(pclsid)); - UuidToStringA((UUID*)pclsid, &clsid); + UuidToStringA((UUID*)pclsid, (unsigned char**)&clsid); /* register interfaces to point to clsid */ while (*pProxyFileList) { @@ -172,9 +172,9 @@ TRACE("registering %s %s => %s\n", name, debugstr_guid(proxy->header.piid), clsid); - UuidToStringA((UUID*)proxy->header.piid, &iid); + UuidToStringA((UUID*)proxy->header.piid, (unsigned char**)&iid); snprintf(keyname, sizeof(keyname), "Interface\\%s", iid); - RpcStringFreeA(&iid); + RpcStringFreeA((unsigned char**)&iid); if (RegCreateKeyExA(HKEY_CLASSES_ROOT, keyname, 0, NULL, 0, KEY_WRITE, NULL, &key, NULL) == ERROR_SUCCESS) { if (name) @@ -205,7 +205,7 @@ } /* done */ - RpcStringFreeA(&clsid); + RpcStringFreeA((unsigned char**)&clsid); return S_OK; } @@ -220,7 +220,7 @@ char keyname[120], module[120]; TRACE("(%p,%p,%s)\n", hDll, pProxyFileList, debugstr_guid(pclsid)); - UuidToStringA((UUID*)pclsid, &clsid); + UuidToStringA((UUID*)pclsid, (unsigned char**)&clsid); /* unregister interfaces */ while (*pProxyFileList) { @@ -232,9 +232,9 @@ TRACE("unregistering %s %s <= %s\n", name, debugstr_guid(proxy->header.piid), clsid); - UuidToStringA((UUID*)proxy->header.piid, &iid); + UuidToStringA((UUID*)proxy->header.piid, (unsigned char**)&iid); snprintf(keyname, sizeof(keyname), "Interface\\%s", iid); - RpcStringFreeA(&iid); + RpcStringFreeA((unsigned char**)&iid); RegDeleteKeyA(HKEY_CLASSES_ROOT, keyname); } pProxyFileList++; @@ -247,6 +247,6 @@ RegDeleteKeyA(HKEY_CLASSES_ROOT, keyname); /* done */ - RpcStringFreeA(&clsid); + RpcStringFreeA((unsigned char**)&clsid); return S_OK; } Index: dlls/rpcrt4/rpc_binding.c =================================================================== RCS file: /var/cvs/wine/dlls/rpcrt4/rpc_binding.c,v retrieving revision 1.8 diff -u -r1.8 rpc_binding.c --- dlls/rpcrt4/rpc_binding.c 6 Nov 2002 21:58:21 -0000 1.8 +++ dlls/rpcrt4/rpc_binding.c 23 Dec 2002 19:55:36 -0000 @@ -595,11 +595,11 @@ return RPC_S_OK; fail: - if (ObjUuid) RpcStringFreeA(ObjUuid); - if (Protseq) RpcStringFreeA(Protseq); - if (NetworkAddr) RpcStringFreeA(NetworkAddr); - if (Endpoint) RpcStringFreeA(Endpoint); - if (Options) RpcStringFreeA(Options); + if (ObjUuid) RpcStringFreeA((unsigned char**)ObjUuid); + if (Protseq) RpcStringFreeA((unsigned char**)Protseq); + if (NetworkAddr) RpcStringFreeA((unsigned char**)NetworkAddr); + if (Endpoint) RpcStringFreeA((unsigned char**)Endpoint); + if (Options) RpcStringFreeA((unsigned char**)Options); return RPC_S_INVALID_STRING_BINDING; } @@ -771,11 +771,11 @@ if (ret == RPC_S_OK) ret = RPCRT4_CompleteBindingA(bind, NetworkAddr, Endpoint, Options); - RpcStringFreeA(&Options); - RpcStringFreeA(&Endpoint); - RpcStringFreeA(&NetworkAddr); - RpcStringFreeA(&Protseq); - RpcStringFreeA(&ObjectUuid); + RpcStringFreeA((unsigned char**)&Options); + RpcStringFreeA((unsigned char**)&Endpoint); + RpcStringFreeA((unsigned char**)&NetworkAddr); + RpcStringFreeA((unsigned char**)&Protseq); + RpcStringFreeA((unsigned char**)&ObjectUuid); if (ret == RPC_S_OK) *Binding = (RPC_BINDING_HANDLE)bind; @@ -835,13 +835,13 @@ TRACE("(%p,%p)\n", Binding, StringBinding); - ret = UuidToStringA(&bind->ObjectUuid, &ObjectUuid); + ret = UuidToStringA(&bind->ObjectUuid, (unsigned char**)&ObjectUuid); if (ret != RPC_S_OK) return ret; ret = RpcStringBindingComposeA(ObjectUuid, bind->Protseq, bind->NetworkAddr, bind->Endpoint, NULL, StringBinding); - RpcStringFreeA(&ObjectUuid); + RpcStringFreeA((unsigned char**)&ObjectUuid); return ret; } @@ -856,7 +856,7 @@ TRACE("(%p,%p)\n", Binding, StringBinding); ret = RpcBindingToStringBindingA(Binding, &str); *StringBinding = RPCRT4_strdupAtoW(str); - RpcStringFreeA(&str); + RpcStringFreeA((unsigned char**)&str); return ret; } Index: dlls/rpcrt4/rpcrt4_main.c =================================================================== RCS file: /var/cvs/wine/dlls/rpcrt4/rpcrt4_main.c,v retrieving revision 1.38 diff -u -r1.38 rpcrt4_main.c --- dlls/rpcrt4/rpcrt4_main.c 2 Dec 2002 21:17:05 -0000 1.38 +++ dlls/rpcrt4/rpcrt4_main.c 23 Dec 2002 06:59:07 -0000 @@ -190,7 +190,7 @@ * * S_OK if successful. */ -RPC_STATUS WINAPI RpcStringFreeA(LPSTR* String) +RPC_STATUS WINAPI RpcStringFreeA(unsigned char** String) { HeapFree( GetProcessHeap(), 0, *String); @@ -206,7 +206,7 @@ * * S_OK if successful. */ -RPC_STATUS WINAPI RpcStringFreeW(LPWSTR* String) +RPC_STATUS WINAPI RpcStringFreeW(unsigned short** String) { HeapFree( GetProcessHeap(), 0, *String); @@ -545,7 +545,7 @@ * S_OK if successful. * S_OUT_OF_MEMORY if unsucessful. */ -RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, LPSTR* StringUuid) +RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, unsigned char** StringUuid) { *StringUuid = HeapAlloc( GetProcessHeap(), 0, sizeof(char) * 37); @@ -571,7 +571,7 @@ * S_OK if successful. * S_OUT_OF_MEMORY if unsucessful. */ -RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, LPWSTR* StringUuid) +RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, unsigned short** StringUuid) { char buf[37]; @@ -605,7 +605,7 @@ /*********************************************************************** * UuidFromStringA (RPCRT4.@) */ -RPC_STATUS WINAPI UuidFromStringA(LPSTR str, UUID *uuid) +RPC_STATUS WINAPI UuidFromStringA(unsigned char* str, UUID *uuid) { BYTE *s = (BYTE *)str; int i; @@ -646,7 +646,7 @@ /*********************************************************************** * UuidFromStringW (RPCRT4.@) */ -RPC_STATUS WINAPI UuidFromStringW(LPWSTR s, UUID *uuid) +RPC_STATUS WINAPI UuidFromStringW(unsigned short* s, UUID *uuid) { int i; Index: dlls/rpcrt4/tests/rpc.c =================================================================== RCS file: /var/cvs/wine/dlls/rpcrt4/tests/rpc.c,v retrieving revision 1.2 diff -u -r1.2 rpc.c --- dlls/rpcrt4/tests/rpc.c 5 Dec 2002 19:01:51 -0000 1.2 +++ dlls/rpcrt4/tests/rpc.c 23 Dec 2002 19:52:49 -0000 @@ -86,7 +86,7 @@ /* Uuid to String to Uuid (char) */ for (i1 = 0; i1 < 10; i1++) { Uuid1 = Uuid_Table[i1]; - ok( (UuidToStringA(&Uuid1, &str) == RPC_S_OK), "Simple UUID->String copy" ); + ok( (UuidToStringA(&Uuid1, (unsigned char**)&str) == RPC_S_OK), "Simple UUID->String copy" ); ok( (UuidFromStringA(str, &Uuid2) == RPC_S_OK), "Simple String->UUID copy from generated UUID String" ); ok( UuidEqual(&Uuid1, &Uuid2, &rslt), "Uuid -> String -> Uuid transform" ); /* invalid uuid tests -- size of valid UUID string=36 */ -- Dimi.