You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
334 lines
12 KiB
334 lines
12 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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;
|
|
|
|
|
|
|
|
|