265 lines
5.1 KiB
C
265 lines
5.1 KiB
C
|
#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 )
|
|||
|
|