mirror of https://github.com/tongzx/nt5src
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.
90 lines
2.6 KiB
90 lines
2.6 KiB
#ifndef _IMANAGER_H_
|
|
#define _IMANAGER_H_
|
|
|
|
#include <ias.h>
|
|
|
|
class COutgoingCall;
|
|
class COutgoingCallManager;
|
|
class CIncomingCallManager;
|
|
class CConfObject;
|
|
|
|
class COprahNCUI : public INodeControllerEvents,
|
|
public INmManager, public CConnectionPointContainer
|
|
{
|
|
protected:
|
|
static COprahNCUI *m_pOprahNCUI;
|
|
COutgoingCallManager* m_pOutgoingCallManager;
|
|
CIncomingCallManager* m_pIncomingCallManager;
|
|
|
|
CConfObject* m_pConfObject;
|
|
BSTR m_bstrUserName;
|
|
ULONG m_cRef;
|
|
|
|
public:
|
|
COprahNCUI();
|
|
~COprahNCUI();
|
|
|
|
UINT GetOutgoingCallCount();
|
|
ULONG GetAuthenticatedName(PBYTE * ppb);
|
|
VOID OnOutgoingCallCreated(INmCall* pCall);
|
|
VOID OnOutgoingCallCanceled(COutgoingCall* pCall);
|
|
VOID OnIncomingCallAccepted();
|
|
VOID OnIncomingCallCreated(INmCall* pCall);
|
|
|
|
VOID CancelCalls();
|
|
|
|
static COprahNCUI *GetInstance() { return m_pOprahNCUI; }
|
|
CConfObject *GetConfObject() { return m_pConfObject; }
|
|
HRESULT AbortResolve(UINT uAsyncRequest);
|
|
|
|
//
|
|
// INodeControllerEvents methods:
|
|
//
|
|
STDMETHODIMP OnConferenceStarted( CONF_HANDLE hConference,
|
|
HRESULT hResult);
|
|
STDMETHODIMP OnConferenceEnded( CONF_HANDLE hConference);
|
|
STDMETHODIMP OnRosterChanged( CONF_HANDLE hConference,
|
|
PNC_ROSTER pRoster);
|
|
STDMETHODIMP OnIncomingInviteRequest( CONF_HANDLE hConference,
|
|
PCWSTR pcwszNodeName,
|
|
BOOL fSecure);
|
|
STDMETHODIMP OnIncomingJoinRequest( CONF_HANDLE hConference,
|
|
PCWSTR pcwszNodeName);
|
|
STDMETHODIMP OnQueryRemoteResult( PVOID pvCallerContext,
|
|
HRESULT hResult,
|
|
BOOL fMCU,
|
|
PWSTR* ppwszConferenceNames,
|
|
PWSTR* ppwszConfDescriptors);
|
|
STDMETHODIMP OnInviteResult( CONF_HANDLE hConference,
|
|
REQUEST_HANDLE hRequest,
|
|
UINT uNodeID,
|
|
HRESULT hResult);
|
|
|
|
//
|
|
// INmManager methods
|
|
//
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObj);
|
|
STDMETHODIMP Initialize(BSTR szName, DWORD_PTR pCredentials, DWORD port, DWORD flags);
|
|
STDMETHODIMP Call(INmCall **ppCall,
|
|
DWORD dwFlags,
|
|
NM_ADDR_TYPE addrType,
|
|
BSTR bstrAddr,
|
|
BSTR bstrConference,
|
|
BSTR bstrPassword);
|
|
|
|
STDMETHODIMP CreateConference(INmConference **ppConference,
|
|
BSTR bstrName,
|
|
BSTR bstrPassword,
|
|
BOOL fSecure);
|
|
|
|
};
|
|
|
|
// The global instance that is declared in conf.cpp:
|
|
extern INodeController* g_pNodeController;
|
|
|
|
HRESULT OnNotifyCallStateChanged(IUnknown *pCallNotify, PVOID pv, REFIID riid);
|
|
|
|
#endif // _IMANAGER_H_
|
|
|