Source code of Windows XP (NT5)
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

  1. #ifndef _IMANAGER_H_
  2. #define _IMANAGER_H_
  3. #include <ias.h>
  4. class COutgoingCall;
  5. class COutgoingCallManager;
  6. class CIncomingCallManager;
  7. class CConfObject;
  8. class COprahNCUI : public INodeControllerEvents,
  9. public INmManager, public CConnectionPointContainer
  10. {
  11. protected:
  12. static COprahNCUI *m_pOprahNCUI;
  13. COutgoingCallManager* m_pOutgoingCallManager;
  14. CIncomingCallManager* m_pIncomingCallManager;
  15. CConfObject* m_pConfObject;
  16. BSTR m_bstrUserName;
  17. ULONG m_cRef;
  18. public:
  19. COprahNCUI();
  20. ~COprahNCUI();
  21. UINT GetOutgoingCallCount();
  22. ULONG GetAuthenticatedName(PBYTE * ppb);
  23. VOID OnOutgoingCallCreated(INmCall* pCall);
  24. VOID OnOutgoingCallCanceled(COutgoingCall* pCall);
  25. VOID OnIncomingCallAccepted();
  26. VOID OnIncomingCallCreated(INmCall* pCall);
  27. VOID CancelCalls();
  28. static COprahNCUI *GetInstance() { return m_pOprahNCUI; }
  29. CConfObject *GetConfObject() { return m_pConfObject; }
  30. HRESULT AbortResolve(UINT uAsyncRequest);
  31. //
  32. // INodeControllerEvents methods:
  33. //
  34. STDMETHODIMP OnConferenceStarted( CONF_HANDLE hConference,
  35. HRESULT hResult);
  36. STDMETHODIMP OnConferenceEnded( CONF_HANDLE hConference);
  37. STDMETHODIMP OnRosterChanged( CONF_HANDLE hConference,
  38. PNC_ROSTER pRoster);
  39. STDMETHODIMP OnIncomingInviteRequest( CONF_HANDLE hConference,
  40. PCWSTR pcwszNodeName,
  41. BOOL fSecure);
  42. STDMETHODIMP OnIncomingJoinRequest( CONF_HANDLE hConference,
  43. PCWSTR pcwszNodeName);
  44. STDMETHODIMP OnQueryRemoteResult( PVOID pvCallerContext,
  45. HRESULT hResult,
  46. BOOL fMCU,
  47. PWSTR* ppwszConferenceNames,
  48. PWSTR* ppwszConfDescriptors);
  49. STDMETHODIMP OnInviteResult( CONF_HANDLE hConference,
  50. REQUEST_HANDLE hRequest,
  51. UINT uNodeID,
  52. HRESULT hResult);
  53. //
  54. // INmManager methods
  55. //
  56. STDMETHODIMP_(ULONG) AddRef(void);
  57. STDMETHODIMP_(ULONG) Release(void);
  58. STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObj);
  59. STDMETHODIMP Initialize(BSTR szName, DWORD_PTR pCredentials, DWORD port, DWORD flags);
  60. STDMETHODIMP Call(INmCall **ppCall,
  61. DWORD dwFlags,
  62. NM_ADDR_TYPE addrType,
  63. BSTR bstrAddr,
  64. BSTR bstrConference,
  65. BSTR bstrPassword);
  66. STDMETHODIMP CreateConference(INmConference **ppConference,
  67. BSTR bstrName,
  68. BSTR bstrPassword,
  69. BOOL fSecure);
  70. };
  71. // The global instance that is declared in conf.cpp:
  72. extern INodeController* g_pNodeController;
  73. HRESULT OnNotifyCallStateChanged(IUnknown *pCallNotify, PVOID pv, REFIID riid);
  74. #endif // _IMANAGER_H_