windows-nt/Source/XPSP1/NT/enduser/netmeeting/ui/conf/particip.h
2020-09-26 16:20:57 +08:00

101 lines
2.8 KiB
C++

#ifndef _PARTICIP_H_
#define _PARTICIP_H_
#include "SDKInternal.h"
// BUGBUG:
// This is defined as 128 because the RNC_ROSTER structure has the
// same limitation. Investigate what the appropriate number is.
const int MAX_PARTICIPANT_NAME = 128;
struct PARTICIPANT
{
UINT uID;
UINT uCaps;
DWORD dwFlags;
PWSTR pwszUserInfo;
TCHAR szName[MAX_PARTICIPANT_NAME];
};
typedef PARTICIPANT* PPARTICIPANT;
class CParticipant : public RefCount
{
private:
INmMember * m_pMember;
LPTSTR m_pszName; // Display Name
DWORD m_dwGccId; // GCC UserId
BOOL m_fLocal; // True if local user
BOOL m_fMcu; // True if local user
BOOL m_fAudio; // audio is active
BOOL m_fVideo; // video is active
BOOL m_fData; // In T.120 connection
BOOL m_fH323; // In H323 connection
BOOL m_fAudioBusy; // CAPFLAG_AUDIO_IN_USE
BOOL m_fVideoBusy; // CAPFLAG_VIDEO_IN_USE
BOOL m_fHasAudio; // CAPFLAG_SEND_AUDIO
BOOL m_fHasVideo; // CAPFLAG_SEND_VIDEO
BOOL m_fCanRecVideo; // CAPFLAG_RECV_VIDEO
public:
CParticipant(INmMember * pMember);
~CParticipant();
// IUnknown methods
ULONG STDMETHODCALLTYPE AddRef(void);
ULONG STDMETHODCALLTYPE Release(void);
VOID Update(void);
DWORD GetDwFlags(void);
DWORD GetDwCaps(void);
// Internal methods
INmMember * GetINmMember() {return m_pMember;}
LPTSTR GetPszName() {return m_pszName;}
BOOL FLocal() {return m_fLocal;}
BOOL FAudio() {return m_fAudio;}
BOOL FVideo() {return m_fVideo;}
BOOL FData() {return m_fData;}
BOOL FMcu() {return m_fMcu;}
BOOL FH323() {return m_fH323;}
BOOL FAudioBusy() {return m_fAudioBusy;}
BOOL FVideoBusy() {return m_fVideoBusy;}
BOOL FHasAudio() {return m_fHasAudio;}
BOOL FCanSendVideo() {return m_fHasVideo;}
BOOL FCanRecVideo() {return m_fCanRecVideo;}
DWORD GetGccId() {return m_dwGccId;}
HRESULT ExtractUserData(LPTSTR psz, UINT cchMax, PWSTR pwszKey);
HRESULT GetIpAddr(LPTSTR psz, UINT cchMax);
HRESULT GetUlsAddr(LPTSTR psz, UINT cchMax);
HRESULT GetEmailAddr(LPTSTR psz, UINT cchMax);
HRESULT GetPhoneNum(LPTSTR psz, UINT cchMax);
HRESULT GetLocation(LPTSTR psz, UINT cchMax);
VOID OnCommand(HWND hwnd, WORD wCmd);
// Commands
VOID CmdSendFile(void);
BOOL FEnableCmdSendFile(void);
VOID CmdEject(void);
BOOL FEnableCmdEject(void);
VOID CmdCreateSpeedDial(void);
BOOL FEnableCmdCreateSpeedDial(void);
VOID CmdCreateWabEntry(HWND hwnd);
BOOL FEnableCmdCreateWabEntry(void);
VOID CalcControlCmd(HMENU hPopup);
VOID CmdGiveControl(void);
VOID CmdCancelGiveControl(void);
VOID CmdProperties(HWND hwnd);
};
#endif // _PARTICIP_H_