windows-nt/Source/XPSP1/NT/enduser/netmeeting/ui/conf/dlgacd.h

265 lines
5.1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#if !defined( CDLGACD_H )
#define CDLGACD_H
//--------------------------------------------------------------------------//
//--------------------------------------------------------------------------//
// Header Files. //
//--------------------------------------------------------------------------//
#include "MRUList2.h"
#include "richaddr.h"
#include "confroom.h"
#define USE_GAL 0
#define NM_CALLDLG_DEFAULT 0x0000
#define NM_CALLDLG_NO_ILS_FILTER 0x0002
#define NM_CALLDLG_NO_ILS 0x0010
#if USE_GAL
#define NM_CALLDLG_NO_GAL 0x0020
#endif // USE_GAL
#define NM_CALLDLG_NO_WAB 0x0040
#define NM_CALLDLG_NO_SPEEDDIAL 0x0080
#define NM_CALLDLG_NO_HISTORY 0x0100
enum NmDlgCallOption
{
nmDlgCallNormal = NM_CALLDLG_DEFAULT,
nmDlgCallNoFilter = NM_CALLDLG_NO_ILS_FILTER,
nmDlgCallNoIls = NM_CALLDLG_NO_ILS,
#if USE_GAL
nmDlgCallNoGal = NM_CALLDLG_NO_GAL,
#endif // USE_GAL
nmDlgCallNoWab = NM_CALLDLG_NO_WAB,
nmDlgCallNoSpeedDial = NM_CALLDLG_NO_SPEEDDIAL,
nmDlgCallNoHistory = NM_CALLDLG_NO_HISTORY,
nmDlgCallSecurityAlterable = 0x0200,
nmDlgCallSecurityOn = 0x0400,
nmDlgCallNoServerEdit = 0x0800,
};
const DWSTR _rgMruCall[] =
{
{ 3, DLGCALL_MRU_KEY },
{ MRUTYPE_SZ, REGVAL_DLGCALL_NAME_MRU_PREFIX },
{ MRUTYPE_SZ, REGVAL_DLGCALL_ADDR_MRU_PREFIX },
{ MRUTYPE_DW, REGVAL_DLGCALL_TYPE_MRU_PREFIX }
};
enum ACD_MRUFIELDS
{
ACD_NAME = 0,
ACD_ADDR,
ACD_TYPE,
} ;
const int CENTRYMAX_MRUCALL = 15; // maximum number of recent calls
class CAcdMru : public CMRUList2
{
public:
CAcdMru();
protected:
int CompareEntry(int iItem, PMRUE pEntry);
} ;
//--------------------------------------------------------------------------//
// CEnumMRU Class. //
//--------------------------------------------------------------------------//
class CEnumMRU: public IEnumRichAddressInfo,
public RefCount,
public CAcdMru
{
public: // public constructor ------------------------------------//
CEnumMRU();
public: // public methods ----------------------------------------//
ULONG
STDMETHODCALLTYPE
AddRef(void);
ULONG
STDMETHODCALLTYPE
Release(void);
virtual
HRESULT
STDMETHODCALLTYPE
GetAddress
(
long index,
RichAddressInfo ** ppAddr
);
public: // public static methods --------------------------------//
static
HRESULT
GetRecentAddresses
(
IEnumRichAddressInfo ** ppEnum
);
static
HRESULT
FreeAddress
(
RichAddressInfo ** ppAddr
);
static
HRESULT
CopyAddress
(
RichAddressInfo * pAddrIn,
RichAddressInfo ** ppAddrOut
);
}; // End of class CEnumMRU.
//--------------------------------------------------------------------------//
// CDlgAcd Class. //
//--------------------------------------------------------------------------//
class CDlgAcd : public IConferenceChangeHandler
{
public: // public constructor ------------------------------------//
CDlgAcd(CConfRoom *pConfRoom);
public: // public destructor ------------------------------------//
virtual
~CDlgAcd();
public: // IConferenceChangeHandler methods
virtual HRESULT STDMETHODCALLTYPE QueryInterface(
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject)
{
return(E_FAIL);
}
virtual ULONG STDMETHODCALLTYPE AddRef( void)
{
return(3);
}
virtual ULONG STDMETHODCALLTYPE Release( void)
{
return(2);
}
virtual void OnCallStarted();
virtual void OnCallEnded();
virtual void OnAudioLevelChange(BOOL fSpeaker, DWORD dwVolume) {}
virtual void OnAudioMuteChange(BOOL fSpeaker, BOOL fMute) {}
virtual void OnChangeParticipant(CParticipant *pPart, NM_MEMBER_NOTIFY uNotify) {}
virtual void OnChangePermissions() {}
virtual void OnVideoChannelChanged(NM_CHANNEL_NOTIFY uNotify, INmChannel *pChannel) {}
public: // public methods ----------------------------------------//
INT_PTR
doModal
(
HWND parent,
RichAddressInfo * rai,
bool & secure
);
public: // public static methods --------------------------------//
static
void
newCall
(
HWND parentWindow,
CConfRoom * pConfRoom
);
private: // private methods ----------------------------------------//
bool
onInitDialog
(
HWND dialog
);
bool
onCommand
(
int command,
int notification
);
void
onEditChange(void);
void
onMruSelect
(
int selection
);
void
fillCallMruList(void);
void
fillAddressTypesList(void);
int
get_editText
(
LPTSTR psz,
int cchMax
);
private: // private static methods --------------------------------//
static
INT_PTR
CALLBACK
DlgProcAcd
(
HWND dialog,
UINT message,
WPARAM wParam,
LPARAM lParam
);
private: // private members ----------------------------------------//
HWND m_hwnd;
HWND m_nameCombo;
HWND m_addressTypeCombo;
RichAddressInfo * m_pRai;
RichAddressInfo * m_mruRai;
CConfRoom * m_pConfRoom;
bool m_secure;
CEnumMRU m_callMruList;
}; // End of class CDlgAcd.
//--------------------------------------------------------------------------//
#endif // !defined( CDLGACD_H )