ReactOS 0.4.15-dev-8231-g29a56f3
dplobby.c File Reference
#include <stdarg.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "winreg.h"
#include "winnls.h"
#include "wine/debug.h"
#include "dplayx_global.h"
#include "dplayx_messages.h"
#include "dplayx_queue.h"
#include "dplobby.h"
Include dependency graph for dplobby.c:

Go to the source code of this file.

Classes

struct  DPLMSG
 
struct  IDirectPlayLobbyImpl
 
struct  tagRunApplicationEnumStruct
 

Macros

#define COBJMACROS
 
#define NONAMELESSUNION
 

Typedefs

typedef struct DPLMSGLPDPLMSG
 
typedef struct IDirectPlayLobbyImpl IDirectPlayLobbyImpl
 
typedef struct tagRunApplicationEnumStruct RunApplicationEnumStruct
 
typedef struct tagRunApplicationEnumStructlpRunApplicationEnumStruct
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dplay)
 
HRESULT DPL_CreateCompoundAddress (LPCDPCOMPOUNDADDRESSELEMENT lpElements, DWORD dwElementCount, LPVOID lpAddress, LPDWORD lpdwAddressSize, BOOL bAnsiInterface) DECLSPEC_HIDDEN
 
static HRESULT DPL_CreateAddress (REFGUID guidSP, REFGUID guidDataType, LPCVOID lpData, DWORD dwDataSize, LPVOID lpAddress, LPDWORD lpdwAddressSize, BOOL bAnsiInterface)
 
static IDirectPlayLobbyImplimpl_from_IDirectPlayLobby (IDirectPlayLobby *iface)
 
static IDirectPlayLobbyImplimpl_from_IDirectPlayLobbyA (IDirectPlayLobbyA *iface)
 
static IDirectPlayLobbyImplimpl_from_IDirectPlayLobby2 (IDirectPlayLobby2 *iface)
 
static IDirectPlayLobbyImplimpl_from_IDirectPlayLobby2A (IDirectPlayLobby2A *iface)
 
static IDirectPlayLobbyImplimpl_from_IDirectPlayLobby3 (IDirectPlayLobby3 *iface)
 
static IDirectPlayLobbyImplimpl_from_IDirectPlayLobby3A (IDirectPlayLobby3A *iface)
 
static void dplobby_destroy (IDirectPlayLobbyImpl *obj)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_QueryInterface (IDirectPlayLobbyA *iface, REFIID riid, void **ppv)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_QueryInterface (IDirectPlayLobby *iface, REFIID riid, void **ppv)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_QueryInterface (IDirectPlayLobby2A *iface, REFIID riid, void **ppv)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_QueryInterface (IDirectPlayLobby2 *iface, REFIID riid, void **ppv)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_QueryInterface (IDirectPlayLobby3A *iface, REFIID riid, void **ppv)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_QueryInterface (IDirectPlayLobby3 *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI IDirectPlayLobbyAImpl_AddRef (IDirectPlayLobbyA *iface)
 
static ULONG WINAPI IDirectPlayLobbyImpl_AddRef (IDirectPlayLobby *iface)
 
static ULONG WINAPI IDirectPlayLobby2AImpl_AddRef (IDirectPlayLobby2A *iface)
 
static ULONG WINAPI IDirectPlayLobby2Impl_AddRef (IDirectPlayLobby2 *iface)
 
static ULONG WINAPI IDirectPlayLobby3AImpl_AddRef (IDirectPlayLobby3A *iface)
 
static ULONG WINAPI IDirectPlayLobby3Impl_AddRef (IDirectPlayLobby3 *iface)
 
static ULONG WINAPI IDirectPlayLobbyAImpl_Release (IDirectPlayLobbyA *iface)
 
static ULONG WINAPI IDirectPlayLobbyImpl_Release (IDirectPlayLobby *iface)
 
static ULONG WINAPI IDirectPlayLobby2AImpl_Release (IDirectPlayLobby2A *iface)
 
static ULONG WINAPI IDirectPlayLobby2Impl_Release (IDirectPlayLobby2 *iface)
 
static ULONG WINAPI IDirectPlayLobby3AImpl_Release (IDirectPlayLobby3A *iface)
 
static ULONG WINAPI IDirectPlayLobby3Impl_Release (IDirectPlayLobby3 *iface)
 
static HRESULT DPL_ConnectEx (IDirectPlayLobbyImpl *This, DWORD dwFlags, REFIID riid, void **lplpDP, IUnknown *pUnk)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_Connect (IDirectPlayLobbyA *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_Connect (IDirectPlayLobby *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_Connect (IDirectPlayLobby2A *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_Connect (IDirectPlayLobby2 *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_Connect (IDirectPlayLobby3A *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_Connect (IDirectPlayLobby3 *iface, DWORD flags, IDirectPlay2 **dp, IUnknown *unk)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_CreateAddress (IDirectPlayLobbyA *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_CreateAddress (IDirectPlayLobby *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateAddress (IDirectPlayLobby2A *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_CreateAddress (IDirectPlayLobby2 *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateAddress (IDirectPlayLobby3A *iface, REFGUID guidSP, REFGUID guidDataType, const void *lpData, DWORD dwDataSize, void *lpAddress, DWORD *lpdwAddressSize)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_CreateAddress (IDirectPlayLobby3 *iface, REFGUID guidSP, REFGUID guidDataType, const void *lpData, DWORD dwDataSize, void *lpAddress, DWORD *lpdwAddressSize)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddress (IDirectPlayLobbyA *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumAddress (IDirectPlayLobby *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddress (IDirectPlayLobby2A *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddress (IDirectPlayLobby2 *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddress (IDirectPlayLobby3A *iface, LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, const void *lpAddress, DWORD dwAddressSize, void *lpContext)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddress (IDirectPlayLobby3 *iface, LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, const void *lpAddress, DWORD dwAddressSize, void *lpContext)
 
HRESULT DPL_EnumAddress (LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, LPCVOID lpAddress, DWORD dwAddressSize, LPVOID lpContext)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddressTypes (IDirectPlayLobbyA *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumAddressTypes (IDirectPlayLobby *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddressTypes (IDirectPlayLobby2A *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddressTypes (IDirectPlayLobby2 *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddressTypes (IDirectPlayLobby3A *iface, LPDPLENUMADDRESSTYPESCALLBACK lpEnumAddressTypeCallback, REFGUID guidSP, void *lpContext, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddressTypes (IDirectPlayLobby3 *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumLocalApplications (IDirectPlayLobby3 *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK lpEnumLocalAppCallback, void *lpContext, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumLocalApplications (IDirectPlayLobbyA *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumLocalApplications (IDirectPlayLobby *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumLocalApplications (IDirectPlayLobby2A *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumLocalApplications (IDirectPlayLobby2 *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumLocalApplications (IDirectPlayLobby3A *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK lpEnumLocalAppCallback, void *lpContext, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_GetConnectionSettings (IDirectPlayLobbyA *iface, DWORD appid, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_GetConnectionSettings (IDirectPlayLobby *iface, DWORD appid, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_GetConnectionSettings (IDirectPlayLobby2A *iface, DWORD appid, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_GetConnectionSettings (IDirectPlayLobby2 *iface, DWORD appid, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_GetConnectionSettings (IDirectPlayLobby3A *iface, DWORD dwAppID, void *lpData, DWORD *lpdwDataSize)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_GetConnectionSettings (IDirectPlayLobby3 *iface, DWORD dwAppID, void *lpData, DWORD *lpdwDataSize)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_ReceiveLobbyMessage (IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_ReceiveLobbyMessage (IDirectPlayLobby *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_ReceiveLobbyMessage (IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_ReceiveLobbyMessage (IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_ReceiveLobbyMessage (IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD dwAppID, DWORD *lpdwMessageFlags, void *lpData, DWORD *lpdwDataSize)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_ReceiveLobbyMessage (IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD dwAppID, DWORD *lpdwMessageFlags, void *lpData, DWORD *lpdwDataSize)
 
static BOOL CALLBACK RunApplicationA_EnumLocalApplications (LPCDPLAPPINFO lpAppInfo, LPVOID lpContext, DWORD dwFlags)
 
static BOOL DPL_CreateAndSetLobbyHandles (DWORD dwDestProcessId, HANDLE hDestProcess, LPHANDLE lphStart, LPHANDLE lphDeath, LPHANDLE lphRead)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_RunApplication (IDirectPlayLobbyA *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_RunApplication (IDirectPlayLobby *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_RunApplication (IDirectPlayLobby2A *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_RunApplication (IDirectPlayLobby2 *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_RunApplication (IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD *lpdwAppID, DPLCONNECTION *lpConn, HANDLE hReceiveEvent)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_RunApplication (IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD *lpdwAppID, DPLCONNECTION *lpConn, HANDLE hReceiveEvent)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_SendLobbyMessage (IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, void *data, DWORD size)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_SendLobbyMessage (IDirectPlayLobby *iface, DWORD flags, DWORD appid, void *data, DWORD size)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_SendLobbyMessage (IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, void *data, DWORD size)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_SendLobbyMessage (IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, void *data, DWORD size)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_SendLobbyMessage (IDirectPlayLobby3A *iface, DWORD flags, DWORD appid, void *data, DWORD size)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_SendLobbyMessage (IDirectPlayLobby3 *iface, DWORD flags, DWORD appid, void *data, DWORD size)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_SetConnectionSettings (IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD dwAppID, DPLCONNECTION *lpConn)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_SetConnectionSettings (IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_SetConnectionSettings (IDirectPlayLobby *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_SetConnectionSettings (IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_SetConnectionSettings (IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_SetConnectionSettings (IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD dwAppID, DPLCONNECTION *lpConn)
 
static HRESULT WINAPI IDirectPlayLobbyAImpl_SetLobbyMessageEvent (IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobbyImpl_SetLobbyMessageEvent (IDirectPlayLobby *iface, DWORD flags, DWORD appid, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_SetLobbyMessageEvent (IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_SetLobbyMessageEvent (IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_SetLobbyMessageEvent (IDirectPlayLobby3A *iface, DWORD flags, DWORD appid, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_SetLobbyMessageEvent (IDirectPlayLobby3 *iface, DWORD flags, DWORD appid, HANDLE event)
 
static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateCompoundAddress (IDirectPlayLobby2A *iface, const DPCOMPOUNDADDRESSELEMENT *elements, DWORD count, void *address, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby2Impl_CreateCompoundAddress (IDirectPlayLobby2 *iface, const DPCOMPOUNDADDRESSELEMENT *elements, DWORD count, void *address, DWORD *size)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_CreateCompoundAddress (IDirectPlayLobby3 *iface, const DPCOMPOUNDADDRESSELEMENT *lpElements, DWORD dwElementCount, void *lpAddress, DWORD *lpdwAddressSize)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateCompoundAddress (IDirectPlayLobby3A *iface, const DPCOMPOUNDADDRESSELEMENT *lpElements, DWORD dwElementCount, void *lpAddress, DWORD *lpdwAddressSize)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_ConnectEx (IDirectPlayLobby3 *iface, DWORD dwFlags, REFIID riid, LPVOID *lplpDP, IUnknown *pUnk)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_ConnectEx (IDirectPlayLobby3A *iface, DWORD dwFlags, REFIID riid, void **lplpDP, IUnknown *pUnk)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_RegisterApplication (IDirectPlayLobby3 *iface, DWORD flags, DPAPPLICATIONDESC *appdesc)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_RegisterApplication (IDirectPlayLobby3A *iface, DWORD flags, DPAPPLICATIONDESC *appdesc)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_UnregisterApplication (IDirectPlayLobby3 *iface, DWORD flags, REFGUID appdesc)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_UnregisterApplication (IDirectPlayLobby3A *iface, DWORD flags, REFGUID appdesc)
 
static HRESULT WINAPI IDirectPlayLobby3Impl_WaitForConnectionSettings (IDirectPlayLobby3 *iface, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlayLobby3AImpl_WaitForConnectionSettings (IDirectPlayLobby3A *iface, DWORD dwFlags)
 
HRESULT dplobby_create (REFIID riid, void **ppv)
 
HRESULT WINAPI DirectPlayLobbyCreateA (GUID *lpGUIDDSP, IDirectPlayLobbyA **lplpDPL, IUnknown *lpUnk, void *lpData, DWORD dwDataSize)
 
HRESULT WINAPI DirectPlayLobbyCreateW (GUID *lpGUIDDSP, IDirectPlayLobby **lplpDPL, IUnknown *lpUnk, void *lpData, DWORD dwDataSize)
 

Variables

static const IDirectPlayLobbyVtbl dplA_vt
 
static const IDirectPlayLobbyVtbl dpl_vt
 
static const IDirectPlayLobby2Vtbl dpl2A_vt
 
static const IDirectPlayLobby2Vtbl dpl2_vt
 
static const IDirectPlayLobby3Vtbl dpl3A_vt
 
static const IDirectPlayLobby3Vtbl dpl3_vt
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 22 of file dplobby.c.

◆ NONAMELESSUNION

#define NONAMELESSUNION

Definition at line 23 of file dplobby.c.

Typedef Documentation

◆ IDirectPlayLobbyImpl

◆ LPDPLMSG

Definition at line 64 of file dplobby.c.

◆ lpRunApplicationEnumStruct

◆ RunApplicationEnumStruct

Function Documentation

◆ DirectPlayLobbyCreateA()

HRESULT WINAPI DirectPlayLobbyCreateA ( GUID lpGUIDDSP,
IDirectPlayLobbyA **  lplpDPL,
IUnknown lpUnk,
void lpData,
DWORD  dwDataSize 
)

Definition at line 2069 of file dplobby.c.

2071{
2072 TRACE("lpGUIDDSP=%p lplpDPL=%p lpUnk=%p lpData=%p dwDataSize=%08x\n",
2073 lpGUIDDSP,lplpDPL,lpUnk,lpData,dwDataSize);
2074
2075 /* Parameter Check: lpGUIDSP, lpUnk & lpData must be NULL. dwDataSize must
2076 * equal 0. These fields are mostly for future expansion.
2077 */
2078 if ( lpGUIDDSP || lpData || dwDataSize )
2079 {
2080 *lplpDPL = NULL;
2081 return DPERR_INVALIDPARAMS;
2082 }
2083
2084 if( lpUnk )
2085 {
2086 *lplpDPL = NULL;
2087 ERR("Bad parameters!\n" );
2088 return CLASS_E_NOAGGREGATION;
2089 }
2090
2091 return dplobby_create( &IID_IDirectPlayLobbyA, (void**)lplpDPL );
2092}
#define ERR(fmt,...)
Definition: debug.h:113
#define NULL
Definition: types.h:112
#define DPERR_INVALIDPARAMS
Definition: dplay.h:103
HRESULT dplobby_create(REFIID riid, void **ppv)
Definition: dplobby.c:2026
#define TRACE(s)
Definition: solgame.cpp:4
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662

◆ DirectPlayLobbyCreateW()

HRESULT WINAPI DirectPlayLobbyCreateW ( GUID lpGUIDDSP,
IDirectPlayLobby **  lplpDPL,
IUnknown lpUnk,
void lpData,
DWORD  dwDataSize 
)

Definition at line 2098 of file dplobby.c.

2100{
2101 TRACE("lpGUIDDSP=%p lplpDPL=%p lpUnk=%p lpData=%p dwDataSize=%08x\n",
2102 lpGUIDDSP,lplpDPL,lpUnk,lpData,dwDataSize);
2103
2104 /* Parameter Check: lpGUIDSP, lpUnk & lpData must be NULL. dwDataSize must
2105 * equal 0. These fields are mostly for future expansion.
2106 */
2107 if ( lpGUIDDSP || lpData || dwDataSize )
2108 {
2109 *lplpDPL = NULL;
2110 ERR("Bad parameters!\n" );
2111 return DPERR_INVALIDPARAMS;
2112 }
2113
2114 if( lpUnk )
2115 {
2116 *lplpDPL = NULL;
2117 ERR("Bad parameters!\n" );
2118 return CLASS_E_NOAGGREGATION;
2119 }
2120
2121 return dplobby_create( &IID_IDirectPlayLobby, (void**)lplpDPL );
2122}

◆ DPL_ConnectEx()

static HRESULT DPL_ConnectEx ( IDirectPlayLobbyImpl This,
DWORD  dwFlags,
REFIID  riid,
void **  lplpDP,
IUnknown pUnk 
)
static

Definition at line 374 of file dplobby.c.

376{
377 HRESULT hr;
378 DWORD dwOpenFlags = 0;
379 DWORD dwConnSize = 0;
380 LPDPLCONNECTION lpConn;
381
382 FIXME("(%p)->(0x%08x,%p,%p): semi stub\n", This, dwFlags, lplpDP, pUnk );
383
384 if( pUnk )
385 {
386 return DPERR_INVALIDPARAMS;
387 }
388
389 /* Backwards compatibility */
390 if( dwFlags == 0 )
391 {
393 }
394
395 if ( ( hr = dplay_create( riid, lplpDP ) ) != DP_OK )
396 {
397 ERR( "error creating interface for %s:%s.\n",
399 return hr;
400 }
401
402 /* FIXME: Is it safe/correct to use appID of 0? */
403 hr = IDirectPlayLobby_GetConnectionSettings( &This->IDirectPlayLobby3_iface,
404 0, NULL, &dwConnSize );
405 if( hr != DPERR_BUFFERTOOSMALL )
406 {
407 return hr;
408 }
409
410 lpConn = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, dwConnSize );
411
412 if( lpConn == NULL )
413 {
414 return DPERR_NOMEMORY;
415 }
416
417 /* FIXME: Is it safe/correct to use appID of 0? */
418 hr = IDirectPlayLobby_GetConnectionSettings( &This->IDirectPlayLobby3_iface,
419 0, lpConn, &dwConnSize );
420 if( FAILED( hr ) )
421 {
422 HeapFree( GetProcessHeap(), 0, lpConn );
423 return hr;
424 }
425
426#if 0
427 /* - Need to call IDirectPlay::EnumConnections with the service provider to get that good information
428 * - Need to call CreateAddress to create the lpConnection param for IDirectPlay::InitializeConnection
429 * - Call IDirectPlay::InitializeConnection
430 */
431
432 /* Now initialize the Service Provider */
434#endif
435
436
437 /* Setup flags to pass into DirectPlay::Open */
439 {
440 dwOpenFlags |= DPOPEN_RETURNSTATUS;
441 }
442 dwOpenFlags |= lpConn->dwFlags;
443
445 dwOpenFlags );
446
447 HeapFree( GetProcessHeap(), 0, lpConn );
448
449 return hr;
450}
#define FIXME(fmt,...)
Definition: debug.h:114
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
HRESULT dplay_create(REFIID riid, void **ppv)
Definition: dplay.c:5676
#define IDirectPlayX_Open(p, a, b)
Definition: dplay.h:889
#define DPERR_NOMEMORY
Definition: dplay.h:108
#define DPERR_BUFFERTOOSMALL
Definition: dplay.h:92
#define DPOPEN_RETURNSTATUS
Definition: dplay.h:265
struct IDirectPlay2 * LPDIRECTPLAY2
Definition: dplay.h:44
#define DPCONNECT_RETURNSTATUS
Definition: dplay.h:1065
#define DP_OK
Definition: dplay.h:88
#define IDirectPlayX_InitializeConnection(p, a, b)
Definition: dplay.h:904
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
static void *static void *static LPDIRECTPLAY * lplpDP
Definition: dplayx.c:30
LPCSTR DPLAYX_HresultToString(HRESULT hr)
#define IDirectPlayLobby_GetConnectionSettings(p, a, b, c)
Definition: dplobby.h:463
unsigned long DWORD
Definition: ntddk_ex.h:95
REFIID riid
Definition: atlbase.h:39
#define FAILED(hr)
Definition: intsafe.h:51
#define debugstr_guid
Definition: kernel32.h:35
HRESULT hr
Definition: shlfolder.c:183
LPDPSESSIONDESC2 lpSessionDesc
Definition: dplay.h:286
DWORD dwFlags
Definition: dplay.h:285
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176

Referenced by IDirectPlayLobby3AImpl_ConnectEx(), and IDirectPlayLobby3Impl_ConnectEx().

◆ DPL_CreateAddress()

static HRESULT DPL_CreateAddress ( REFGUID  guidSP,
REFGUID  guidDataType,
LPCVOID  lpData,
DWORD  dwDataSize,
LPVOID  lpAddress,
LPDWORD  lpdwAddressSize,
BOOL  bAnsiInterface 
)
static

Definition at line 551 of file dplobby.c.

559{
560 const DWORD dwNumAddElements = 2; /* Service Provide & address data type */
561 DPCOMPOUNDADDRESSELEMENT addressElements[ 2 /* dwNumAddElements */ ];
562
563 TRACE( "(%p)->(%p,%p,0x%08x,%p,%p,%d)\n", guidSP, guidDataType, lpData, dwDataSize,
564 lpAddress, lpdwAddressSize, bAnsiInterface );
565
566 addressElements[ 0 ].guidDataType = DPAID_ServiceProvider;
567 addressElements[ 0 ].dwDataSize = sizeof( GUID );
568 addressElements[ 0 ].lpData = (LPVOID)guidSP;
569
570 addressElements[ 1 ].guidDataType = *guidDataType;
571 addressElements[ 1 ].dwDataSize = dwDataSize;
572 addressElements[ 1 ].lpData = (LPVOID)lpData;
573
574 /* Call CreateCompoundAddress to cut down on code.
575 NOTE: We can do this because we don't support DPL 1 interfaces! */
576 return DPL_CreateCompoundAddress( addressElements, dwNumAddElements,
577 lpAddress, lpdwAddressSize, bAnsiInterface );
578}
HRESULT DPL_CreateCompoundAddress(LPCDPCOMPOUNDADDRESSELEMENT lpElements, DWORD dwElementCount, LPVOID lpAddress, LPDWORD lpdwAddressSize, BOOL bAnsiInterface) DECLSPEC_HIDDEN
Definition: dplobby.c:1660
#define LPVOID
Definition: nt_native.h:45

Referenced by IDirectPlayLobby3AImpl_CreateAddress(), and IDirectPlayLobby3Impl_CreateAddress().

◆ DPL_CreateAndSetLobbyHandles()

static BOOL DPL_CreateAndSetLobbyHandles ( DWORD  dwDestProcessId,
HANDLE  hDestProcess,
LPHANDLE  lphStart,
LPHANDLE  lphDeath,
LPHANDLE  lphRead 
)
static

Definition at line 1210 of file dplobby.c.

1213{
1214 /* These are the handles for the created process */
1215 HANDLE hAppStart = 0, hAppDeath = 0, hAppRead = 0;
1216 SECURITY_ATTRIBUTES s_attrib;
1217
1218 s_attrib.nLength = sizeof( s_attrib );
1219 s_attrib.lpSecurityDescriptor = NULL;
1220 s_attrib.bInheritHandle = TRUE;
1221
1222 *lphStart = CreateEventW( &s_attrib, TRUE, FALSE, NULL );
1223 *lphDeath = CreateEventW( &s_attrib, TRUE, FALSE, NULL );
1224 *lphRead = CreateEventW( &s_attrib, TRUE, FALSE, NULL );
1225
1226 if( ( !DuplicateHandle( GetCurrentProcess(), *lphStart,
1227 hDestProcess, &hAppStart,
1228 0, FALSE, DUPLICATE_SAME_ACCESS ) ) ||
1229 ( !DuplicateHandle( GetCurrentProcess(), *lphDeath,
1230 hDestProcess, &hAppDeath,
1231 0, FALSE, DUPLICATE_SAME_ACCESS ) ) ||
1232 ( !DuplicateHandle( GetCurrentProcess(), *lphRead,
1233 hDestProcess, &hAppRead,
1235 )
1236 {
1237 if (*lphStart) { CloseHandle(*lphStart); *lphStart = 0; }
1238 if (*lphDeath) { CloseHandle(*lphDeath); *lphDeath = 0; }
1239 if (*lphRead) { CloseHandle(*lphRead); *lphRead = 0; }
1240 /* FIXME: Handle leak... */
1241 ERR( "Unable to dup handles\n" );
1242 return FALSE;
1243 }
1244
1245 if( !DPLAYX_SetLobbyHandles( dwDestProcessId,
1246 hAppStart, hAppDeath, hAppRead ) )
1247 {
1248 /* FIXME: Handle leak... */
1249 return FALSE;
1250 }
1251
1252 return TRUE;
1253}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define CloseHandle
Definition: compat.h:739
#define GetCurrentProcess()
Definition: compat.h:759
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
Definition: handle.c:149
BOOL DPLAYX_SetLobbyHandles(DWORD dwAppID, HANDLE hStart, HANDLE hDeath, HANDLE hConnRead)
LPVOID lpSecurityDescriptor
Definition: compat.h:193
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:651
#define DUPLICATE_SAME_ACCESS

Referenced by IDirectPlayLobby3AImpl_RunApplication().

◆ DPL_CreateCompoundAddress()

HRESULT DPL_CreateCompoundAddress ( LPCDPCOMPOUNDADDRESSELEMENT  lpElements,
DWORD  dwElementCount,
LPVOID  lpAddress,
LPDWORD  lpdwAddressSize,
BOOL  bAnsiInterface 
)

Definition at line 1659 of file dplobby.c.

1665{
1666 DWORD dwSizeRequired = 0;
1667 DWORD dwElements;
1668 LPCDPCOMPOUNDADDRESSELEMENT lpOrigElements = lpElements;
1669
1670 TRACE("(%p,0x%08x,%p,%p)\n", lpElements, dwElementCount, lpAddress, lpdwAddressSize );
1671
1672 /* Parameter check */
1673 if( ( lpElements == NULL ) ||
1674 ( dwElementCount == 0 ) /* FIXME: Not sure if this is a failure case */
1675 )
1676 {
1677 return DPERR_INVALIDPARAMS;
1678 }
1679
1680 /* Add the total size chunk */
1681 dwSizeRequired += sizeof( DPADDRESS ) + sizeof( DWORD );
1682
1683 /* Calculate the size of the buffer required */
1684 for ( dwElements = dwElementCount; dwElements > 0; --dwElements, ++lpElements )
1685 {
1686 if ( ( IsEqualGUID( &lpElements->guidDataType, &DPAID_ServiceProvider ) ) ||
1687 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_LobbyProvider ) )
1688 )
1689 {
1690 dwSizeRequired += sizeof( DPADDRESS ) + sizeof( GUID );
1691 }
1692 else if ( ( IsEqualGUID( &lpElements->guidDataType, &DPAID_Phone ) ) ||
1693 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_Modem ) ) ||
1694 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_INet ) )
1695 )
1696 {
1697 if( !bAnsiInterface )
1698 {
1699 ERR( "Ansi GUIDs used for unicode interface\n" );
1700 return DPERR_INVALIDFLAGS;
1701 }
1702
1703 dwSizeRequired += sizeof( DPADDRESS ) + lpElements->dwDataSize;
1704 }
1705 else if ( ( IsEqualGUID( &lpElements->guidDataType, &DPAID_PhoneW ) ) ||
1706 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_ModemW ) ) ||
1707 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_INetW ) )
1708 )
1709 {
1710 if( bAnsiInterface )
1711 {
1712 ERR( "Unicode GUIDs used for ansi interface\n" );
1713 return DPERR_INVALIDFLAGS;
1714 }
1715
1716 FIXME( "Right size for unicode interface?\n" );
1717 dwSizeRequired += sizeof( DPADDRESS ) + lpElements->dwDataSize * sizeof( WCHAR );
1718 }
1719 else if ( IsEqualGUID( &lpElements->guidDataType, &DPAID_INetPort ) )
1720 {
1721 dwSizeRequired += sizeof( DPADDRESS ) + sizeof( WORD );
1722 }
1723 else if ( IsEqualGUID( &lpElements->guidDataType, &DPAID_ComPort ) )
1724 {
1725 FIXME( "Right size for unicode interface?\n" );
1726 dwSizeRequired += sizeof( DPADDRESS ) + sizeof( DPCOMPORTADDRESS ); /* FIXME: Right size? */
1727 }
1728 else
1729 {
1730 WARN( "Skipping Unknown GUID %s\n", debugstr_guid(&lpElements->guidDataType) );
1731 }
1732 }
1733
1734 /* The user wants to know how big a buffer to allocate for us */
1735 if( ( lpAddress == NULL ) ||
1736 ( *lpdwAddressSize < dwSizeRequired )
1737 )
1738 {
1739 *lpdwAddressSize = dwSizeRequired;
1740 return DPERR_BUFFERTOOSMALL;
1741 }
1742
1743 /* Add the total size chunk */
1744 {
1745 LPDPADDRESS lpdpAddress = lpAddress;
1746
1747 lpdpAddress->guidDataType = DPAID_TotalSize;
1748 lpdpAddress->dwDataSize = sizeof( DWORD );
1749 lpAddress = (char *) lpAddress + sizeof( DPADDRESS );
1750
1751 *(LPDWORD)lpAddress = dwSizeRequired;
1752 lpAddress = (char *) lpAddress + sizeof( DWORD );
1753 }
1754
1755 /* Calculate the size of the buffer required */
1756 for( dwElements = dwElementCount, lpElements = lpOrigElements;
1757 dwElements > 0;
1758 --dwElements, ++lpElements )
1759 {
1760 if ( ( IsEqualGUID( &lpElements->guidDataType, &DPAID_ServiceProvider ) ) ||
1761 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_LobbyProvider ) )
1762 )
1763 {
1764 LPDPADDRESS lpdpAddress = lpAddress;
1765
1766 lpdpAddress->guidDataType = lpElements->guidDataType;
1767 lpdpAddress->dwDataSize = sizeof( GUID );
1768 lpAddress = (char *) lpAddress + sizeof( DPADDRESS );
1769
1770 CopyMemory( lpAddress, lpElements->lpData, sizeof( GUID ) );
1771 lpAddress = (char *) lpAddress + sizeof( GUID );
1772 }
1773 else if ( ( IsEqualGUID( &lpElements->guidDataType, &DPAID_Phone ) ) ||
1774 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_Modem ) ) ||
1775 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_INet ) )
1776 )
1777 {
1778 LPDPADDRESS lpdpAddress = lpAddress;
1779
1780 lpdpAddress->guidDataType = lpElements->guidDataType;
1781 lpdpAddress->dwDataSize = lpElements->dwDataSize;
1782 lpAddress = (char *) lpAddress + sizeof( DPADDRESS );
1783
1784 lstrcpynA( lpAddress, lpElements->lpData, lpElements->dwDataSize );
1785 lpAddress = (char *) lpAddress + lpElements->dwDataSize;
1786 }
1787 else if ( ( IsEqualGUID( &lpElements->guidDataType, &DPAID_PhoneW ) ) ||
1788 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_ModemW ) ) ||
1789 ( IsEqualGUID( &lpElements->guidDataType, &DPAID_INetW ) )
1790 )
1791 {
1792 LPDPADDRESS lpdpAddress = lpAddress;
1793
1794 lpdpAddress->guidDataType = lpElements->guidDataType;
1795 lpdpAddress->dwDataSize = lpElements->dwDataSize;
1796 lpAddress = (char *) lpAddress + sizeof( DPADDRESS );
1797
1798 lstrcpynW( lpAddress, lpElements->lpData, lpElements->dwDataSize );
1799 lpAddress = (char *) lpAddress + lpElements->dwDataSize * sizeof( WCHAR );
1800 }
1801 else if ( IsEqualGUID( &lpElements->guidDataType, &DPAID_INetPort ) )
1802 {
1803 LPDPADDRESS lpdpAddress = lpAddress;
1804
1805 lpdpAddress->guidDataType = lpElements->guidDataType;
1806 lpdpAddress->dwDataSize = lpElements->dwDataSize;
1807 lpAddress = (char *) lpAddress + sizeof( DPADDRESS );
1808
1809 *((LPWORD)lpAddress) = *((LPWORD)lpElements->lpData);
1810 lpAddress = (char *) lpAddress + sizeof( WORD );
1811 }
1812 else if ( IsEqualGUID( &lpElements->guidDataType, &DPAID_ComPort ) )
1813 {
1814 LPDPADDRESS lpdpAddress = lpAddress;
1815
1816 lpdpAddress->guidDataType = lpElements->guidDataType;
1817 lpdpAddress->dwDataSize = lpElements->dwDataSize;
1818 lpAddress = (char *) lpAddress + sizeof( DPADDRESS );
1819
1820 CopyMemory( lpAddress, lpElements->lpData, sizeof( DPADDRESS ) );
1821 lpAddress = (char *) lpAddress + sizeof( DPADDRESS );
1822 }
1823 }
1824
1825 return DP_OK;
1826}
#define WARN(fmt,...)
Definition: debug.h:115
#define lstrcpynA
Definition: compat.h:751
#define lstrcpynW
Definition: compat.h:738
#define DPERR_INVALIDFLAGS
Definition: dplay.h:100
struct tagDPADDRESS DPADDRESS
unsigned short WORD
Definition: ntddk_ex.h:93
#define LPDWORD
Definition: nt_native.h:46
#define DWORD
Definition: nt_native.h:44
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
GUID guidDataType
Definition: dplobby.h:252
DWORD dwDataSize
Definition: dplobby.h:253
uint16_t * LPWORD
Definition: typedefs.h:56
#define CopyMemory
Definition: winbase.h:1710
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by DP_BuildSPCompoundAddr(), DPL_CreateAddress(), IDirectPlay4AImpl_EnumConnections(), IDirectPlayLobby3AImpl_CreateCompoundAddress(), and IDirectPlayLobby3Impl_CreateCompoundAddress().

◆ DPL_EnumAddress()

HRESULT DPL_EnumAddress ( LPDPENUMADDRESSCALLBACK  lpEnumAddressCallback,
LPCVOID  lpAddress,
DWORD  dwAddressSize,
LPVOID  lpContext 
)

Definition at line 644 of file dplobby.c.

646{
647 DWORD dwTotalSizeEnumerated = 0;
648
649 /* FIXME: First chunk is always the total size chunk - Should we report it? */
650
651 while ( dwTotalSizeEnumerated < dwAddressSize )
652 {
653 const DPADDRESS* lpElements = lpAddress;
654 DWORD dwSizeThisEnumeration;
655
656 /* Invoke the enum method. If false is returned, stop enumeration */
657 if ( !lpEnumAddressCallback( &lpElements->guidDataType,
658 lpElements->dwDataSize,
659 (const BYTE *)lpElements + sizeof( DPADDRESS ),
660 lpContext ) )
661 {
662 break;
663 }
664
665 dwSizeThisEnumeration = sizeof( DPADDRESS ) + lpElements->dwDataSize;
666 lpAddress = (const BYTE*) lpAddress + dwSizeThisEnumeration;
667 dwTotalSizeEnumerated += dwSizeThisEnumeration;
668 }
669
670 return DP_OK;
671}
unsigned char BYTE
Definition: xxhash.c:193

Referenced by IDirectPlay4Impl_InitializeConnection(), IDirectPlayLobby3AImpl_EnumAddress(), IDirectPlayLobby3Impl_EnumAddress(), and IDirectPlaySPImpl_EnumAddress().

◆ dplobby_create()

HRESULT dplobby_create ( REFIID  riid,
void **  ppv 
)

Definition at line 2026 of file dplobby.c.

2027{
2029 HRESULT hr;
2030
2031 TRACE( "(%s, %p)\n", debugstr_guid( riid ), ppv );
2032
2033 *ppv = NULL;
2034 obj = HeapAlloc( GetProcessHeap(), 0, sizeof( *obj ) );
2035 if ( !obj )
2036 return DPERR_OUTOFMEMORY;
2037
2038 obj->IDirectPlayLobby_iface.lpVtbl = &dpl_vt;
2039 obj->IDirectPlayLobbyA_iface.lpVtbl = &dplA_vt;
2040 obj->IDirectPlayLobby2_iface.lpVtbl = &dpl2_vt;
2041 obj->IDirectPlayLobby2A_iface.lpVtbl = &dpl2A_vt;
2042 obj->IDirectPlayLobby3_iface.lpVtbl = &dpl3_vt;
2043 obj->IDirectPlayLobby3A_iface.lpVtbl = &dpl3A_vt;
2044 obj->numIfaces = 1;
2045 obj->msgtid = 0;
2046 obj->ref = 0;
2047 obj->refA = 0;
2048 obj->ref2 = 0;
2049 obj->ref2A = 0;
2050 obj->ref3 = 1;
2051 obj->ref3A = 0;
2052
2054 obj->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectPlayLobbyImpl.lock");
2055 DPQ_INIT( obj->msgs );
2056
2057 hr = IDirectPlayLobby_QueryInterface( &obj->IDirectPlayLobby3_iface, riid, ppv );
2058 IDirectPlayLobby_Release( &obj->IDirectPlayLobby3_iface );
2059
2060 return hr;
2061}
#define DPERR_OUTOFMEMORY
Definition: dplay.h:109
#define DPQ_INIT(head)
Definition: dplayx_queue.h:54
static const IDirectPlayLobby3Vtbl dpl3_vt
Definition: dplobby.c:2003
static const IDirectPlayLobby2Vtbl dpl2A_vt
Definition: dplobby.c:1942
static const IDirectPlayLobbyVtbl dplA_vt
Definition: dplobby.c:1906
static const IDirectPlayLobbyVtbl dpl_vt
Definition: dplobby.c:1924
static const IDirectPlayLobby2Vtbl dpl2_vt
Definition: dplobby.c:1961
static const IDirectPlayLobby3Vtbl dpl3A_vt
Definition: dplobby.c:1980
#define IDirectPlayLobby_Release(p)
Definition: dplobby.h:456
#define IDirectPlayLobby_QueryInterface(p, a, b)
Definition: dplobby.h:454
REFIID LPVOID * ppv
Definition: atlbase.h:39
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:751
#define DWORD_PTR
Definition: treelist.c:76

Referenced by DirectPlayLobbyCreateA(), and DirectPlayLobbyCreateW().

◆ dplobby_destroy()

static void dplobby_destroy ( IDirectPlayLobbyImpl obj)
static

Definition at line 112 of file dplobby.c.

113{
114 if ( obj->msgtid )
115 FIXME( "Should kill the msg thread\n" );
116
117 DPQ_DELETEQ( obj->msgs, msgs, LPDPLMSG, cbDeleteElemFromHeap );
118 obj->lock.DebugInfo->Spare[0] = 0;
119 DeleteCriticalSection( &obj->lock );
120 HeapFree( GetProcessHeap(), 0, obj );
121}
#define DPQ_DELETEQ(head, field, type, df)
Definition: dplayx_queue.h:199
Definition: dplobby.c:61
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

Referenced by IDirectPlayLobby2AImpl_Release(), IDirectPlayLobby2Impl_Release(), IDirectPlayLobby3AImpl_Release(), IDirectPlayLobby3Impl_Release(), IDirectPlayLobbyAImpl_Release(), and IDirectPlayLobbyImpl_Release().

◆ IDirectPlayLobby2AImpl_AddRef()

static ULONG WINAPI IDirectPlayLobby2AImpl_AddRef ( IDirectPlayLobby2A iface)
static

Definition at line 235 of file dplobby.c.

236{
238 ULONG ref = InterlockedIncrement( &This->ref2A );
239
240 TRACE( "(%p) ref2A=%d\n", This, ref );
241
242 if ( ref == 1 )
243 InterlockedIncrement( &This->numIfaces );
244
245 return ref;
246}
#define InterlockedIncrement
Definition: armddk.h:53
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby2A(IDirectPlayLobby2A *iface)
Definition: dplobby.c:97
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

◆ IDirectPlayLobby2AImpl_Connect()

static HRESULT WINAPI IDirectPlayLobby2AImpl_Connect ( IDirectPlayLobby2A iface,
DWORD  flags,
IDirectPlay2A **  dp,
IUnknown unk 
)
static

Definition at line 466 of file dplobby.c.

468{
470 return IDirectPlayLobby_Connect( &This->IDirectPlayLobby3A_iface, flags, dp, unk );
471}
#define IDirectPlayLobby_Connect(p, a, b, c)
Definition: dplobby.h:458
GLbitfield flags
Definition: glext.h:7161

◆ IDirectPlayLobby2AImpl_CreateAddress()

static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateAddress ( IDirectPlayLobby2A iface,
REFGUID  sp,
REFGUID  datatype,
const void data,
DWORD  datasize,
void address,
DWORD addrsize 
)
static

Definition at line 519 of file dplobby.c.

521{
523 return IDirectPlayLobby_CreateAddress( &This->IDirectPlayLobby3A_iface, sp, datatype, data,
524 datasize, address, addrsize );
525}
static SIZE_T datasize
Definition: asm.c:30
#define IDirectPlayLobby_CreateAddress(p, a, b, c, d, e, f)
Definition: dplobby.h:459
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLuint address
Definition: glext.h:9393
static const WCHAR sp[]
Definition: suminfo.c:287

◆ IDirectPlayLobby2AImpl_CreateCompoundAddress()

static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateCompoundAddress ( IDirectPlayLobby2A iface,
const DPCOMPOUNDADDRESSELEMENT elements,
DWORD  count,
void address,
DWORD size 
)
static

Definition at line 1629 of file dplobby.c.

1631{
1633 return IDirectPlayLobby_CreateCompoundAddress( &This->IDirectPlayLobby3A_iface, elements,
1634 count, address, size );
1635}
#define IDirectPlayLobby_CreateCompoundAddress(p, a, b, c, d)
Definition: dplobby.h:470
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919

◆ IDirectPlayLobby2AImpl_EnumAddress()

static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddress ( IDirectPlayLobby2A iface,
LPDPENUMADDRESSCALLBACK  enumaddrcb,
const void address,
DWORD  size,
void context 
)
static

Definition at line 604 of file dplobby.c.

606{
608 return IDirectPlayLobby_EnumAddress( &This->IDirectPlayLobby3A_iface, enumaddrcb, address, size,
609 context );
610}
#define IDirectPlayLobby_EnumAddress(p, a, b, c, d)
Definition: dplobby.h:460
Definition: http.c:7252

◆ IDirectPlayLobby2AImpl_EnumAddressTypes()

static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddressTypes ( IDirectPlayLobby2A iface,
LPDPLENUMADDRESSTYPESCALLBACK  enumaddrtypecb,
REFGUID  sp,
void context,
DWORD  flags 
)
static

Definition at line 695 of file dplobby.c.

697{
699 return IDirectPlayLobby_EnumAddressTypes( &This->IDirectPlayLobby3A_iface, enumaddrtypecb, sp,
700 context, flags );
701}
#define IDirectPlayLobby_EnumAddressTypes(p, a, b, c, d)
Definition: dplobby.h:461

◆ IDirectPlayLobby2AImpl_EnumLocalApplications()

static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumLocalApplications ( IDirectPlayLobby2A iface,
LPDPLENUMLOCALAPPLICATIONSCALLBACK  enumlocalappcb,
void context,
DWORD  flags 
)
static

Definition at line 872 of file dplobby.c.

874{
876 return IDirectPlayLobby_EnumLocalApplications( &This->IDirectPlayLobby3A_iface, enumlocalappcb,
877 context, flags );
878}
#define IDirectPlayLobby_EnumLocalApplications(p, a, b, c)
Definition: dplobby.h:462

◆ IDirectPlayLobby2AImpl_GetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby2AImpl_GetConnectionSettings ( IDirectPlayLobby2A iface,
DWORD  appid,
void data,
DWORD size 
)
static

Definition at line 1003 of file dplobby.c.

1005{
1007 return IDirectPlayLobby_GetConnectionSettings( &This->IDirectPlayLobby3A_iface, appid, data,
1008 size );
1009}
char * appid
Definition: mkisofs.c:161

◆ IDirectPlayLobby2AImpl_QueryInterface()

static HRESULT WINAPI IDirectPlayLobby2AImpl_QueryInterface ( IDirectPlayLobby2A iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 137 of file dplobby.c.

139{
141 return IDirectPlayLobby_QueryInterface( &This->IDirectPlayLobby3_iface, riid, ppv );
142}

◆ IDirectPlayLobby2AImpl_ReceiveLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby2AImpl_ReceiveLobbyMessage ( IDirectPlayLobby2A iface,
DWORD  flags,
DWORD  appid,
DWORD msgflags,
void data,
DWORD size 
)
static

Definition at line 1081 of file dplobby.c.

1083{
1085 return IDirectPlayLobby_ReceiveLobbyMessage( &This->IDirectPlayLobby3A_iface, flags, appid,
1086 msgflags, data, size );
1087}
#define IDirectPlayLobby_ReceiveLobbyMessage(p, a, b, c, d, e)
Definition: dplobby.h:464

◆ IDirectPlayLobby2AImpl_Release()

static ULONG WINAPI IDirectPlayLobby2AImpl_Release ( IDirectPlayLobby2A iface)
static

Definition at line 313 of file dplobby.c.

314{
316 ULONG ref = InterlockedDecrement( &This->ref2A );
317
318 TRACE( "(%p) ref2A=%d\n", This, ref );
319
320 if ( !ref && !InterlockedDecrement( &This->numIfaces ) )
322
323 return ref;
324}
#define InterlockedDecrement
Definition: armddk.h:52
static void dplobby_destroy(IDirectPlayLobbyImpl *obj)
Definition: dplobby.c:112

◆ IDirectPlayLobby2AImpl_RunApplication()

static HRESULT WINAPI IDirectPlayLobby2AImpl_RunApplication ( IDirectPlayLobby2A iface,
DWORD  flags,
DWORD appid,
DPLCONNECTION conn,
HANDLE  event 
)
static

Definition at line 1278 of file dplobby.c.

1280{
1282 return IDirectPlayLobby_RunApplication( &This->IDirectPlayLobby3A_iface, flags, appid, conn,
1283 event );
1284}
#define IDirectPlayLobby_RunApplication(p, a, b, c, d)
Definition: dplobby.h:465
struct _cl_event * event
Definition: glext.h:7739

◆ IDirectPlayLobby2AImpl_SendLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby2AImpl_SendLobbyMessage ( IDirectPlayLobby2A iface,
DWORD  flags,
DWORD  appid,
void data,
DWORD  size 
)
static

Definition at line 1449 of file dplobby.c.

1451{
1453 return IDirectPlayLobby_SendLobbyMessage( &This->IDirectPlayLobby3A_iface, flags, appid, data,
1454 size );
1455}
#define IDirectPlayLobby_SendLobbyMessage(p, a, b, c, d)
Definition: dplobby.h:466

◆ IDirectPlayLobby2AImpl_SetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby2AImpl_SetConnectionSettings ( IDirectPlayLobby2A iface,
DWORD  flags,
DWORD  appid,
DPLCONNECTION conn 
)
static

Definition at line 1532 of file dplobby.c.

1534{
1536 return IDirectPlayLobby_SetConnectionSettings( &This->IDirectPlayLobby3A_iface, flags,
1537 appid, conn );
1538}
#define IDirectPlayLobby_SetConnectionSettings(p, a, b, c)
Definition: dplobby.h:467

◆ IDirectPlayLobby2AImpl_SetLobbyMessageEvent()

static HRESULT WINAPI IDirectPlayLobby2AImpl_SetLobbyMessageEvent ( IDirectPlayLobby2A iface,
DWORD  flags,
DWORD  appid,
HANDLE  event 
)
static

Definition at line 1597 of file dplobby.c.

1599{
1601 return IDirectPlayLobby_SetLobbyMessageEvent( &This->IDirectPlayLobby3A_iface, flags, appid,
1602 event );
1603}
#define IDirectPlayLobby_SetLobbyMessageEvent(p, a, b, c)
Definition: dplobby.h:468

◆ IDirectPlayLobby2Impl_AddRef()

static ULONG WINAPI IDirectPlayLobby2Impl_AddRef ( IDirectPlayLobby2 *  iface)
static

Definition at line 248 of file dplobby.c.

249{
252
253 TRACE( "(%p) ref2=%d\n", This, ref );
254
255 if ( ref == 1 )
256 InterlockedIncrement( &This->numIfaces );
257
258 return ref;
259}
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby2(IDirectPlayLobby2 *iface)
Definition: dplobby.c:92

◆ IDirectPlayLobby2Impl_Connect()

static HRESULT WINAPI IDirectPlayLobby2Impl_Connect ( IDirectPlayLobby2 *  iface,
DWORD  flags,
IDirectPlay2A **  dp,
IUnknown unk 
)
static

Definition at line 473 of file dplobby.c.

475{
477 return IDirectPlayLobby_Connect( &This->IDirectPlayLobby3_iface, flags, dp, unk );
478}

◆ IDirectPlayLobby2Impl_CreateAddress()

static HRESULT WINAPI IDirectPlayLobby2Impl_CreateAddress ( IDirectPlayLobby2 *  iface,
REFGUID  sp,
REFGUID  datatype,
const void data,
DWORD  datasize,
void address,
DWORD addrsize 
)
static

Definition at line 527 of file dplobby.c.

529{
531 return IDirectPlayLobby_CreateAddress( &This->IDirectPlayLobby3_iface, sp, datatype, data,
532 datasize, address, addrsize );
533}

◆ IDirectPlayLobby2Impl_CreateCompoundAddress()

static HRESULT WINAPI IDirectPlayLobby2Impl_CreateCompoundAddress ( IDirectPlayLobby2 *  iface,
const DPCOMPOUNDADDRESSELEMENT elements,
DWORD  count,
void address,
DWORD size 
)
static

Definition at line 1637 of file dplobby.c.

1639{
1641 return IDirectPlayLobby_CreateCompoundAddress( &This->IDirectPlayLobby3_iface, elements,
1642 count, address, size );
1643}

◆ IDirectPlayLobby2Impl_EnumAddress()

static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddress ( IDirectPlayLobby2 *  iface,
LPDPENUMADDRESSCALLBACK  enumaddrcb,
const void address,
DWORD  size,
void context 
)
static

Definition at line 612 of file dplobby.c.

614{
616 return IDirectPlayLobby_EnumAddress( &This->IDirectPlayLobby3_iface, enumaddrcb, address, size,
617 context );
618}

◆ IDirectPlayLobby2Impl_EnumAddressTypes()

static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddressTypes ( IDirectPlayLobby2 *  iface,
LPDPLENUMADDRESSTYPESCALLBACK  enumaddrtypecb,
REFGUID  sp,
void context,
DWORD  flags 
)
static

Definition at line 703 of file dplobby.c.

705{
707 return IDirectPlayLobby_EnumAddressTypes( &This->IDirectPlayLobby3_iface, enumaddrtypecb, sp,
708 context, flags );
709}

◆ IDirectPlayLobby2Impl_EnumLocalApplications()

static HRESULT WINAPI IDirectPlayLobby2Impl_EnumLocalApplications ( IDirectPlayLobby2 *  iface,
LPDPLENUMLOCALAPPLICATIONSCALLBACK  enumlocalappcb,
void context,
DWORD  flags 
)
static

Definition at line 880 of file dplobby.c.

882{
884 return IDirectPlayLobby_EnumLocalApplications( &This->IDirectPlayLobby3_iface, enumlocalappcb,
885 context, flags );
886}

◆ IDirectPlayLobby2Impl_GetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby2Impl_GetConnectionSettings ( IDirectPlayLobby2 *  iface,
DWORD  appid,
void data,
DWORD size 
)
static

Definition at line 1011 of file dplobby.c.

1013{
1015 return IDirectPlayLobby_GetConnectionSettings( &This->IDirectPlayLobby3_iface, appid, data,
1016 size );
1017}

◆ IDirectPlayLobby2Impl_QueryInterface()

static HRESULT WINAPI IDirectPlayLobby2Impl_QueryInterface ( IDirectPlayLobby2 *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 144 of file dplobby.c.

146{
148 return IDirectPlayLobby_QueryInterface( &This->IDirectPlayLobby3_iface, riid, ppv );
149}

◆ IDirectPlayLobby2Impl_ReceiveLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby2Impl_ReceiveLobbyMessage ( IDirectPlayLobby2 *  iface,
DWORD  flags,
DWORD  appid,
DWORD msgflags,
void data,
DWORD size 
)
static

Definition at line 1089 of file dplobby.c.

1091{
1093 return IDirectPlayLobby_ReceiveLobbyMessage( &This->IDirectPlayLobby3_iface, flags, appid,
1094 msgflags, data, size );
1095}

◆ IDirectPlayLobby2Impl_Release()

static ULONG WINAPI IDirectPlayLobby2Impl_Release ( IDirectPlayLobby2 *  iface)
static

Definition at line 326 of file dplobby.c.

327{
330
331 TRACE( "(%p) ref2=%d\n", This, ref );
332
333 if ( !ref && !InterlockedDecrement( &This->numIfaces ) )
335
336 return ref;
337}

◆ IDirectPlayLobby2Impl_RunApplication()

static HRESULT WINAPI IDirectPlayLobby2Impl_RunApplication ( IDirectPlayLobby2 *  iface,
DWORD  flags,
DWORD appid,
DPLCONNECTION conn,
HANDLE  event 
)
static

Definition at line 1286 of file dplobby.c.

1288{
1290 return IDirectPlayLobby_RunApplication( &This->IDirectPlayLobby3_iface, flags, appid, conn,
1291 event );
1292}

◆ IDirectPlayLobby2Impl_SendLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby2Impl_SendLobbyMessage ( IDirectPlayLobby2 *  iface,
DWORD  flags,
DWORD  appid,
void data,
DWORD  size 
)
static

Definition at line 1457 of file dplobby.c.

1459{
1461 return IDirectPlayLobby_SendLobbyMessage( &This->IDirectPlayLobby3_iface, flags, appid, data,
1462 size );
1463}

◆ IDirectPlayLobby2Impl_SetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby2Impl_SetConnectionSettings ( IDirectPlayLobby2 *  iface,
DWORD  flags,
DWORD  appid,
DPLCONNECTION conn 
)
static

Definition at line 1540 of file dplobby.c.

1542{
1544 return IDirectPlayLobby_SetConnectionSettings( &This->IDirectPlayLobby3_iface, flags,
1545 appid, conn );
1546}

◆ IDirectPlayLobby2Impl_SetLobbyMessageEvent()

static HRESULT WINAPI IDirectPlayLobby2Impl_SetLobbyMessageEvent ( IDirectPlayLobby2 *  iface,
DWORD  flags,
DWORD  appid,
HANDLE  event 
)
static

Definition at line 1605 of file dplobby.c.

1607{
1609 return IDirectPlayLobby_SetLobbyMessageEvent( &This->IDirectPlayLobby3_iface, flags, appid,
1610 event );
1611}

◆ IDirectPlayLobby3AImpl_AddRef()

static ULONG WINAPI IDirectPlayLobby3AImpl_AddRef ( IDirectPlayLobby3A iface)
static

Definition at line 261 of file dplobby.c.

262{
264 ULONG ref = InterlockedIncrement( &This->ref3A );
265
266 TRACE( "(%p) ref3A=%d\n", This, ref );
267
268 if ( ref == 1 )
269 InterlockedIncrement( &This->numIfaces );
270
271 return ref;
272}
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby3A(IDirectPlayLobby3A *iface)
Definition: dplobby.c:107

◆ IDirectPlayLobby3AImpl_Connect()

static HRESULT WINAPI IDirectPlayLobby3AImpl_Connect ( IDirectPlayLobby3A iface,
DWORD  flags,
IDirectPlay2A **  dp,
IUnknown unk 
)
static

Definition at line 480 of file dplobby.c.

482{
483 return IDirectPlayLobby_ConnectEx( iface, flags, &IID_IDirectPlay2A, (void**)dp, unk );
484}
#define IDirectPlayLobby_ConnectEx(p, a, b, c, d)
Definition: dplobby.h:472

◆ IDirectPlayLobby3AImpl_ConnectEx()

static HRESULT WINAPI IDirectPlayLobby3AImpl_ConnectEx ( IDirectPlayLobby3A iface,
DWORD  dwFlags,
REFIID  riid,
void **  lplpDP,
IUnknown pUnk 
)
static

Definition at line 1837 of file dplobby.c.

1839{
1841 return DPL_ConnectEx( This, dwFlags, riid, lplpDP, pUnk );
1842}
static HRESULT DPL_ConnectEx(IDirectPlayLobbyImpl *This, DWORD dwFlags, REFIID riid, void **lplpDP, IUnknown *pUnk)
Definition: dplobby.c:374

◆ IDirectPlayLobby3AImpl_CreateAddress()

static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateAddress ( IDirectPlayLobby3A iface,
REFGUID  guidSP,
REFGUID  guidDataType,
const void lpData,
DWORD  dwDataSize,
void lpAddress,
DWORD lpdwAddressSize 
)
static

Definition at line 535 of file dplobby.c.

538{
539 return DPL_CreateAddress( guidSP, guidDataType, lpData, dwDataSize,
540 lpAddress, lpdwAddressSize, TRUE );
541}
static HRESULT DPL_CreateAddress(REFGUID guidSP, REFGUID guidDataType, LPCVOID lpData, DWORD dwDataSize, LPVOID lpAddress, LPDWORD lpdwAddressSize, BOOL bAnsiInterface)
Definition: dplobby.c:551

◆ IDirectPlayLobby3AImpl_CreateCompoundAddress()

static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateCompoundAddress ( IDirectPlayLobby3A iface,
const DPCOMPOUNDADDRESSELEMENT lpElements,
DWORD  dwElementCount,
void lpAddress,
DWORD lpdwAddressSize 
)
static

Definition at line 1652 of file dplobby.c.

1655{
1656 return DPL_CreateCompoundAddress( lpElements, dwElementCount, lpAddress, lpdwAddressSize, TRUE );
1657}

◆ IDirectPlayLobby3AImpl_EnumAddress()

static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddress ( IDirectPlayLobby3A iface,
LPDPENUMADDRESSCALLBACK  lpEnumAddressCallback,
const void lpAddress,
DWORD  dwAddressSize,
void lpContext 
)
static

Definition at line 620 of file dplobby.c.

623{
625
626 TRACE("(%p)->(%p,%p,0x%08x,%p)\n", This, lpEnumAddressCallback, lpAddress,
627 dwAddressSize, lpContext );
628
629 return DPL_EnumAddress( lpEnumAddressCallback, lpAddress, dwAddressSize, lpContext );
630}
HRESULT DPL_EnumAddress(LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, LPCVOID lpAddress, DWORD dwAddressSize, LPVOID lpContext)
Definition: dplobby.c:644

◆ IDirectPlayLobby3AImpl_EnumAddressTypes()

static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddressTypes ( IDirectPlayLobby3A iface,
LPDPLENUMADDRESSTYPESCALLBACK  lpEnumAddressTypeCallback,
REFGUID  guidSP,
void lpContext,
DWORD  dwFlags 
)
static

Definition at line 711 of file dplobby.c.

714{
716
717 HKEY hkResult;
718 LPCSTR searchSubKey = "SOFTWARE\\Microsoft\\DirectPlay\\Service Providers";
719 DWORD dwIndex, sizeOfSubKeyName=50;
720 char subKeyName[51];
722
723 TRACE(" (%p)->(%p,%p,%p,0x%08x)\n", This, lpEnumAddressTypeCallback, guidSP, lpContext, dwFlags );
724
725 if( dwFlags != 0 )
726 {
727 return DPERR_INVALIDPARAMS;
728 }
729
730 if( !lpEnumAddressTypeCallback )
731 {
732 return DPERR_INVALIDPARAMS;
733 }
734
735 if( guidSP == NULL )
736 {
737 return DPERR_INVALIDOBJECT;
738 }
739
740 /* Need to loop over the service providers in the registry */
741 if( RegOpenKeyExA( HKEY_LOCAL_MACHINE, searchSubKey,
742 0, KEY_READ, &hkResult ) != ERROR_SUCCESS )
743 {
744 /* Hmmm. Does this mean that there are no service providers? */
745 ERR(": no service providers?\n");
746 return DP_OK;
747 }
748
749 /* Traverse all the service providers we have available */
750 for( dwIndex=0;
751 RegEnumKeyExA( hkResult, dwIndex, subKeyName, &sizeOfSubKeyName,
753 ++dwIndex, sizeOfSubKeyName=50 )
754 {
755
756 HKEY hkServiceProvider, hkServiceProviderAt;
757 GUID serviceProviderGUID;
758 DWORD returnTypeGUID, sizeOfReturnBuffer = 50;
759 char atSubKey[51];
760 char returnBuffer[51];
761 WCHAR buff[51];
762 DWORD dwAtIndex;
763 LPCSTR atKey = "Address Types";
764 LPCSTR guidDataSubKey = "Guid";
765
766 TRACE(" this time through: %s\n", subKeyName );
767
768 /* Get a handle for this particular service provider */
769 if( RegOpenKeyExA( hkResult, subKeyName, 0, KEY_READ,
770 &hkServiceProvider ) != ERROR_SUCCESS )
771 {
772 ERR(": what the heck is going on?\n" );
773 continue;
774 }
775
776 if( RegQueryValueExA( hkServiceProvider, guidDataSubKey,
777 NULL, &returnTypeGUID, (LPBYTE)returnBuffer,
778 &sizeOfReturnBuffer ) != ERROR_SUCCESS )
779 {
780 ERR(": missing GUID registry data members\n" );
781 continue;
782 }
783
784 /* FIXME: Check return types to ensure we're interpreting data right */
785 MultiByteToWideChar( CP_ACP, 0, returnBuffer, -1, buff, ARRAY_SIZE( buff ));
786 CLSIDFromString( buff, &serviceProviderGUID );
787 /* FIXME: Have I got a memory leak on the serviceProviderGUID? */
788
789 /* Determine if this is the Service Provider that the user asked for */
790 if( !IsEqualGUID( &serviceProviderGUID, guidSP ) )
791 {
792 continue;
793 }
794
795 /* Get a handle for this particular service provider */
796 if( RegOpenKeyExA( hkServiceProvider, atKey, 0, KEY_READ,
797 &hkServiceProviderAt ) != ERROR_SUCCESS )
798 {
799 TRACE(": No Address Types registry data sub key/members\n" );
800 break;
801 }
802
803 /* Traverse all the address type we have available */
804 for( dwAtIndex=0;
805 RegEnumKeyExA( hkServiceProviderAt, dwAtIndex, atSubKey, &sizeOfSubKeyName,
807 ++dwAtIndex, sizeOfSubKeyName=50 )
808 {
809 TRACE( "Found Address Type GUID %s\n", atSubKey );
810
811 /* FIXME: Check return types to ensure we're interpreting data right */
812 MultiByteToWideChar( CP_ACP, 0, atSubKey, -1, buff, ARRAY_SIZE( buff ));
813 CLSIDFromString( buff, &serviceProviderGUID );
814 /* FIXME: Have I got a memory leak on the serviceProviderGUID? */
815
816 /* The enumeration will return FALSE if we are not to continue */
817 if( !lpEnumAddressTypeCallback( &serviceProviderGUID, lpContext, 0 ) )
818 {
819 WARN("lpEnumCallback returning FALSE\n" );
820 break; /* FIXME: This most likely has to break from the procedure...*/
821 }
822
823 }
824
825 /* We only enumerate address types for 1 GUID. We've found it, so quit looking */
826 break;
827 }
828
829 return DP_OK;
830}
#define ARRAY_SIZE(A)
Definition: main.h:33
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3298
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4009
LONG WINAPI RegEnumKeyExA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
Definition: reg.c:2419
#define CP_ACP
Definition: compat.h:109
#define ERROR_NO_MORE_ITEMS
Definition: compat.h:105
#define MultiByteToWideChar
Definition: compat.h:110
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
Definition: compobj.c:2338
#define DPERR_INVALIDOBJECT
Definition: dplay.h:101
static unsigned char buff[32768]
Definition: fatten.c:17
#define KEY_READ
Definition: nt_native.h:1023
unsigned char * LPBYTE
Definition: typedefs.h:53
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
const char * LPCSTR
Definition: xmlstorage.h:183

◆ IDirectPlayLobby3AImpl_EnumLocalApplications()

static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumLocalApplications ( IDirectPlayLobby3A iface,
LPDPLENUMLOCALAPPLICATIONSCALLBACK  lpEnumLocalAppCallback,
void lpContext,
DWORD  dwFlags 
)
static

Definition at line 888 of file dplobby.c.

890{
892
893 HKEY hkResult;
894 LPCSTR searchSubKey = "SOFTWARE\\Microsoft\\DirectPlay\\Applications";
895 LPCSTR guidDataSubKey = "Guid";
896 DWORD dwIndex, sizeOfSubKeyName=50;
897 char subKeyName[51];
899
900 TRACE("(%p)->(%p,%p,0x%08x)\n", This, lpEnumLocalAppCallback, lpContext, dwFlags );
901
902 if( dwFlags != 0 )
903 {
904 return DPERR_INVALIDPARAMS;
905 }
906
907 if( !lpEnumLocalAppCallback )
908 {
909 return DPERR_INVALIDPARAMS;
910 }
911
912 /* Need to loop over the service providers in the registry */
913 if( RegOpenKeyExA( HKEY_LOCAL_MACHINE, searchSubKey,
914 0, KEY_READ, &hkResult ) != ERROR_SUCCESS )
915 {
916 /* Hmmm. Does this mean that there are no service providers? */
917 ERR(": no service providers?\n");
918 return DP_OK;
919 }
920
921 /* Traverse all registered applications */
922 for( dwIndex=0;
923 RegEnumKeyExA( hkResult, dwIndex, subKeyName, &sizeOfSubKeyName, NULL, NULL, NULL, &filetime ) != ERROR_NO_MORE_ITEMS;
924 ++dwIndex, sizeOfSubKeyName=50 )
925 {
926
927 HKEY hkServiceProvider;
928 GUID serviceProviderGUID;
929 DWORD returnTypeGUID, sizeOfReturnBuffer = 50;
930 char returnBuffer[51];
931 WCHAR buff[51];
932 DPLAPPINFO dplAppInfo;
933
934 TRACE(" this time through: %s\n", subKeyName );
935
936 /* Get a handle for this particular service provider */
937 if( RegOpenKeyExA( hkResult, subKeyName, 0, KEY_READ,
938 &hkServiceProvider ) != ERROR_SUCCESS )
939 {
940 ERR(": what the heck is going on?\n" );
941 continue;
942 }
943
944 if( RegQueryValueExA( hkServiceProvider, guidDataSubKey,
945 NULL, &returnTypeGUID, (LPBYTE)returnBuffer,
946 &sizeOfReturnBuffer ) != ERROR_SUCCESS )
947 {
948 ERR(": missing GUID registry data members\n" );
949 continue;
950 }
951
952 /* FIXME: Check return types to ensure we're interpreting data right */
953 MultiByteToWideChar( CP_ACP, 0, returnBuffer, -1, buff, ARRAY_SIZE( buff ));
954 CLSIDFromString( buff, &serviceProviderGUID );
955 /* FIXME: Have I got a memory leak on the serviceProviderGUID? */
956
957 dplAppInfo.dwSize = sizeof( dplAppInfo );
958 dplAppInfo.guidApplication = serviceProviderGUID;
959 dplAppInfo.u.lpszAppNameA = subKeyName;
960
961 EnterCriticalSection( &This->lock );
962
963 memcpy( &This->cbkeyhack, &hkServiceProvider, sizeof( hkServiceProvider ) );
964
965 if( !lpEnumLocalAppCallback( &dplAppInfo, lpContext, dwFlags ) )
966 {
967 LeaveCriticalSection( &This->lock );
968 break;
969 }
970
971 LeaveCriticalSection( &This->lock );
972 }
973
974 return DP_OK;
975}
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GUID guidApplication
Definition: dplobby.h:284
LPSTR lpszAppNameA
Definition: dplobby.h:288
DWORD dwSize
Definition: dplobby.h:283
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)

◆ IDirectPlayLobby3AImpl_GetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby3AImpl_GetConnectionSettings ( IDirectPlayLobby3A iface,
DWORD  dwAppID,
void lpData,
DWORD lpdwDataSize 
)
static

Definition at line 1019 of file dplobby.c.

1021{
1023 HRESULT hr;
1024
1025 TRACE("(%p)->(0x%08x,%p,%p)\n", This, dwAppID, lpData, lpdwDataSize );
1026
1027 EnterCriticalSection( &This->lock );
1028
1030 lpData,
1031 lpdwDataSize
1032 );
1033
1034 LeaveCriticalSection( &This->lock );
1035
1036 return hr;
1037}
HRESULT DPLAYX_GetConnectionSettingsA(DWORD dwAppID, LPVOID lpData, LPDWORD lpdwDataSize)

◆ IDirectPlayLobby3AImpl_QueryInterface()

static HRESULT WINAPI IDirectPlayLobby3AImpl_QueryInterface ( IDirectPlayLobby3A iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 151 of file dplobby.c.

153{
155 return IDirectPlayLobby_QueryInterface( &This->IDirectPlayLobby3_iface, riid, ppv );
156}

◆ IDirectPlayLobby3AImpl_ReceiveLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby3AImpl_ReceiveLobbyMessage ( IDirectPlayLobby3A iface,
DWORD  dwFlags,
DWORD  dwAppID,
DWORD lpdwMessageFlags,
void lpData,
DWORD lpdwDataSize 
)
static

Definition at line 1097 of file dplobby.c.

1100{
1102 FIXME(":stub %p %08x %08x %p %p %p\n", This, dwFlags, dwAppID, lpdwMessageFlags, lpData,
1103 lpdwDataSize );
1104 return DPERR_OUTOFMEMORY;
1105}

◆ IDirectPlayLobby3AImpl_RegisterApplication()

static HRESULT WINAPI IDirectPlayLobby3AImpl_RegisterApplication ( IDirectPlayLobby3A iface,
DWORD  flags,
DPAPPLICATIONDESC appdesc 
)
static

Definition at line 1851 of file dplobby.c.

1853{
1854 FIXME(":stub\n");
1855 return DP_OK;
1856}

◆ IDirectPlayLobby3AImpl_Release()

static ULONG WINAPI IDirectPlayLobby3AImpl_Release ( IDirectPlayLobby3A iface)
static

Definition at line 339 of file dplobby.c.

340{
342 ULONG ref = InterlockedDecrement( &This->ref3A );
343
344 TRACE( "(%p) ref3A=%d\n", This, ref );
345
346 if ( !ref && !InterlockedDecrement( &This->numIfaces ) )
348
349 return ref;
350}

◆ IDirectPlayLobby3AImpl_RunApplication()

static HRESULT WINAPI IDirectPlayLobby3AImpl_RunApplication ( IDirectPlayLobby3A iface,
DWORD  dwFlags,
DWORD lpdwAppID,
DPLCONNECTION lpConn,
HANDLE  hReceiveEvent 
)
static

Definition at line 1294 of file dplobby.c.

1296{
1298 HRESULT hr;
1299 RunApplicationEnumStruct enumData;
1300 char temp[200];
1301 STARTUPINFOA startupInfo;
1302 PROCESS_INFORMATION newProcessInfo;
1303 LPSTR appName;
1304 DWORD dwSuspendCount;
1305 HANDLE hStart, hDeath, hSettingRead;
1306
1307 TRACE( "(%p)->(0x%08x,%p,%p,%p)\n",
1308 This, dwFlags, lpdwAppID, lpConn, hReceiveEvent );
1309
1310 if( dwFlags != 0 )
1311 {
1312 return DPERR_INVALIDPARAMS;
1313 }
1314
1316 {
1317 FIXME( "Waiting lobby not being handled correctly\n" );
1318 }
1319
1320 EnterCriticalSection( &This->lock );
1321
1322 ZeroMemory( &enumData, sizeof( enumData ) );
1323 enumData.This = This;
1324 enumData.appGUID = lpConn->lpSessionDesc->guidApplication;
1325
1326 /* Our callback function will fill up the enumData structure with all the information
1327 required to start a new process */
1329 (&enumData), 0 );
1330
1331 /* First the application name */
1332 strcpy( temp, enumData.lpszPath );
1333 strcat( temp, "\\" );
1334 strcat( temp, enumData.lpszFileName );
1335 HeapFree( GetProcessHeap(), 0, enumData.lpszPath );
1336 HeapFree( GetProcessHeap(), 0, enumData.lpszFileName );
1337 if ((appName = HeapAlloc( GetProcessHeap(), 0, strlen(temp)+1 ))) strcpy( appName, temp );
1338
1339 /* Now the command line */
1340 strcat( temp, " " );
1341 strcat( temp, enumData.lpszCommandLine );
1342 HeapFree( GetProcessHeap(), 0, enumData.lpszCommandLine );
1343 if ((enumData.lpszCommandLine = HeapAlloc( GetProcessHeap(), 0, strlen(temp)+1 )))
1344 strcpy( enumData.lpszCommandLine, temp );
1345
1346 ZeroMemory( &startupInfo, sizeof( startupInfo ) );
1347 startupInfo.cb = sizeof( startupInfo );
1348 /* FIXME: Should any fields be filled in? */
1349
1350 ZeroMemory( &newProcessInfo, sizeof( newProcessInfo ) );
1351
1352 if( !CreateProcessA( appName,
1353 enumData.lpszCommandLine,
1354 NULL,
1355 NULL,
1356 FALSE,
1358 NULL,
1359 enumData.lpszCurrentDirectory,
1360 &startupInfo,
1361 &newProcessInfo
1362 )
1363 )
1364 {
1365 ERR( "Failed to create process for app %s\n", appName );
1366
1368 HeapFree( GetProcessHeap(), 0, enumData.lpszCommandLine );
1370
1371 LeaveCriticalSection( &This->lock );
1373 }
1374
1376 HeapFree( GetProcessHeap(), 0, enumData.lpszCommandLine );
1378
1379 /* Reserve this global application id! */
1380 if( !DPLAYX_CreateLobbyApplication( newProcessInfo.dwProcessId ) )
1381 {
1382 ERR( "Unable to create global application data for 0x%08x\n",
1383 newProcessInfo.dwProcessId );
1384 }
1385
1386 hr = IDirectPlayLobby_SetConnectionSettings( iface, 0, newProcessInfo.dwProcessId, lpConn );
1387
1388 if( hr != DP_OK )
1389 {
1390 ERR( "SetConnectionSettings failure %s\n", DPLAYX_HresultToString( hr ) );
1391 LeaveCriticalSection( &This->lock );
1392 return hr;
1393 }
1394
1395 /* Setup the handles for application notification */
1397 newProcessInfo.hProcess,
1398 &hStart, &hDeath, &hSettingRead );
1399
1400 /* Setup the message thread ID */
1401 This->msgtid = CreateLobbyMessageReceptionThread( hReceiveEvent, hStart, hDeath, hSettingRead );
1402
1403 DPLAYX_SetLobbyMsgThreadId( newProcessInfo.dwProcessId, This->msgtid );
1404
1405 LeaveCriticalSection( &This->lock );
1406
1407 /* Everything seems to have been set correctly, update the dwAppID */
1408 *lpdwAppID = newProcessInfo.dwProcessId;
1409
1410 /* Unsuspend the process - should return the prev suspension count */
1411 if( ( dwSuspendCount = ResumeThread( newProcessInfo.hThread ) ) != 1 )
1412 {
1413 ERR( "ResumeThread failed with 0x%08x\n", dwSuspendCount );
1414 }
1415
1416 return DP_OK;
1417}
char * strcat(char *DstString, const char *SrcString)
Definition: utclib.c:568
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
Definition: proc.c:4741
DWORD WINAPI ResumeThread(IN HANDLE hThread)
Definition: thread.c:567
#define DPERR_CANTCREATEPROCESS
Definition: dplay.h:137
BOOL DPLAYX_AnyLobbiesWaitingForConnSettings(void)
BOOL DPLAYX_SetLobbyMsgThreadId(DWORD dwAppId, DWORD dwThreadId)
BOOL DPLAYX_CreateLobbyApplication(DWORD dwAppID)
DWORD CreateLobbyMessageReceptionThread(HANDLE hNotifyEvent, HANDLE hStart, HANDLE hDeath, HANDLE hConnRead)
static BOOL CALLBACK RunApplicationA_EnumLocalApplications(LPCDPLAPPINFO lpAppInfo, LPVOID lpContext, DWORD dwFlags)
Definition: dplobby.c:1130
static BOOL DPL_CreateAndSetLobbyHandles(DWORD dwDestProcessId, HANDLE hDestProcess, LPHANDLE lphStart, LPHANDLE lphDeath, LPHANDLE lphRead)
Definition: dplobby.c:1210
const char * appName(const char *argv0)
Definition: loadlib.c:89
static calc_node_t temp
Definition: rpn_ieee.c:38
DWORD cb
Definition: winbase.h:831
GUID guidApplication
Definition: dplay.h:235
IDirectPlayLobbyImpl * This
Definition: dplobby.c:1119
#define ZeroMemory
Definition: winbase.h:1712
#define CREATE_DEFAULT_ERROR_MODE
Definition: winbase.h:194
#define CREATE_SUSPENDED
Definition: winbase.h:178
#define CREATE_NEW_CONSOLE
Definition: winbase.h:180
char * LPSTR
Definition: xmlstorage.h:182

◆ IDirectPlayLobby3AImpl_SendLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby3AImpl_SendLobbyMessage ( IDirectPlayLobby3A iface,
DWORD  flags,
DWORD  appid,
void data,
DWORD  size 
)
static

Definition at line 1465 of file dplobby.c.

1467{
1468 FIXME(":stub\n");
1469 return DPERR_OUTOFMEMORY;
1470}

◆ IDirectPlayLobby3AImpl_SetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby3AImpl_SetConnectionSettings ( IDirectPlayLobby3A iface,
DWORD  dwFlags,
DWORD  dwAppID,
DPLCONNECTION lpConn 
)
static

Definition at line 1548 of file dplobby.c.

1550{
1552 HRESULT hr;
1553
1554 TRACE("(%p)->(0x%08x,0x%08x,%p)\n", This, dwFlags, dwAppID, lpConn );
1555
1556 EnterCriticalSection( &This->lock );
1557
1558 hr = DPLAYX_SetConnectionSettingsA( dwFlags, dwAppID, lpConn );
1559
1560 /* FIXME: Don't think that this is supposed to fail, but the documentation
1561 is somewhat sketchy. I'll try creating a lobby application
1562 for this... */
1563 if( hr == DPERR_NOTLOBBIED )
1564 {
1565 FIXME( "Unlobbied app setting connections. Is this correct behavior?\n" );
1566 dwAppID = GetCurrentProcessId();
1568 hr = DPLAYX_SetConnectionSettingsA( dwFlags, dwAppID, lpConn );
1569 }
1570
1571 LeaveCriticalSection( &This->lock );
1572
1573 return hr;
1574}
#define DPERR_NOTLOBBIED
Definition: dplay.h:142
HRESULT DPLAYX_SetConnectionSettingsA(DWORD dwFlags, DWORD dwAppID, const DPLCONNECTION *lpConn)
DWORD WINAPI GetCurrentProcessId(void)
Definition: proc.c:1158

◆ IDirectPlayLobby3AImpl_SetLobbyMessageEvent()

static HRESULT WINAPI IDirectPlayLobby3AImpl_SetLobbyMessageEvent ( IDirectPlayLobby3A iface,
DWORD  flags,
DWORD  appid,
HANDLE  event 
)
static

Definition at line 1613 of file dplobby.c.

1615{
1616 FIXME(":stub\n");
1617 return DPERR_OUTOFMEMORY;
1618}

◆ IDirectPlayLobby3AImpl_UnregisterApplication()

static HRESULT WINAPI IDirectPlayLobby3AImpl_UnregisterApplication ( IDirectPlayLobby3A iface,
DWORD  flags,
REFGUID  appdesc 
)
static

Definition at line 1865 of file dplobby.c.

1867{
1868 FIXME(":stub\n");
1869 return DP_OK;
1870}

◆ IDirectPlayLobby3AImpl_WaitForConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby3AImpl_WaitForConnectionSettings ( IDirectPlayLobby3A iface,
DWORD  dwFlags 
)
static

Definition at line 1889 of file dplobby.c.

1891{
1892 HRESULT hr = DP_OK;
1893 BOOL bStartWait = !(dwFlags & DPLWAIT_CANCEL);
1894
1895 TRACE( "(%p)->(0x%08x)\n", iface, dwFlags );
1896
1897 if( DPLAYX_WaitForConnectionSettings( bStartWait ) )
1898 {
1899 /* FIXME: What is the correct error return code? */
1901 }
1902
1903 return hr;
1904}
BOOL DPLAYX_WaitForConnectionSettings(BOOL bWait)
#define DPLWAIT_CANCEL
Definition: dplobby.h:503
unsigned int BOOL
Definition: ntddk_ex.h:94

◆ IDirectPlayLobby3Impl_AddRef()

static ULONG WINAPI IDirectPlayLobby3Impl_AddRef ( IDirectPlayLobby3 *  iface)
static

Definition at line 274 of file dplobby.c.

275{
278
279 TRACE( "(%p) ref3=%d\n", This, ref );
280
281 if ( ref == 1 )
282 InterlockedIncrement( &This->numIfaces );
283
284 return ref;
285}
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby3(IDirectPlayLobby3 *iface)
Definition: dplobby.c:102

◆ IDirectPlayLobby3Impl_Connect()

static HRESULT WINAPI IDirectPlayLobby3Impl_Connect ( IDirectPlayLobby3 *  iface,
DWORD  flags,
IDirectPlay2 **  dp,
IUnknown unk 
)
static

Definition at line 486 of file dplobby.c.

488{
489 return IDirectPlayLobby_ConnectEx( iface, flags, &IID_IDirectPlay2A, (void**)dp, unk );
490}

◆ IDirectPlayLobby3Impl_ConnectEx()

static HRESULT WINAPI IDirectPlayLobby3Impl_ConnectEx ( IDirectPlayLobby3 *  iface,
DWORD  dwFlags,
REFIID  riid,
LPVOID lplpDP,
IUnknown pUnk 
)
static

Definition at line 1830 of file dplobby.c.

1832{
1834 return DPL_ConnectEx( This, dwFlags, riid, lplpDP, pUnk );
1835}

◆ IDirectPlayLobby3Impl_CreateAddress()

static HRESULT WINAPI IDirectPlayLobby3Impl_CreateAddress ( IDirectPlayLobby3 *  iface,
REFGUID  guidSP,
REFGUID  guidDataType,
const void lpData,
DWORD  dwDataSize,
void lpAddress,
DWORD lpdwAddressSize 
)
static

Definition at line 543 of file dplobby.c.

546{
547 return DPL_CreateAddress( guidSP, guidDataType, lpData, dwDataSize,
548 lpAddress, lpdwAddressSize, FALSE );
549}

◆ IDirectPlayLobby3Impl_CreateCompoundAddress()

static HRESULT WINAPI IDirectPlayLobby3Impl_CreateCompoundAddress ( IDirectPlayLobby3 *  iface,
const DPCOMPOUNDADDRESSELEMENT lpElements,
DWORD  dwElementCount,
void lpAddress,
DWORD lpdwAddressSize 
)
static

Definition at line 1645 of file dplobby.c.

1648{
1649 return DPL_CreateCompoundAddress( lpElements, dwElementCount, lpAddress, lpdwAddressSize, FALSE );
1650}

◆ IDirectPlayLobby3Impl_EnumAddress()

static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddress ( IDirectPlayLobby3 *  iface,
LPDPENUMADDRESSCALLBACK  lpEnumAddressCallback,
const void lpAddress,
DWORD  dwAddressSize,
void lpContext 
)
static

Definition at line 632 of file dplobby.c.

635{
637
638 TRACE("(%p)->(%p,%p,0x%08x,%p)\n", This, lpEnumAddressCallback, lpAddress,
639 dwAddressSize, lpContext );
640
641 return DPL_EnumAddress( lpEnumAddressCallback, lpAddress, dwAddressSize, lpContext );
642}

◆ IDirectPlayLobby3Impl_EnumAddressTypes()

static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddressTypes ( IDirectPlayLobby3 *  iface,
LPDPLENUMADDRESSTYPESCALLBACK  enumaddrtypecb,
REFGUID  sp,
void context,
DWORD  flags 
)
static

Definition at line 832 of file dplobby.c.

834{
836 return IDirectPlayLobby_EnumAddressTypes( &This->IDirectPlayLobby3A_iface, enumaddrtypecb, sp,
837 context, flags );
838}

◆ IDirectPlayLobby3Impl_EnumLocalApplications()

static HRESULT WINAPI IDirectPlayLobby3Impl_EnumLocalApplications ( IDirectPlayLobby3 *  iface,
LPDPLENUMLOCALAPPLICATIONSCALLBACK  lpEnumLocalAppCallback,
void lpContext,
DWORD  dwFlags 
)
static

Definition at line 846 of file dplobby.c.

848{
850
851 FIXME("(%p)->(%p,%p,0x%08x):stub\n", This, lpEnumLocalAppCallback, lpContext, dwFlags );
852
853 return DPERR_OUTOFMEMORY;
854}

◆ IDirectPlayLobby3Impl_GetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby3Impl_GetConnectionSettings ( IDirectPlayLobby3 *  iface,
DWORD  dwAppID,
void lpData,
DWORD lpdwDataSize 
)
static

Definition at line 1039 of file dplobby.c.

1041{
1043 HRESULT hr;
1044
1045 TRACE("(%p)->(0x%08x,%p,%p)\n", This, dwAppID, lpData, lpdwDataSize );
1046
1047 EnterCriticalSection( &This->lock );
1048
1050 lpData,
1051 lpdwDataSize
1052 );
1053
1054 LeaveCriticalSection( &This->lock );
1055
1056 return hr;
1057}
HRESULT DPLAYX_GetConnectionSettingsW(DWORD dwAppID, LPVOID lpData, LPDWORD lpdwDataSize)

◆ IDirectPlayLobby3Impl_QueryInterface()

static HRESULT WINAPI IDirectPlayLobby3Impl_QueryInterface ( IDirectPlayLobby3 *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 158 of file dplobby.c.

160{
162
163 if ( IsEqualGUID( &IID_IUnknown, riid ) )
164 {
165 TRACE( "(%p)->(IID_IUnknown %p)\n", This, ppv );
166 *ppv = &This->IDirectPlayLobby_iface;
167 }
168 else if ( IsEqualGUID( &IID_IDirectPlayLobby, riid ) )
169 {
170 TRACE( "(%p)->(IID_IDirectPlayLobby %p)\n", This, ppv );
171 *ppv = &This->IDirectPlayLobby_iface;
172 }
173 else if ( IsEqualGUID( &IID_IDirectPlayLobbyA, riid ) )
174 {
175 TRACE( "(%p)->(IID_IDirectPlayLobbyA %p)\n", This, ppv );
176 *ppv = &This->IDirectPlayLobbyA_iface;
177 }
178 else if ( IsEqualGUID( &IID_IDirectPlayLobby2, riid ) )
179 {
180 TRACE( "(%p)->(IID_IDirectPlayLobby2 %p)\n", This, ppv );
181 *ppv = &This->IDirectPlayLobby2_iface;
182 }
183 else if ( IsEqualGUID( &IID_IDirectPlayLobby2A, riid ) )
184 {
185 TRACE( "(%p)->(IID_IDirectPlayLobby2A %p)\n", This, ppv );
186 *ppv = &This->IDirectPlayLobby2A_iface;
187 }
188 else if ( IsEqualGUID( &IID_IDirectPlayLobby3, riid ) )
189 {
190 TRACE( "(%p)->(IID_IDirectPlay3 %p)\n", This, ppv );
191 *ppv = &This->IDirectPlayLobby3_iface;
192 }
193 else if ( IsEqualGUID( &IID_IDirectPlayLobby3A, riid ) )
194 {
195 TRACE( "(%p)->(IID_IDirectPlayLobby3A %p)\n", This, ppv );
196 *ppv = &This->IDirectPlayLobby3A_iface;
197 }
198 else
199 {
200 WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
201 *ppv = NULL;
202 return E_NOINTERFACE;
203 }
204
205 IUnknown_AddRef((IUnknown*)*ppv);
206 return S_OK;
207}
const GUID IID_IUnknown
#define S_OK
Definition: intsafe.h:52
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ IDirectPlayLobby3Impl_ReceiveLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby3Impl_ReceiveLobbyMessage ( IDirectPlayLobby3 *  iface,
DWORD  dwFlags,
DWORD  dwAppID,
DWORD lpdwMessageFlags,
void lpData,
DWORD lpdwDataSize 
)
static

Definition at line 1107 of file dplobby.c.

1110{
1112 FIXME(":stub %p %08x %08x %p %p %p\n", This, dwFlags, dwAppID, lpdwMessageFlags, lpData,
1113 lpdwDataSize );
1114 return DPERR_OUTOFMEMORY;
1115}

◆ IDirectPlayLobby3Impl_RegisterApplication()

static HRESULT WINAPI IDirectPlayLobby3Impl_RegisterApplication ( IDirectPlayLobby3 *  iface,
DWORD  flags,
DPAPPLICATIONDESC appdesc 
)
static

Definition at line 1844 of file dplobby.c.

1846{
1847 FIXME(":stub\n");
1848 return DP_OK;
1849}

◆ IDirectPlayLobby3Impl_Release()

static ULONG WINAPI IDirectPlayLobby3Impl_Release ( IDirectPlayLobby3 *  iface)
static

Definition at line 352 of file dplobby.c.

353{
356
357 TRACE( "(%p) ref3=%d\n", This, ref );
358
359 if ( !ref && !InterlockedDecrement( &This->numIfaces ) )
361
362 return ref;
363}

◆ IDirectPlayLobby3Impl_RunApplication()

static HRESULT WINAPI IDirectPlayLobby3Impl_RunApplication ( IDirectPlayLobby3 *  iface,
DWORD  dwFlags,
DWORD lpdwAppID,
DPLCONNECTION lpConn,
HANDLE  hReceiveEvent 
)
static

Definition at line 1419 of file dplobby.c.

1421{
1423 FIXME( "(%p)->(0x%08x,%p,%p,%p):stub\n", This, dwFlags, lpdwAppID, lpConn, hReceiveEvent );
1424 return DPERR_OUTOFMEMORY;
1425}

◆ IDirectPlayLobby3Impl_SendLobbyMessage()

static HRESULT WINAPI IDirectPlayLobby3Impl_SendLobbyMessage ( IDirectPlayLobby3 *  iface,
DWORD  flags,
DWORD  appid,
void data,
DWORD  size 
)
static

Definition at line 1472 of file dplobby.c.

1474{
1475 FIXME(":stub\n");
1476 return DPERR_OUTOFMEMORY;
1477}

◆ IDirectPlayLobby3Impl_SetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby3Impl_SetConnectionSettings ( IDirectPlayLobby3 *  iface,
DWORD  dwFlags,
DWORD  dwAppID,
DPLCONNECTION lpConn 
)
static

Definition at line 1485 of file dplobby.c.

1487{
1489 HRESULT hr;
1490
1491 TRACE("(%p)->(0x%08x,0x%08x,%p)\n", This, dwFlags, dwAppID, lpConn );
1492
1493 EnterCriticalSection( &This->lock );
1494
1495 hr = DPLAYX_SetConnectionSettingsW( dwFlags, dwAppID, lpConn );
1496
1497 /* FIXME: Don't think that this is supposed to fail, but the documentation
1498 is somewhat sketchy. I'll try creating a lobby application
1499 for this... */
1500 if( hr == DPERR_NOTLOBBIED )
1501 {
1502 FIXME( "Unlobbied app setting connections. Is this correct behavior?\n" );
1503 if( dwAppID == 0 )
1504 {
1505 dwAppID = GetCurrentProcessId();
1506 }
1508 hr = DPLAYX_SetConnectionSettingsW( dwFlags, dwAppID, lpConn );
1509 }
1510
1511 LeaveCriticalSection( &This->lock );
1512
1513 return hr;
1514}
HRESULT DPLAYX_SetConnectionSettingsW(DWORD dwFlags, DWORD dwAppID, const DPLCONNECTION *lpConn)

◆ IDirectPlayLobby3Impl_SetLobbyMessageEvent()

static HRESULT WINAPI IDirectPlayLobby3Impl_SetLobbyMessageEvent ( IDirectPlayLobby3 *  iface,
DWORD  flags,
DWORD  appid,
HANDLE  event 
)
static

Definition at line 1620 of file dplobby.c.

1622{
1623 FIXME(":stub\n");
1624 return DPERR_OUTOFMEMORY;
1625}

◆ IDirectPlayLobby3Impl_UnregisterApplication()

static HRESULT WINAPI IDirectPlayLobby3Impl_UnregisterApplication ( IDirectPlayLobby3 *  iface,
DWORD  flags,
REFGUID  appdesc 
)
static

Definition at line 1858 of file dplobby.c.

1860{
1861 FIXME(":stub\n");
1862 return DP_OK;
1863}

◆ IDirectPlayLobby3Impl_WaitForConnectionSettings()

static HRESULT WINAPI IDirectPlayLobby3Impl_WaitForConnectionSettings ( IDirectPlayLobby3 *  iface,
DWORD  dwFlags 
)
static

Definition at line 1872 of file dplobby.c.

1874{
1875 HRESULT hr = DP_OK;
1876 BOOL bStartWait = !(dwFlags & DPLWAIT_CANCEL);
1877
1878 TRACE( "(%p)->(0x%08x)\n", iface, dwFlags );
1879
1880 if( DPLAYX_WaitForConnectionSettings( bStartWait ) )
1881 {
1882 /* FIXME: What is the correct error return code? */
1884 }
1885
1886 return hr;
1887}

◆ IDirectPlayLobbyAImpl_AddRef()

static ULONG WINAPI IDirectPlayLobbyAImpl_AddRef ( IDirectPlayLobbyA iface)
static

Definition at line 209 of file dplobby.c.

210{
213
214 TRACE( "(%p) refA=%d\n", This, ref );
215
216 if ( ref == 1 )
217 InterlockedIncrement( &This->numIfaces );
218
219 return ref;
220}
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobbyA(IDirectPlayLobbyA *iface)
Definition: dplobby.c:87

◆ IDirectPlayLobbyAImpl_Connect()

static HRESULT WINAPI IDirectPlayLobbyAImpl_Connect ( IDirectPlayLobbyA iface,
DWORD  flags,
IDirectPlay2A **  dp,
IUnknown unk 
)
static

Definition at line 452 of file dplobby.c.

454{
456 return IDirectPlayLobby_Connect( &This->IDirectPlayLobby3A_iface, flags, dp, unk );
457}

◆ IDirectPlayLobbyAImpl_CreateAddress()

static HRESULT WINAPI IDirectPlayLobbyAImpl_CreateAddress ( IDirectPlayLobbyA iface,
REFGUID  sp,
REFGUID  datatype,
const void data,
DWORD  datasize,
void address,
DWORD addrsize 
)
static

Definition at line 503 of file dplobby.c.

505{
507 return IDirectPlayLobby_CreateAddress( &This->IDirectPlayLobby3A_iface, sp, datatype, data,
508 datasize, address, addrsize );
509}

◆ IDirectPlayLobbyAImpl_EnumAddress()

static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddress ( IDirectPlayLobbyA iface,
LPDPENUMADDRESSCALLBACK  enumaddrcb,
const void address,
DWORD  size,
void context 
)
static

Definition at line 588 of file dplobby.c.

590{
592 return IDirectPlayLobby_EnumAddress( &This->IDirectPlayLobby3A_iface, enumaddrcb, address, size,
593 context );
594}

◆ IDirectPlayLobbyAImpl_EnumAddressTypes()

static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddressTypes ( IDirectPlayLobbyA iface,
LPDPLENUMADDRESSTYPESCALLBACK  enumaddrtypecb,
REFGUID  sp,
void context,
DWORD  flags 
)
static

Definition at line 679 of file dplobby.c.

681{
683 return IDirectPlayLobby_EnumAddressTypes( &This->IDirectPlayLobby3A_iface, enumaddrtypecb, sp,
684 context, flags );
685}

◆ IDirectPlayLobbyAImpl_EnumLocalApplications()

static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumLocalApplications ( IDirectPlayLobbyA iface,
LPDPLENUMLOCALAPPLICATIONSCALLBACK  enumlocalappcb,
void context,
DWORD  flags 
)
static

Definition at line 856 of file dplobby.c.

858{
860 return IDirectPlayLobby_EnumLocalApplications( &This->IDirectPlayLobby3A_iface, enumlocalappcb,
861 context, flags );
862}

◆ IDirectPlayLobbyAImpl_GetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobbyAImpl_GetConnectionSettings ( IDirectPlayLobbyA iface,
DWORD  appid,
void data,
DWORD size 
)
static

Definition at line 987 of file dplobby.c.

989{
991 return IDirectPlayLobby_GetConnectionSettings( &This->IDirectPlayLobby3A_iface, appid, data,
992 size );
993}

◆ IDirectPlayLobbyAImpl_QueryInterface()

static HRESULT WINAPI IDirectPlayLobbyAImpl_QueryInterface ( IDirectPlayLobbyA iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 123 of file dplobby.c.

125{
127 return IDirectPlayLobby_QueryInterface( &This->IDirectPlayLobby3_iface, riid, ppv );
128}

◆ IDirectPlayLobbyAImpl_ReceiveLobbyMessage()

static HRESULT WINAPI IDirectPlayLobbyAImpl_ReceiveLobbyMessage ( IDirectPlayLobbyA iface,
DWORD  flags,
DWORD  appid,
DWORD msgflags,
void data,
DWORD size 
)
static

Definition at line 1065 of file dplobby.c.

1067{
1069 return IDirectPlayLobby_ReceiveLobbyMessage( &This->IDirectPlayLobby3A_iface, flags, appid,
1070 msgflags, data, size );
1071}

◆ IDirectPlayLobbyAImpl_Release()

static ULONG WINAPI IDirectPlayLobbyAImpl_Release ( IDirectPlayLobbyA iface)
static

Definition at line 287 of file dplobby.c.

288{
291
292 TRACE( "(%p) refA=%d\n", This, ref );
293
294 if ( !ref && !InterlockedDecrement( &This->numIfaces ) )
296
297 return ref;
298}

◆ IDirectPlayLobbyAImpl_RunApplication()

static HRESULT WINAPI IDirectPlayLobbyAImpl_RunApplication ( IDirectPlayLobbyA iface,
DWORD  flags,
DWORD appid,
DPLCONNECTION conn,
HANDLE  event 
)
static

Definition at line 1262 of file dplobby.c.

1264{
1266 return IDirectPlayLobby_RunApplication( &This->IDirectPlayLobby3A_iface, flags, appid, conn,
1267 event );
1268}

◆ IDirectPlayLobbyAImpl_SendLobbyMessage()

static HRESULT WINAPI IDirectPlayLobbyAImpl_SendLobbyMessage ( IDirectPlayLobbyA iface,
DWORD  flags,
DWORD  appid,
void data,
DWORD  size 
)
static

Definition at line 1433 of file dplobby.c.

1435{
1437 return IDirectPlayLobby_SendLobbyMessage( &This->IDirectPlayLobby3A_iface, flags, appid, data,
1438 size );
1439}

◆ IDirectPlayLobbyAImpl_SetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobbyAImpl_SetConnectionSettings ( IDirectPlayLobbyA iface,
DWORD  flags,
DWORD  appid,
DPLCONNECTION conn 
)
static

Definition at line 1516 of file dplobby.c.

1518{
1520 return IDirectPlayLobby_SetConnectionSettings( &This->IDirectPlayLobby3A_iface, flags,
1521 appid, conn );
1522}

◆ IDirectPlayLobbyAImpl_SetLobbyMessageEvent()

static HRESULT WINAPI IDirectPlayLobbyAImpl_SetLobbyMessageEvent ( IDirectPlayLobbyA iface,
DWORD  flags,
DWORD  appid,
HANDLE  event 
)
static

Definition at line 1581 of file dplobby.c.

1583{
1585 return IDirectPlayLobby_SetLobbyMessageEvent( &This->IDirectPlayLobby3A_iface, flags, appid,
1586 event );
1587}

◆ IDirectPlayLobbyImpl_AddRef()

static ULONG WINAPI IDirectPlayLobbyImpl_AddRef ( IDirectPlayLobby *  iface)
static

Definition at line 222 of file dplobby.c.

223{
226
227 TRACE( "(%p) ref=%d\n", This, ref );
228
229 if ( ref == 1 )
230 InterlockedIncrement( &This->numIfaces );
231
232 return ref;
233}
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby(IDirectPlayLobby *iface)
Definition: dplobby.c:82

◆ IDirectPlayLobbyImpl_Connect()

static HRESULT WINAPI IDirectPlayLobbyImpl_Connect ( IDirectPlayLobby *  iface,
DWORD  flags,
IDirectPlay2A **  dp,
IUnknown unk 
)
static

Definition at line 459 of file dplobby.c.

461{
463 return IDirectPlayLobby_Connect( &This->IDirectPlayLobby3_iface, flags, dp, unk );
464}

◆ IDirectPlayLobbyImpl_CreateAddress()

static HRESULT WINAPI IDirectPlayLobbyImpl_CreateAddress ( IDirectPlayLobby *  iface,
REFGUID  sp,
REFGUID  datatype,
const void data,
DWORD  datasize,
void address,
DWORD addrsize 
)
static

Definition at line 511 of file dplobby.c.

513{
515 return IDirectPlayLobby_CreateAddress( &This->IDirectPlayLobby3_iface, sp, datatype, data,
516 datasize, address, addrsize );
517}

◆ IDirectPlayLobbyImpl_EnumAddress()

static HRESULT WINAPI IDirectPlayLobbyImpl_EnumAddress ( IDirectPlayLobby *  iface,
LPDPENUMADDRESSCALLBACK  enumaddrcb,
const void address,
DWORD  size,
void context 
)
static

Definition at line 596 of file dplobby.c.

598{
600 return IDirectPlayLobby_EnumAddress( &This->IDirectPlayLobby3_iface, enumaddrcb, address, size,
601 context );
602}

◆ IDirectPlayLobbyImpl_EnumAddressTypes()

static HRESULT WINAPI IDirectPlayLobbyImpl_EnumAddressTypes ( IDirectPlayLobby *  iface,
LPDPLENUMADDRESSTYPESCALLBACK  enumaddrtypecb,
REFGUID  sp,
void context,
DWORD  flags 
)
static

Definition at line 687 of file dplobby.c.

689{
691 return IDirectPlayLobby_EnumAddressTypes( &This->IDirectPlayLobby3_iface, enumaddrtypecb, sp,
692 context, flags );
693}

◆ IDirectPlayLobbyImpl_EnumLocalApplications()

static HRESULT WINAPI IDirectPlayLobbyImpl_EnumLocalApplications ( IDirectPlayLobby *  iface,
LPDPLENUMLOCALAPPLICATIONSCALLBACK  enumlocalappcb,
void context,
DWORD  flags 
)
static

Definition at line 864 of file dplobby.c.

866{
868 return IDirectPlayLobby_EnumLocalApplications( &This->IDirectPlayLobby3_iface, enumlocalappcb,
869 context, flags );
870}

◆ IDirectPlayLobbyImpl_GetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobbyImpl_GetConnectionSettings ( IDirectPlayLobby *  iface,
DWORD  appid,
void data,
DWORD size 
)
static

Definition at line 995 of file dplobby.c.

997{
999 return IDirectPlayLobby_GetConnectionSettings( &This->IDirectPlayLobby3_iface, appid, data,
1000 size );
1001}

◆ IDirectPlayLobbyImpl_QueryInterface()

static HRESULT WINAPI IDirectPlayLobbyImpl_QueryInterface ( IDirectPlayLobby *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 130 of file dplobby.c.

132{
134 return IDirectPlayLobby_QueryInterface( &This->IDirectPlayLobby3_iface, riid, ppv );
135}

◆ IDirectPlayLobbyImpl_ReceiveLobbyMessage()

static HRESULT WINAPI IDirectPlayLobbyImpl_ReceiveLobbyMessage ( IDirectPlayLobby *  iface,
DWORD  flags,
DWORD  appid,
DWORD msgflags,
void data,
DWORD size 
)
static

Definition at line 1073 of file dplobby.c.

1075{
1077 return IDirectPlayLobby_ReceiveLobbyMessage( &This->IDirectPlayLobby3_iface, flags, appid,
1078 msgflags, data, size );
1079}

◆ IDirectPlayLobbyImpl_Release()

static ULONG WINAPI IDirectPlayLobbyImpl_Release ( IDirectPlayLobby *  iface)
static

Definition at line 300 of file dplobby.c.

301{
304
305 TRACE( "(%p) ref=%d\n", This, ref );
306
307 if ( !ref && !InterlockedDecrement( &This->numIfaces ) )
309
310 return ref;
311}

◆ IDirectPlayLobbyImpl_RunApplication()

static HRESULT WINAPI IDirectPlayLobbyImpl_RunApplication ( IDirectPlayLobby *  iface,
DWORD  flags,
DWORD appid,
DPLCONNECTION conn,
HANDLE  event 
)
static

Definition at line 1270 of file dplobby.c.

1272{
1274 return IDirectPlayLobby_RunApplication( &This->IDirectPlayLobby3_iface, flags, appid, conn,
1275 event );
1276}

◆ IDirectPlayLobbyImpl_SendLobbyMessage()

static HRESULT WINAPI IDirectPlayLobbyImpl_SendLobbyMessage ( IDirectPlayLobby *  iface,
DWORD  flags,
DWORD  appid,
void data,
DWORD  size 
)
static

Definition at line 1441 of file dplobby.c.

1443{
1445 return IDirectPlayLobby_SendLobbyMessage( &This->IDirectPlayLobby3_iface, flags, appid, data,
1446 size );
1447}

◆ IDirectPlayLobbyImpl_SetConnectionSettings()

static HRESULT WINAPI IDirectPlayLobbyImpl_SetConnectionSettings ( IDirectPlayLobby *  iface,
DWORD  flags,
DWORD  appid,
DPLCONNECTION conn 
)
static

Definition at line 1524 of file dplobby.c.

1526{
1528 return IDirectPlayLobby_SetConnectionSettings( &This->IDirectPlayLobby3_iface, flags,
1529 appid, conn );
1530}

◆ IDirectPlayLobbyImpl_SetLobbyMessageEvent()

static HRESULT WINAPI IDirectPlayLobbyImpl_SetLobbyMessageEvent ( IDirectPlayLobby *  iface,
DWORD  flags,
DWORD  appid,
HANDLE  event 
)
static

Definition at line 1589 of file dplobby.c.

1591{
1593 return IDirectPlayLobby_SetLobbyMessageEvent( &This->IDirectPlayLobby3_iface, flags, appid,
1594 event );
1595}

◆ impl_from_IDirectPlayLobby()

◆ impl_from_IDirectPlayLobby2()

◆ impl_from_IDirectPlayLobby2A()

◆ impl_from_IDirectPlayLobby3()

◆ impl_from_IDirectPlayLobby3A()

◆ impl_from_IDirectPlayLobbyA()

◆ RunApplicationA_EnumLocalApplications()

static BOOL CALLBACK RunApplicationA_EnumLocalApplications ( LPCDPLAPPINFO  lpAppInfo,
LPVOID  lpContext,
DWORD  dwFlags 
)
static

Definition at line 1129 of file dplobby.c.

1133{
1135
1136 if( IsEqualGUID( &lpAppInfo->guidApplication, &lpData->appGUID ) )
1137 {
1138 char returnBuffer[200];
1139 DWORD returnType, sizeOfReturnBuffer;
1140 LPCSTR clSubKey = "CommandLine";
1141 LPCSTR cdSubKey = "CurrentDirectory";
1142 LPCSTR fileSubKey = "File";
1143 LPCSTR pathSubKey = "Path";
1144
1145 /* FIXME: Lazy man hack - dplay struct has the present reg key saved */
1146
1147 sizeOfReturnBuffer = 200;
1148
1149 /* Get all the appropriate data from the registry */
1150 if( RegQueryValueExA( lpData->This->cbkeyhack, clSubKey,
1151 NULL, &returnType, (LPBYTE)returnBuffer,
1152 &sizeOfReturnBuffer ) != ERROR_SUCCESS )
1153 {
1154 ERR( ": missing CommandLine registry data member\n" );
1155 }
1156 else
1157 {
1158 if ((lpData->lpszCommandLine = HeapAlloc( GetProcessHeap(), 0, strlen(returnBuffer)+1 )))
1159 strcpy( lpData->lpszCommandLine, returnBuffer );
1160 }
1161
1162 sizeOfReturnBuffer = 200;
1163
1164 if( RegQueryValueExA( lpData->This->cbkeyhack, cdSubKey,
1165 NULL, &returnType, (LPBYTE)returnBuffer,
1166 &sizeOfReturnBuffer ) != ERROR_SUCCESS )
1167 {
1168 ERR( ": missing CurrentDirectory registry data member\n" );
1169 }
1170 else
1171 {
1172 if ((lpData->lpszCurrentDirectory = HeapAlloc( GetProcessHeap(), 0, strlen(returnBuffer)+1 )))
1173 strcpy( lpData->lpszCurrentDirectory, returnBuffer );
1174 }
1175
1176 sizeOfReturnBuffer = 200;
1177
1178 if( RegQueryValueExA( lpData->This->cbkeyhack, fileSubKey,
1179 NULL, &returnType, (LPBYTE)returnBuffer,
1180 &sizeOfReturnBuffer ) != ERROR_SUCCESS )
1181 {
1182 ERR( ": missing File registry data member\n" );
1183 }
1184 else
1185 {
1186 if ((lpData->lpszFileName = HeapAlloc( GetProcessHeap(), 0, strlen(returnBuffer)+1 )))
1187 strcpy( lpData->lpszFileName, returnBuffer );
1188 }
1189
1190 sizeOfReturnBuffer = 200;
1191
1192 if( RegQueryValueExA( lpData->This->cbkeyhack, pathSubKey,
1193 NULL, &returnType, (LPBYTE)returnBuffer,
1194 &sizeOfReturnBuffer ) != ERROR_SUCCESS )
1195 {
1196 ERR( ": missing Path registry data member\n" );
1197 }
1198 else
1199 {
1200 if ((lpData->lpszPath = HeapAlloc( GetProcessHeap(), 0, strlen(returnBuffer)+1 )))
1201 strcpy( lpData->lpszPath, returnBuffer );
1202 }
1203
1204 return FALSE; /* No need to keep going as we found what we wanted */
1205 }
1206
1207 return TRUE; /* Keep enumerating, haven't found the application yet */
1208}
struct tagRunApplicationEnumStruct * lpRunApplicationEnumStruct

Referenced by IDirectPlayLobby3AImpl_RunApplication().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dplay  )

Variable Documentation

◆ dpl2_vt

const IDirectPlayLobby2Vtbl dpl2_vt
static
Initial value:
=
{
}
static ULONG WINAPI IDirectPlayLobby2Impl_AddRef(IDirectPlayLobby2 *iface)
Definition: dplobby.c:248
static HRESULT WINAPI IDirectPlayLobby2Impl_GetConnectionSettings(IDirectPlayLobby2 *iface, DWORD appid, void *data, DWORD *size)
Definition: dplobby.c:1011
static HRESULT WINAPI IDirectPlayLobby2Impl_SetConnectionSettings(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
Definition: dplobby.c:1540
static HRESULT WINAPI IDirectPlayLobby2Impl_ReceiveLobbyMessage(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
Definition: dplobby.c:1089
static HRESULT WINAPI IDirectPlayLobby2Impl_Connect(IDirectPlayLobby2 *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
Definition: dplobby.c:473
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumLocalApplications(IDirectPlayLobby2 *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
Definition: dplobby.c:880
static HRESULT WINAPI IDirectPlayLobby2Impl_CreateCompoundAddress(IDirectPlayLobby2 *iface, const DPCOMPOUNDADDRESSELEMENT *elements, DWORD count, void *address, DWORD *size)
Definition: dplobby.c:1637
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddressTypes(IDirectPlayLobby2 *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
Definition: dplobby.c:703
static HRESULT WINAPI IDirectPlayLobby2Impl_CreateAddress(IDirectPlayLobby2 *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
Definition: dplobby.c:527
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddress(IDirectPlayLobby2 *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
Definition: dplobby.c:612
static HRESULT WINAPI IDirectPlayLobby2Impl_QueryInterface(IDirectPlayLobby2 *iface, REFIID riid, void **ppv)
Definition: dplobby.c:144
static HRESULT WINAPI IDirectPlayLobby2Impl_SendLobbyMessage(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, void *data, DWORD size)
Definition: dplobby.c:1457
static HRESULT WINAPI IDirectPlayLobby2Impl_SetLobbyMessageEvent(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, HANDLE event)
Definition: dplobby.c:1605
static HRESULT WINAPI IDirectPlayLobby2Impl_RunApplication(IDirectPlayLobby2 *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
Definition: dplobby.c:1286
static ULONG WINAPI IDirectPlayLobby2Impl_Release(IDirectPlayLobby2 *iface)
Definition: dplobby.c:326

Definition at line 1961 of file dplobby.c.

Referenced by dplobby_create().

◆ dpl2A_vt

const IDirectPlayLobby2Vtbl dpl2A_vt
static
Initial value:
=
{
}
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddressTypes(IDirectPlayLobby2A *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
Definition: dplobby.c:695
static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateAddress(IDirectPlayLobby2A *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
Definition: dplobby.c:519
static HRESULT WINAPI IDirectPlayLobby2AImpl_SendLobbyMessage(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, void *data, DWORD size)
Definition: dplobby.c:1449
static HRESULT WINAPI IDirectPlayLobby2AImpl_QueryInterface(IDirectPlayLobby2A *iface, REFIID riid, void **ppv)
Definition: dplobby.c:137
static HRESULT WINAPI IDirectPlayLobby2AImpl_GetConnectionSettings(IDirectPlayLobby2A *iface, DWORD appid, void *data, DWORD *size)
Definition: dplobby.c:1003
static HRESULT WINAPI IDirectPlayLobby2AImpl_ReceiveLobbyMessage(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
Definition: dplobby.c:1081
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumLocalApplications(IDirectPlayLobby2A *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
Definition: dplobby.c:872
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddress(IDirectPlayLobby2A *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
Definition: dplobby.c:604
static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateCompoundAddress(IDirectPlayLobby2A *iface, const DPCOMPOUNDADDRESSELEMENT *elements, DWORD count, void *address, DWORD *size)
Definition: dplobby.c:1629
static HRESULT WINAPI IDirectPlayLobby2AImpl_RunApplication(IDirectPlayLobby2A *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
Definition: dplobby.c:1278
static ULONG WINAPI IDirectPlayLobby2AImpl_AddRef(IDirectPlayLobby2A *iface)
Definition: dplobby.c:235
static HRESULT WINAPI IDirectPlayLobby2AImpl_SetLobbyMessageEvent(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, HANDLE event)
Definition: dplobby.c:1597
static HRESULT WINAPI IDirectPlayLobby2AImpl_Connect(IDirectPlayLobby2A *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
Definition: dplobby.c:466
static ULONG WINAPI IDirectPlayLobby2AImpl_Release(IDirectPlayLobby2A *iface)
Definition: dplobby.c:313
static HRESULT WINAPI IDirectPlayLobby2AImpl_SetConnectionSettings(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
Definition: dplobby.c:1532

Definition at line 1942 of file dplobby.c.

Referenced by dplobby_create().

◆ dpl3_vt

const IDirectPlayLobby3Vtbl dpl3_vt
static
Initial value:
=
{
}
static HRESULT WINAPI IDirectPlayLobby3Impl_QueryInterface(IDirectPlayLobby3 *iface, REFIID riid, void **ppv)
Definition: dplobby.c:158
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddress(IDirectPlayLobby3 *iface, LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, const void *lpAddress, DWORD dwAddressSize, void *lpContext)
Definition: dplobby.c:632
static HRESULT WINAPI IDirectPlayLobby3Impl_SetConnectionSettings(IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD dwAppID, DPLCONNECTION *lpConn)
Definition: dplobby.c:1485
static HRESULT WINAPI IDirectPlayLobby3Impl_Connect(IDirectPlayLobby3 *iface, DWORD flags, IDirectPlay2 **dp, IUnknown *unk)
Definition: dplobby.c:486
static HRESULT WINAPI IDirectPlayLobby3Impl_GetConnectionSettings(IDirectPlayLobby3 *iface, DWORD dwAppID, void *lpData, DWORD *lpdwDataSize)
Definition: dplobby.c:1039
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddressTypes(IDirectPlayLobby3 *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
Definition: dplobby.c:832
static HRESULT WINAPI IDirectPlayLobby3Impl_ConnectEx(IDirectPlayLobby3 *iface, DWORD dwFlags, REFIID riid, LPVOID *lplpDP, IUnknown *pUnk)
Definition: dplobby.c:1830
static HRESULT WINAPI IDirectPlayLobby3Impl_CreateAddress(IDirectPlayLobby3 *iface, REFGUID guidSP, REFGUID guidDataType, const void *lpData, DWORD dwDataSize, void *lpAddress, DWORD *lpdwAddressSize)
Definition: dplobby.c:543
static ULONG WINAPI IDirectPlayLobby3Impl_AddRef(IDirectPlayLobby3 *iface)
Definition: dplobby.c:274
static HRESULT WINAPI IDirectPlayLobby3Impl_WaitForConnectionSettings(IDirectPlayLobby3 *iface, DWORD dwFlags)
Definition: dplobby.c:1872
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumLocalApplications(IDirectPlayLobby3 *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK lpEnumLocalAppCallback, void *lpContext, DWORD dwFlags)
Definition: dplobby.c:846
static HRESULT WINAPI IDirectPlayLobby3Impl_ReceiveLobbyMessage(IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD dwAppID, DWORD *lpdwMessageFlags, void *lpData, DWORD *lpdwDataSize)
Definition: dplobby.c:1107
static HRESULT WINAPI IDirectPlayLobby3Impl_UnregisterApplication(IDirectPlayLobby3 *iface, DWORD flags, REFGUID appdesc)
Definition: dplobby.c:1858
static HRESULT WINAPI IDirectPlayLobby3Impl_CreateCompoundAddress(IDirectPlayLobby3 *iface, const DPCOMPOUNDADDRESSELEMENT *lpElements, DWORD dwElementCount, void *lpAddress, DWORD *lpdwAddressSize)
Definition: dplobby.c:1645
static HRESULT WINAPI IDirectPlayLobby3Impl_SendLobbyMessage(IDirectPlayLobby3 *iface, DWORD flags, DWORD appid, void *data, DWORD size)
Definition: dplobby.c:1472
static HRESULT WINAPI IDirectPlayLobby3Impl_RegisterApplication(IDirectPlayLobby3 *iface, DWORD flags, DPAPPLICATIONDESC *appdesc)
Definition: dplobby.c:1844
static HRESULT WINAPI IDirectPlayLobby3Impl_SetLobbyMessageEvent(IDirectPlayLobby3 *iface, DWORD flags, DWORD appid, HANDLE event)
Definition: dplobby.c:1620
static HRESULT WINAPI IDirectPlayLobby3Impl_RunApplication(IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD *lpdwAppID, DPLCONNECTION *lpConn, HANDLE hReceiveEvent)
Definition: dplobby.c:1419
static ULONG WINAPI IDirectPlayLobby3Impl_Release(IDirectPlayLobby3 *iface)
Definition: dplobby.c:352

Definition at line 2003 of file dplobby.c.

Referenced by dplobby_create().

◆ dpl3A_vt

const IDirectPlayLobby3Vtbl dpl3A_vt
static
Initial value:
=
{
}
static ULONG WINAPI IDirectPlayLobby3AImpl_Release(IDirectPlayLobby3A *iface)
Definition: dplobby.c:339
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddressTypes(IDirectPlayLobby3A *iface, LPDPLENUMADDRESSTYPESCALLBACK lpEnumAddressTypeCallback, REFGUID guidSP, void *lpContext, DWORD dwFlags)
Definition: dplobby.c:711
static HRESULT WINAPI IDirectPlayLobby3AImpl_QueryInterface(IDirectPlayLobby3A *iface, REFIID riid, void **ppv)
Definition: dplobby.c:151
static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateAddress(IDirectPlayLobby3A *iface, REFGUID guidSP, REFGUID guidDataType, const void *lpData, DWORD dwDataSize, void *lpAddress, DWORD *lpdwAddressSize)
Definition: dplobby.c:535
static HRESULT WINAPI IDirectPlayLobby3AImpl_RegisterApplication(IDirectPlayLobby3A *iface, DWORD flags, DPAPPLICATIONDESC *appdesc)
Definition: dplobby.c:1851
static HRESULT WINAPI IDirectPlayLobby3AImpl_ConnectEx(IDirectPlayLobby3A *iface, DWORD dwFlags, REFIID riid, void **lplpDP, IUnknown *pUnk)
Definition: dplobby.c:1837
static HRESULT WINAPI IDirectPlayLobby3AImpl_UnregisterApplication(IDirectPlayLobby3A *iface, DWORD flags, REFGUID appdesc)
Definition: dplobby.c:1865
static HRESULT WINAPI IDirectPlayLobby3AImpl_ReceiveLobbyMessage(IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD dwAppID, DWORD *lpdwMessageFlags, void *lpData, DWORD *lpdwDataSize)
Definition: dplobby.c:1097
static HRESULT WINAPI IDirectPlayLobby3AImpl_SetLobbyMessageEvent(IDirectPlayLobby3A *iface, DWORD flags, DWORD appid, HANDLE event)
Definition: dplobby.c:1613
static ULONG WINAPI IDirectPlayLobby3AImpl_AddRef(IDirectPlayLobby3A *iface)
Definition: dplobby.c:261
static HRESULT WINAPI IDirectPlayLobby3AImpl_SetConnectionSettings(IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD dwAppID, DPLCONNECTION *lpConn)
Definition: dplobby.c:1548
static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateCompoundAddress(IDirectPlayLobby3A *iface, const DPCOMPOUNDADDRESSELEMENT *lpElements, DWORD dwElementCount, void *lpAddress, DWORD *lpdwAddressSize)
Definition: dplobby.c:1652
static HRESULT WINAPI IDirectPlayLobby3AImpl_GetConnectionSettings(IDirectPlayLobby3A *iface, DWORD dwAppID, void *lpData, DWORD *lpdwDataSize)
Definition: dplobby.c:1019
static HRESULT WINAPI IDirectPlayLobby3AImpl_RunApplication(IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD *lpdwAppID, DPLCONNECTION *lpConn, HANDLE hReceiveEvent)
Definition: dplobby.c:1294
static HRESULT WINAPI IDirectPlayLobby3AImpl_Connect(IDirectPlayLobby3A *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
Definition: dplobby.c:480
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddress(IDirectPlayLobby3A *iface, LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, const void *lpAddress, DWORD dwAddressSize, void *lpContext)
Definition: dplobby.c:620
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumLocalApplications(IDirectPlayLobby3A *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK lpEnumLocalAppCallback, void *lpContext, DWORD dwFlags)
Definition: dplobby.c:888
static HRESULT WINAPI IDirectPlayLobby3AImpl_WaitForConnectionSettings(IDirectPlayLobby3A *iface, DWORD dwFlags)
Definition: dplobby.c:1889
static HRESULT WINAPI IDirectPlayLobby3AImpl_SendLobbyMessage(IDirectPlayLobby3A *iface, DWORD flags, DWORD appid, void *data, DWORD size)
Definition: dplobby.c:1465

Definition at line 1980 of file dplobby.c.

Referenced by dplobby_create().

◆ dpl_vt

const IDirectPlayLobbyVtbl dpl_vt
static
Initial value:
=
{
}
static HRESULT WINAPI IDirectPlayLobbyImpl_QueryInterface(IDirectPlayLobby *iface, REFIID riid, void **ppv)
Definition: dplobby.c:130
static HRESULT WINAPI IDirectPlayLobbyImpl_GetConnectionSettings(IDirectPlayLobby *iface, DWORD appid, void *data, DWORD *size)
Definition: dplobby.c:995
static ULONG WINAPI IDirectPlayLobbyImpl_AddRef(IDirectPlayLobby *iface)
Definition: dplobby.c:222
static ULONG WINAPI IDirectPlayLobbyImpl_Release(IDirectPlayLobby *iface)
Definition: dplobby.c:300
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumAddressTypes(IDirectPlayLobby *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
Definition: dplobby.c:687
static HRESULT WINAPI IDirectPlayLobbyImpl_RunApplication(IDirectPlayLobby *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
Definition: dplobby.c:1270
static HRESULT WINAPI IDirectPlayLobbyImpl_SetLobbyMessageEvent(IDirectPlayLobby *iface, DWORD flags, DWORD appid, HANDLE event)
Definition: dplobby.c:1589
static HRESULT WINAPI IDirectPlayLobbyImpl_SendLobbyMessage(IDirectPlayLobby *iface, DWORD flags, DWORD appid, void *data, DWORD size)
Definition: dplobby.c:1441
static HRESULT WINAPI IDirectPlayLobbyImpl_SetConnectionSettings(IDirectPlayLobby *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
Definition: dplobby.c:1524
static HRESULT WINAPI IDirectPlayLobbyImpl_ReceiveLobbyMessage(IDirectPlayLobby *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
Definition: dplobby.c:1073
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumAddress(IDirectPlayLobby *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
Definition: dplobby.c:596
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumLocalApplications(IDirectPlayLobby *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
Definition: dplobby.c:864
static HRESULT WINAPI IDirectPlayLobbyImpl_CreateAddress(IDirectPlayLobby *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
Definition: dplobby.c:511
static HRESULT WINAPI IDirectPlayLobbyImpl_Connect(IDirectPlayLobby *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
Definition: dplobby.c:459

Definition at line 1924 of file dplobby.c.

Referenced by dplobby_create().

◆ dplA_vt

const IDirectPlayLobbyVtbl dplA_vt
static
Initial value:
=
{
}
static HRESULT WINAPI IDirectPlayLobbyAImpl_CreateAddress(IDirectPlayLobbyA *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
Definition: dplobby.c:503
static HRESULT WINAPI IDirectPlayLobbyAImpl_SetLobbyMessageEvent(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, HANDLE event)
Definition: dplobby.c:1581
static HRESULT WINAPI IDirectPlayLobbyAImpl_Connect(IDirectPlayLobbyA *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
Definition: dplobby.c:452
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddressTypes(IDirectPlayLobbyA *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
Definition: dplobby.c:679
static HRESULT WINAPI IDirectPlayLobbyAImpl_GetConnectionSettings(IDirectPlayLobbyA *iface, DWORD appid, void *data, DWORD *size)
Definition: dplobby.c:987
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumLocalApplications(IDirectPlayLobbyA *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
Definition: dplobby.c:856
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddress(IDirectPlayLobbyA *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
Definition: dplobby.c:588
static ULONG WINAPI IDirectPlayLobbyAImpl_Release(IDirectPlayLobbyA *iface)
Definition: dplobby.c:287
static HRESULT WINAPI IDirectPlayLobbyAImpl_RunApplication(IDirectPlayLobbyA *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
Definition: dplobby.c:1262
static HRESULT WINAPI IDirectPlayLobbyAImpl_ReceiveLobbyMessage(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
Definition: dplobby.c:1065
static ULONG WINAPI IDirectPlayLobbyAImpl_AddRef(IDirectPlayLobbyA *iface)
Definition: dplobby.c:209
static HRESULT WINAPI IDirectPlayLobbyAImpl_SetConnectionSettings(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
Definition: dplobby.c:1516
static HRESULT WINAPI IDirectPlayLobbyAImpl_QueryInterface(IDirectPlayLobbyA *iface, REFIID riid, void **ppv)
Definition: dplobby.c:123
static HRESULT WINAPI IDirectPlayLobbyAImpl_SendLobbyMessage(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, void *data, DWORD size)
Definition: dplobby.c:1433

Definition at line 1906 of file dplobby.c.

Referenced by dplobby_create().