2 * DirectPlay8 (dpnet) private include file
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
21 #ifndef __WINE_DPNET_PRIVATE_H
22 #define __WINE_DPNET_PRIVATE_H
24 #ifndef __WINE_CONFIG_H
25 # error You must include config.h to use this header
30 *#include "dplobby8.h"
31 *#include "dplay8sp.h"
34 /* DirectPlay8 Interfaces: */
35 typedef struct IDirectPlay8ClientImpl IDirectPlay8ClientImpl
;
36 typedef struct IDirectPlay8AddressImpl IDirectPlay8AddressImpl
;
38 /* ------------------ */
39 /* IDirectPlay8Client */
40 /* ------------------ */
42 /*****************************************************************************
43 * Predeclare the interface implementation structures
45 extern IDirectPlay8ClientVtbl DirectPlay8Client_Vtbl
;
47 /*****************************************************************************
48 * IDirectPlay8Client implementation structure
50 struct IDirectPlay8ClientImpl
53 IDirectPlay8ClientVtbl
*lpVtbl
;
55 /* IDirectPlay8Client fields */
59 extern HRESULT WINAPI
IDirectPlay8ClientImpl_QueryInterface(PDIRECTPLAY8CLIENT iface
, REFIID riid
, LPVOID
*ppobj
);
60 extern ULONG WINAPI
IDirectPlay8ClientImpl_AddRef(PDIRECTPLAY8CLIENT iface
);
61 extern ULONG WINAPI
IDirectPlay8ClientImpl_Release(PDIRECTPLAY8CLIENT iface
);
63 /* IDirectPlay8Client: */
64 extern HRESULT WINAPI
IDirectPlay8ClientImpl_Initialize(PDIRECTPLAY8CLIENT iface
, PVOID CONST pvUserContext
, CONST PFNDPNMESSAGEHANDLER pfn
, CONST DWORD dwFlags
) ;
65 extern 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
) ;
66 extern 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
) ;
67 extern HRESULT WINAPI
IDirectPlay8ClientImpl_CancelAsyncOperation(PDIRECTPLAY8CLIENT iface
, CONST DPNHANDLE hAsyncHandle
, CONST DWORD dwFlags
) ;
68 extern 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
) ;
69 extern 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
) ;
70 extern HRESULT WINAPI
IDirectPlay8ClientImpl_GetSendQueueInfo(PDIRECTPLAY8CLIENT iface
, DWORD
* CONST pdwNumMsgs
, DWORD
* CONST pdwNumBytes
, CONST DWORD dwFlags
) ;
71 extern HRESULT WINAPI
IDirectPlay8ClientImpl_GetApplicationDesc(PDIRECTPLAY8CLIENT iface
, DPN_APPLICATION_DESC
* CONST pAppDescBuffer
, DWORD
* CONST pcbDataSize
, CONST DWORD dwFlags
) ;
72 extern HRESULT WINAPI
IDirectPlay8ClientImpl_SetClientInfo(PDIRECTPLAY8CLIENT iface
, CONST DPN_PLAYER_INFO
* CONST pdpnPlayerInfo
, PVOID CONST pvAsyncContext
, DPNHANDLE
* CONST phAsyncHandle
, CONST DWORD dwFlags
) ;
73 extern HRESULT WINAPI
IDirectPlay8ClientImpl_GetServerInfo(PDIRECTPLAY8CLIENT iface
, DPN_PLAYER_INFO
* CONST pdpnPlayerInfo
, DWORD
* CONST pdwSize
, CONST DWORD dwFlags
) ;
74 extern HRESULT WINAPI
IDirectPlay8ClientImpl_GetServerAddress(PDIRECTPLAY8CLIENT iface
, IDirectPlay8Address
** CONST pAddress
, CONST DWORD dwFlags
) ;
75 extern HRESULT WINAPI
IDirectPlay8ClientImpl_Close(PDIRECTPLAY8CLIENT iface
, CONST DWORD dwFlags
) ;
76 extern HRESULT WINAPI
IDirectPlay8ClientImpl_ReturnBuffer(PDIRECTPLAY8CLIENT iface
, CONST DPNHANDLE hBufferHandle
, CONST DWORD dwFlags
) ;
77 extern HRESULT WINAPI
IDirectPlay8ClientImpl_GetCaps(PDIRECTPLAY8CLIENT iface
, DPN_CAPS
* CONST pdpCaps
, CONST DWORD dwFlags
) ;
78 extern HRESULT WINAPI
IDirectPlay8ClientImpl_SetCaps(PDIRECTPLAY8CLIENT iface
, CONST DPN_CAPS
* CONST pdpCaps
, CONST DWORD dwFlags
) ;
79 extern HRESULT WINAPI
IDirectPlay8ClientImpl_SetSPCaps(PDIRECTPLAY8CLIENT iface
, CONST GUID
* CONST pguidSP
, CONST DPN_SP_CAPS
* CONST pdpspCaps
, CONST DWORD dwFlags
) ;
80 extern HRESULT WINAPI
IDirectPlay8ClientImpl_GetSPCaps(PDIRECTPLAY8CLIENT iface
, CONST GUID
* CONST pguidSP
, DPN_SP_CAPS
* CONST pdpspCaps
, CONST DWORD dwFlags
) ;
81 extern HRESULT WINAPI
IDirectPlay8ClientImpl_GetConnectionInfo(PDIRECTPLAY8CLIENT iface
, DPN_CONNECTION_INFO
* CONST pdpConnectionInfo
, CONST DWORD dwFlags
) ;
82 extern HRESULT WINAPI
IDirectPlay8ClientImpl_RegisterLobby(PDIRECTPLAY8CLIENT iface
, CONST DPNHANDLE dpnHandle
, struct IDirectPlay8LobbiedApplication
* CONST pIDP8LobbiedApplication
, CONST DWORD dwFlags
) ;
84 /* ------------------- */
85 /* IDirectPlay8Address */
86 /* ------------------- */
88 /*****************************************************************************
89 * Predeclare the interface implementation structures
91 extern IDirectPlay8AddressVtbl DirectPlay8Address_Vtbl
;
93 /*****************************************************************************
94 * IDirectPlay8Address implementation structure
96 struct IDirectPlay8AddressImpl
99 IDirectPlay8AddressVtbl
*lpVtbl
;
101 /* IDirectPlay8Address fields */
107 extern HRESULT WINAPI
IDirectPlay8AddressImpl_QueryInterface(PDIRECTPLAY8ADDRESS iface
, REFIID riid
, LPVOID
*ppobj
);
108 extern ULONG WINAPI
IDirectPlay8AddressImpl_AddRef(PDIRECTPLAY8ADDRESS iface
);
109 extern ULONG WINAPI
IDirectPlay8AddressImpl_Release(PDIRECTPLAY8ADDRESS iface
);
111 /* IDirectPlay8Address: */
118 extern HRESULT
DPNET_CreateDirectPlay8Client(LPCLASSFACTORY iface
, LPUNKNOWN punkOuter
, REFIID riid
, LPVOID
*ppobj
);
119 extern HRESULT
DPNET_CreateDirectPlay8Server(LPCLASSFACTORY iface
, LPUNKNOWN punkOuter
, REFIID riid
, LPVOID
*ppobj
);
120 extern HRESULT
DPNET_CreateDirectPlay8Peer(LPCLASSFACTORY iface
, LPUNKNOWN punkOuter
, REFIID riid
, LPVOID
*ppobj
);
121 extern HRESULT
DPNET_CreateDirectPlay8Address(LPCLASSFACTORY iface
, LPUNKNOWN punkOuter
, REFIID riid
, LPVOID
*ppobj
);
126 extern const char *debugstr_SP(const GUID
*id
);
128 /* used for generic dumping (copied from ddraw) */
139 #define FE(x) { x, #x }
140 #define GE(x) { &x, #x }