#ifndef _IMANAGER_H_ #define _IMANAGER_H_ #include 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_