// // connectingdlg.cpp: connecting dialog box // #include "stdafx.h" #define TRC_GROUP TRC_GROUP_UI #define TRC_FILE "connectingdlg" #include #include "connectingdlg.h" #include "sh.h" CConnectingDlg* CConnectingDlg::_pConnectingDlgInstance = NULL; CConnectingDlg::CConnectingDlg( HWND hwndOwner, HINSTANCE hInst, CContainerWnd* pContWnd, PDCTCHAR szServer) : CDlgBase( hwndOwner, hInst, UI_IDD_CONNECTING), _pContainerWnd(pContWnd) { DC_BEGIN_FN("CConnectingDlg"); TRC_ASSERT((NULL == CConnectingDlg::_pConnectingDlgInstance), (TB,_T("Clobbering existing dlg instance pointer\n"))); TRC_ASSERT(_pContainerWnd, (TB,_T("_pContainerWnd is NULL"))); TRC_ASSERT(szServer, (TB,_T("szServer not set\n"))); if(szServer) { DC_TSTRNCPY(_szServer, szServer, sizeof(_szServer)/sizeof(DCTCHAR)); } else { DC_TSTRNCPY(_szServer, TEXT(""), sizeof(_szServer)/sizeof(DCTCHAR)); } CConnectingDlg::_pConnectingDlgInstance = this; DC_END_FN(); } CConnectingDlg::~CConnectingDlg() { CConnectingDlg::_pConnectingDlgInstance = NULL; } DCINT CConnectingDlg::DoModal() { DCINT retVal = 0; DC_BEGIN_FN("DoModal"); retVal = DialogBox(_hInstance, MAKEINTRESOURCE(_dlgResId), _hwndOwner, StaticDialogBoxProc); if (retVal == -1) { TRC_ERR((TB, _T("DialogBoxParam failed\n"))); } DC_END_FN(); return retVal; } INT_PTR CALLBACK CConnectingDlg::StaticDialogBoxProc (HWND hwndDlg, UINT uMsg,WPARAM wParam, LPARAM lParam) { // // Delegate to appropriate instance (only works for single instance dialogs) // DC_BEGIN_FN("StaticDialogBoxProc"); DCINT retVal = 0; TRC_ASSERT(_pConnectingDlgInstance, (TB, _T("Connecting dialog has NULL static instance ptr\n"))); if(_pConnectingDlgInstance) { retVal = _pConnectingDlgInstance->DialogBoxProc( hwndDlg, uMsg, wParam, lParam); } DC_END_FN(); return retVal; } /****************************************************************************/ /* Name: DialogBoxProc */ /* */ /* Purpose: Handles Connecting Box dialog */ /* */ /* Returns: TRUE if message dealt with */ /* FALSE otherwise */ /* */ /* Params: See window documentation */ /* */ /****************************************************************************/ INT_PTR CALLBACK CConnectingDlg::DialogBoxProc (HWND hwndDlg, UINT uMsg,WPARAM wParam, LPARAM lParam) { INT_PTR rc = FALSE; DCUINT intRC; DCTCHAR connectingString[SH_VERSION_STRING_MAX_LENGTH]; DC_BEGIN_FN("DialogProc"); /************************************************************************/ /* Handle dialog messages */ /************************************************************************/ switch(uMsg) { case WM_INITDIALOG: { _hwndDlg = hwndDlg; _pContainerWnd->SetStatusDialogHandle( hwndDlg); if(hwndDlg) { DCTCHAR temp[SH_DISPLAY_STRING_MAX_LENGTH+SH_MAX_ADDRESS_LENGTH]; CenterWindow(_hwndOwner); ::ShowWindow( _hwndDlg, SW_RESTORE); SetDialogAppIcon(hwndDlg); intRC = LoadString( _hInstance, UI_IDS_CONNECTING_TO_SERVER, connectingString, SH_DISPLAY_STRING_MAX_LENGTH ); if(0 == intRC) { TRC_ERR((TB,_T("Failed to find UI connecting string"))); connectingString[0] = (DCTCHAR) 0; break; } _stprintf(temp, connectingString, _szServer); SetDlgItemText(hwndDlg, UI_IDC_CONN_STATIC, temp); SetCursor(LoadCursor(NULL, IDC_ARROW)); } rc = TRUE; } break; case WM_COMMAND: { switch(DC_GET_WM_COMMAND_ID(wParam)) { case IDCANCEL: case UI_ID_CANCELCONNECT: { TRC_NRM((TB, _T("User cancelled connection - ") _T("calling UIInitiateDisconnection"))); _pContainerWnd->Disconnect(); _pContainerWnd->SetStatusDialogHandle( NULL); EndDialog(hwndDlg, IDCANCEL); } break; default: { if(hwndDlg) { rc = CDlgBase::DialogBoxProc(hwndDlg, uMsg, wParam, lParam); } } break; } } break; #ifndef OS_WINCE case WM_WINDOWPOSCHANGING: { //Prevent the dialog from being //sized. This can happen if the app //is laucnhed with a .RDP shortcut that //specifies the app should be maximized LPWINDOWPOS lpwp; lpwp = (LPWINDOWPOS)lParam; lpwp->flags |= SWP_NOSIZE; } break; #endif default: { if(hwndDlg) { rc = CDlgBase::DialogBoxProc(hwndDlg, uMsg, wParam, lParam); } } break; } DC_END_FN(); return(rc); } /* DialogBoxProc */