233 lines
5.5 KiB
C++
233 lines
5.5 KiB
C++
// File: DlgCall.h
|
|
|
|
#ifndef _CDLGCALL2_H_
|
|
#define _CDLGCALL2_H_
|
|
|
|
#include "richaddr.h"
|
|
#include "GenContainers.h"
|
|
#include "ConfRoom.h"
|
|
|
|
class CLDAP;
|
|
class CWAB;
|
|
class CGAL;
|
|
class CSPEEDDIAL;
|
|
class CHISTORY;
|
|
class CALV;
|
|
class CTranslateAccelTable;
|
|
|
|
class CMRUList;
|
|
|
|
#define MAX_DIR_COLUMNS 7
|
|
|
|
// These are the indexes the columns are actually added to the listview in...
|
|
#define COLUMN_INDEX_ADDRESS 0
|
|
#define COLUMN_INDEX_AUDIO 1
|
|
#define COLUMN_INDEX_VIDEO 2
|
|
#define COLUMN_INDEX_LAST_NAME 3
|
|
#define COLUMN_INDEX_FIRST_NAME 4
|
|
#define COLUMN_INDEX_LOCATION 5
|
|
#define COLUMN_INDEX_COMMENTS 6
|
|
|
|
|
|
|
|
class CFindSomeone : public CFrame, public IConferenceChangeHandler
|
|
{
|
|
public:
|
|
static void findSomeone(CConfRoom *pConfRoom);
|
|
|
|
static VOID Destroy();
|
|
|
|
virtual void Layout();
|
|
|
|
virtual void OnDesiredSizeChanged()
|
|
{
|
|
ScheduleLayout();
|
|
}
|
|
|
|
public: // IConferenceChangeHandler methods
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(
|
|
/* [in] */ REFIID riid,
|
|
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject)
|
|
{
|
|
return(CFrame::QueryInterface(riid, ppvObject));
|
|
}
|
|
|
|
virtual ULONG STDMETHODCALLTYPE AddRef( void)
|
|
{
|
|
return(CFrame::AddRef());
|
|
}
|
|
|
|
virtual ULONG STDMETHODCALLTYPE Release( void)
|
|
{
|
|
return(CFrame::Release());
|
|
}
|
|
|
|
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) {}
|
|
|
|
protected:
|
|
~CFindSomeone();
|
|
|
|
virtual LRESULT ProcessMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
private:
|
|
// constants
|
|
enum { DEFAULT_NUM_LISTVIEW_COLUMNS = 2 };
|
|
|
|
// Member Vars
|
|
static CFindSomeone *s_pDlgCall;
|
|
|
|
CTranslateAccelTable *m_pAccel; // The accelerator table we need to clean up
|
|
|
|
HWND m_hwndList; // list view
|
|
HWND m_ilsListView; // ils list view
|
|
HWND m_webView; // web view
|
|
HWND m_hwndOwnerDataList; // list view ( The owner-data one )
|
|
WNDPROC m_WndOwnerDataListOldWndProc; // For subclassing the above wnd
|
|
|
|
HWND m_hwndFrame; // group box
|
|
HWND m_hwndCombo; // combo box
|
|
HWND m_hwndComboEdit; // combo box's edit control
|
|
HWND m_hwndEdit; // edit control (for type-ahead)
|
|
BOOL m_fInEdit; // TRUE if editing the name/address
|
|
|
|
DWORD m_dwOptions; // options (NM_CALLDLG_*)
|
|
LPCTSTR m_pszDefault; // initial text to put in the edit control
|
|
|
|
HIMAGELIST m_himlIcon; // small icon image list
|
|
int m_cVisible; // number of visible lines in the listbox
|
|
int m_dxButton; // width of the "Advanced..." button
|
|
int m_dyButton; // height of the "Advanced..." button
|
|
int m_dyText; // height of a line of text
|
|
int m_dyTextIntro; // height of intro text at top of dialog
|
|
LPTSTR m_pszTextIntro; // Introductory text for top of dialog
|
|
bool m_bPlacedCall; // TRUE if we successfuly placed a call
|
|
bool m_secure; // Save the state of the secure button
|
|
|
|
int m_iIlsFirst; // index of first ILS server
|
|
CMRUList * m_pMruServer; // list of ILS servers
|
|
RAI * m_pRai; // Rich Address Information
|
|
|
|
// CALV items
|
|
CLDAP * m_pUls;
|
|
CWAB * m_pWab;
|
|
CSPEEDDIAL * m_pSpeedDial;
|
|
|
|
#if USE_GAL
|
|
CGAL * m_pGAL;
|
|
#endif // USE_GAL
|
|
CHISTORY * m_pHistory;
|
|
|
|
CConfRoom * m_pConfRoom;
|
|
|
|
|
|
#ifdef ENABLE_BL
|
|
CBL * m_pBl;
|
|
#endif /* ENABLE_BL */
|
|
|
|
CALV * m_pAlv; // Current Address List View (NOTE: NULL == m_pUls)
|
|
int m_iSel; // current selection in combo box
|
|
TCHAR m_szAddress[CCHMAXSZ_ADDRESS];
|
|
TCHAR m_szDirectory[CCHMAXSZ];
|
|
|
|
CFindSomeone(CConfRoom *pConfRoom);
|
|
|
|
HWND GetHwndList();
|
|
int GetEditText(LPTSTR psz, int cchMax);
|
|
RAI * GetAddrInfo();
|
|
|
|
int AddAlv(CALV * pAlv);
|
|
int AddAlvSz(CALV * pAlv, LPCTSTR psz, int cbIndex=-1);
|
|
|
|
HRESULT doModeless(void);
|
|
HRESULT CreateDlgCall(HWND hwndParent);
|
|
BOOL FMsgSpecial(MSG * pMsg);
|
|
VOID CalcDyText(void);
|
|
VOID InitAlv(void);
|
|
|
|
void OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
|
|
void OnContextMenu(HWND hwnd, HWND hwndContext, UINT xPos, UINT yPos);
|
|
|
|
LRESULT OnNotifyCombo(LPARAM lParam);
|
|
LRESULT OnNotifyList(LPARAM lParam);
|
|
VOID EndComboEdit(int iWhy);
|
|
VOID UpdateIlsServer(void);
|
|
LRESULT DoCustomDraw(LPNMLVCUSTOMDRAW lplvcd);
|
|
|
|
VOID ShowList(int iSel);
|
|
|
|
HWND
|
|
createIlsListView(void);
|
|
|
|
VOID OnEditChangeDirectory(void);
|
|
int FindSz(LPCTSTR psz);
|
|
int FindSzBySortedColumn(LPCTSTR psz);
|
|
HRESULT HrGetSelection(void);
|
|
void OnDeleteIlsServer(void);
|
|
|
|
static LRESULT CALLBACK OwnerDataListWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
|
|
|
|
private:
|
|
// Helper Fns
|
|
int _GetCurListViewNumColumns();
|
|
bool _IsDirectoryServicePolicyDisabled();
|
|
|
|
BOOL
|
|
InitColumns(void);
|
|
|
|
BOOL
|
|
LoadColumnInfo(void);
|
|
|
|
void
|
|
StoreColumnInfo(void);
|
|
|
|
static
|
|
int
|
|
CALLBACK
|
|
CompareWrapper
|
|
(
|
|
LPARAM param1,
|
|
LPARAM param2,
|
|
LPARAM This
|
|
);
|
|
|
|
int
|
|
DirListViewCompareProc
|
|
(
|
|
LPARAM param1,
|
|
LPARAM param2
|
|
);
|
|
|
|
int
|
|
LParamToPos
|
|
(
|
|
LPARAM lParam
|
|
);
|
|
|
|
void
|
|
onAdvanced(void);
|
|
|
|
void
|
|
onCall(void);
|
|
|
|
LONG m_alColumns[MAX_DIR_COLUMNS];
|
|
int m_iSortColumn;
|
|
BOOL m_fSortAscending;
|
|
};
|
|
|
|
CMRUList * GetMruListServer(void);
|
|
|
|
#define WM_DISPLAY_MSG (WM_USER + 200)
|
|
|
|
#endif /* _CDLGCALL2_H_ */
|
|
|