/*========================================================================== * * Copyright (C) 2000-2001 Microsoft Corporation. All Rights Reserved. * * File: User.h * Content: DirectNet User Call Back Routines *@@BEGIN_MSINTERNAL * History: * Date By Reason * ==== == ====== * 01/16/00 mjn Created * 01/17/00 mjn Added DN_UserHostMigrate * 01/17/00 mjn Implemented send time * 01/22/00 mjn Added DN_UserHostDestroyPlayer * 01/27/00 mjn Added support for retention of receive buffers * 01/28/00 mjn Added DN_UserConnectionTerminated * 03/24/00 mjn Set player context through INDICATE_CONNECT notification * 04/04/00 mjn Added DN_UserTerminateSession() * 04/05/00 mjn Updated DN_UserHostDestroyPlayer() * 04/18/00 mjn Added DN_UserReturnBuffer * mjn Added ppvReplyContext to DN_UserIndicateConnect * 07/29/00 mjn Added DNUserIndicatedConnectAborted() * mjn DNUserConnectionTerminated() supercedes DN_TerminateSession() * mjn Added HRESULT to DNUserReturnBuffer() * 07/30/00 mjn Added pAddressDevice to DNUserIndicateConnect() * mjn Replaced DNUserConnectionTerminated() with DNUserTerminateSession() * 07/31/00 mjn Revised DNUserDestroyGroup() * mjn Removed DN_UserHostDestroyPlayer() * 08/01/00 mjn DN_UserReceive() -> DNUserReceive() * 08/02/00 mjn DN_UserAddPlayer() -> DNUserCreatePlayer() * 08/08/00 mjn DN_UserCreateGroup() -> DNUserCreateGroup() * 08/20/00 mjn Added DNUserEnumQuery() and DNUserEnumResponse() * 09/17/00 mjn Changed parameters list of DNUserCreateGroup(),DNUserCreatePlayer(), * DNUserAddPlayerToGroup(),DNRemovePlayerFromGroup() * 07/24/01 mjn Added DPNBUILD_NOSERVER compile flag * 10/16/01 vanceo Added some multicast callbacks *@@END_MSINTERNAL * ***************************************************************************/ #ifndef __USER_H__ #define __USER_H__ //********************************************************************** // Constant definitions //********************************************************************** //********************************************************************** // Macro definitions //********************************************************************** //********************************************************************** // Structure definitions //********************************************************************** //********************************************************************** // Variable definitions //********************************************************************** //********************************************************************** // Function prototypes //********************************************************************** HRESULT DNUserConnectComplete(DIRECTNETOBJECT *const pdnObject, const DPNHANDLE hAsyncOp, PVOID const pvContext, const HRESULT hr, CRefCountBuffer *const pRefCountBuffer); HRESULT DNUserIndicateConnect(DIRECTNETOBJECT *const pdnObject, PVOID const pvConnectData, const DWORD dwConnectDataSize, void **const ppvReplyData, DWORD *const pdwReplyDataSize, void **const ppvReplyContext, IDirectPlay8Address *const pAddressPlayer, IDirectPlay8Address *const pAddressDevice, void **const ppvPlayerContext); HRESULT DNUserIndicatedConnectAborted(DIRECTNETOBJECT *const pdnObject, void *const pvPlayerContext); HRESULT DNUserCreatePlayer(DIRECTNETOBJECT *const pdnObject, CNameTableEntry *const pNTEntry); HRESULT DNUserDestroyPlayer(DIRECTNETOBJECT *const pdnObject, CNameTableEntry *const pNTEntry); HRESULT DNUserCreateGroup(DIRECTNETOBJECT *const pdnObject, CNameTableEntry *const pNTEntry); HRESULT DNUserDestroyGroup(DIRECTNETOBJECT *const pdnObject, CNameTableEntry *const pNTEntry); HRESULT DNUserAddPlayerToGroup(DIRECTNETOBJECT *const pdnObject, CNameTableEntry *const pGroup, CNameTableEntry *const pPlayer); HRESULT DNUserRemovePlayerFromGroup(DIRECTNETOBJECT *const pdnObject, CNameTableEntry *const pGroup, CNameTableEntry *const pPlayer); HRESULT DNUserUpdateGroupInfo(DIRECTNETOBJECT *const pdnObject, const DPNID dpnid, const PVOID pvContext); HRESULT DNUserUpdatePeerInfo(DIRECTNETOBJECT *const pdnObject, const DPNID dpnid, const PVOID pvContext); #ifndef DPNBUILD_NOSERVER HRESULT DNUserUpdateClientInfo(DIRECTNETOBJECT *const pdnObject, const DPNID dpnid, const PVOID pvContext); #endif // DPNBUILD_NOSERVER HRESULT DNUserUpdateServerInfo(DIRECTNETOBJECT *const pdnObject, const DPNID dpnid, const PVOID pvContext); HRESULT DNUserAsyncComplete(DIRECTNETOBJECT *const pdnObject, const DPNHANDLE hAsyncOp, PVOID const pvContext, const HRESULT hr); HRESULT DNUserSendComplete(DIRECTNETOBJECT *const pdnObject, const DPNHANDLE hAsyncOp, PVOID const pvContext, const DWORD dwStartTime, const HRESULT hr, const DWORD dwFirstFrameRTT, const DWORD dwFirstFrameRetryCount); HRESULT DNUserUpdateAppDesc(DIRECTNETOBJECT *const pdnObject); HRESULT DNUserReceive(DIRECTNETOBJECT *const pdnObject, CNameTableEntry *const pNTEntry, BYTE *const pBufferData, const DWORD dwBufferSize, const DPNHANDLE hBufferHandle); HRESULT DN_UserHostMigrate(DIRECTNETOBJECT *const pdnObject, const DPNID dpnidNewHost, const PVOID pvPlayerContext); HRESULT DNUserTerminateSession(DIRECTNETOBJECT *const pdnObject, const HRESULT hr, void *const pvTerminateData, const DWORD dwTerminateDataSize); HRESULT DNUserReturnBuffer(DIRECTNETOBJECT *const pdnObject, const HRESULT hr, void *const pvBuffer, void *const pvUserContext); HRESULT DNUserEnumQuery(DIRECTNETOBJECT *const pdnObject, DPNMSG_ENUM_HOSTS_QUERY *const pMsg); HRESULT DNUserEnumResponse(DIRECTNETOBJECT *const pdnObject, DPNMSG_ENUM_HOSTS_RESPONSE *const pMsg); #ifndef DPNBUILD_NOMULTICAST HRESULT DNUserJoinComplete(DIRECTNETOBJECT *const pdnObject, const DPNHANDLE hAsyncOp, PVOID const pvContext, const HRESULT hr); HRESULT DNUserReceiveMulticast(DIRECTNETOBJECT *const pdnObject, void * const pvSenderContext, IDirectPlay8Address *const pSenderAddress, IDirectPlay8Address *const pDeviceAddress, BYTE *const pBufferData, const DWORD dwBufferSize, const DPNHANDLE hBufferHandle); HRESULT DNUserCreateSenderContext(DIRECTNETOBJECT *const pdnObject, void *const pvContext); HRESULT DNUserDestroySenderContext(DIRECTNETOBJECT *const pdnObject, void *const pvContext); #endif // ! DPNBUILD_NOMULTICAST //********************************************************************** // Class prototypes //********************************************************************** #endif // __USER_H__