Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

149 lines
4.1 KiB

/////////////////////////////////////////////////////////////////////////////////////////
//
// 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 <commctrl.h>
#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;
}