///////////////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 1998 Active Voice Corporation. All Rights Reserved. // // Active Agent(r) and Unified Communications(tm) are trademarks of Active Voice Corporation. // // Other brand and product names used herein are trademarks of their respective owners. // // The entire program and user interface including the structure, sequence, selection, // and arrangement of the dialog, the exclusively "yes" and "no" choices represented // by "1" and "2," and each dialog message are protected by copyrights registered in // the United States and by international treaties. // // Protected by one or more of the following United States patents: 5,070,526, 5,488,650, // 5,434,906, 5,581,604, 5,533,102, 5,568,540, 5,625,676, 5,651,054. // // Active Voice Corporation // Seattle, Washington // USA // ///////////////////////////////////////////////////////////////////////////////////////// //// // confprop.c - conference properties dialog box //// #include "winlocal.h" #include #include "confprop.h" #include "cpgen.h" #include "res.h" #include "confinfo.h" #include "DlgBase.h" #include "objsec.h" int CALLBACK ConfProp_PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam); // global to keep track of DLL's instance/module handle; // HINSTANCE g_hInstLib; /////////////////////////////////////////////////////////////// // ConfProp_Init // void ConfProp_Init( HINSTANCE hInst ) { g_hInstLib = hInst; } /////////////////////////////////////////////////////////////// // ConfProp_DoModal // INT64 ConfProp_DoModal( HWND hWndOwner, CONFPROP& confprop ) { INT64 nRet; HPROPSHEETPAGE hpsp[2]; PROPSHEETPAGE psp; PROPSHEETHEADER psh; do { // fill out the PROPSHEETPAGE struct for the General sheet // psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwFlags = PSP_USETITLE | PSP_HASHELP; psp.hInstance = g_hInstLib; psp.pszTemplate = MAKEINTRESOURCE(IDD_CONFPROP_GENERAL); psp.pszIcon = NULL; psp.pszTitle = MAKEINTRESOURCE(IDS_GENERAL); psp.pfnDlgProc = ConfPropGeneral_DlgProc; psp.lParam = (LPARAM) &confprop; psp.pfnCallback = NULL; psp.pcRefParent = NULL; hpsp[0] = CreatePropertySheetPage(&psp); CObjSecurity* pObjSecurity = new CObjSecurity; HRESULT hr = pObjSecurity->InternalInitialize( &confprop ); hpsp[1] = CreateSecurityPage(pObjSecurity); // fill out the PROPSHEETHEADER // psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_HASHELP | PSH_NOAPPLYNOW | PSH_USECALLBACK; psh.hwndParent = hWndOwner; psh.hInstance = g_hInstLib; psh.pszIcon = NULL; psh.pszCaption = MAKEINTRESOURCE(IDS_CONFPROP); psh.nPages = sizeof(hpsp) / sizeof(HPROPSHEETPAGE); psh.nStartPage = 0; psh.phpage = (HPROPSHEETPAGE*)&hpsp[0]; psh.pfnCallback = ConfProp_PropSheetProc; // This is a loop so because the user has the option to cancel things from // the security property page. The program uses a flag (confprop.ConfInfo.WasSecuritySet()) // to determine when the user has agreed to the security settings to continue. // display the modal property sheet nRet = PropertySheet( &psh ); // Clean-up if( pObjSecurity ) { pObjSecurity->Release(); pObjSecurity = NULL; } if ( nRet == IDOK ) { if ( confprop.ConfInfo.WasSecuritySet() ) { // Repaint window before commit UpdateWindow( hWndOwner ); DWORD dwError; if ( confprop.ConfInfo.CommitSecurity(dwError, confprop.ConfInfo.IsNewConference()) ) { //get proper message UINT uId = IDS_CONFPROP_INVALIDTIME + dwError - 1; MessageBox(hWndOwner, String(g_hInstLib, uId), NULL, MB_OK | MB_ICONEXCLAMATION ); } } else { nRet = IDRETRY; } } } while ( nRet == IDRETRY ); return nRet; } //// // private //// int CALLBACK ConfProp_PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam) { switch (uMsg) { case PSCB_PRECREATE: break; case PSCB_INITIALIZED: ConvertPropSheetHelp( hwndDlg ); break; } return 0; }