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" );
char * strcat(char *DstString, const char *SrcString)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
#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)
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)
DWORD WINAPI ResumeThread(IN HANDLE hThread)
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)
#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
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define CLASS_E_NOAGGREGATION
#define HKEY_LOCAL_MACHINE
#define DUPLICATE_SAME_ACCESS