|
|
// 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_ */
|