Leaked source code of windows server 2003
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.

100 lines
2.9 KiB

  1. #ifndef _PARTICIP_H_
  2. #define _PARTICIP_H_
  3. #include "SDKInternal.h"
  4. // BUGBUG:
  5. // This is defined as 128 because the RNC_ROSTER structure has the
  6. // same limitation. Investigate what the appropriate number is.
  7. const int MAX_PARTICIPANT_NAME = 128;
  8. struct PARTICIPANT
  9. {
  10. UINT uID;
  11. UINT uCaps;
  12. DWORD dwFlags;
  13. PWSTR pwszUserInfo;
  14. TCHAR szName[MAX_PARTICIPANT_NAME];
  15. };
  16. typedef PARTICIPANT* PPARTICIPANT;
  17. class CParticipant : public RefCount
  18. {
  19. private:
  20. INmMember * m_pMember;
  21. LPTSTR m_pszName; // Display Name
  22. DWORD m_dwGccId; // GCC UserId
  23. BOOL m_fLocal; // True if local user
  24. BOOL m_fMcu; // True if local user
  25. BOOL m_fAudio; // audio is active
  26. BOOL m_fVideo; // video is active
  27. BOOL m_fData; // In T.120 connection
  28. BOOL m_fH323; // In H323 connection
  29. BOOL m_fAudioBusy; // CAPFLAG_AUDIO_IN_USE
  30. BOOL m_fVideoBusy; // CAPFLAG_VIDEO_IN_USE
  31. BOOL m_fHasAudio; // CAPFLAG_SEND_AUDIO
  32. BOOL m_fHasVideo; // CAPFLAG_SEND_VIDEO
  33. BOOL m_fCanRecVideo; // CAPFLAG_RECV_VIDEO
  34. public:
  35. CParticipant(INmMember * pMember);
  36. ~CParticipant();
  37. // IUnknown methods
  38. ULONG STDMETHODCALLTYPE AddRef(void);
  39. ULONG STDMETHODCALLTYPE Release(void);
  40. VOID Update(void);
  41. DWORD GetDwFlags(void);
  42. DWORD GetDwCaps(void);
  43. // Internal methods
  44. INmMember * GetINmMember() {return m_pMember;}
  45. LPTSTR GetPszName() {return m_pszName;}
  46. BOOL FLocal() {return m_fLocal;}
  47. BOOL FAudio() {return m_fAudio;}
  48. BOOL FVideo() {return m_fVideo;}
  49. BOOL FData() {return m_fData;}
  50. BOOL FMcu() {return m_fMcu;}
  51. BOOL FH323() {return m_fH323;}
  52. BOOL FAudioBusy() {return m_fAudioBusy;}
  53. BOOL FVideoBusy() {return m_fVideoBusy;}
  54. BOOL FHasAudio() {return m_fHasAudio;}
  55. BOOL FCanSendVideo() {return m_fHasVideo;}
  56. BOOL FCanRecVideo() {return m_fCanRecVideo;}
  57. DWORD GetGccId() {return m_dwGccId;}
  58. HRESULT ExtractUserData(LPTSTR psz, UINT cchMax, PWSTR pwszKey);
  59. HRESULT GetIpAddr(LPTSTR psz, UINT cchMax);
  60. HRESULT GetUlsAddr(LPTSTR psz, UINT cchMax);
  61. HRESULT GetEmailAddr(LPTSTR psz, UINT cchMax);
  62. HRESULT GetPhoneNum(LPTSTR psz, UINT cchMax);
  63. HRESULT GetLocation(LPTSTR psz, UINT cchMax);
  64. VOID OnCommand(HWND hwnd, WORD wCmd);
  65. // Commands
  66. VOID CmdSendFile(void);
  67. BOOL FEnableCmdSendFile(void);
  68. VOID CmdEject(void);
  69. BOOL FEnableCmdEject(void);
  70. VOID CmdCreateSpeedDial(void);
  71. BOOL FEnableCmdCreateSpeedDial(void);
  72. VOID CmdCreateWabEntry(HWND hwnd);
  73. BOOL FEnableCmdCreateWabEntry(void);
  74. VOID CalcControlCmd(HMENU hPopup);
  75. VOID CmdGiveControl(void);
  76. VOID CmdCancelGiveControl(void);
  77. VOID CmdProperties(HWND hwnd);
  78. };
  79. #endif // _PARTICIP_H_