Small spelling/punctuation fixes.
[wine/wine64.git] / dlls / dplayx / lobbysp.h
blob74fbd239dd4c0f750338f635c35bb5f1f0a774d1
1 /*
2 * Copyright 2001 Peter Hunnisett
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef __WINE_LOBBY_SP_H
20 #define __WINE_LOBBY_SP_H
22 #include "dplobby.h"
24 /* GUID for IDPLobbySP {5A4E5A20-2CED-11d0-A889-00A0C905433C} */
25 DEFINE_GUID(IID_IDPLobbySP, 0x5a4e5a20, 0x2ced, 0x11d0, 0xa8, 0x89, 0x0, 0xa0, 0xc9, 0x5, 0x43, 0x3c);
26 typedef struct IDPLobbySP IDPLobbySP, *LPDPLOBBYSP;
28 /* For SP. Top 16 bits is dplay, bottom 16 is SP */
29 #define DPLSP_MAJORVERSION 0x00050000
31 typedef struct SPDATA_ADDGROUPTOGROUP
33 DWORD dwSize;
34 LPDPLOBBYSP lpISP;
35 DWORD dwParentID;
36 DWORD dwGroupID;
37 } SPDATA_ADDGROUPTOGROUP, *LPSPDATA_ADDGROUPTOGROUP;
39 typedef struct SPDATA_ADDPLAYERTOGROUP
41 DWORD dwSize;
42 LPDPLOBBYSP lpISP;
43 DWORD dwGroupID;
44 DWORD dwPlayerID;
45 } SPDATA_ADDPLAYERTOGROUP, *LPSPDATA_ADDPLAYERTOGROUP;
47 typedef struct SPDATA_ADDREMOTEGROUPTOGROUP
49 DWORD dwSize;
50 LPDPLOBBYSP lpISP;
51 DWORD dwAnchorID;
52 DWORD dwGroupID;
53 DWORD dwParentID;
54 LPDPNAME lpName;
55 DWORD dwGroupFlags;
56 } SPDATA_ADDREMOTEGROUPTOGROUP, *LPSPDATA_ADDREMOTEGROUPTOGROUP;
58 typedef struct SPDATA_ADDREMOTEPLAYERTOGROUP
60 DWORD dwSize;
61 LPDPLOBBYSP lpISP;
62 DWORD dwGroupID;
63 DWORD dwPlayerID;
64 DWORD dwPlayerFlags;
65 LPDPNAME lpName;
66 } SPDATA_ADDREMOTEPLAYERTOGROUP, *LPSPDATA_ADDREMOTEPLAYERTOGROUP;
68 typedef struct SPDATA_BUILDPARENTALHEIRARCHY
70 DWORD dwSize;
71 LPDPLOBBYSP lpISP;
72 DWORD dwGroupID;
73 DWORD dwMessage;
74 DWORD dwParentID;
75 } SPDATA_BUILDPARENTALHEIRARCHY, *LPSPDATA_BUILDPARENTALHEIRARCHY;
77 typedef struct SPDATA_CLOSE
79 DWORD dwSize;
80 LPDPLOBBYSP lpISP;
81 } SPDATA_CLOSE, *LPSPDATA_CLOSE;
83 typedef struct SPDATA_CREATEGROUP
85 DWORD dwSize;
86 LPDPLOBBYSP lpISP;
87 DWORD dwGroupID;
88 LPDPNAME lpName;
89 LPVOID lpData;
90 DWORD dwDataSize;
91 DWORD dwFlags;
92 } SPDATA_CREATEGROUP, *LPSPDATA_CREATEGROUP;
94 typedef struct SPDATA_CREATEGROUPINGROUP
96 DWORD dwSize;
97 LPDPLOBBYSP lpISP;
98 DWORD dwParentID;
99 DWORD dwGroupID;
100 LPDPNAME lpName;
101 LPVOID lpData;
102 DWORD dwDataSize;
103 DWORD dwFlags;
104 } SPDATA_CREATEGROUPINGROUP, *LPSPDATA_CREATEGROUPINGROUP;
106 typedef struct SPDATA_CREATEREMOTEGROUP
108 DWORD dwSize;
109 LPDPLOBBYSP lpISP;
110 DWORD dwGroupID;
111 LPDPNAME lpName;
112 LPVOID lpData;
113 DWORD dwDataSize;
114 DWORD dwFlags;
115 } SPDATA_CREATEREMOTEGROUP, *LPSPDATA_CREATEREMOTEGROUP;
117 typedef struct SPDATA_CREATEREMOTEGROUPINGROUP
119 DWORD dwSize;
120 LPDPLOBBYSP lpISP;
121 DWORD dwParentID;
122 DWORD dwGroupID;
123 LPDPNAME lpName;
124 DWORD dwFlags;
125 } SPDATA_CREATEREMOTEGROUPINGROUP, *LPSPDATA_CREATEREMOTEGROUPINGROUP;
127 typedef struct SPDATA_CREATEPLAYER
129 DWORD dwSize;
130 LPDPLOBBYSP lpISP;
131 DWORD dwPlayerID;
132 LPDPNAME lpName;
133 LPVOID lpData;
134 DWORD dwDataSize;
135 DWORD dwFlags;
136 } SPDATA_CREATEPLAYER, *LPSPDATA_CREATEPLAYER;
138 typedef struct SPDATA_DELETEGROUPFROMGROUP
140 DWORD dwSize;
141 LPDPLOBBYSP lpISP;
142 DWORD dwParentID;
143 DWORD dwGroupID;
144 } SPDATA_DELETEGROUPFROMGROUP, *LPSPDATA_DELETEGROUPFROMGROUP;
146 typedef struct SPDATA_DELETEPLAYERFROMGROUP
148 DWORD dwSize;
149 LPDPLOBBYSP lpISP;
150 DWORD dwGroupID;
151 DWORD dwPlayerID;
152 } SPDATA_DELETEPLAYERFROMGROUP, *LPSPDATA_DELETEPLAYERFROMGROUP;
154 typedef struct SPDATA_DELETEREMOTEGROUPFROMGROUP
156 DWORD dwSize;
157 LPDPLOBBYSP lpISP;
158 DWORD dwParentID;
159 DWORD dwGroupID;
160 } SPDATA_DELETEREMOTEGROUPFROMGROUP, *LPSPDATA_DELETEREMOTEGROUPFROMGROUP;
162 typedef struct SPDATA_DELETEREMOTEPLAYERFROMGROUP
164 DWORD dwSize;
165 LPDPLOBBYSP lpISP;
166 DWORD dwGroupID;
167 DWORD dwPlayerID;
168 } SPDATA_DELETEREMOTEPLAYERFROMGROUP, *LPSPDATA_DELETEREMOTEPLAYERFROMGROUP;
170 typedef struct SPDATA_DESTROYGROUP
172 DWORD dwSize;
173 LPDPLOBBYSP lpISP;
174 DWORD dwGroupID;
175 } SPDATA_DESTROYGROUP, *LPSPDATA_DESTROYGROUP;
177 typedef struct SPDATA_DESTROYREMOTEGROUP
179 DWORD dwSize;
180 LPDPLOBBYSP lpISP;
181 DWORD dwGroupID;
182 } SPDATA_DESTROYREMOTEGROUP, *LPSPDATA_DESTROYREMOTEGROUP;
184 typedef struct SPDATA_DESTROYPLAYER
186 DWORD dwSize;
187 LPDPLOBBYSP lpISP;
188 DWORD dwPlayerID;
189 } SPDATA_DESTROYPLAYER, *LPSPDATA_DESTROYPLAYER;
191 typedef struct SPDATA_ENUMSESSIONS
193 DWORD dwSize;
194 LPDPLOBBYSP lpISP;
195 LPDPSESSIONDESC2 lpsd;
196 DWORD dwTimeout;
197 DWORD dwFlags;
198 } SPDATA_ENUMSESSIONS, *LPSPDATA_ENUMSESSIONS;
200 typedef struct SPDATA_ENUMSESSIONSRESPONSE
202 DWORD dwSize;
203 LPDPSESSIONDESC2 lpsd;
204 } SPDATA_ENUMSESSIONSRESPONSE, *LPSPDATA_ENUMSESSIONSRESPONSE;
206 typedef struct SPDATA_GETCAPS
208 DWORD dwSize;
209 LPDPLOBBYSP lpISP;
210 DWORD dwFlags;
211 LPDPCAPS lpcaps;
212 } SPDATA_GETCAPS, *LPSPDATA_GETCAPS;
214 typedef struct SPDATA_GETGROUPCONNECTIONSETTINGS
216 DWORD dwSize;
217 DWORD dwFlags;
218 LPDPLOBBYSP lpISP;
219 DWORD dwGroupID;
220 LPDWORD lpdwBufferSize;
221 LPVOID lpBuffer;
222 } SPDATA_GETGROUPCONNECTIONSETTINGS, *LPSPDATA_GETGROUPCONNECTIONSETTINGS;
224 typedef struct SPDATA_GETGROUPDATA
226 DWORD dwSize;
227 LPDPLOBBYSP lpISP;
228 DWORD dwGroupID;
229 LPDWORD lpdwDataSize;
230 LPVOID lpData;
231 } SPDATA_GETGROUPDATA, *LPSPDATA_GETGROUPDATA;
233 typedef struct SPDATA_GETPLAYERCAPS
235 DWORD dwSize;
236 LPDPLOBBYSP lpISP;
237 DWORD dwFlags;
238 DWORD dwPlayerID;
239 LPDPCAPS lpcaps;
240 } SPDATA_GETPLAYERCAPS, *LPSPDATA_GETPLAYERCAPS;
242 typedef struct SPDATA_GETPLAYERDATA
244 DWORD dwSize;
245 LPDPLOBBYSP lpISP;
246 DWORD dwPlayerID;
247 LPDWORD lpdwDataSize;
248 LPVOID lpData;
249 } SPDATA_GETPLAYERDATA, *LPSPDATA_GETPLAYERDATA;
251 typedef struct SPDATA_HANDLEMESSAGE
253 DWORD dwSize;
254 DWORD dwFromID;
255 DWORD dwToID;
256 LPVOID lpBuffer;
257 DWORD dwBufSize;
258 } SPDATA_HANDLEMESSAGE, *LPSPDATA_HANDLEMESSAGE;
260 typedef struct SPDATA_OPEN
262 DWORD dwSize;
263 LPDPLOBBYSP lpISP;
264 LPDPSESSIONDESC2 lpsd;
265 DWORD dwFlags;
266 LPCDPCREDENTIALS lpCredentials;
267 } SPDATA_OPEN, *LPSPDATA_OPEN;
269 typedef struct SPDATA_SEND
271 DWORD dwSize;
272 LPDPLOBBYSP lpISP;
273 DWORD dwFromID;
274 DWORD dwToID;
275 DWORD dwFlags;
276 LPVOID lpBuffer;
277 DWORD dwBufSize;
278 } SPDATA_SEND, *LPSPDATA_SEND;
280 typedef struct SPDATA_CHATMESSAGE
282 DWORD dwSize;
283 LPDPLOBBYSP lpISP;
284 DWORD dwFromID;
285 DWORD dwToID;
286 DWORD dwFlags;
287 LPDPCHAT lpChat;
288 } SPDATA_CHATMESSAGE, *LPSPDATA_CHATMESSAGE;
290 typedef struct SPDATA_SETGROUPCONNECTIONSETTINGS
292 DWORD dwSize;
293 DWORD dwFlags;
294 LPDPLOBBYSP lpISP;
295 DWORD dwGroupID;
296 LPDPLCONNECTION lpConn;
297 } SPDATA_SETGROUPCONNECTIONSETTINGS, *LPSPDATA_SETGROUPCONNECTIONSETTINGS;
299 typedef struct SPDATA_SETGROUPDATA
301 DWORD dwSize;
302 LPDPLOBBYSP lpISP;
303 DWORD dwGroupID;
304 LPVOID lpData;
305 DWORD dwDataSize;
306 DWORD dwFlags;
307 } SPDATA_SETGROUPDATA, *LPSPDATA_SETGROUPDATA;
309 typedef struct SPDATA_SETGROUPNAME
311 DWORD dwSize;
312 LPDPLOBBYSP lpISP;
313 DWORD dwGroupID;
314 LPDPNAME lpName;
315 DWORD dwFlags;
316 } SPDATA_SETGROUPNAME, *LPSPDATA_SETGROUPNAME;
318 typedef struct SPDATA_SETREMOTEGROUPNAME
320 DWORD dwSize;
321 LPDPLOBBYSP lpISP;
322 DWORD dwGroupID;
323 LPDPNAME lpName;
324 DWORD dwFlags;
325 } SPDATA_SETREMOTEGROUPNAME, *LPSPDATA_SETREMOTEGROUPNAME;
327 typedef struct SPDATA_SETPLAYERDATA
329 DWORD dwSize;
330 LPDPLOBBYSP lpISP;
331 DWORD dwPlayerID;
332 LPVOID lpData;
333 DWORD dwDataSize;
334 DWORD dwFlags;
335 } SPDATA_SETPLAYERDATA, *LPSPDATA_SETPLAYERDATA;
337 typedef struct SPDATA_SETPLAYERNAME
339 DWORD dwSize;
340 LPDPLOBBYSP lpISP;
341 DWORD dwPlayerID;
342 LPDPNAME lpName;
343 DWORD dwFlags;
344 } SPDATA_SETPLAYERNAME, *LPSPDATA_SETPLAYERNAME;
346 typedef struct SPDATA_SETREMOTEPLAYERNAME
348 DWORD dwSize;
349 LPDPLOBBYSP lpISP;
350 DWORD dwPlayerID;
351 LPDPNAME lpName;
352 DWORD dwFlags;
353 } SPDATA_SETREMOTEPLAYERNAME, *LPSPDATA_SETREMOTEPLAYERNAME;
355 typedef struct SPDATA_SETSESSIONDESC
357 DWORD dwSize;
358 LPDPSESSIONDESC2 lpsd;
359 } SPDATA_SETSESSIONDESC, *LPSPDATA_SETSESSIONDESC;
361 typedef struct SPDATA_SHUTDOWN
363 DWORD dwSize;
364 LPDPLOBBYSP lpISP;
365 } SPDATA_SHUTDOWN, *LPSPDATA_SHUTDOWN;
367 typedef struct SPDATA_STARTSESSION
369 DWORD dwSize;
370 LPDPLOBBYSP lpISP;
371 DWORD dwFlags;
372 DWORD dwGroupID;
373 } SPDATA_STARTSESSION, *LPSPDATA_STARTSESSION;
375 typedef struct SPDATA_STARTSESSIONCOMMAND
377 DWORD dwFlags;
378 DWORD dwGroupID;
379 DWORD dwHostID;
380 LPDPLCONNECTION lpConn;
381 } SPDATA_STARTSESSIONCOMMAND, *LPSPDATA_STARTSESSIONCOMMAND;
383 /* Prototypes for callbacks returned by DPLSPInit */
384 typedef HRESULT (WINAPI *LPSP_ADDGROUPTOGROUP)(LPSPDATA_ADDGROUPTOGROUP);
385 typedef HRESULT (WINAPI *LPSP_ADDPLAYERTOGROUP)(LPSPDATA_ADDPLAYERTOGROUP);
386 typedef HRESULT (WINAPI *LPSP_BUILDPARENTALHEIRARCHY)(LPSPDATA_BUILDPARENTALHEIRARCHY);
387 typedef HRESULT (WINAPI *LPSP_CLOSE)(LPSPDATA_CLOSE);
388 typedef HRESULT (WINAPI *LPSP_CREATEGROUP)(LPSPDATA_CREATEGROUP);
389 typedef HRESULT (WINAPI *LPSP_CREATEGROUPINGROUP)(LPSPDATA_CREATEGROUPINGROUP);
390 typedef HRESULT (WINAPI *LPSP_CREATEPLAYER)(LPSPDATA_CREATEPLAYER);
391 typedef HRESULT (WINAPI *LPSP_DELETEGROUPFROMGROUP)(LPSPDATA_DELETEGROUPFROMGROUP);
392 typedef HRESULT (WINAPI *LPSP_DELETEPLAYERFROMGROUP)(LPSPDATA_DELETEPLAYERFROMGROUP);
393 typedef HRESULT (WINAPI *LPSP_DESTROYGROUP)(LPSPDATA_DESTROYGROUP);
394 typedef HRESULT (WINAPI *LPSP_DESTROYPLAYER)(LPSPDATA_DESTROYPLAYER);
395 typedef HRESULT (WINAPI *LPSP_ENUMSESSIONS)(LPSPDATA_ENUMSESSIONS);
396 typedef HRESULT (WINAPI *LPSP_GETCAPS)(LPSPDATA_GETCAPS);
397 typedef HRESULT (WINAPI *LPSP_GETGROUPCONNECTIONSETTINGS)(LPSPDATA_GETGROUPCONNECTIONSETTINGS);
398 typedef HRESULT (WINAPI *LPSP_GETGROUPDATA)(LPSPDATA_GETGROUPDATA);
399 typedef HRESULT (WINAPI *LPSP_GETPLAYERCAPS)(LPSPDATA_GETPLAYERCAPS);
400 typedef HRESULT (WINAPI *LPSP_GETPLAYERDATA)(LPSPDATA_GETPLAYERDATA);
401 typedef HRESULT (WINAPI *LPSP_HANDLEMESSAGE)(LPSPDATA_HANDLEMESSAGE);
402 typedef HRESULT (WINAPI *LPSP_OPEN)(LPSPDATA_OPEN);
403 typedef HRESULT (WINAPI *LPSP_SEND)(LPSPDATA_SEND);
404 typedef HRESULT (WINAPI *LPSP_SENDCHATMESSAGE)(LPSPDATA_CHATMESSAGE);
405 typedef HRESULT (WINAPI *LPSP_SETGROUPCONNECTIONSETTINGS)(LPSPDATA_SETGROUPCONNECTIONSETTINGS);
406 typedef HRESULT (WINAPI *LPSP_SETGROUPDATA)(LPSPDATA_SETGROUPDATA);
407 typedef HRESULT (WINAPI *LPSP_SETGROUPNAME)(LPSPDATA_SETGROUPNAME);
408 typedef HRESULT (WINAPI *LPSP_SETPLAYERDATA)(LPSPDATA_SETPLAYERDATA);
409 typedef HRESULT (WINAPI *LPSP_SETPLAYERNAME)(LPSPDATA_SETPLAYERNAME);
410 typedef HRESULT (WINAPI *LPSP_SHUTDOWN)(LPSPDATA_SHUTDOWN);
411 typedef HRESULT (WINAPI *LPSP_STARTSESSION)(LPSPDATA_STARTSESSION);
413 /* Callback table for dplay to call into service provider */
414 typedef struct SP_CALLBACKS
416 DWORD dwSize;
417 DWORD dwFlags;
418 LPSP_ADDGROUPTOGROUP AddGroupToGroup;
419 LPSP_ADDPLAYERTOGROUP AddPlayerToGroup;
420 LPSP_BUILDPARENTALHEIRARCHY BuildParentalHeirarchy;
421 LPSP_CLOSE Close;
422 LPSP_CREATEGROUP CreateGroup;
423 LPSP_CREATEGROUPINGROUP CreateGroupInGroup;
424 LPSP_CREATEPLAYER CreatePlayer;
425 LPSP_DELETEGROUPFROMGROUP DeleteGroupFromGroup;
426 LPSP_DELETEPLAYERFROMGROUP DeletePlayerFromGroup;
427 LPSP_DESTROYGROUP DestroyGroup;
428 LPSP_DESTROYPLAYER DestroyPlayer;
429 LPSP_ENUMSESSIONS EnumSessions;
430 LPSP_GETCAPS GetCaps;
431 LPSP_GETGROUPCONNECTIONSETTINGS GetGroupConnectionSettings;
432 LPSP_GETGROUPDATA GetGroupData;
433 LPSP_GETPLAYERCAPS GetPlayerCaps;
434 LPSP_GETPLAYERDATA GetPlayerData;
435 LPSP_OPEN Open;
436 LPSP_SEND Send;
437 LPSP_SENDCHATMESSAGE SendChatMessage;
438 LPSP_SETGROUPCONNECTIONSETTINGS SetGroupConnectionSettings;
439 LPSP_SETGROUPDATA SetGroupData;
440 LPSP_SETGROUPNAME SetGroupName;
441 LPSP_SETPLAYERDATA SetPlayerData;
442 LPSP_SETPLAYERNAME SetPlayerName;
443 LPSP_SHUTDOWN Shutdown;
444 LPSP_STARTSESSION StartSession;
445 } SP_CALLBACKS, *LPSP_CALLBACKS;
447 typedef struct SPDATA_INIT
449 LPSP_CALLBACKS lpCB;
450 DWORD dwSPVersion;
451 LPDPLOBBYSP lpISP;
452 LPDPADDRESS lpAddress;
453 } SPDATA_INIT, *LPSPDATA_INIT;
455 typedef HRESULT (WINAPI *LPSP_INIT)(LPSPDATA_INIT);
456 HRESULT WINAPI DPLSPInit(LPSPDATA_INIT);
458 /* Define the COM interface */
459 #define INTERFACE IDPLobbySP
460 #define IDPLobbySP_METHODS \
461 IUnknown_METHODS \
462 STDMETHOD(AddGroupToGroup)(THIS_ LPSPDATA_ADDREMOTEGROUPTOGROUP argtg ) PURE; \
463 STDMETHOD(AddPlayerToGroup)(THIS_ LPSPDATA_ADDREMOTEPLAYERTOGROUP arptg ) PURE; \
464 STDMETHOD(CreateGroup)(THIS_ LPSPDATA_CREATEREMOTEGROUP crg ) PURE; \
465 STDMETHOD(CreateGroupInGroup)(THIS_ LPSPDATA_CREATEREMOTEGROUPINGROUP crgig ) PURE; \
466 STDMETHOD(DeleteGroupFromGroup)(THIS_ LPSPDATA_DELETEREMOTEGROUPFROMGROUP drgfg ) PURE; \
467 STDMETHOD(DeletePlayerFromGroup)(THIS_ LPSPDATA_DELETEREMOTEPLAYERFROMGROUP drpfg ) PURE; \
468 STDMETHOD(DestroyGroup)(THIS_ LPSPDATA_DESTROYREMOTEGROUP drg ) PURE; \
469 STDMETHOD(EnumSessionsResponse)(THIS_ LPSPDATA_ENUMSESSIONSRESPONSE er ) PURE; \
470 STDMETHOD(GetSPDataPointer)(THIS_ LPVOID * lplpData ) PURE; \
471 STDMETHOD(HandleMessage)(THIS_ LPSPDATA_HANDLEMESSAGE hm ) PURE; \
472 STDMETHOD(SendChatMessage)(THIS_ LPSPDATA_CHATMESSAGE cm ) PURE; \
473 STDMETHOD(SetGroupName)(THIS_ LPSPDATA_SETREMOTEGROUPNAME srgn ) PURE; \
474 STDMETHOD(SetPlayerName)(THIS_ LPSPDATA_SETREMOTEPLAYERNAME srpn ) PURE; \
475 STDMETHOD(SetSessionDesc)(THIS_ LPSPDATA_SETSESSIONDESC ssd ) PURE; \
476 STDMETHOD(SetSPDataPointer)(THIS_ LPVOID lpData ) PURE; \
477 STDMETHOD(StartSession)(THIS_ LPSPDATA_STARTSESSIONCOMMAND ssc ) PURE;
478 ICOM_DEFINE(IDPLobbySP,IUnknown)
479 #undef INTERFACE
481 #ifdef COBJMACROS
482 /*** IUnknown methods ***/
483 #define IDPLobbySP_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
484 #define IDPLobbySP_AddRef(p) (p)->lpVtbl->AddRef(p)
485 #define IDPLobbySP_Release(p) (p)->lpVtbl->Release(p)
487 /*** IDPLobbySP methods ***/
488 #define IDPLobbySP_AddGroupToGroup(p,a) (p)->lpVtbl->AddGroupToGroup(p,a)
489 #define IDPLobbySP_AddPlayerToGroup(p,a) (p)->lpVtbl->AddPlayerToGroup(p,a)
490 #define IDPLobbySP_CreateGroup(p,a) (p)->lpVtbl->CreateGroup(p,a)
491 #define IDPLobbySP_CreateGroupInGroup(p,a) (p)->lpVtbl->CreateGroupInGroup(p,a)
492 #define IDPLobbySP_DeleteGroupFromGroup(p,a) (p)->lpVtbl->DeleteGroupFromGroup(p,a)
493 #define IDPLobbySP_DeletePlayerFromGroup(p,a) (p)->lpVtbl->DeletePlayerFromGroup(p,a)
494 #define IDPLobbySP_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
495 #define IDPLobbySP_EnumSessionsResponse(p,a) (p)->lpVtbl->EnumSessionsResponse(p,a)
496 #define IDPLobbySP_GetSPDataPointer(p,a) (p)->lpVtbl->GetSPDataPointer(p,a)
497 #define IDPLobbySP_HandleMessage(p,a) (p)->lpVtbl->HandleMessage(p,a)
498 #define IDPLobbySP_SetGroupName(p,a) (p)->lpVtbl->SetGroupName(p,a)
499 #define IDPLobbySP_SetPlayerName(p,a) (p)->lpVtbl->SetPlayerName(p,a)
500 #define IDPLobbySP_SetSessionDesc(p,a) (p)->lpVtbl->SetSessionDesc(p,a)
501 #define IDPLobbySP_StartSession(p,a) (p)->lpVtbl->StartSession(p,a)
502 #define IDPLobbySP_SetSPDataPointer(p,a) (p)->lpVtbl->SetSPDataPointer(p,a)
503 #endif
505 /* This variable is exported from the DLL at ordinal 6 to be accessed by the
506 * SP directly. This is the same variable that the DP SP will use.
508 extern DWORD gdwDPlaySPRefCount;
510 #endif