windows-nt/Source/XPSP1/NT/multimedia/directx/dxvb/dx7vb/dplay4obj.h
2020-09-26 16:20:57 +08:00

335 lines
12 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1998
//
// File: dplay4obj.h
//
//--------------------------------------------------------------------------
// _dxj_DirectPlay4Obj.h : Declaration of the C_dxj_DirectPlay4Object
// DHF begin - entire file
#include "resource.h" // main symbols
#define typedef__dxj_DirectPlay4 LPDIRECTPLAY4
/////////////////////////////////////////////////////////////////////////////
// DirectPlay4
//REVIEW -- using pointers to ID's is necessary because some compilers don't like
//references as template arguments.
class C_dxj_DirectPlay4Object :
#ifdef USING_IDISPATCH
public CComDualImpl<I_dxj_DirectPlay4, &IID_I_dxj_DirectPlay4, &LIBID_DIRECTLib>,
public ISupportErrorInfo,
#else
public I_dxj_DirectPlay4,
#endif
// public CComCoClass<C_dxj_DirectPlay4Object, &CLSID__dxj_DirectPlay4>,
public CComObjectRoot
{
public:
C_dxj_DirectPlay4Object() ;
~C_dxj_DirectPlay4Object() ;
BEGIN_COM_MAP(C_dxj_DirectPlay4Object)
COM_INTERFACE_ENTRY(I_dxj_DirectPlay4)
#ifdef USING_IDISPATCH
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
#endif
END_COM_MAP()
// DECLARE_REGISTRY(CLSID__dxj_DirectPlay4, "DIRECT.DirectPlay4.3", "DIRECT.DiectPlay2.3", IDS_DPLAY2_DESC, THREADFLAGS_BOTH)
// Use DECLARE_NOT_AGGREGATABLE(C_dxj_DirectPlay4Object) if you don't want your object
// to support aggregation
DECLARE_AGGREGATABLE(C_dxj_DirectPlay4Object)
#ifdef USING_IDISPATCH
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
#endif
// I_dxj_DirectPlay4
public:
/* [hidden] */ HRESULT STDMETHODCALLTYPE InternalSetObject(
/* [in] */ IUnknown __RPC_FAR *lpdd);
/* [hidden] */ HRESULT STDMETHODCALLTYPE InternalGetObject(
/* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *lpdd);
HRESULT STDMETHODCALLTYPE addGroupToGroup(
/* [in] */ long ParentGroupId,
/* [in] */ long GroupId);
HRESULT STDMETHODCALLTYPE addPlayerToGroup(
/* [in] */ long groupId,
/* [in] */ long playerId);
HRESULT STDMETHODCALLTYPE cancelMessage(
/* [in] */ long msgid);
HRESULT STDMETHODCALLTYPE cancelPriority(
/* [in] */ long minPrority,
/* [in] */ long maxPriority);
HRESULT STDMETHODCALLTYPE close( void);
HRESULT STDMETHODCALLTYPE createGroup(
/* [in] */ BSTR friendlyName,
/* [in] */ BSTR formalName,
/* [in] */ long flags,
/* [retval][out] */ long __RPC_FAR *v1);
HRESULT STDMETHODCALLTYPE createGroupInGroup(
/* [in] */ long parentid,
/* [in] */ BSTR friendlyName,
/* [in] */ BSTR formalName,
/* [in] */ long flags,
/* [retval][out] */ long __RPC_FAR *v1);
HRESULT STDMETHODCALLTYPE createPlayer(
/* [in] */ BSTR friendlyName,
/* [in] */ BSTR formalName,
/* [in] */ long receiveEvent,
/* [in] */ long flags,
/* [retval][out] */ long __RPC_FAR *v1);
HRESULT STDMETHODCALLTYPE deleteGroupFromGroup(
/* [in] */ long groupParentId,
/* [in] */ long groupId);
HRESULT STDMETHODCALLTYPE deletePlayerFromGroup(
/* [in] */ long groupId,
/* [in] */ long playerId);
HRESULT STDMETHODCALLTYPE destroyGroup(
/* [in] */ long groupId);
HRESULT STDMETHODCALLTYPE destroyPlayer(
/* [in] */ long playerId);
HRESULT STDMETHODCALLTYPE getDPEnumConnections(
/* [in] */ BSTR guid,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_DPEnumConnections __RPC_FAR *__RPC_FAR *retVal);
HRESULT STDMETHODCALLTYPE getDPEnumGroupPlayers(
/* [in] */ long groupId,
/* [in] */ BSTR sessionGuid,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_DPEnumPlayers2 __RPC_FAR *__RPC_FAR *retVal);
HRESULT STDMETHODCALLTYPE getDPEnumGroups(
/* [in] */ BSTR sessionGuid,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_DPEnumPlayers2 __RPC_FAR *__RPC_FAR *retVal);
HRESULT STDMETHODCALLTYPE getDPEnumGroupsInGroup(
/* [in] */ long groupId,
/* [in] */ BSTR sessionGuid,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_DPEnumPlayers2 __RPC_FAR *__RPC_FAR *retVal);
HRESULT STDMETHODCALLTYPE getDPEnumPlayers(
/* [in] */ BSTR sessionGuid,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_DPEnumPlayers2 __RPC_FAR *__RPC_FAR *retVal);
HRESULT STDMETHODCALLTYPE getDPEnumSessions(
/* [in] */ I_dxj_DirectPlaySessionData __RPC_FAR *sessionDesc,
/* [in] */ long timeOut,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_DPEnumSessions2 __RPC_FAR *__RPC_FAR *retVal);
HRESULT STDMETHODCALLTYPE getCaps(
/* [out][in] */ DPCaps __RPC_FAR *caps,
/* [in] */ long flags);
HRESULT STDMETHODCALLTYPE getGroupData(
/* [in] */ long groupId,
/* [in] */ long flags,
/* [retval][out] */ BSTR __RPC_FAR *ret);
HRESULT STDMETHODCALLTYPE getGroupFlags(
/* [in] */ long groupId,
/* [retval][out] */ long __RPC_FAR *flags);
HRESULT STDMETHODCALLTYPE getGroupLongName(
/* [in] */ long groupId,
/* [retval][out] */ BSTR __RPC_FAR *name);
HRESULT STDMETHODCALLTYPE getGroupShortName(
/* [in] */ long groupId,
/* [retval][out] */ BSTR __RPC_FAR *name);
HRESULT STDMETHODCALLTYPE getGroupParent(
/* [in] */ long groupId,
/* [retval][out] */ long __RPC_FAR *ret);
HRESULT STDMETHODCALLTYPE getGroupOwner(
/* [in] */ long groupId,
/* [retval][out] */ long __RPC_FAR *ret);
HRESULT STDMETHODCALLTYPE getMessageCount(
/* [in] */ long playerId,
/* [retval][out] */ long __RPC_FAR *count);
HRESULT STDMETHODCALLTYPE getMessageQueue(
/* [in] */ long from,
/* [in] */ long to,
/* [in] */ long flags,
/* [out][in] */ long __RPC_FAR *nMessage,
/* [out][in] */ long __RPC_FAR *nBytes);
HRESULT STDMETHODCALLTYPE getPlayerAccountId(
/* [in] */ long playerid,
/* [retval][out] */ BSTR __RPC_FAR *acctid);
HRESULT STDMETHODCALLTYPE getPlayerAddress(
/* [in] */ long playerId,
/* [retval][out] */ I_dxj_DPAddress __RPC_FAR *__RPC_FAR *ret);
HRESULT STDMETHODCALLTYPE getPlayerCaps(
/* [in] */ long playerId,
/* [out] */ DPCaps __RPC_FAR *caps,
/* [in] */ long flags);
HRESULT STDMETHODCALLTYPE getPlayerData(
/* [in] */ long playerId,
/* [in] */ long flags,
/* [retval][out] */ BSTR __RPC_FAR *ret);
HRESULT STDMETHODCALLTYPE getPlayerFlags(
/* [in] */ long id,
/* [retval][out] */ long __RPC_FAR *retflags);
HRESULT STDMETHODCALLTYPE getPlayerFormalName(
/* [in] */ long playerId,
/* [retval][out] */ BSTR __RPC_FAR *name);
HRESULT STDMETHODCALLTYPE getPlayerFriendlyName(
/* [in] */ long playerId,
/* [retval][out] */ BSTR __RPC_FAR *name);
HRESULT STDMETHODCALLTYPE getSessionDesc(
/* [out][in] */ I_dxj_DirectPlaySessionData __RPC_FAR **sessionDesc);
HRESULT STDMETHODCALLTYPE initializeConnection(
/* [in] */ I_dxj_DPAddress __RPC_FAR *address);
HRESULT STDMETHODCALLTYPE open(
/* [out][in] */ I_dxj_DirectPlaySessionData __RPC_FAR *sessionDesc,
/* [in] */ long flags);
HRESULT STDMETHODCALLTYPE receive(
/* [out][in] */ long __RPC_FAR *fromPlayerId,
/* [out][in] */ long __RPC_FAR *toPlayerId,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_DirectPlayMessage __RPC_FAR *__RPC_FAR *ret);
HRESULT STDMETHODCALLTYPE receiveSize(
/* [out][in] */ long __RPC_FAR *fromPlayerId,
/* [out][in] */ long __RPC_FAR *toPlayerId,
/* [in] */ long flags,
/* [retval][out] */ int __RPC_FAR *dataSize);
HRESULT STDMETHODCALLTYPE secureOpen(
/* [in] */ I_dxj_DirectPlaySessionData __RPC_FAR *sessiondesc,
/* [in] */ long flags,
/* [in] */ DPSecurityDesc __RPC_FAR *security,
/* [in] */ DPCredentials __RPC_FAR *credentials);
HRESULT STDMETHODCALLTYPE send(
/* [in] */ long fromPlayerId,
/* [in] */ long toPlayerId,
/* [in] */ long flags,
/* [in] */ I_dxj_DirectPlayMessage __RPC_FAR *msg);
HRESULT STDMETHODCALLTYPE sendChatMessage(
/* [in] */ long fromPlayerId,
/* [in] */ long toPlayerId,
/* [in] */ long flags,
/* [in] */ BSTR message);
HRESULT STDMETHODCALLTYPE sendEx(
/* [in] */ long fromPlayerId,
/* [in] */ long toPlayerId,
/* [in] */ long flags,
/* [in] */ I_dxj_DirectPlayMessage __RPC_FAR *msg,
/* [in] */ long priority,
/* [in] */ long timeout,
/* [in] */ long context,
/* [retval][out] */ long __RPC_FAR *messageid);
HRESULT STDMETHODCALLTYPE createMessage(
/* [retval][out] */ I_dxj_DirectPlayMessage __RPC_FAR *__RPC_FAR *msg);
HRESULT STDMETHODCALLTYPE setGroupConnectionSettings(
/* [in] */ long id,
/* [in] */ I_dxj_DPLConnection __RPC_FAR *connection);
HRESULT STDMETHODCALLTYPE setGroupData(
/* [in] */ long groupId,
/* [in] */ BSTR data,
/* [in] */ long flags);
HRESULT STDMETHODCALLTYPE setGroupName(
/* [in] */ long groupId,
/* [in] */ BSTR friendlyName,
/* [in] */ BSTR formalName,
/* [in] */ long flags);
HRESULT STDMETHODCALLTYPE setGroupOwner(
/* [in] */ long groupId,
/* [in] */ long ownerId);
HRESULT STDMETHODCALLTYPE setPlayerData(
/* [in] */ long playerId,
/* [in] */ BSTR data,
/* [in] */ long flags);
HRESULT STDMETHODCALLTYPE setPlayerName(
/* [in] */ long playerId,
/* [in] */ BSTR friendlyName,
/* [in] */ BSTR formalName,
/* [in] */ long flags);
HRESULT STDMETHODCALLTYPE setSessionDesc(
/* [in] */ I_dxj_DirectPlaySessionData __RPC_FAR *sessionDesc);
HRESULT STDMETHODCALLTYPE startSession(
/* [in] */ long id);
HRESULT STDMETHODCALLTYPE createSessionData(
/* [retval][out] */ I_dxj_DirectPlaySessionData __RPC_FAR *__RPC_FAR *sessionDesc);
////////////////////////////////////////////////////////////////////////////////////
//
// note: this is public for the callbacks
DECL_VARIABLE(_dxj_DirectPlay4);
C_dxj_DirectPlay4Object *nextPlayObj;
private:
void doRemoveThisPlayObj();
public:
DX3J_GLOBAL_LINKS( _dxj_DirectPlay4 )
};
//MUST DEFINE THIS IN DIRECT.CPP
extern C_dxj_DirectPlay4Object *Play4Objs;