[DPLAY03] more dpnet

Raphael fenix at club-internet.fr
Wed Apr 7 19:17:39 CDT 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

 Changelog:
  - add traces to client.c and address.c stub functions
  - implement some debugging functions (debugstr_SP)
  - implement IDirectPlay8Address::GetSP/IDirectPlay8Address::SetSP

Now we don't crash on the Hidden and Dangereous 2 MP Demo.
HD2MP Todo:
- - get the network connection/detection working (begining by 
IDirectPlay8Client::EnumHosts)
- - fix the cursor and font problem on menu (seems a strange d3d8 problem)

Regards,
Raphael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAdJojp7NA3AmQTU4RAh3UAJ4gR7rVN2Gn7c2c1FxoVGgdxiCCPACfeJ/1
X7C2cyH+W/KQPkapHBWJisU=
=seRO
-----END PGP SIGNATURE-----
-------------- next part --------------
? save
Index: address.c
===================================================================
RCS file: /home/wine/wine/dlls/dpnet/address.c,v
retrieving revision 1.1
diff -u -r1.1 address.c
--- address.c	7 Apr 2004 20:39:00 -0000	1.1
+++ address.c	8 Apr 2004 00:11:40 -0000
@@ -70,25 +70,142 @@
 
 /* IDirectPlay8Address Interface follow: */
 
-HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromURLW(PDIRECTPLAY8ADDRESS iface,  WCHAR* pwszSourceURL) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromURLA(PDIRECTPLAY8ADDRESS iface,  CHAR* pszSourceURL) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_Duplicate(PDIRECTPLAY8ADDRESS iface,  PDIRECTPLAY8ADDRESS* ppdpaNewAddress) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_SetEqual(PDIRECTPLAY8ADDRESS iface,  PDIRECTPLAY8ADDRESS pdpaAddress) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_IsEqual(PDIRECTPLAY8ADDRESS iface,   PDIRECTPLAY8ADDRESS pdpaAddress) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_Clear(PDIRECTPLAY8ADDRESS iface) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetURLW(PDIRECTPLAY8ADDRESS iface,  WCHAR* pwszURL, PDWORD pdwNumChars) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetURLA(PDIRECTPLAY8ADDRESS iface,  CHAR* pszURL, PDWORD pdwNumChars) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetSP(PDIRECTPLAY8ADDRESS iface,  GUID* pguidSP) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetUserData(PDIRECTPLAY8ADDRESS iface,  LPVOID pvUserData, PDWORD pdwBufferSize) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_SetSP(PDIRECTPLAY8ADDRESS iface,  CONST GUID* CONST pguidSP) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_SetUserData(PDIRECTPLAY8ADDRESS iface,  CONST void* CONST pvUserData, CONST DWORD dwDataSize) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetNumComponents(PDIRECTPLAY8ADDRESS iface,  PDWORD pdwNumComponents) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetComponentByName(PDIRECTPLAY8ADDRESS iface,  CONST WCHAR* CONST pwszName, LPVOID pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetComponentByIndex(PDIRECTPLAY8ADDRESS iface,  CONST DWORD dwComponentID, WCHAR* pwszName, PDWORD pdwNameLen, void* pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_AddComponent(PDIRECTPLAY8ADDRESS iface,  CONST WCHAR* CONST pwszName, CONST void* CONST lpvData, CONST DWORD dwDataSize, CONST DWORD dwDataType) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_GetDevice(PDIRECTPLAY8ADDRESS iface,  GUID* pDevGuid) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_SetDevice(PDIRECTPLAY8ADDRESS iface,  CONST GUID* CONST devGuid) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromDirectPlay4Address(PDIRECTPLAY8ADDRESS iface,  LPVOID pvAddress, DWORD dwDataSize) { return DPN_OK; }
+HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromURLW(PDIRECTPLAY8ADDRESS iface, WCHAR* pwszSourceURL) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %s): stub\n", This, debugstr_w(pwszSourceURL));
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromURLA(PDIRECTPLAY8ADDRESS iface, CHAR* pszSourceURL) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %s): stub\n", This, pszSourceURL);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_Duplicate(PDIRECTPLAY8ADDRESS iface, PDIRECTPLAY8ADDRESS* ppdpaNewAddress) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %p): stub\n", This, ppdpaNewAddress);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_SetEqual(PDIRECTPLAY8ADDRESS iface, PDIRECTPLAY8ADDRESS pdpaAddress) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %p): stub\n", This, pdpaAddress);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_IsEqual(PDIRECTPLAY8ADDRESS iface, PDIRECTPLAY8ADDRESS pdpaAddress) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %p): stub\n", This, pdpaAddress);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_Clear(PDIRECTPLAY8ADDRESS iface) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetURLW(PDIRECTPLAY8ADDRESS iface, WCHAR* pwszURL, PDWORD pdwNumChars) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetURLA(PDIRECTPLAY8ADDRESS iface, CHAR* pszURL, PDWORD pdwNumChars) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetSP(PDIRECTPLAY8ADDRESS iface, GUID* pguidSP) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %p)\n", iface, pguidSP);
+  memcpy(pguidSP, &This->SP_guid, sizeof(GUID));
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetUserData(PDIRECTPLAY8ADDRESS iface, LPVOID pvUserData, PDWORD pdwBufferSize) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_SetSP(PDIRECTPLAY8ADDRESS iface, CONST GUID* CONST pguidSP) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %s)\n", iface, debugstr_SP(pguidSP));
+  memcpy(&This->SP_guid, pguidSP, sizeof(GUID));
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_SetUserData(PDIRECTPLAY8ADDRESS iface, CONST void* CONST pvUserData, CONST DWORD dwDataSize) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetNumComponents(PDIRECTPLAY8ADDRESS iface, PDWORD pdwNumComponents) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetComponentByName(PDIRECTPLAY8ADDRESS iface, CONST WCHAR* CONST pwszName, LPVOID pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetComponentByIndex(PDIRECTPLAY8ADDRESS iface, CONST DWORD dwComponentID, WCHAR* pwszName, 
+							   PDWORD pdwNameLen, void* pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_AddComponent(PDIRECTPLAY8ADDRESS iface, CONST WCHAR* CONST pwszName, 
+						    CONST void* CONST lpvData, CONST DWORD dwDataSize, CONST DWORD dwDataType) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %s, %p, %lu, %lx): stub\n", This, debugstr_w(pwszName), lpvData, dwDataSize, dwDataType);
+  
+  if (NULL == lpvData) return DPNERR_INVALIDPOINTER;
+  switch (dwDataType) {
+  case DPNA_DATATYPE_DWORD:
+    if (sizeof(DWORD) != dwDataSize) return DPNERR_INVALIDPARAM;
+    TRACE("(%p, %lu): DWORD Type -> %lu \n", lpvData, dwDataSize, *(DWORD*) lpvData);
+    break;
+  case DPNA_DATATYPE_GUID:
+    if (sizeof(GUID) != dwDataSize) return DPNERR_INVALIDPARAM;
+    TRACE("(%p, %lu): GUID Type -> %s \n", lpvData, dwDataSize, debugstr_guid((GUID*) lpvData));
+    break;
+  case DPNA_DATATYPE_STRING:
+    TRACE("(%p, %lu): STRING Type -> %s \n", lpvData, dwDataSize, (CHAR*) lpvData);
+    break;
+  case DPNA_DATATYPE_BINARY:
+    TRACE("(%p, %lu): BINARY Type\n", lpvData, dwDataSize);
+    break;
+  }
+  
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_GetDevice(PDIRECTPLAY8ADDRESS iface, GUID* pDevGuid) {   
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_SetDevice(PDIRECTPLAY8ADDRESS iface, CONST GUID* CONST devGuid) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p, %s): stub\n", This, debugstr_guid(devGuid));
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromDirectPlay4Address(PDIRECTPLAY8ADDRESS iface, LPVOID pvAddress, DWORD dwDataSize) { 
+  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  TRACE("(%p): stub\n", This);
+  return DPN_OK; 
+}
 
 ICOM_VTABLE(IDirectPlay8Address) DirectPlay8Address_Vtbl =
 {
@@ -131,3 +248,25 @@
   client->ref = 0; /* will be inited with QueryInterface */
   return IDirectPlay8AddressImpl_QueryInterface ((PDIRECTPLAY8ADDRESS)client, riid, ppobj);
 }
+
+/* returns name of given GUID */
+const char *debugstr_SP(const GUID *id) {
+  static const guid_info guids[] = {
+    /* CLSIDs */
+    GE(CLSID_DP8SP_IPX),
+    GE(CLSID_DP8SP_TCPIP),
+    GE(CLSID_DP8SP_SERIAL),
+    GE(CLSID_DP8SP_MODEM)
+  };      
+  
+  if (!id) return "(null)";
+  
+  unsigned int i; 
+  for (i = 0; i < sizeof(guids)/sizeof(guids[0]); i++) {
+    if (IsEqualGUID(id, &guids[i].guid))
+      return guids[i].name;
+  }
+  /* if we didn't find it, act like standard debugstr_guid */	
+  return debugstr_guid(id);
+}
+
Index: client.c
===================================================================
RCS file: /home/wine/wine/dlls/dpnet/client.c,v
retrieving revision 1.1
diff -u -r1.1 client.c
--- client.c	7 Apr 2004 20:39:00 -0000	1.1
+++ client.c	8 Apr 2004 00:11:40 -0000
@@ -70,26 +70,155 @@
 
 /* IDirectPlay8Client Interface follow: */
 
-HRESULT WINAPI IDirectPlay8ClientImpl_Initialize(PDIRECTPLAY8CLIENT iface,  PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_EnumServiceProviders(PDIRECTPLAY8CLIENT iface,  CONST GUID * CONST pguidServiceProvider, CONST GUID * CONST pguidApplication, DPN_SERVICE_PROVIDER_INFO * CONST pSPInfoBuffer, PDWORD CONST pcbEnumData, PDWORD CONST pcReturned, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_EnumHosts(PDIRECTPLAY8CLIENT iface,  PDPN_APPLICATION_DESC CONST pApplicationDesc,IDirectPlay8Address * CONST pAddrHost,IDirectPlay8Address * CONST pDeviceInfo, PVOID CONST pUserEnumData, CONST DWORD dwUserEnumDataSize, CONST DWORD dwEnumCount, CONST DWORD dwRetryInterval, CONST DWORD dwTimeOut, PVOID CONST pvUserContext, DPNHANDLE * CONST pAsyncHandle, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_CancelAsyncOperation(PDIRECTPLAY8CLIENT iface,  CONST DPNHANDLE hAsyncHandle, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_Connect(PDIRECTPLAY8CLIENT iface,  CONST DPN_APPLICATION_DESC * CONST pdnAppDesc,IDirectPlay8Address * CONST pHostAddr,IDirectPlay8Address * CONST pDeviceInfo, CONST DPN_SECURITY_DESC * CONST pdnSecurity, CONST DPN_SECURITY_CREDENTIALS * CONST pdnCredentials, CONST void * CONST pvUserConnectData, CONST DWORD dwUserConnectDataSize,void * CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_Send(PDIRECTPLAY8CLIENT iface,  CONST DPN_BUFFER_DESC * CONST prgBufferDesc, CONST DWORD cBufferDesc, CONST DWORD dwTimeOut, void * CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_GetSendQueueInfo(PDIRECTPLAY8CLIENT iface,  DWORD * CONST pdwNumMsgs, DWORD * CONST pdwNumBytes, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_GetApplicationDesc(PDIRECTPLAY8CLIENT iface,  DPN_APPLICATION_DESC * CONST pAppDescBuffer, DWORD * CONST pcbDataSize, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_SetClientInfo(PDIRECTPLAY8CLIENT iface,  CONST DPN_PLAYER_INFO * CONST pdpnPlayerInfo, PVOID CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_GetServerInfo(PDIRECTPLAY8CLIENT iface,  DPN_PLAYER_INFO * CONST pdpnPlayerInfo, DWORD * CONST pdwSize, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_GetServerAddress(PDIRECTPLAY8CLIENT iface,  IDirectPlay8Address ** CONST pAddress, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_Close(PDIRECTPLAY8CLIENT iface,  CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_ReturnBuffer(PDIRECTPLAY8CLIENT iface,  CONST DPNHANDLE hBufferHandle, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_GetCaps(PDIRECTPLAY8CLIENT iface,  DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_SetCaps(PDIRECTPLAY8CLIENT iface,  CONST DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_SetSPCaps(PDIRECTPLAY8CLIENT iface,  CONST GUID * CONST pguidSP, CONST DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags ) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_GetSPCaps(PDIRECTPLAY8CLIENT iface,  CONST GUID * CONST pguidSP, DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_GetConnectionInfo(PDIRECTPLAY8CLIENT iface,  DPN_CONNECTION_INFO * CONST pdpConnectionInfo, CONST DWORD dwFlags) { return DPN_OK; }
-HRESULT WINAPI IDirectPlay8ClientImpl_RegisterLobby(PDIRECTPLAY8CLIENT iface, CONST DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication * CONST pIDP8LobbiedApplication, CONST DWORD dwFlags) { return DPN_OK; }
+HRESULT WINAPI IDirectPlay8ClientImpl_Initialize(PDIRECTPLAY8CLIENT iface,  PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvUserContext, pfn, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_EnumServiceProviders(PDIRECTPLAY8CLIENT iface, 
+							   CONST GUID * CONST pguidServiceProvider, 
+							   CONST GUID * CONST pguidApplication, 
+							   DPN_SERVICE_PROVIDER_INFO * CONST pSPInfoBuffer, 
+							   PDWORD CONST pcbEnumData, 
+							   PDWORD CONST pcReturned, 
+							   CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_EnumHosts(PDIRECTPLAY8CLIENT iface, 
+						PDPN_APPLICATION_DESC CONST pApplicationDesc, 
+						IDirectPlay8Address * CONST pAddrHost, 
+						IDirectPlay8Address * CONST pDeviceInfo, 
+						PVOID CONST pUserEnumData, CONST DWORD dwUserEnumDataSize, CONST DWORD dwEnumCount, 
+						CONST DWORD dwRetryInterval, 
+						CONST DWORD dwTimeOut, 
+						PVOID CONST pvUserContext, 
+						DPNHANDLE * CONST pAsyncHandle, 
+						CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  /*FIXME("(%p):(%p,%p,%p,%p,%lu,%lu,%lu,%lu): Stub\n", This, pApplicationDesc, pAddrHost, pDeviceInfo, pUserEnumData, dwUserEnumDataSize, dwEnumCount, dwRetryInterval, dwTimeOut);*/
+  FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvUserContext, pAsyncHandle, dwFlags);
+  return DPN_OK; 
+}
 
+HRESULT WINAPI IDirectPlay8ClientImpl_CancelAsyncOperation(PDIRECTPLAY8CLIENT iface, CONST DPNHANDLE hAsyncHandle, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lu,%lx): Stub\n", This, hAsyncHandle, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_Connect(PDIRECTPLAY8CLIENT iface, 
+					      CONST DPN_APPLICATION_DESC * CONST pdnAppDesc,
+					      IDirectPlay8Address * CONST pHostAddr,
+					      IDirectPlay8Address * CONST pDeviceInfo, 
+					      CONST DPN_SECURITY_DESC * CONST pdnSecurity, 
+					      CONST DPN_SECURITY_CREDENTIALS * CONST pdnCredentials, 
+					      CONST void * CONST pvUserConnectData, 
+					      CONST DWORD dwUserConnectDataSize, 
+					      void * CONST pvAsyncContext, 
+					      DPNHANDLE * CONST phAsyncHandle, 
+					      CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_Send(PDIRECTPLAY8CLIENT iface, 
+					   CONST DPN_BUFFER_DESC * CONST prgBufferDesc, 
+					   CONST DWORD cBufferDesc, 
+					   CONST DWORD dwTimeOut, 
+					   void * CONST pvAsyncContext, 
+					   DPNHANDLE * CONST phAsyncHandle, 
+					   CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_GetSendQueueInfo(PDIRECTPLAY8CLIENT iface, DWORD * CONST pdwNumMsgs, DWORD * CONST pdwNumBytes, CONST DWORD dwFlags) {
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_GetApplicationDesc(PDIRECTPLAY8CLIENT iface, DPN_APPLICATION_DESC * CONST pAppDescBuffer, DWORD * CONST pcbDataSize, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_SetClientInfo(PDIRECTPLAY8CLIENT iface, 
+						    CONST DPN_PLAYER_INFO * CONST pdpnPlayerInfo, 
+						    PVOID CONST pvAsyncContext, 
+						    DPNHANDLE * CONST phAsyncHandle, 
+						    CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_GetServerInfo(PDIRECTPLAY8CLIENT iface, DPN_PLAYER_INFO * CONST pdpnPlayerInfo, DWORD * CONST pdwSize, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_GetServerAddress(PDIRECTPLAY8CLIENT iface, IDirectPlay8Address ** CONST pAddress, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_Close(PDIRECTPLAY8CLIENT iface, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_ReturnBuffer(PDIRECTPLAY8CLIENT iface, CONST DPNHANDLE hBufferHandle, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_GetCaps(PDIRECTPLAY8CLIENT iface, DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_SetCaps(PDIRECTPLAY8CLIENT iface, CONST DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_SetSPCaps(PDIRECTPLAY8CLIENT iface, CONST GUID * CONST pguidSP, CONST DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags ) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_GetSPCaps(PDIRECTPLAY8CLIENT iface, CONST GUID * CONST pguidSP, DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_GetConnectionInfo(PDIRECTPLAY8CLIENT iface, DPN_CONNECTION_INFO * CONST pdpConnectionInfo, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
+
+HRESULT WINAPI IDirectPlay8ClientImpl_RegisterLobby(PDIRECTPLAY8CLIENT iface, CONST DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication * CONST pIDP8LobbiedApplication, CONST DWORD dwFlags) { 
+  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  FIXME("(%p):(%lx): Stub\n", This, dwFlags);
+  return DPN_OK; 
+}
 
 ICOM_VTABLE(IDirectPlay8Client) DirectPlay8Client_Vtbl =
 {
@@ -132,3 +261,4 @@
   client->ref = 0; /* will be inited with QueryInterface */
   return IDirectPlay8ClientImpl_QueryInterface ((PDIRECTPLAY8CLIENT)client, riid, ppobj);
 }
+
Index: dpnet_private.h
===================================================================
RCS file: /home/wine/wine/dlls/dpnet/dpnet_private.h,v
retrieving revision 1.1
diff -u -r1.1 dpnet_private.h
--- dpnet_private.h	7 Apr 2004 20:39:00 -0000	1.1
+++ dpnet_private.h	8 Apr 2004 00:11:40 -0000
@@ -26,10 +26,8 @@
 #endif
 
 #include "dplay8.h"
-/*
- *#include "dplobby8.h"
- *#include "dplay8sp.h"
- */
+//#include "dplobby8.h"
+//#include "dplay8sp.h"
 
 /* DirectPlay8 Interfaces: */
 typedef struct IDirectPlay8ClientImpl IDirectPlay8ClientImpl;
@@ -99,6 +97,8 @@
   ICOM_VFIELD(IDirectPlay8Address);
   DWORD         ref;
   /* IDirectPlay8Address fields */
+  GUID SP_guid;
+  WCHAR* url;
 };
 
 /* IUnknown: */
@@ -117,5 +117,26 @@
 extern HRESULT DPNET_CreateDirectPlay8Server(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj);
 extern HRESULT DPNET_CreateDirectPlay8Peer(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj);
 extern HRESULT DPNET_CreateDirectPlay8Address(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj);
+
+/**
+ * debug
+ */
+extern const char *debugstr_SP(const GUID *id);
+
+/* used for generic dumping (copied from ddraw) */
+typedef struct {
+    DWORD val;
+    const char* name;
+} flag_info;
+
+typedef struct {
+    const GUID *guid;
+    const char* name;
+} guid_info;
+
+#define FE(x) { x, #x }	
+#define GE(x) { &x, #x }
+
+
 
 #endif


More information about the wine-patches mailing list