23#define NONAMELESSUNION
115 FIXME(
"Should kill the msg thread\n" );
118 obj->lock.DebugInfo->Spare[0] = 0;
166 *
ppv = &
This->IDirectPlayLobby_iface;
170 TRACE(
"(%p)->(IID_IDirectPlayLobby %p)\n",
This,
ppv );
171 *
ppv = &
This->IDirectPlayLobby_iface;
175 TRACE(
"(%p)->(IID_IDirectPlayLobbyA %p)\n",
This,
ppv );
176 *
ppv = &
This->IDirectPlayLobbyA_iface;
180 TRACE(
"(%p)->(IID_IDirectPlayLobby2 %p)\n",
This,
ppv );
181 *
ppv = &
This->IDirectPlayLobby2_iface;
185 TRACE(
"(%p)->(IID_IDirectPlayLobby2A %p)\n",
This,
ppv );
186 *
ppv = &
This->IDirectPlayLobby2A_iface;
191 *
ppv = &
This->IDirectPlayLobby3_iface;
195 TRACE(
"(%p)->(IID_IDirectPlayLobby3A %p)\n",
This,
ppv );
196 *
ppv = &
This->IDirectPlayLobby3A_iface;
378 DWORD dwOpenFlags = 0;
379 DWORD dwConnSize = 0;
397 ERR(
"error creating interface for %s:%s.\n",
404 0,
NULL, &dwConnSize );
419 0, lpConn, &dwConnSize );
442 dwOpenFlags |= lpConn->
dwFlags;
536 REFGUID guidSP,
REFGUID guidDataType,
const void *lpData,
DWORD dwDataSize,
void *lpAddress,
537 DWORD *lpdwAddressSize )
540 lpAddress, lpdwAddressSize,
TRUE );
544 REFGUID guidDataType,
const void *lpData,
DWORD dwDataSize,
void *lpAddress,
545 DWORD *lpdwAddressSize )
548 lpAddress, lpdwAddressSize,
FALSE );
558 BOOL bAnsiInterface )
560 const DWORD dwNumAddElements = 2;
563 TRACE(
"(%p)->(%p,%p,0x%08x,%p,%p,%d)\n", guidSP, guidDataType, lpData, dwDataSize,
564 lpAddress, lpdwAddressSize, bAnsiInterface );
566 addressElements[ 0 ].
guidDataType = DPAID_ServiceProvider;
577 lpAddress, lpdwAddressSize, bAnsiInterface );
626 TRACE(
"(%p)->(%p,%p,0x%08x,%p)\n",
This, lpEnumAddressCallback, lpAddress,
627 dwAddressSize, lpContext );
629 return DPL_EnumAddress( lpEnumAddressCallback, lpAddress, dwAddressSize, lpContext );
638 TRACE(
"(%p)->(%p,%p,0x%08x,%p)\n",
This, lpEnumAddressCallback, lpAddress,
639 dwAddressSize, lpContext );
641 return DPL_EnumAddress( lpEnumAddressCallback, lpAddress, dwAddressSize, lpContext );
647 DWORD dwTotalSizeEnumerated = 0;
651 while ( dwTotalSizeEnumerated < dwAddressSize )
654 DWORD dwSizeThisEnumeration;
666 lpAddress = (
const BYTE*) lpAddress + dwSizeThisEnumeration;
667 dwTotalSizeEnumerated += dwSizeThisEnumeration;
718 LPCSTR searchSubKey =
"SOFTWARE\\Microsoft\\DirectPlay\\Service Providers";
719 DWORD dwIndex, sizeOfSubKeyName=50;
723 TRACE(
" (%p)->(%p,%p,%p,0x%08x)\n",
This, lpEnumAddressTypeCallback, guidSP, lpContext,
dwFlags );
730 if( !lpEnumAddressTypeCallback )
745 ERR(
": no service providers?\n");
751 RegEnumKeyExA( hkResult, dwIndex, subKeyName, &sizeOfSubKeyName,
753 ++dwIndex, sizeOfSubKeyName=50 )
756 HKEY hkServiceProvider, hkServiceProviderAt;
757 GUID serviceProviderGUID;
758 DWORD returnTypeGUID, sizeOfReturnBuffer = 50;
760 char returnBuffer[51];
763 LPCSTR atKey =
"Address Types";
764 LPCSTR guidDataSubKey =
"Guid";
766 TRACE(
" this time through: %s\n", subKeyName );
772 ERR(
": what the heck is going on?\n" );
780 ERR(
": missing GUID registry data members\n" );
799 TRACE(
": No Address Types registry data sub key/members\n" );
805 RegEnumKeyExA( hkServiceProviderAt, dwAtIndex, atSubKey, &sizeOfSubKeyName,
807 ++dwAtIndex, sizeOfSubKeyName=50 )
809 TRACE(
"Found Address Type GUID %s\n", atSubKey );
817 if( !lpEnumAddressTypeCallback( &serviceProviderGUID, lpContext, 0 ) )
819 WARN(
"lpEnumCallback returning FALSE\n" );
851 FIXME(
"(%p)->(%p,%p,0x%08x):stub\n",
This, lpEnumLocalAppCallback, lpContext,
dwFlags );
894 LPCSTR searchSubKey =
"SOFTWARE\\Microsoft\\DirectPlay\\Applications";
895 LPCSTR guidDataSubKey =
"Guid";
896 DWORD dwIndex, sizeOfSubKeyName=50;
900 TRACE(
"(%p)->(%p,%p,0x%08x)\n",
This, lpEnumLocalAppCallback, lpContext,
dwFlags );
907 if( !lpEnumLocalAppCallback )
917 ERR(
": no service providers?\n");
924 ++dwIndex, sizeOfSubKeyName=50 )
927 HKEY hkServiceProvider;
928 GUID serviceProviderGUID;
929 DWORD returnTypeGUID, sizeOfReturnBuffer = 50;
930 char returnBuffer[51];
934 TRACE(
" this time through: %s\n", subKeyName );
940 ERR(
": what the heck is going on?\n" );
948 ERR(
": missing GUID registry data members\n" );
957 dplAppInfo.
dwSize =
sizeof( dplAppInfo );
963 memcpy( &
This->cbkeyhack, &hkServiceProvider,
sizeof( hkServiceProvider ) );
965 if( !lpEnumLocalAppCallback( &dplAppInfo, lpContext,
dwFlags ) )
1020 DWORD dwAppID,
void *lpData,
DWORD *lpdwDataSize )
1025 TRACE(
"(%p)->(0x%08x,%p,%p)\n",
This, dwAppID, lpData, lpdwDataSize );
1040 DWORD dwAppID,
void *lpData,
DWORD *lpdwDataSize )
1045 TRACE(
"(%p)->(0x%08x,%p,%p)\n",
This, dwAppID, lpData, lpdwDataSize );
1099 DWORD *lpdwDataSize )
1102 FIXME(
":stub %p %08x %08x %p %p %p\n",
This,
dwFlags, dwAppID, lpdwMessageFlags, lpData,
1109 DWORD *lpdwDataSize )
1112 FIXME(
":stub %p %08x %08x %p %p %p\n",
This,
dwFlags, dwAppID, lpdwMessageFlags, lpData,
1138 char returnBuffer[200];
1139 DWORD returnType, sizeOfReturnBuffer;
1140 LPCSTR clSubKey =
"CommandLine";
1141 LPCSTR cdSubKey =
"CurrentDirectory";
1142 LPCSTR fileSubKey =
"File";
1143 LPCSTR pathSubKey =
"Path";
1147 sizeOfReturnBuffer = 200;
1154 ERR(
": missing CommandLine registry data member\n" );
1162 sizeOfReturnBuffer = 200;
1168 ERR(
": missing CurrentDirectory registry data member\n" );
1176 sizeOfReturnBuffer = 200;
1182 ERR(
": missing File registry data member\n" );
1190 sizeOfReturnBuffer = 200;
1196 ERR(
": missing Path registry data member\n" );
1215 HANDLE hAppStart = 0, hAppDeath = 0, hAppRead = 0;
1218 s_attrib.
nLength =
sizeof( s_attrib );
1227 hDestProcess, &hAppStart,
1230 hDestProcess, &hAppDeath,
1233 hDestProcess, &hAppRead,
1237 if (*lphStart) {
CloseHandle(*lphStart); *lphStart = 0; }
1238 if (*lphDeath) {
CloseHandle(*lphDeath); *lphDeath = 0; }
1239 if (*lphRead) {
CloseHandle(*lphRead); *lphRead = 0; }
1241 ERR(
"Unable to dup handles\n" );
1246 hAppStart, hAppDeath, hAppRead ) )
1304 DWORD dwSuspendCount;
1305 HANDLE hStart, hDeath, hSettingRead;
1307 TRACE(
"(%p)->(0x%08x,%p,%p,%p)\n",
1308 This,
dwFlags, lpdwAppID, lpConn, hReceiveEvent );
1317 FIXME(
"Waiting lobby not being handled correctly\n" );
1346 ZeroMemory( &startupInfo,
sizeof( startupInfo ) );
1347 startupInfo.
cb =
sizeof( startupInfo );
1350 ZeroMemory( &newProcessInfo,
sizeof( newProcessInfo ) );
1365 ERR(
"Failed to create process for app %s\n",
appName );
1382 ERR(
"Unable to create global application data for 0x%08x\n",
1398 &hStart, &hDeath, &hSettingRead );
1413 ERR(
"ResumeThread failed with 0x%08x\n", dwSuspendCount );
1423 FIXME(
"(%p)->(0x%08x,%p,%p,%p):stub\n",
This,
dwFlags, lpdwAppID, lpConn, hReceiveEvent );
1502 FIXME(
"Unlobbied app setting connections. Is this correct behavior?\n" );
1565 FIXME(
"Unlobbied app setting connections. Is this correct behavior?\n" );
1647 DWORD *lpdwAddressSize )
1654 DWORD *lpdwAddressSize )
1661 DWORD dwElementCount,
1664 BOOL bAnsiInterface )
1666 DWORD dwSizeRequired = 0;
1670 TRACE(
"(%p,0x%08x,%p,%p)\n", lpElements, dwElementCount, lpAddress, lpdwAddressSize );
1673 if( ( lpElements ==
NULL ) ||
1674 ( dwElementCount == 0 )
1684 for ( dwElements = dwElementCount; dwElements > 0; --dwElements, ++lpElements )
1697 if( !bAnsiInterface )
1699 ERR(
"Ansi GUIDs used for unicode interface\n" );
1710 if( bAnsiInterface )
1712 ERR(
"Unicode GUIDs used for ansi interface\n" );
1716 FIXME(
"Right size for unicode interface?\n" );
1725 FIXME(
"Right size for unicode interface?\n" );
1735 if( ( lpAddress ==
NULL ) ||
1736 ( *lpdwAddressSize < dwSizeRequired )
1739 *lpdwAddressSize = dwSizeRequired;
1749 lpAddress = (
char *) lpAddress +
sizeof(
DPADDRESS );
1751 *(
LPDWORD)lpAddress = dwSizeRequired;
1752 lpAddress = (
char *) lpAddress +
sizeof(
DWORD );
1756 for( dwElements = dwElementCount, lpElements = lpOrigElements;
1758 --dwElements, ++lpElements )
1768 lpAddress = (
char *) lpAddress +
sizeof(
DPADDRESS );
1771 lpAddress = (
char *) lpAddress +
sizeof(
GUID );
1782 lpAddress = (
char *) lpAddress +
sizeof(
DPADDRESS );
1785 lpAddress = (
char *) lpAddress + lpElements->
dwDataSize;
1796 lpAddress = (
char *) lpAddress +
sizeof(
DPADDRESS );
1799 lpAddress = (
char *) lpAddress + lpElements->
dwDataSize *
sizeof(
WCHAR );
1807 lpAddress = (
char *) lpAddress +
sizeof(
DPADDRESS );
1810 lpAddress = (
char *) lpAddress +
sizeof(
WORD );
1818 lpAddress = (
char *) lpAddress +
sizeof(
DPADDRESS );
1821 lpAddress = (
char *) lpAddress +
sizeof(
DPADDRESS );
2038 obj->IDirectPlayLobby_iface.lpVtbl = &
dpl_vt;
2039 obj->IDirectPlayLobbyA_iface.lpVtbl = &
dplA_vt;
2040 obj->IDirectPlayLobby2_iface.lpVtbl = &
dpl2_vt;
2042 obj->IDirectPlayLobby3_iface.lpVtbl = &
dpl3_vt;
2054 obj->lock.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": IDirectPlayLobbyImpl.lock");
2072 TRACE(
"lpGUIDDSP=%p lplpDPL=%p lpUnk=%p lpData=%p dwDataSize=%08x\n",
2073 lpGUIDDSP,lplpDPL,lpUnk,lpData,dwDataSize);
2078 if ( lpGUIDDSP || lpData || dwDataSize )
2087 ERR(
"Bad parameters!\n" );
2091 return dplobby_create( &IID_IDirectPlayLobbyA, (
void**)lplpDPL );
2101 TRACE(
"lpGUIDDSP=%p lplpDPL=%p lpUnk=%p lpData=%p dwDataSize=%08x\n",
2102 lpGUIDDSP,lplpDPL,lpUnk,lpData,dwDataSize);
2107 if ( lpGUIDDSP || lpData || dwDataSize )
2110 ERR(
"Bad parameters!\n" );
2117 ERR(
"Bad parameters!\n" );
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
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)
#define GetCurrentProcess()
#define ERROR_NO_MORE_ITEMS
#define HeapFree(x, y, z)
#define MultiByteToWideChar
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
DWORD WINAPI ResumeThread(IN HANDLE hThread)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(const char *app_name, char *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const char *cur_dir, STARTUPINFOA *startup_info, PROCESS_INFORMATION *info)
_ACRTIMP size_t __cdecl strlen(const char *)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
HRESULT dplay_create(REFIID riid, void **ppv)
#define DPERR_INVALIDOBJECT
#define IDirectPlayX_Open(p, a, b)
#define DPERR_BUFFERTOOSMALL
#define DPOPEN_RETURNSTATUS
#define DPERR_INVALIDFLAGS
struct IDirectPlay2 * LPDIRECTPLAY2
#define DPCONNECT_RETURNSTATUS
#define IDirectPlayX_InitializeConnection(p, a, b)
#define DPERR_INVALIDPARAMS
#define DPERR_OUTOFMEMORY
struct IDirectPlay2 IDirectPlay2A
#define DPERR_CANTCREATEPROCESS
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
static void *static void *static LPDIRECTPLAY * lplpDP
HRESULT DPLAYX_GetConnectionSettingsA(DWORD dwAppID, LPVOID lpData, LPDWORD lpdwDataSize)
BOOL DPLAYX_SetLobbyHandles(DWORD dwAppID, HANDLE hStart, HANDLE hDeath, HANDLE hConnRead)
BOOL DPLAYX_AnyLobbiesWaitingForConnSettings(void)
HRESULT DPLAYX_SetConnectionSettingsA(DWORD dwFlags, DWORD dwAppID, const DPLCONNECTION *lpConn)
BOOL DPLAYX_SetLobbyMsgThreadId(DWORD dwAppId, DWORD dwThreadId)
BOOL DPLAYX_CreateLobbyApplication(DWORD dwAppID)
BOOL DPLAYX_WaitForConnectionSettings(BOOL bWait)
HRESULT DPLAYX_SetConnectionSettingsW(DWORD dwFlags, DWORD dwAppID, const DPLCONNECTION *lpConn)
LPCSTR DPLAYX_HresultToString(HRESULT hr)
HRESULT DPLAYX_GetConnectionSettingsW(DWORD dwAppID, LPVOID lpData, LPDWORD lpdwDataSize)
DWORD CreateLobbyMessageReceptionThread(HANDLE hNotifyEvent, HANDLE hStart, HANDLE hDeath, HANDLE hConnRead)
#define DPQ_DELETEQ(head, field, type, df)
static HRESULT DPL_ConnectEx(IDirectPlayLobbyImpl *This, DWORD dwFlags, REFIID riid, void **lplpDP, IUnknown *pUnk)
static HRESULT WINAPI IDirectPlayLobby3Impl_QueryInterface(IDirectPlayLobby3 *iface, REFIID riid, void **ppv)
static HRESULT WINAPI IDirectPlayLobbyAImpl_CreateAddress(IDirectPlayLobbyA *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
static HRESULT WINAPI IDirectPlayLobbyImpl_QueryInterface(IDirectPlayLobby *iface, REFIID riid, void **ppv)
static ULONG WINAPI IDirectPlayLobby3AImpl_Release(IDirectPlayLobby3A *iface)
static const IDirectPlayLobby3Vtbl dpl3_vt
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddressTypes(IDirectPlayLobby3A *iface, LPDPLENUMADDRESSTYPESCALLBACK lpEnumAddressTypeCallback, REFGUID guidSP, void *lpContext, DWORD dwFlags)
HRESULT WINAPI DirectPlayLobbyCreateW(GUID *lpGUIDDSP, IDirectPlayLobby **lplpDPL, IUnknown *lpUnk, void *lpData, DWORD dwDataSize)
static HRESULT WINAPI IDirectPlayLobbyAImpl_SetLobbyMessageEvent(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, HANDLE event)
static HRESULT WINAPI IDirectPlayLobbyAImpl_Connect(IDirectPlayLobbyA *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
static HRESULT WINAPI IDirectPlayLobbyImpl_GetConnectionSettings(IDirectPlayLobby *iface, DWORD appid, void *data, DWORD *size)
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddressTypes(IDirectPlayLobby2A *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
static HRESULT WINAPI IDirectPlayLobby3AImpl_QueryInterface(IDirectPlayLobby3A *iface, REFIID riid, void **ppv)
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddressTypes(IDirectPlayLobbyA *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddress(IDirectPlayLobby3 *iface, LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, const void *lpAddress, DWORD dwAddressSize, void *lpContext)
static ULONG WINAPI IDirectPlayLobbyImpl_AddRef(IDirectPlayLobby *iface)
static const IDirectPlayLobby2Vtbl dpl2A_vt
static HRESULT WINAPI IDirectPlayLobbyAImpl_GetConnectionSettings(IDirectPlayLobbyA *iface, DWORD appid, void *data, DWORD *size)
struct tagRunApplicationEnumStruct RunApplicationEnumStruct
static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateAddress(IDirectPlayLobby3A *iface, REFGUID guidSP, REFGUID guidDataType, const void *lpData, DWORD dwDataSize, void *lpAddress, DWORD *lpdwAddressSize)
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby2A(IDirectPlayLobby2A *iface)
static ULONG WINAPI IDirectPlayLobby2Impl_AddRef(IDirectPlayLobby2 *iface)
static HRESULT WINAPI IDirectPlayLobby3AImpl_RegisterApplication(IDirectPlayLobby3A *iface, DWORD flags, DPAPPLICATIONDESC *appdesc)
static HRESULT WINAPI IDirectPlayLobby3Impl_SetConnectionSettings(IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD dwAppID, DPLCONNECTION *lpConn)
static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateAddress(IDirectPlayLobby2A *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
static ULONG WINAPI IDirectPlayLobbyImpl_Release(IDirectPlayLobby *iface)
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumLocalApplications(IDirectPlayLobbyA *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
static HRESULT WINAPI IDirectPlayLobby3Impl_Connect(IDirectPlayLobby3 *iface, DWORD flags, IDirectPlay2 **dp, IUnknown *unk)
static HRESULT WINAPI IDirectPlayLobbyAImpl_EnumAddress(IDirectPlayLobbyA *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
static HRESULT WINAPI IDirectPlayLobby3Impl_GetConnectionSettings(IDirectPlayLobby3 *iface, DWORD dwAppID, void *lpData, DWORD *lpdwDataSize)
static HRESULT WINAPI IDirectPlayLobby2Impl_GetConnectionSettings(IDirectPlayLobby2 *iface, DWORD appid, void *data, DWORD *size)
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumAddressTypes(IDirectPlayLobby *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
static HRESULT WINAPI IDirectPlayLobbyImpl_RunApplication(IDirectPlayLobby *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
static const IDirectPlayLobbyVtbl dplA_vt
static HRESULT WINAPI IDirectPlayLobby2Impl_SetConnectionSettings(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
static HRESULT WINAPI IDirectPlayLobby2Impl_ReceiveLobbyMessage(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
static HRESULT WINAPI IDirectPlayLobbyImpl_SetLobbyMessageEvent(IDirectPlayLobby *iface, DWORD flags, DWORD appid, HANDLE event)
static HRESULT WINAPI IDirectPlayLobby3AImpl_ConnectEx(IDirectPlayLobby3A *iface, DWORD dwFlags, REFIID riid, void **lplpDP, IUnknown *pUnk)
static const IDirectPlayLobbyVtbl dpl_vt
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumAddressTypes(IDirectPlayLobby3 *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby2(IDirectPlayLobby2 *iface)
static HRESULT WINAPI IDirectPlayLobby3AImpl_UnregisterApplication(IDirectPlayLobby3A *iface, DWORD flags, REFGUID appdesc)
static HRESULT WINAPI IDirectPlayLobby3Impl_ConnectEx(IDirectPlayLobby3 *iface, DWORD dwFlags, REFIID riid, LPVOID *lplpDP, IUnknown *pUnk)
static HRESULT WINAPI IDirectPlayLobby3Impl_CreateAddress(IDirectPlayLobby3 *iface, REFGUID guidSP, REFGUID guidDataType, const void *lpData, DWORD dwDataSize, void *lpAddress, DWORD *lpdwAddressSize)
static ULONG WINAPI IDirectPlayLobby3Impl_AddRef(IDirectPlayLobby3 *iface)
static HRESULT WINAPI IDirectPlayLobby2AImpl_SendLobbyMessage(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, void *data, DWORD size)
static HRESULT WINAPI IDirectPlayLobby3AImpl_ReceiveLobbyMessage(IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD dwAppID, DWORD *lpdwMessageFlags, void *lpData, DWORD *lpdwDataSize)
static HRESULT WINAPI IDirectPlayLobby3AImpl_SetLobbyMessageEvent(IDirectPlayLobby3A *iface, DWORD flags, DWORD appid, HANDLE event)
static HRESULT WINAPI IDirectPlayLobby2Impl_Connect(IDirectPlayLobby2 *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
static ULONG WINAPI IDirectPlayLobby3AImpl_AddRef(IDirectPlayLobby3A *iface)
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumLocalApplications(IDirectPlayLobby2 *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
static BOOL CALLBACK RunApplicationA_EnumLocalApplications(LPCDPLAPPINFO lpAppInfo, LPVOID lpContext, DWORD dwFlags)
static HRESULT WINAPI IDirectPlayLobby2AImpl_QueryInterface(IDirectPlayLobby2A *iface, REFIID riid, void **ppv)
static HRESULT WINAPI IDirectPlayLobby3Impl_WaitForConnectionSettings(IDirectPlayLobby3 *iface, DWORD dwFlags)
static HRESULT WINAPI IDirectPlayLobby3AImpl_SetConnectionSettings(IDirectPlayLobby3A *iface, DWORD dwFlags, DWORD dwAppID, DPLCONNECTION *lpConn)
static ULONG WINAPI IDirectPlayLobbyAImpl_Release(IDirectPlayLobbyA *iface)
static HRESULT WINAPI IDirectPlayLobby3AImpl_CreateCompoundAddress(IDirectPlayLobby3A *iface, const DPCOMPOUNDADDRESSELEMENT *lpElements, DWORD dwElementCount, void *lpAddress, DWORD *lpdwAddressSize)
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby3A(IDirectPlayLobby3A *iface)
static HRESULT WINAPI IDirectPlayLobbyAImpl_RunApplication(IDirectPlayLobbyA *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
static HRESULT WINAPI IDirectPlayLobby3Impl_EnumLocalApplications(IDirectPlayLobby3 *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK lpEnumLocalAppCallback, void *lpContext, DWORD dwFlags)
static const IDirectPlayLobby2Vtbl dpl2_vt
HRESULT DPL_EnumAddress(LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, LPCVOID lpAddress, DWORD dwAddressSize, LPVOID lpContext)
static HRESULT WINAPI IDirectPlayLobby2AImpl_GetConnectionSettings(IDirectPlayLobby2A *iface, DWORD appid, void *data, DWORD *size)
static HRESULT WINAPI IDirectPlayLobby3Impl_ReceiveLobbyMessage(IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD dwAppID, DWORD *lpdwMessageFlags, void *lpData, DWORD *lpdwDataSize)
static HRESULT WINAPI IDirectPlayLobby2Impl_CreateCompoundAddress(IDirectPlayLobby2 *iface, const DPCOMPOUNDADDRESSELEMENT *elements, DWORD count, void *address, DWORD *size)
static HRESULT WINAPI IDirectPlayLobby3AImpl_GetConnectionSettings(IDirectPlayLobby3A *iface, DWORD dwAppID, void *lpData, DWORD *lpdwDataSize)
static HRESULT WINAPI IDirectPlayLobby2AImpl_ReceiveLobbyMessage(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby(IDirectPlayLobby *iface)
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumLocalApplications(IDirectPlayLobby2A *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
static HRESULT WINAPI IDirectPlayLobbyImpl_SendLobbyMessage(IDirectPlayLobby *iface, DWORD flags, DWORD appid, void *data, DWORD size)
HRESULT DPL_CreateCompoundAddress(LPCDPCOMPOUNDADDRESSELEMENT lpElements, DWORD dwElementCount, LPVOID lpAddress, LPDWORD lpdwAddressSize, BOOL bAnsiInterface) DECLSPEC_HIDDEN
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddressTypes(IDirectPlayLobby2 *iface, LPDPLENUMADDRESSTYPESCALLBACK enumaddrtypecb, REFGUID sp, void *context, DWORD flags)
static HRESULT DPL_CreateAddress(REFGUID guidSP, REFGUID guidDataType, LPCVOID lpData, DWORD dwDataSize, LPVOID lpAddress, LPDWORD lpdwAddressSize, BOOL bAnsiInterface)
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobbyA(IDirectPlayLobbyA *iface)
static HRESULT WINAPI IDirectPlayLobby3Impl_UnregisterApplication(IDirectPlayLobby3 *iface, DWORD flags, REFGUID appdesc)
static HRESULT WINAPI IDirectPlayLobby2AImpl_EnumAddress(IDirectPlayLobby2A *iface, LPDPENUMADDRESSCALLBACK enumaddrcb, const void *address, DWORD size, void *context)
static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateCompoundAddress(IDirectPlayLobby2A *iface, const DPCOMPOUNDADDRESSELEMENT *elements, DWORD count, void *address, DWORD *size)
static HRESULT WINAPI IDirectPlayLobbyAImpl_ReceiveLobbyMessage(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
static HRESULT WINAPI IDirectPlayLobby3Impl_CreateCompoundAddress(IDirectPlayLobby3 *iface, const DPCOMPOUNDADDRESSELEMENT *lpElements, DWORD dwElementCount, void *lpAddress, DWORD *lpdwAddressSize)
static HRESULT WINAPI IDirectPlayLobbyImpl_SetConnectionSettings(IDirectPlayLobby *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
static HRESULT WINAPI IDirectPlayLobbyImpl_ReceiveLobbyMessage(IDirectPlayLobby *iface, DWORD flags, DWORD appid, DWORD *msgflags, void *data, DWORD *size)
static HRESULT WINAPI IDirectPlayLobby2AImpl_RunApplication(IDirectPlayLobby2A *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 ULONG WINAPI IDirectPlayLobby2AImpl_AddRef(IDirectPlayLobby2A *iface)
static HRESULT WINAPI IDirectPlayLobby2Impl_CreateAddress(IDirectPlayLobby2 *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
static IDirectPlayLobbyImpl * impl_from_IDirectPlayLobby3(IDirectPlayLobby3 *iface)
static HRESULT WINAPI IDirectPlayLobby2Impl_EnumAddress(IDirectPlayLobby2 *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 ULONG WINAPI IDirectPlayLobbyAImpl_AddRef(IDirectPlayLobbyA *iface)
static HRESULT WINAPI IDirectPlayLobbyAImpl_SetConnectionSettings(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
static HRESULT WINAPI IDirectPlayLobbyAImpl_QueryInterface(IDirectPlayLobbyA *iface, REFIID riid, void **ppv)
static HRESULT WINAPI IDirectPlayLobby2Impl_QueryInterface(IDirectPlayLobby2 *iface, REFIID riid, void **ppv)
static HRESULT WINAPI IDirectPlayLobby3AImpl_Connect(IDirectPlayLobby3A *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
static HRESULT WINAPI IDirectPlayLobbyImpl_EnumLocalApplications(IDirectPlayLobby *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK enumlocalappcb, void *context, DWORD flags)
static HRESULT WINAPI IDirectPlayLobby2Impl_SendLobbyMessage(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, void *data, DWORD size)
static HRESULT WINAPI IDirectPlayLobby2Impl_SetLobbyMessageEvent(IDirectPlayLobby2 *iface, DWORD flags, DWORD appid, HANDLE event)
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumAddress(IDirectPlayLobby3A *iface, LPDPENUMADDRESSCALLBACK lpEnumAddressCallback, const void *lpAddress, DWORD dwAddressSize, void *lpContext)
static HRESULT WINAPI IDirectPlayLobby3Impl_SendLobbyMessage(IDirectPlayLobby3 *iface, DWORD flags, DWORD appid, void *data, DWORD size)
HRESULT WINAPI DirectPlayLobbyCreateA(GUID *lpGUIDDSP, IDirectPlayLobbyA **lplpDPL, IUnknown *lpUnk, void *lpData, DWORD dwDataSize)
static HRESULT WINAPI IDirectPlayLobby3AImpl_EnumLocalApplications(IDirectPlayLobby3A *iface, LPDPLENUMLOCALAPPLICATIONSCALLBACK lpEnumLocalAppCallback, void *lpContext, DWORD dwFlags)
static HRESULT WINAPI IDirectPlayLobby2AImpl_SetLobbyMessageEvent(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, HANDLE event)
static HRESULT WINAPI IDirectPlayLobby2AImpl_Connect(IDirectPlayLobby2A *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
static const IDirectPlayLobby3Vtbl dpl3A_vt
static HRESULT WINAPI IDirectPlayLobby3Impl_RegisterApplication(IDirectPlayLobby3 *iface, DWORD flags, DPAPPLICATIONDESC *appdesc)
static ULONG WINAPI IDirectPlayLobby2AImpl_Release(IDirectPlayLobby2A *iface)
static HRESULT WINAPI IDirectPlayLobby3AImpl_WaitForConnectionSettings(IDirectPlayLobby3A *iface, DWORD dwFlags)
static void dplobby_destroy(IDirectPlayLobbyImpl *obj)
static BOOL DPL_CreateAndSetLobbyHandles(DWORD dwDestProcessId, HANDLE hDestProcess, LPHANDLE lphStart, LPHANDLE lphDeath, LPHANDLE lphRead)
static HRESULT WINAPI IDirectPlayLobby3Impl_SetLobbyMessageEvent(IDirectPlayLobby3 *iface, DWORD flags, DWORD appid, HANDLE event)
struct tagRunApplicationEnumStruct * lpRunApplicationEnumStruct
static HRESULT WINAPI IDirectPlayLobby2Impl_RunApplication(IDirectPlayLobby2 *iface, DWORD flags, DWORD *appid, DPLCONNECTION *conn, HANDLE event)
static HRESULT WINAPI IDirectPlayLobby3Impl_RunApplication(IDirectPlayLobby3 *iface, DWORD dwFlags, DWORD *lpdwAppID, DPLCONNECTION *lpConn, HANDLE hReceiveEvent)
static ULONG WINAPI IDirectPlayLobby2Impl_Release(IDirectPlayLobby2 *iface)
static ULONG WINAPI IDirectPlayLobby3Impl_Release(IDirectPlayLobby3 *iface)
static HRESULT WINAPI IDirectPlayLobbyImpl_CreateAddress(IDirectPlayLobby *iface, REFGUID sp, REFGUID datatype, const void *data, DWORD datasize, void *address, DWORD *addrsize)
static HRESULT WINAPI IDirectPlayLobby3AImpl_SendLobbyMessage(IDirectPlayLobby3A *iface, DWORD flags, DWORD appid, void *data, DWORD size)
static HRESULT WINAPI IDirectPlayLobbyAImpl_SendLobbyMessage(IDirectPlayLobbyA *iface, DWORD flags, DWORD appid, void *data, DWORD size)
static HRESULT WINAPI IDirectPlayLobby2AImpl_SetConnectionSettings(IDirectPlayLobby2A *iface, DWORD flags, DWORD appid, DPLCONNECTION *conn)
HRESULT dplobby_create(REFIID riid, void **ppv)
static HRESULT WINAPI IDirectPlayLobbyImpl_Connect(IDirectPlayLobby *iface, DWORD flags, IDirectPlay2A **dp, IUnknown *unk)
struct tagDPADDRESS DPADDRESS
#define IDirectPlayLobby_Release(p)
#define IDirectPlayLobby_SetLobbyMessageEvent(p, a, b, c)
#define IDirectPlayLobby_Connect(p, a, b, c)
BOOL(CALLBACK * LPDPLENUMADDRESSTYPESCALLBACK)(REFGUID guidDataType, LPVOID lpContext, DWORD dwFlags)
#define IDirectPlayLobby_QueryInterface(p, a, b)
#define IDirectPlayLobby_ReceiveLobbyMessage(p, a, b, c, d, e)
#define IDirectPlayLobby_GetConnectionSettings(p, a, b, c)
#define IDirectPlayLobby_CreateCompoundAddress(p, a, b, c, d)
BOOL(CALLBACK * LPDPLENUMLOCALAPPLICATIONSCALLBACK)(LPCDPLAPPINFO lpAppInfo, LPVOID lpContext, DWORD dwFlags)
struct IDirectPlayLobby2 IDirectPlayLobby2A
BOOL(CALLBACK * LPDPENUMADDRESSCALLBACK)(REFGUID guidDataType, DWORD dwDataSize, LPCVOID lpData, LPVOID lpContext)
#define IDirectPlayLobby_EnumLocalApplications(p, a, b, c)
#define IDirectPlayLobby_SendLobbyMessage(p, a, b, c, d)
struct IDirectPlayLobby3 IDirectPlayLobby3A
#define IDirectPlayLobby_CreateAddress(p, a, b, c, d, e, f)
#define IDirectPlayLobby_RunApplication(p, a, b, c, d)
#define IDirectPlayLobby_SetConnectionSettings(p, a, b, c)
#define IDirectPlayLobby_EnumAddressTypes(p, a, b, c, d)
#define IDirectPlayLobby_ConnectEx(p, a, b, c, d)
#define IDirectPlayLobby_EnumAddress(p, a, b, c, d)
struct IDirectPlayLobby IDirectPlayLobbyA
static unsigned char buff[32768]
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
const char * appName(const char *argv0)
#define memcpy(s1, s2, n)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define IsEqualGUID(rguid1, rguid2)
IDirectPlayLobby2 IDirectPlayLobby2_iface
IDirectPlayLobby IDirectPlayLobby_iface
IDirectPlayLobby2A IDirectPlayLobby2A_iface
IDirectPlayLobby3 IDirectPlayLobby3_iface
IDirectPlayLobbyA IDirectPlayLobbyA_iface
IDirectPlayLobby3A IDirectPlayLobby3A_iface
LPVOID lpSecurityDescriptor
LPDPSESSIONDESC2 lpSessionDesc
IDirectPlayLobbyImpl * This
LPSTR lpszCurrentDirectory
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
#define CONTAINING_RECORD(address, type, field)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
DWORD WINAPI GetCurrentProcessId(void)
#define CREATE_DEFAULT_ERROR_MODE
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define CREATE_NEW_CONSOLE
#define CLASS_E_NOAGGREGATION
#define HKEY_LOCAL_MACHINE
#define DUPLICATE_SAME_ACCESS