114 FIXME(
"(%p)->(%p,%p%p,0x%08x,0x%08x): stub\n",
115 This, lpSection,
lpKey, lpData, dwDataSize, dwMaxEntries );
121 REFGUID guidDataType,
const void *lpData,
DWORD dwDataSize,
void *lpAddress,
122 DWORD *lpdwAddressSize )
126 FIXME(
"(%p)->(%s,%s,%p,0x%08x,%p,%p): stub\n",
128 lpData, dwDataSize, lpAddress, lpdwAddressSize );
139 TRACE(
"(%p)->(%p,%p,0x%08x,%p)\n",
140 This, lpEnumAddressCallback, lpAddress, dwAddressSize, lpContext );
142 DPL_EnumAddress( lpEnumAddressCallback, lpAddress, dwAddressSize, lpContext );
154 FIXME(
"(%p)->(%p,%p,%p,%p): stub\n",
155 This, lpSection,
lpKey, lpEnumMRUCallback, lpContext );
161 DWORD *lpdwPlayerFlags )
165 FIXME(
"(%p)->(0x%08x,%p): stub\n",
166 This, idPlayer, lpdwPlayerFlags );
178 TRACE(
"(%p)->(0x%08x,%p,%p,0x%08x)\n",
201 if( *lplpData ==
NULL )
210 DWORD dwMessageBodySize,
void *lpMessageHeader )
219 FIXME(
"(%p)->(%p,0x%08x,%p): mostly stub\n",
220 This, lpMessageBody, dwMessageBodySize, lpMessageHeader );
225 TRACE(
"Incoming message has envelope of 0x%08x, %u, %u\n",
226 lpMsg->
dwMagic, wCommandId, wVersion );
230 ERR(
"Unknown magic 0x%08x!\n", lpMsg->
dwMagic );
236 const LPDWORD lpcHeader = lpMessageHeader;
238 TRACE(
"lpMessageHeader = [0x%08lx] [0x%08lx] [0x%08lx] [0x%08lx] [0x%08lx]\n",
239 lpcHeader[0], lpcHeader[1], lpcHeader[2], lpcHeader[3], lpcHeader[4] );
245 data.dwMessageSize = 0;
249 wCommandId, wVersion, &
data.lpMessage, &
data.dwMessageSize );
259 data.lpSPMessageHeader = lpMessageHeader;
260 data.idNameServer = 0;
263 hr =
This->dplay->dp2->spData.lpCB->Reply( &
data );
281 switch( lpMsg->dwType )
290 &
msg->dpnName, 0,
msg->lpData,
291 msg->dwDataSize,
msg->dwFlags, ... );
299 &
msg->dpnName, 0,
msg->lpData,
300 msg->dwDataSize,
msg->dwFlags, ... );
305 &
msg->dpnName, 0,
msg->lpData,
306 msg->dwDataSize,
msg->dwFlags, ... );
311 ERR(
"Corrupt msg->dwPlayerType for DPSYS_CREATEPLAYERORGROUP\n" );
332 ERR(
"Corrupt msg->dwPlayerType for DPSYS_DESTROYPLAYERORGROUP\n" );
343 hr = DP_IF_AddPlayerToGroup(
This,
msg->dpIdGroup,
msg->dpIdPlayer, ... );
351 hr = DP_IF_DeletePlayerFromGroup(
This,
msg->dpIdGroup,
msg->dpIdPlayer,
361 FIXME(
"DPSYS_SESSIONLOST not handled\n" );
370 FIXME(
"DPSYS_HOST not handled\n" );
385 hr = DP_IF_SetGroupData(
This,
msg->dpId,
msg->lpData,
msg->dwDataSize,
390 ERR(
"Corrupt msg->dwPlayerType for LPDPMSG_SETPLAYERORGROUPDATA\n" );
411 ERR(
"Corrupt msg->dwPlayerType for LPDPMSG_SETPLAYERORGROUPDATA\n" );
422 hr = DP_IF_SetSessionDesc(
This, &
msg->dpDesc );
431 hr = DP_IF_AddGroupToGroup(
This,
msg->dpIdParentGroup,
msg->dpIdGroup,
441 hr = DP_IF_DeleteGroupFromGroup(
This,
msg->dpIdParentGroup,
442 msg->dpIdGroup, ... );
451 FIXME(
"DPSYS_SECUREMESSAGE not implemented\n" );
460 FIXME(
"DPSYS_STARTSESSION not implemented\n" );
469 FIXME(
"DPSYS_CHAT not implemented\n" );
478 FIXME(
"DPSYS_SETGROUPOWNER not implemented\n" );
487 FIXME(
"DPSYS_SENDCOMPLETE not implemented\n" );
497 TRACE(
"Received user message type(?) 0x%08lx through SP.\n",
503 FIXME(
"Queue message in the receive queue. Need some context data!\n" );
507 ERR(
"Unable to perform action for msg type 0x%08lx\n", lpMsg->dwType );
525 TRACE(
"(%p)->(0x%08x,%p,0x%08x,0x%08x)\n",
This, idPlayer, lpData, dwDataSize,
dwFlags );
555 DWORD *lpdwAddressSize )
559 FIXME(
"(%p)->(%p,0x%08x,%p,%p): stub\n",
560 This, lpElements, dwElementCount, lpAddress, lpdwAddressSize );
595 *lpdwDataSize =
This->remote_data_size;
596 *lplpData =
This->remote_data;
598 if( !
This->remote_data )
603 *lpdwDataSize =
This->local_data_size;
604 *lplpData =
This->local_data;
606 if( !
This->local_data )
645 This->remote_data_size = dwDataSize;
646 This->remote_data = lpSpData;
651 This->local_data = lpSpData;
652 This->local_data_size = dwDataSize;
663 FIXME(
"(%p)->(%p,0x%08x): stub\n",
664 This, unknownA, unknownB );
713 TRACE(
"Creating SPPlayer data struct\n" );
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define HeapFree(x, y, z)
static HRESULT DP_IF_DestroyPlayer(IDirectPlayImpl *This, void *lpMsgHdr, DPID idPlayer, BOOL bAnsi)
HRESULT DP_SetSPPlayerData(IDirectPlayImpl *lpDP, DPID idPlayer, void *lpData)
static HRESULT DP_IF_CreateGroup(IDirectPlayImpl *This, void *lpMsgHdr, DPID *lpidGroup, DPNAME *lpGroupName, void *lpData, DWORD dwDataSize, DWORD dwFlags, BOOL bAnsi)
HRESULT DP_HandleMessage(IDirectPlayImpl *This, const void *lpcMessageBody, DWORD dwMessageBodySize, const void *lpcMessageHeader, WORD wCommandId, WORD wVersion, void **lplpReply, DWORD *lpdwMsgSize)
static HRESULT DP_IF_CreateGroupInGroup(IDirectPlayImpl *This, void *lpMsgHdr, DPID idParentGroup, DPID *lpidGroup, DPNAME *lpGroupName, void *lpData, DWORD dwDataSize, DWORD dwFlags, BOOL bAnsi)
static HRESULT DP_IF_SetPlayerName(IDirectPlayImpl *This, DPID idPlayer, DPNAME *lpPlayerName, DWORD dwFlags, BOOL bAnsi)
static HRESULT DP_IF_CreatePlayer(IDirectPlayImpl *This, void *lpMsgHdr, DPID *lpidPlayer, DPNAME *lpPlayerName, HANDLE hEvent, void *lpData, DWORD dwDataSize, DWORD dwFlags, BOOL bAnsi)
static HRESULT DP_IF_DestroyGroup(IDirectPlayImpl *This, void *lpMsgHdr, DPID idGroup, BOOL bAnsi)
#define DPID_NOPARENT_GROUP
static HRESULT DP_IF_SetGroupName(IDirectPlayImpl *This, DPID idGroup, DPNAME *lpGroupName, DWORD dwFlags, BOOL bAnsi)
HRESULT DP_GetSPPlayerData(IDirectPlayImpl *lpDP, DPID idPlayer, void **lplpData)
#define DPPLAYERTYPE_PLAYER
#define DPSYS_SETSESSIONDESC
#define DPSYS_DESTROYPLAYERORGROUP
#define DPSYS_SECUREMESSAGE
#define DPSYS_SENDCOMPLETE
#define DPSYS_SETGROUPOWNER
#define DPPLAYERTYPE_GROUP
#define DPSYS_SETPLAYERORGROUPDATA
#define DPSYS_ADDGROUPTOGROUP
#define DPSYS_DELETEPLAYERFROMGROUP
#define DPERR_INVALIDPLAYER
#define DPSYS_DELETEGROUPFROMGROUP
#define DPERR_INVALIDPARAMS
#define DPSYS_CREATEPLAYERORGROUP
#define DPERR_OUTOFMEMORY
#define DPSYS_SESSIONLOST
#define DPSYS_SETPLAYERORGROUPNAME
#define DPSYS_ADDPLAYERTOGROUP
#define DPSYS_STARTSESSION
struct PlayerData * lpPlayerData
HRESULT DPL_EnumAddress(LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, LPCVOID lpAddress, DWORD dwAddressSize, LPVOID lpContext) DECLSPEC_HIDDEN
static void WINAPI IDirectPlaySPImpl_SendComplete(IDirectPlaySP *iface, void *unknownA, DWORD unknownB)
static IDirectPlaySPImpl * impl_from_IDirectPlaySP(IDirectPlaySP *iface)
LPVOID DPSP_CreateSPPlayerData(void)
static HRESULT WINAPI IDirectPlaySPImpl_GetSPData(IDirectPlaySP *iface, void **lplpData, DWORD *lpdwDataSize, DWORD dwFlags)
static HRESULT WINAPI IDirectPlaySPImpl_HandleMessage(IDirectPlaySP *iface, void *lpMessageBody, DWORD dwMessageBodySize, void *lpMessageHeader)
static HRESULT WINAPI IDirectPlaySPImpl_CreateCompoundAddress(IDirectPlaySP *iface, const DPCOMPOUNDADDRESSELEMENT *lpElements, DWORD dwElementCount, void *lpAddress, DWORD *lpdwAddressSize)
static HRESULT WINAPI IDirectPlaySPImpl_GetPlayerFlags(IDirectPlaySP *iface, DPID idPlayer, DWORD *lpdwPlayerFlags)
static ULONG WINAPI IDirectPlaySPImpl_AddRef(IDirectPlaySP *iface)
static ULONG WINAPI IDirectPlaySPImpl_Release(IDirectPlaySP *iface)
struct tagDP_SPPLAYERDATA * LPDP_SPPLAYERDATA
static HRESULT WINAPI IDirectPlaySPImpl_EnumMRUEntries(IDirectPlaySP *iface, LPCWSTR lpSection, LPCWSTR lpKey, LPENUMMRUCALLBACK lpEnumMRUCallback, void *lpContext)
static HRESULT WINAPI IDirectPlaySPImpl_SetSPPlayerData(IDirectPlaySP *iface, DPID idPlayer, void *lpData, DWORD dwDataSize, DWORD dwFlags)
static HRESULT WINAPI IDirectPlaySPImpl_QueryInterface(IDirectPlaySP *iface, REFIID riid, void **ppv)
static const IDirectPlaySPVtbl directPlaySPVT
static HRESULT WINAPI IDirectPlaySPImpl_EnumAddress(IDirectPlaySP *iface, LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, const void *lpAddress, DWORD dwAddressSize, void *lpContext)
HRESULT dplaysp_create(REFIID riid, void **ppv, IDirectPlayImpl *dp)
static HRESULT WINAPI IDirectPlaySPImpl_CreateAddress(IDirectPlaySP *iface, REFGUID guidSP, REFGUID guidDataType, const void *lpData, DWORD dwDataSize, void *lpAddress, DWORD *lpdwAddressSize)
struct tagDP_SPPLAYERDATA DP_SPPLAYERDATA
static HRESULT WINAPI IDirectPlaySPImpl_SetSPData(IDirectPlaySP *iface, void *lpData, DWORD dwDataSize, DWORD dwFlags)
static HRESULT WINAPI IDirectPlaySPImpl_AddMRUEntry(IDirectPlaySP *iface, LPCWSTR lpSection, LPCWSTR lpKey, const void *lpData, DWORD dwDataSize, DWORD dwMaxEntries)
static HRESULT WINAPI IDirectPlaySPImpl_GetSPPlayerData(IDirectPlaySP *iface, DPID idPlayer, void **lplpData, DWORD *lpdwDataSize, DWORD dwFlags)
#define IDirectPlaySP_QueryInterface(p, a, b)
BOOL(CALLBACK * LPENUMMRUCALLBACK)(LPCVOID lpData, DWORD dwDataSize, LPVOID lpContext)
#define IDirectPlaySP_Release(p)
#define IDirectPlaySP_AddRef(p)
LPCSTR DPLAYX_HresultToString(HRESULT hr)
#define DPMSGMAGIC_DPLAYMSG
BOOL(CALLBACK * LPDPENUMADDRESSCALLBACK)(REFGUID guidDataType, DWORD dwDataSize, LPCVOID lpData, LPVOID lpContext)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define IsEqualGUID(rguid1, rguid2)
IDirectPlaySP IDirectPlaySP_iface
DWORD dwPlayerRemoteDataSize
DWORD dwPlayerLocalDataSize
LPVOID lpPlayerRemoteData
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define CONTAINING_RECORD(address, type, field)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags