101 lines
2.8 KiB
C++
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_
|