111 TRACE(
"(%p)->(%p,%p,%lx): stub\n", iface, pvUserContext, pfn,
dwFlags);
116 This->usercontext = pvUserContext;
117 This->msghandler = pfn;
126 DWORD *
const buf_size,
DWORD *
const returned)
128 static const WCHAR serviceproviders[] =
L"SOFTWARE\\Microsoft\\DirectPlay8\\Service Providers";
129 static const WCHAR friendly[] =
L"Friendly Name";
130 static const WCHAR dp_adapterW[] =
L"Local Area Connection - IPv4";
131 static const GUID adapter_guid = {0x4ce725f6, 0xd3c0, 0xdade, {0xba, 0x6f, 0x11, 0xf9, 0x65, 0xbc, 0x42, 0x99}};
140 if(!returned || !buf_size)
174 FIXME(
"Application requested a provider we don't handle (yet)\n");
178 if(*buf_size < req_size)
182 *buf_size = req_size;
200 info_buffer[
count].
guid = CLSID_DP8SP_TCPIP;
217 info_buffer->
guid = adapter_guid;
227 const GUID *
const pguidServiceProvider,
const GUID *
const pguidApplication,
232 pSPInfoBuffer, pcbEnumData, pcReturned,
dwFlags);
238 FIXME(
"Application guid %s is currently being ignored\n",
debugstr_guid(pguidApplication));
246 FIXME(
"(%p)->(%lx,%lx): stub\n", iface, hAsyncHandle,
dwFlags);
253 IDirectPlay8Address *
const pDeviceInfo,
const DPN_SECURITY_DESC *
const pdnSecurity,
255 const DWORD dwUserConnectDataSize,
void *
const pvPlayerContext,
258 FIXME(
"(%p)->(%p,%p,%p,%p,%p,%p,%lx,%p,%p,%p,%lx): stub\n", iface, pdnAppDesc, pHostAddr, pDeviceInfo, pdnSecurity, pdnCredentials, pvUserConnectData, dwUserConnectDataSize, pvPlayerContext, pvAsyncContext, phAsyncHandle,
dwFlags);
267 FIXME(
"(%p)->(%lx,%p,%lx,%lx,%p,%p,%lx): stub\n", iface, dpnId, pBufferDesc, cBufferDesc, dwTimeOut, pvAsyncContext, phAsyncHandle,
dwFlags);
275 FIXME(
"(%p)->(%lx,%p,%p,%lx): stub\n", iface, dpnid, pdwNumMsgs, pdwNumBytes,
dwFlags);
286 FIXME(
"(%p)->(%p,%p,%lx,%p,%p,%p,%lx): stub\n", iface, pdnAppDesc, prgpDeviceInfo, cDeviceInfo, pdpSecurity, pdpCredentials, pvPlayerContext,
dwFlags);
294 FIXME(
"(%p)->(%p,%p,%lx): stub\n", iface, pAppDescBuffer, pcbDataSize,
dwFlags);
308 const DPN_GROUP_INFO *
const pdpnGroupInfo,
void *
const pvGroupContext,
311 FIXME(
"(%p)->(%p,%p,%p,%p,%lx): stub\n", iface, pdpnGroupInfo, pvGroupContext, pvAsyncContext, phAsyncHandle,
dwFlags);
317 const DPNID idGroup,
void *
const pvAsyncContext,
DPNHANDLE *
const phAsyncHandle,
320 FIXME(
"(%p)->(%lx,%p,%p,%lx): stub\n", iface, idGroup, pvAsyncContext, phAsyncHandle,
dwFlags);
326 const DPNID idGroup,
const DPNID idClient,
void *
const pvAsyncContext,
329 FIXME(
"(%p)->(%lx,%lx,%p,%p,%lx): stub\n", iface, idGroup, idClient, pvAsyncContext, phAsyncHandle,
dwFlags);
335 const DPNID idGroup,
const DPNID idClient,
void *
const pvAsyncContext,
338 FIXME(
"(%p)->(%lx,%lx,%p,%p,%lx): stub\n", iface, idGroup, idClient, pvAsyncContext, phAsyncHandle,
dwFlags);
344 DPN_GROUP_INFO *
const pdpnGroupInfo,
void *
const pvAsyncContext,
347 FIXME(
"(%p)->(%lx,%p,%p,%p,%lx): stub\n", iface, dpnid, pdpnGroupInfo, pvAsyncContext, phAsyncHandle,
dwFlags);
355 FIXME(
"(%p)->(%lx,%p,%p,%lx): stub\n", iface, dpnid, pdpnGroupInfo, pdwSize,
dwFlags);
363 FIXME(
"(%p)->(%p,%p,%lx): stub\n", iface, prgdpnid, pcdpnid,
dwFlags);
371 FIXME(
"(%p)->(%lx,%p,%p,%lx): stub\n", iface, dpnid, prgdpnid, pcdpnid,
dwFlags);
377 const DPN_PLAYER_INFO *
const pdpnPlayerInfo,
void *
const pvAsyncContext,
382 FIXME(
"(%p)->(%p,%p,%p,%lx) Semi-stub.\n",
This, pdpnPlayerInfo, pvAsyncContext, phAsyncHandle,
dwFlags);
388 FIXME(
"Async handle currently not supported.\n");
421 FIXME(
"(%p)->(%lx,%p,%p,%lx): stub\n", iface, dpnid, pdpnPlayerInfo, pdwSize,
dwFlags);
429 FIXME(
"(%p)->(%lx,%p,%lx): stub\n", iface, dpnid, pAddress,
dwFlags);
435 IDirectPlay8Address **
const prgpAddress,
DWORD *
const pcAddress,
const DWORD dwFlags)
437 FIXME(
"(%p)->(%p,%p,%lx): stub\n", iface, prgpAddress, pcAddress,
dwFlags);
451 IDirectPlay8Address *
const pDeviceInfo,
void *
const pUserEnumData,
452 const DWORD dwUserEnumDataSize,
const DWORD dwEnumCount,
const DWORD dwRetryInterval,
457 FIXME(
"(%p)->(%p,%p,%p,%p,%lx,%lx,%lx,%lx,%p,%p,%lx): stub\n",
458 This, pApplicationDesc, pAddrHost, pDeviceInfo, pUserEnumData, dwUserEnumDataSize, dwEnumCount,
459 dwRetryInterval, dwTimeOut, pvUserContext, pAsyncHandle,
dwFlags);
461 if(!
This->msghandler)
467 if(dwUserEnumDataSize >
This->spcaps.dwMaxEnumPayloadSize)
474 const void *
const pvDestroyData,
const DWORD dwDestroyDataSize,
const DWORD dwFlags)
476 FIXME(
"(%p)->(%lx,%p,%lx,%lx): stub\n", iface, dpnidClient, pvDestroyData, dwDestroyDataSize,
dwFlags);
484 FIXME(
"(%p)->(%lx,%lx): stub\n", iface, hBufferHandle,
dwFlags);
492 FIXME(
"(%p)->(%lx,%p,%lx): stub\n", iface, dpnid, ppvPlayerContext,
dwFlags);
500 FIXME(
"(%p)->(%lx,%p,%lx): stub\n", iface, dpnid, ppvGroupContext,
dwFlags);
508 FIXME(
"(%p)->(%p,%lx): stub\n", iface, pdpCaps,
dwFlags);
516 FIXME(
"(%p)->(%p,%lx): stub\n", iface, pdpCaps,
dwFlags);
526 TRACE(
"(%p)->(%p,%p,%lx): stub\n", iface, pguidSP, pdpspCaps,
dwFlags);
544 if(!
This->msghandler)
552 *pdpspCaps =
This->spcaps;
560 FIXME(
"(%p)->(%lx,%p,%lx): stub\n", iface, dpnid, pdpConnectionInfo,
dwFlags);
566 struct IDirectPlay8LobbiedApplication *
const pIDP8LobbiedApplication,
const DWORD dwFlags)
568 FIXME(
"(%p)->(%lx,%p,%lx): stub\n", iface, dpnHandle, pIDP8LobbiedApplication,
dwFlags);
576 FIXME(
"(%p)->(%p,%lx,%lx): stub\n", iface, pvTerminateData, dwTerminateDataSize,
dwFlags);
647 WARN(
"Not enough memory\n");
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
static wchar_t * wcsdup(const wchar_t *str)
HRESULT(WINAPI * PFNDPNMESSAGEHANDLER)(PVOID, DWORD, PVOID)
#define DPNERR_INVALIDPARAM
#define DPNSPCAPS_SUPPORTSTHREADPOOL
#define IDirectPlay8Peer_QueryInterface(p, a, b)
struct _DPN_SECURITY_CREDENTIALS DPN_SECURITY_CREDENTIALS
struct _DPN_SECURITY_DESC DPN_SECURITY_DESC
#define DPNSPCAPS_SUPPORTSALLADAPTERS
#define IDirectPlay8Peer_AddRef(p)
struct _DPN_SP_CAPS DPN_SP_CAPS
#define DPNERR_ENUMQUERYTOOLARGE
#define DPNSPCAPS_SUPPORTSDPNSRV
#define DPNERR_DOESNOTEXIST
#define IDirectPlay8Peer_Release(p)
#define DPNSUCCESS_PENDING
#define DPNERR_BUFFERTOOSMALL
#define DPNENUMHOSTS_SYNC
#define DPNERR_UNINITIALIZED
#define DPNSPCAPS_SUPPORTSBROADCAST
struct _DPN_SERVICE_PROVIDER_INFO DPN_SERVICE_PROVIDER_INFO
GLuint GLuint GLsizei count
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
static HRESULT WINAPI IDirectPlay8PeerImpl_SendTo(IDirectPlay8Peer *iface, const DPNID dpnId, const DPN_BUFFER_DESC *pBufferDesc, const DWORD cBufferDesc, const DWORD dwTimeOut, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetGroupContext(IDirectPlay8Peer *iface, const DPNID dpnid, void **const ppvGroupContext, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_RegisterLobby(IDirectPlay8Peer *iface, const DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_DestroyPeer(IDirectPlay8Peer *iface, const DPNID dpnidClient, const void *const pvDestroyData, const DWORD dwDestroyDataSize, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_CreateGroup(IDirectPlay8Peer *iface, const DPN_GROUP_INFO *const pdpnGroupInfo, void *const pvGroupContext, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_SetPeerInfo(IDirectPlay8Peer *iface, const DPN_PLAYER_INFO *const pdpnPlayerInfo, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetPeerInfo(IDirectPlay8Peer *iface, const DPNID dpnid, DPN_PLAYER_INFO *const pdpnPlayerInfo, DWORD *const pdwSize, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_EnumGroupMembers(IDirectPlay8Peer *iface, const DPNID dpnid, DPNID *const prgdpnid, DWORD *const pcdpnid, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_SetGroupInfo(IDirectPlay8Peer *iface, const DPNID dpnid, DPN_GROUP_INFO *const pdpnGroupInfo, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetGroupInfo(IDirectPlay8Peer *iface, const DPNID dpnid, DPN_GROUP_INFO *const pdpnGroupInfo, DWORD *const pdwSize, const DWORD dwFlags)
static IDirectPlay8PeerImpl * impl_from_IDirectPlay8Peer(IDirectPlay8Peer *iface)
static const IDirectPlay8PeerVtbl DirectPlay8Peer_Vtbl
static HRESULT WINAPI IDirectPlay8PeerImpl_TerminateSession(IDirectPlay8Peer *iface, void *const pvTerminateData, const DWORD dwTerminateDataSize, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetConnectionInfo(IDirectPlay8Peer *iface, const DPNID dpnid, DPN_CONNECTION_INFO *const pdpConnectionInfo, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_Close(IDirectPlay8Peer *iface, const DWORD dwFlags)
static ULONG WINAPI IDirectPlay8PeerImpl_Release(IDirectPlay8Peer *iface)
void init_dpn_sp_caps(DPN_SP_CAPS *dpnspcaps)
static HRESULT WINAPI IDirectPlay8PeerImpl_Host(IDirectPlay8Peer *iface, const DPN_APPLICATION_DESC *const pdnAppDesc, IDirectPlay8Address **const prgpDeviceInfo, const DWORD cDeviceInfo, const DPN_SECURITY_DESC *const pdpSecurity, const DPN_SECURITY_CREDENTIALS *const pdpCredentials, void *const pvPlayerContext, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetSPCaps(IDirectPlay8Peer *iface, const GUID *const pguidSP, DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_Connect(IDirectPlay8Peer *iface, const DPN_APPLICATION_DESC *const pdnAppDesc, IDirectPlay8Address *const pHostAddr, IDirectPlay8Address *const pDeviceInfo, const DPN_SECURITY_DESC *const pdnSecurity, const DPN_SECURITY_CREDENTIALS *const pdnCredentials, const void *const pvUserConnectData, const DWORD dwUserConnectDataSize, void *const pvPlayerContext, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static ULONG WINAPI IDirectPlay8PeerImpl_AddRef(IDirectPlay8Peer *iface)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetApplicationDesc(IDirectPlay8Peer *iface, DPN_APPLICATION_DESC *const pAppDescBuffer, DWORD *const pcbDataSize, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetLocalHostAddresses(IDirectPlay8Peer *iface, IDirectPlay8Address **const prgpAddress, DWORD *const pcAddress, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_SetApplicationDesc(IDirectPlay8Peer *iface, const DPN_APPLICATION_DESC *const pad, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_RemovePlayerFromGroup(IDirectPlay8Peer *iface, const DPNID idGroup, const DPNID idClient, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_SetCaps(IDirectPlay8Peer *iface, const DPN_CAPS *const pdpCaps, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_CancelAsyncOperation(IDirectPlay8Peer *iface, const DPNHANDLE hAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_SetSPCaps(IDirectPlay8Peer *iface, const GUID *const pguidSP, const DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags)
HRESULT enum_services_providers(const GUID *const service, DPN_SERVICE_PROVIDER_INFO *const info_buffer, DWORD *const buf_size, DWORD *const returned)
static HRESULT WINAPI IDirectPlay8PeerImpl_Initialize(IDirectPlay8Peer *iface, void *const pvUserContext, const PFNDPNMESSAGEHANDLER pfn, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_EnumPlayersAndGroups(IDirectPlay8Peer *iface, DPNID *const prgdpnid, DWORD *const pcdpnid, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_ReturnBuffer(IDirectPlay8Peer *iface, const DPNHANDLE hBufferHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_EnumServiceProviders(IDirectPlay8Peer *iface, const GUID *const pguidServiceProvider, const GUID *const pguidApplication, DPN_SERVICE_PROVIDER_INFO *const pSPInfoBuffer, DWORD *const pcbEnumData, DWORD *const pcReturned, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetPeerAddress(IDirectPlay8Peer *iface, const DPNID dpnid, IDirectPlay8Address **const pAddress, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetPlayerContext(IDirectPlay8Peer *iface, const DPNID dpnid, void **const ppvPlayerContext, const DWORD dwFlags)
HRESULT DPNET_CreateDirectPlay8Peer(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectPlay8PeerImpl_AddPlayerToGroup(IDirectPlay8Peer *iface, const DPNID idGroup, const DPNID idClient, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_DestroyGroup(IDirectPlay8Peer *iface, const DPNID idGroup, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_EnumHosts(IDirectPlay8Peer *iface, PDPN_APPLICATION_DESC const pApplicationDesc, IDirectPlay8Address *const pAddrHost, IDirectPlay8Address *const pDeviceInfo, void *const pUserEnumData, const DWORD dwUserEnumDataSize, const DWORD dwEnumCount, const DWORD dwRetryInterval, const DWORD dwTimeOut, void *const pvUserContext, DPNHANDLE *const pAsyncHandle, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetSendQueueInfo(IDirectPlay8Peer *iface, const DPNID dpnid, DWORD *const pdwNumMsgs, DWORD *const pdwNumBytes, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_GetCaps(IDirectPlay8Peer *iface, DPN_CAPS *const pdpCaps, const DWORD dwFlags)
static HRESULT WINAPI IDirectPlay8PeerImpl_QueryInterface(IDirectPlay8Peer *iface, REFIID riid, void **ret_iface)
#define IsEqualGUID(rguid1, rguid2)
IDirectPlay8Peer IDirectPlay8Peer_iface
PFNDPNMESSAGEHANDLER msghandler
DWORD dwDefaultEnumRetryInterval
DWORD dwDefaultEnumTimeout
DWORD dwMaxEnumPayloadSize
#define CONTAINING_RECORD(address, type, field)
#define HKEY_LOCAL_MACHINE