211{
218
219 TRACE(
"(%p)->(%p,0x%08lx,%p)\n",
220 This, lpMessageBody, dwMessageBodySize, lpMessageHeader );
221
224
226 {
230 }
231
234
235 TRACE(
"Incoming message has envelope of 0x%08lx, %u, %u\n",
236 lpMsg->
dwMagic, wCommandId, wVersion );
237
239 {
240 ERR(
"Unknown magic 0x%08lx!\n", lpMsg->
dwMagic );
242 }
243
244#if 0
245 {
246 const LPDWORD lpcHeader = lpMessageHeader;
247
248 TRACE(
"lpMessageHeader = [0x%08lx] [0x%08lx] [0x%08lx] [0x%08lx] [0x%08lx]\n",
249 lpcHeader[0], lpcHeader[1], lpcHeader[2], lpcHeader[3], lpcHeader[4] );
250 }
251#endif
252
253
255 data.dwMessageSize = 0;
256
257
259 wCommandId, wVersion, &
data.lpMessage, &
data.dwMessageSize );
260
262 {
264 }
265
266
268 {
269 data.lpSPMessageHeader = lpMessageHeader;
270 data.idNameServer = 0;
272
273 hr =
This->dplay->dp2->spData.lpCB->Reply( &
data );
274
276 {
278 }
279 }
280
282
283#if 0
286
287
288
289
290
291 switch( lpMsg->dwType )
292 {
294 {
296
298 {
300 &
msg->dpnName, 0,
msg->lpData,
301 msg->dwDataSize,
msg->dwFlags, ... );
302 }
304 {
305
307 {
309 &
msg->dpnName, 0,
msg->lpData,
310 msg->dwDataSize,
msg->dwFlags, ... );
311 }
312 else
313 {
315 &
msg->dpnName, 0,
msg->lpData,
316 msg->dwDataSize,
msg->dwFlags, ... );
317 }
318 }
319 else
320 {
321 ERR(
"Corrupt msg->dwPlayerType for DPSYS_CREATEPLAYERORGROUP\n" );
322 return;
323 }
324
325 break;
326 }
327
329 {
331
333 {
335 }
337 {
339 }
340 else
341 {
342 ERR(
"Corrupt msg->dwPlayerType for DPSYS_DESTROYPLAYERORGROUP\n" );
343 return;
344 }
345
346 break;
347 }
348
350 {
352
353 hr = DP_IF_AddPlayerToGroup(
This,
msg->dpIdGroup,
msg->dpIdPlayer, ... );
354 break;
355 }
356
358 {
360
361 hr = DP_IF_DeletePlayerFromGroup(
This,
msg->dpIdGroup,
msg->dpIdPlayer,
362 ... );
363
364 break;
365 }
366
368 {
370
371 FIXME(
"DPSYS_SESSIONLOST not handled\n" );
372
373 break;
374 }
375
377 {
379
380 FIXME(
"DPSYS_HOST not handled\n" );
381
382 break;
383 }
384
386 {
388
390 {
392 }
394 {
395 hr = DP_IF_SetGroupData(
This,
msg->dpId,
msg->lpData,
msg->dwDataSize,
397 }
398 else
399 {
400 ERR(
"Corrupt msg->dwPlayerType for LPDPMSG_SETPLAYERORGROUPDATA\n" );
401 return;
402 }
403
404 break;
405 }
406
408 {
410
412 {
414 }
416 {
418 }
419 else
420 {
421 ERR(
"Corrupt msg->dwPlayerType for LPDPMSG_SETPLAYERORGROUPDATA\n" );
422 return;
423 }
424
425 break;
426 }
427
429 {
431
432 hr = DP_IF_SetSessionDesc(
This, &
msg->dpDesc );
433
434 break;
435 }
436
438 {
440
441 hr = DP_IF_AddGroupToGroup(
This,
msg->dpIdParentGroup,
msg->dpIdGroup,
442 ... );
443
444 break;
445 }
446
448 {
450
451 hr = DP_IF_DeleteGroupFromGroup(
This,
msg->dpIdParentGroup,
452 msg->dpIdGroup, ... );
453
454 break;
455 }
456
458 {
460
461 FIXME(
"DPSYS_SECUREMESSAGE not implemented\n" );
462
463 break;
464 }
465
467 {
469
470 FIXME(
"DPSYS_STARTSESSION not implemented\n" );
471
472 break;
473 }
474
476 {
478
479 FIXME(
"DPSYS_CHAT not implemented\n" );
480
481 break;
482 }
483
485 {
487
488 FIXME(
"DPSYS_SETGROUPOWNER not implemented\n" );
489
490 break;
491 }
492
494 {
496
497 FIXME(
"DPSYS_SENDCOMPLETE not implemented\n" );
498
499 break;
500 }
501
502 default:
503 {
504
505
506
507 TRACE(
"Received user message type(?) 0x%08lx through SP.\n",
508 lpMsg->dwType );
509 break;
510 }
511 }
512
513 FIXME(
"Queue message in the receive queue. Need some context data!\n" );
514
516 {
517 ERR(
"Unable to perform action for msg type 0x%08lx\n", lpMsg->dwType );
518 }
519
520 if( hReceiveEvent )
521 {
523 }
524#endif
525}
static HRESULT DP_IF_DestroyPlayer(IDirectPlayImpl *This, void *lpMsgHdr, DPID idPlayer, BOOL bAnsi)
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, void *messageBody, DWORD dwMessageBodySize, void *messageHeader, 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, 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_HandleGameMessage(IDirectPlayImpl *This, void *messageBody, DWORD messageBodySize, DPID fromId, DPID toId)
#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 DPSYS_DELETEGROUPFROMGROUP
#define DPSYS_CREATEPLAYERORGROUP
#define DPSYS_SESSIONLOST
#define DPSYS_SETPLAYERORGROUPNAME
#define DPSYS_ADDPLAYERTOGROUP
#define DPSYS_STARTSESSION
#define DPMSGMAGIC_DPLAYMSG
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)