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.

76 lines
2.3 KiB

  1. #ifndef __NmChannelVideo_h__
  2. #define __NmChannelVideo_h__
  3. /////////////////////////////////////////////////////////////////////////////
  4. // CNmChannelVideoObj
  5. class ATL_NO_VTABLE CNmChannelVideoObj :
  6. public CComObjectRootEx<CComSingleThreadModel>,
  7. public IConnectionPointContainerImpl<CNmChannelVideoObj>,
  8. public IConnectionPointImpl<CNmChannelVideoObj, &IID_INmChannelNotify, CComDynamicUnkArray>,
  9. public IConnectionPointImpl<CNmChannelVideoObj, &IID_INmChannelVideoNotify, CComDynamicUnkArray>,
  10. public INmChannelVideo,
  11. public INmChannelVideoNotify,
  12. public IInternalChannelObj
  13. {
  14. protected:
  15. bool m_bIsIncoming;
  16. public:
  17. DECLARE_NO_REGISTRY()
  18. DECLARE_NOT_AGGREGATABLE(CNmChannelVideoObj)
  19. BEGIN_COM_MAP(CNmChannelVideoObj)
  20. COM_INTERFACE_ENTRY(INmChannel)
  21. COM_INTERFACE_ENTRY(INmChannelVideo)
  22. COM_INTERFACE_ENTRY(INmChannelNotify)
  23. COM_INTERFACE_ENTRY(INmChannelVideoNotify)
  24. COM_INTERFACE_ENTRY(IInternalChannelObj)
  25. COM_INTERFACE_ENTRY(IConnectionPointContainer)
  26. END_COM_MAP()
  27. BEGIN_CONNECTION_POINT_MAP(CNmChannelVideoObj)
  28. CONNECTION_POINT_ENTRY(IID_INmChannelNotify)
  29. CONNECTION_POINT_ENTRY(IID_INmChannelVideoNotify)
  30. END_CONNECTION_POINT_MAP()
  31. // Construction and destruection
  32. CNmChannelVideoObj();
  33. ~CNmChannelVideoObj();
  34. static HRESULT CreateInstance(CNmConferenceObj* pConfObj, INmChannel** ppChannel, bool bIsIncoming);
  35. // INmChannelVideo methods
  36. STDMETHOD(IsIncoming)(void);
  37. STDMETHOD(GetState)(NM_VIDEO_STATE *puState);
  38. STDMETHOD(GetProperty)(NM_VIDPROP uID,ULONG_PTR *puValue);
  39. STDMETHOD(SetProperty)(NM_VIDPROP uID,ULONG_PTR uValue);
  40. // INmChannelVideoNotify methods
  41. STDMETHOD(StateChanged)(NM_VIDEO_STATE uState);
  42. STDMETHOD(PropertyChanged)(DWORD dwReserved);
  43. // IInternalChannelObj methods
  44. STDMETHOD(GetInternalINmChannel)(INmChannel** ppChannel);
  45. STDMETHOD(ChannelRemoved)();
  46. // Helpers
  47. HRESULT Fire_MemberChanged(NM_MEMBER_NOTIFY uNotify, INmMember *pMember);
  48. HRESULT Fire_StateChanged(NM_VIDEO_STATE uState);
  49. HRESULT Fire_PropertyChanged(DWORD dwReserved);
  50. void _OnActivate(bool bActive) {;}
  51. virtual CNmConferenceObj* GetConfObj() = 0;
  52. virtual void RemoveMembers() = 0;
  53. virtual BOOL GetbActive() = 0;
  54. STDMETHOD(Activate)(BOOL bActive);
  55. HRESULT _IsActive();
  56. HRESULT _SetActive(BOOL bActive);
  57. };
  58. #endif // __NmChannelVideo_h__
  59.