4 * Copyright 2004 Raphael Junqueira
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32 #include "wine/debug.h"
35 #include "dpnet_private.h"
37 WINE_DEFAULT_DEBUG_CHANNEL(dpnet
);
39 /* IDirectPlay8Client IUnknown parts follow: */
40 HRESULT WINAPI
IDirectPlay8ClientImpl_QueryInterface(PDIRECTPLAY8CLIENT iface
, REFIID riid
, LPVOID
*ppobj
)
42 ICOM_THIS(IDirectPlay8ClientImpl
,iface
);
44 if (IsEqualGUID(riid
, &IID_IUnknown
)
45 || IsEqualGUID(riid
, &IID_IDirectPlay8Client
)) {
46 IDirectPlay8ClientImpl_AddRef(iface
);
51 WARN("(%p)->(%s,%p),not found\n",This
,debugstr_guid(riid
),ppobj
);
55 ULONG WINAPI
IDirectPlay8ClientImpl_AddRef(PDIRECTPLAY8CLIENT iface
) {
56 ICOM_THIS(IDirectPlay8ClientImpl
,iface
);
57 TRACE("(%p) : AddRef from %ld\n", This
, This
->ref
);
61 ULONG WINAPI
IDirectPlay8ClientImpl_Release(PDIRECTPLAY8CLIENT iface
) {
62 ICOM_THIS(IDirectPlay8ClientImpl
,iface
);
63 ULONG ref
= --This
->ref
;
64 TRACE("(%p) : ReleaseRef to %ld\n", This
, This
->ref
);
66 HeapFree(GetProcessHeap(), 0, This
);
71 /* IDirectPlay8Client Interface follow: */
73 HRESULT WINAPI
IDirectPlay8ClientImpl_Initialize(PDIRECTPLAY8CLIENT iface
, PVOID CONST pvUserContext
, CONST PFNDPNMESSAGEHANDLER pfn
, CONST DWORD dwFlags
) { return DPN_OK
; }
74 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
; }
75 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
; }
76 HRESULT WINAPI
IDirectPlay8ClientImpl_CancelAsyncOperation(PDIRECTPLAY8CLIENT iface
, CONST DPNHANDLE hAsyncHandle
, CONST DWORD dwFlags
) { return DPN_OK
; }
77 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
; }
78 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
; }
79 HRESULT WINAPI
IDirectPlay8ClientImpl_GetSendQueueInfo(PDIRECTPLAY8CLIENT iface
, DWORD
* CONST pdwNumMsgs
, DWORD
* CONST pdwNumBytes
, CONST DWORD dwFlags
) { return DPN_OK
; }
80 HRESULT WINAPI
IDirectPlay8ClientImpl_GetApplicationDesc(PDIRECTPLAY8CLIENT iface
, DPN_APPLICATION_DESC
* CONST pAppDescBuffer
, DWORD
* CONST pcbDataSize
, CONST DWORD dwFlags
) { return DPN_OK
; }
81 HRESULT WINAPI
IDirectPlay8ClientImpl_SetClientInfo(PDIRECTPLAY8CLIENT iface
, CONST DPN_PLAYER_INFO
* CONST pdpnPlayerInfo
, PVOID CONST pvAsyncContext
, DPNHANDLE
* CONST phAsyncHandle
, CONST DWORD dwFlags
) { return DPN_OK
; }
82 HRESULT WINAPI
IDirectPlay8ClientImpl_GetServerInfo(PDIRECTPLAY8CLIENT iface
, DPN_PLAYER_INFO
* CONST pdpnPlayerInfo
, DWORD
* CONST pdwSize
, CONST DWORD dwFlags
) { return DPN_OK
; }
83 HRESULT WINAPI
IDirectPlay8ClientImpl_GetServerAddress(PDIRECTPLAY8CLIENT iface
, IDirectPlay8Address
** CONST pAddress
, CONST DWORD dwFlags
) { return DPN_OK
; }
84 HRESULT WINAPI
IDirectPlay8ClientImpl_Close(PDIRECTPLAY8CLIENT iface
, CONST DWORD dwFlags
) { return DPN_OK
; }
85 HRESULT WINAPI
IDirectPlay8ClientImpl_ReturnBuffer(PDIRECTPLAY8CLIENT iface
, CONST DPNHANDLE hBufferHandle
, CONST DWORD dwFlags
) { return DPN_OK
; }
86 HRESULT WINAPI
IDirectPlay8ClientImpl_GetCaps(PDIRECTPLAY8CLIENT iface
, DPN_CAPS
* CONST pdpCaps
, CONST DWORD dwFlags
) { return DPN_OK
; }
87 HRESULT WINAPI
IDirectPlay8ClientImpl_SetCaps(PDIRECTPLAY8CLIENT iface
, CONST DPN_CAPS
* CONST pdpCaps
, CONST DWORD dwFlags
) { return DPN_OK
; }
88 HRESULT WINAPI
IDirectPlay8ClientImpl_SetSPCaps(PDIRECTPLAY8CLIENT iface
, CONST GUID
* CONST pguidSP
, CONST DPN_SP_CAPS
* CONST pdpspCaps
, CONST DWORD dwFlags
) { return DPN_OK
; }
89 HRESULT WINAPI
IDirectPlay8ClientImpl_GetSPCaps(PDIRECTPLAY8CLIENT iface
, CONST GUID
* CONST pguidSP
, DPN_SP_CAPS
* CONST pdpspCaps
, CONST DWORD dwFlags
) { return DPN_OK
; }
90 HRESULT WINAPI
IDirectPlay8ClientImpl_GetConnectionInfo(PDIRECTPLAY8CLIENT iface
, DPN_CONNECTION_INFO
* CONST pdpConnectionInfo
, CONST DWORD dwFlags
) { return DPN_OK
; }
91 HRESULT WINAPI
IDirectPlay8ClientImpl_RegisterLobby(PDIRECTPLAY8CLIENT iface
, CONST DPNHANDLE dpnHandle
, struct IDirectPlay8LobbiedApplication
* CONST pIDP8LobbiedApplication
, CONST DWORD dwFlags
) { return DPN_OK
; }
94 ICOM_VTABLE(IDirectPlay8Client
) DirectPlay8Client_Vtbl
=
96 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
97 IDirectPlay8ClientImpl_QueryInterface
,
98 IDirectPlay8ClientImpl_AddRef
,
99 IDirectPlay8ClientImpl_Release
,
100 IDirectPlay8ClientImpl_Initialize
,
101 IDirectPlay8ClientImpl_EnumServiceProviders
,
102 IDirectPlay8ClientImpl_EnumHosts
,
103 IDirectPlay8ClientImpl_CancelAsyncOperation
,
104 IDirectPlay8ClientImpl_Connect
,
105 IDirectPlay8ClientImpl_Send
,
106 IDirectPlay8ClientImpl_GetSendQueueInfo
,
107 IDirectPlay8ClientImpl_GetApplicationDesc
,
108 IDirectPlay8ClientImpl_SetClientInfo
,
109 IDirectPlay8ClientImpl_GetServerInfo
,
110 IDirectPlay8ClientImpl_GetServerAddress
,
111 IDirectPlay8ClientImpl_Close
,
112 IDirectPlay8ClientImpl_ReturnBuffer
,
113 IDirectPlay8ClientImpl_GetCaps
,
114 IDirectPlay8ClientImpl_SetCaps
,
115 IDirectPlay8ClientImpl_SetSPCaps
,
116 IDirectPlay8ClientImpl_GetSPCaps
,
117 IDirectPlay8ClientImpl_GetConnectionInfo
,
118 IDirectPlay8ClientImpl_RegisterLobby
121 HRESULT
DPNET_CreateDirectPlay8Client(LPCLASSFACTORY iface
, LPUNKNOWN punkOuter
, REFIID riid
, LPVOID
*ppobj
) {
122 IDirectPlay8ClientImpl
* client
;
124 TRACE("(%p, %s, %p)\n", punkOuter
, debugstr_guid(riid
), ppobj
);
126 client
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirectPlay8ClientImpl
));
127 if (NULL
== client
) {
129 return E_OUTOFMEMORY
;
131 client
->lpVtbl
= &DirectPlay8Client_Vtbl
;
132 client
->ref
= 0; /* will be inited with QueryInterface */
133 return IDirectPlay8ClientImpl_QueryInterface ((PDIRECTPLAY8CLIENT
)client
, riid
, ppobj
);