dpnet: Add stubbed interface IDirectPlay8Server
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Tue Jan 7 23:26:27 CST 2014
Hi,
Changelog:
dpnet: Add stubbed interface IDirectPlay8Server
Best Regards
Alistair Leslie-Hughes
-------------- next part --------------
>From 730216f83ea5bdcbb9bfc6f2410cb59d83c7145c Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Wed, 8 Jan 2014 13:19:47 +1100
Subject: [PATCH] Add stubbed interface IDirectPlay8Server
To: wine-patches <wine-patches at winehq.org>
---
dlls/dpnet/dpnet_private.h | 10 ++
dlls/dpnet/server.c | 347 ++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 354 insertions(+), 3 deletions(-)
diff --git a/dlls/dpnet/dpnet_private.h b/dlls/dpnet/dpnet_private.h
index 72012cd..5195d51 100644
--- a/dlls/dpnet/dpnet_private.h
+++ b/dlls/dpnet/dpnet_private.h
@@ -37,6 +37,7 @@ typedef struct IDirectPlay8AddressImpl IDirectPlay8AddressImpl;
typedef struct IDirectPlay8LobbiedApplicationImpl IDirectPlay8LobbiedApplicationImpl;
typedef struct IDirectPlay8PeerImpl IDirectPlay8PeerImpl;
typedef struct IDirectPlay8ThreadPoolImpl IDirectPlay8ThreadPoolImpl;
+typedef struct IDirectPlay8ServerImpl IDirectPlay8ServerImpl;
/* ------------------ */
/* IDirectPlay8Client */
@@ -95,6 +96,15 @@ struct IDirectPlay8ThreadPoolImpl
LONG ref;
};
+/*****************************************************************************
+ * IDirectPlay8Server implementation structure
+ */
+struct IDirectPlay8ServerImpl
+{
+ IDirectPlay8Server IDirectPlay8Server_iface;
+ LONG ref;
+};
+
/**
* factories
*/
diff --git a/dlls/dpnet/server.c b/dlls/dpnet/server.c
index 085b15f..4bcdb9f 100644
--- a/dlls/dpnet/server.c
+++ b/dlls/dpnet/server.c
@@ -35,7 +35,348 @@
WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
-HRESULT DPNET_CreateDirectPlay8Server(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj) {
- WARN("(%p, %s, %p): stub.\n", punkOuter, debugstr_guid(riid), ppobj);
- return CLASS_E_CLASSNOTAVAILABLE;
+static inline IDirectPlay8ServerImpl *impl_from_IDirectPlay8Server(IDirectPlay8Server *iface)
+{
+ return CONTAINING_RECORD(iface, IDirectPlay8ServerImpl, IDirectPlay8Server_iface);
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_QueryInterface(IDirectPlay8Server *iface, REFIID riid, void**ppv)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+
+ TRACE("%p %s %p\n", This, debugstr_guid(riid), ppv);
+
+ if (IsEqualGUID(riid, &IID_IUnknown) ||
+ IsEqualGUID(riid, &IID_IDirectPlay8Server))
+ {
+ IDirectPlay8Server_AddRef(iface);
+ *ppv = iface;
+ return S_OK;
+ }
+
+ WARN("(%p)->(%s,%p),not found\n", iface, debugstr_guid(riid), ppv);
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI IDirectPlay8ServerImpl_AddRef(IDirectPlay8Server *iface)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ ULONG refCount = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p)->(ref before=%u)\n", This, refCount - 1);
+
+ return refCount;
+}
+
+static ULONG WINAPI IDirectPlay8ServerImpl_Release(IDirectPlay8Server *iface)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ ULONG refCount = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p)->(ref before=%u)\n", This, refCount + 1);
+
+ if (!refCount) {
+ HeapFree(GetProcessHeap(), 0, This);
+ }
+
+ return refCount;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_Initialize(IDirectPlay8Server *iface, PVOID pvUserContext,
+ PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %d)\n", This, pvUserContext, pfn, dwFlags);
+ return S_OK;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_EnumServiceProviders(IDirectPlay8Server *iface, const GUID *pguidServiceProvider,
+ const GUID *pguidApplication, DPN_SERVICE_PROVIDER_INFO *pSPInfoBuffer, PDWORD pcbEnumData,
+ PDWORD pcReturned, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%s %s %p %p %p %d)\n", This, debugstr_guid(pguidServiceProvider), debugstr_guid(pguidApplication),
+ pSPInfoBuffer, pcbEnumData, pcReturned, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_CancelAsyncOperation(IDirectPlay8Server *iface, DPNHANDLE hAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %d)\n", This, hAsyncHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetSendQueueInfo(IDirectPlay8Server *iface, DPNID dpnid, DWORD *pdwNumMsgs,
+ DWORD *pdwNumBytes, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %p %d)\n", This, dpnid, pdwNumMsgs, pdwNumBytes, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetApplicationDesc(IDirectPlay8Server *iface, DPN_APPLICATION_DESC *pAppDescBuffer,
+ DWORD *pcbDataSize, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %d)\n", This, pAppDescBuffer, pcbDataSize, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_SetServerInfo(IDirectPlay8Server *iface, const DPN_PLAYER_INFO *pdpnPlayerInfo,
+ PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %p %d)\n", This, pdpnPlayerInfo, pvAsyncContext, phAsyncHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetClientInfo(IDirectPlay8Server *iface, DPNID dpnid, DPN_PLAYER_INFO *pdpnPlayerInfo,
+ DWORD *pdwSize, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %p %d)\n", This, dpnid, pdpnPlayerInfo, pdwSize, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetClientAddress(IDirectPlay8Server *iface, DPNID dpnid, IDirectPlay8Address **pAddress,
+ DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %d)\n", This, dpnid, pAddress, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetLocalHostAddresses(IDirectPlay8Server *iface, IDirectPlay8Address **prgpAddress,
+ DWORD *pcAddress, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %d)\n", This, prgpAddress, pcAddress, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_SetApplicationDesc(IDirectPlay8Server *iface, const DPN_APPLICATION_DESC *pad, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %d)\n", This, pad, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_Host(IDirectPlay8Server *iface, const DPN_APPLICATION_DESC *pdnAppDesc,
+ IDirectPlay8Address **prgpDeviceInfo, DWORD cDeviceInfo, const DPN_SECURITY_DESC *pdnSecurity,
+ const DPN_SECURITY_CREDENTIALS *pdnCredentials, void *pvPlayerContext, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %d %p %p %p %d)\n", This, pdnAppDesc, prgpDeviceInfo, cDeviceInfo, pdnSecurity, pdnCredentials,
+ pvPlayerContext, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_SendTo(IDirectPlay8Server *iface, DPNID dpnid, const DPN_BUFFER_DESC *prgBufferDesc,
+ DWORD cBufferDesc, DWORD dwTimeOut, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %d %d %p %p %d)\n", This, dpnid, prgBufferDesc, cBufferDesc, dwTimeOut, pvAsyncContext, phAsyncHandle,
+ dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_CreateGroup(IDirectPlay8Server *iface, const DPN_GROUP_INFO *pdpnGroupInfo,
+ void *pvGroupContext, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %p %p %d)\n", This, pdpnGroupInfo, pvGroupContext, pvAsyncContext, phAsyncHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_DestroyGroup(IDirectPlay8Server *iface, DPNID idGroup, PVOID pvAsyncContext,
+ DPNHANDLE *phAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %p %d)\n", This, idGroup, pvAsyncContext, phAsyncHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_AddPlayerToGroup(IDirectPlay8Server *iface, DPNID idGroup, DPNID idClient,
+ PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %d %p %p %d)\n", This, idGroup, idClient, pvAsyncContext, phAsyncHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_RemovePlayerFromGroup(IDirectPlay8Server *iface, DPNID idGroup, DPNID idClient,
+ PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %d %p %p %d)\n", This, idGroup, idClient, pvAsyncContext, phAsyncHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_SetGroupInfo(IDirectPlay8Server *iface, DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo,
+ PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %p %p %d)\n", This, dpnid, pdpnGroupInfo, pvAsyncContext, phAsyncHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetGroupInfo(IDirectPlay8Server *iface, DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo,
+ DWORD *pdwSize, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %p %d)\n", This, dpnid, pdpnGroupInfo, pdwSize, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_EnumPlayersAndGroups(IDirectPlay8Server *iface, DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %d)\n", This, prgdpnid, pcdpnid, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_EnumGroupMembers(IDirectPlay8Server *iface, DPNID dpnid, DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %p %d)\n", This, dpnid, prgdpnid, pcdpnid, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_Close(IDirectPlay8Server *iface, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d)\n", This, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_DestroyClient(IDirectPlay8Server *iface, DPNID dpnidClient, const void *pvDestroyData,
+ DWORD dwDestroyDataSize, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %d %d)\n", This, dpnidClient, pvDestroyData, dwDestroyDataSize, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_ReturnBuffer(IDirectPlay8Server *iface, DPNHANDLE hBufferHandle, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %d)\n", This, hBufferHandle, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetPlayerContext(IDirectPlay8Server *iface, DPNID dpnid, PVOID *ppvPlayerContext, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %d)\n", This, dpnid, ppvPlayerContext, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetGroupContext(IDirectPlay8Server *iface, DPNID dpnid, PVOID *ppvGroupContext, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %d)\n", This, dpnid, ppvGroupContext, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetCaps(IDirectPlay8Server *iface, DPN_CAPS *pdpCaps, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %d)\n", This, pdpCaps, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_SetCaps(IDirectPlay8Server *iface, const DPN_CAPS *pdpCaps, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %d)\n", This, pdpCaps, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_SetSPCaps(IDirectPlay8Server *iface, const GUID *pguidSP, const DPN_SP_CAPS *pdpspCaps, DWORD dwFlags )
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %d)\n", This, pguidSP, pdpspCaps, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetSPCaps(IDirectPlay8Server *iface, const GUID *pguidSP, DPN_SP_CAPS *pdpspCaps, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%p %p %d)\n", This, pguidSP, pdpspCaps, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_GetConnectionInfo(IDirectPlay8Server *iface, DPNID dpnid,
+ DPN_CONNECTION_INFO *pdpConnectionInfo, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %d)\n", This, dpnid, pdpConnectionInfo, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirectPlay8ServerImpl_RegisterLobby(IDirectPlay8Server *iface, DPNHANDLE dpnHandle,
+ struct IDirectPlay8LobbiedApplication *pIDP8LobbiedApplication, DWORD dwFlags)
+{
+ IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
+ FIXME("(%p)->(%d %p %d)\n", This, dpnHandle, pIDP8LobbiedApplication, dwFlags);
+ return E_NOTIMPL;
+}
+
+static const IDirectPlay8ServerVtbl DirectPlay8ServerVtbl =
+{
+ IDirectPlay8ServerImpl_QueryInterface,
+ IDirectPlay8ServerImpl_AddRef,
+ IDirectPlay8ServerImpl_Release,
+ IDirectPlay8ServerImpl_Initialize,
+ IDirectPlay8ServerImpl_EnumServiceProviders,
+ IDirectPlay8ServerImpl_CancelAsyncOperation,
+ IDirectPlay8ServerImpl_GetSendQueueInfo,
+ IDirectPlay8ServerImpl_GetApplicationDesc,
+ IDirectPlay8ServerImpl_SetServerInfo,
+ IDirectPlay8ServerImpl_GetClientInfo,
+ IDirectPlay8ServerImpl_GetClientAddress,
+ IDirectPlay8ServerImpl_GetLocalHostAddresses,
+ IDirectPlay8ServerImpl_SetApplicationDesc,
+ IDirectPlay8ServerImpl_Host,
+ IDirectPlay8ServerImpl_SendTo,
+ IDirectPlay8ServerImpl_CreateGroup,
+ IDirectPlay8ServerImpl_DestroyGroup,
+ IDirectPlay8ServerImpl_AddPlayerToGroup,
+ IDirectPlay8ServerImpl_RemovePlayerFromGroup,
+ IDirectPlay8ServerImpl_SetGroupInfo,
+ IDirectPlay8ServerImpl_GetGroupInfo,
+ IDirectPlay8ServerImpl_EnumPlayersAndGroups,
+ IDirectPlay8ServerImpl_EnumGroupMembers,
+ IDirectPlay8ServerImpl_Close,
+ IDirectPlay8ServerImpl_DestroyClient,
+ IDirectPlay8ServerImpl_ReturnBuffer,
+ IDirectPlay8ServerImpl_GetPlayerContext,
+ IDirectPlay8ServerImpl_GetGroupContext,
+ IDirectPlay8ServerImpl_GetCaps,
+ IDirectPlay8ServerImpl_SetCaps,
+ IDirectPlay8ServerImpl_SetSPCaps,
+ IDirectPlay8ServerImpl_GetSPCaps,
+ IDirectPlay8ServerImpl_GetConnectionInfo,
+ IDirectPlay8ServerImpl_RegisterLobby
+};
+
+HRESULT DPNET_CreateDirectPlay8Server(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj)
+{
+ IDirectPlay8ServerImpl *server;
+
+ TRACE("(%p, %s, %p)\n", punkOuter, debugstr_guid(riid), ppobj);
+
+ server = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectPlay8ServerImpl));
+ if (!server)
+ {
+ *ppobj = NULL;
+ return E_OUTOFMEMORY;
+ }
+ server->IDirectPlay8Server_iface.lpVtbl = &DirectPlay8ServerVtbl;
+ server->ref = 1;
+
+ *ppobj = (LPVOID*)&server->IDirectPlay8Server_iface;
+
+ return S_OK;
}
--
1.8.3.2
More information about the wine-patches
mailing list