/* -*- Mode: C; tab-width: 4 -*- * * Copyright (c) 1997-2004 Apple Computer, Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "stdafx.h" #include "PrinterSetupWizardApp.h" #include "PrinterSetupWizardSheet.h" #include "DebugServices.h" #include "loclibrary.h" #ifdef _DEBUG #define new DEBUG_NEW #endif #ifndef HeapEnableTerminationOnCorruption # define HeapEnableTerminationOnCorruption (HEAP_INFORMATION_CLASS) 1 #endif // Stash away pointers to our resource DLLs static HINSTANCE g_nonLocalizedResources = NULL; static HINSTANCE g_localizedResources = NULL; HINSTANCE GetNonLocalizedResources() { return g_nonLocalizedResources; } HINSTANCE GetLocalizedResources() { return g_localizedResources; } // CPrinterSetupWizardApp BEGIN_MESSAGE_MAP(CPrinterSetupWizardApp, CWinApp) ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() // CPrinterSetupWizardApp construction CPrinterSetupWizardApp::CPrinterSetupWizardApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } // The one and only CPrinterSetupWizardApp object CPrinterSetupWizardApp theApp; // CPrinterSetupWizardApp initialization BOOL CPrinterSetupWizardApp::InitInstance() { CString errorMessage; CString errorCaption; wchar_t resource[MAX_PATH]; int res; OSStatus err = kNoErr; HeapSetInformation( NULL, HeapEnableTerminationOnCorruption, NULL, 0 ); // // initialize the debugging framework // debug_initialize( kDebugOutputTypeWindowsDebugger, "PrinterSetupWizard", NULL ); debug_set_property( kDebugPropertyTagPrintLevel, kDebugLevelTrace ); // Before we load the resources, let's load the error string errorMessage.LoadString( IDS_REINSTALL ); errorCaption.LoadString( IDS_REINSTALL_CAPTION ); // Load Resources res = PathForResource( NULL, L"PrinterWizardResources.dll", resource, MAX_PATH ); err = translate_errno( res != 0, kUnknownErr, kUnknownErr ); require_noerr( err, exit ); g_nonLocalizedResources = LoadLibrary( resource ); translate_errno( g_nonLocalizedResources, GetLastError(), kUnknownErr ); require_noerr( err, exit ); res = PathForResource( NULL, L"PrinterWizardLocalized.dll", resource, MAX_PATH ); err = translate_errno( res != 0, kUnknownErr, kUnknownErr ); require_noerr( err, exit ); g_localizedResources = LoadLibrary( resource ); translate_errno( g_localizedResources, GetLastError(), kUnknownErr ); require_noerr( err, exit ); AfxSetResourceHandle( g_localizedResources ); // InitCommonControls() is required on Windows XP if an application // manifest specifies use of ComCtl32.dll version 6 or later to enable // visual styles. Otherwise, any window creation will fail. InitCommonControls(); CWinApp::InitInstance(); AfxEnableControlContainer(); { CPrinterSetupWizardSheet dlg(IDS_CAPTION); m_pMainWnd = &dlg; try { INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } } catch (CPrinterSetupWizardSheet::WizardException & exc) { MessageBox(NULL, exc.text, exc.caption, MB_OK|MB_ICONEXCLAMATION); } } exit: if ( err ) { MessageBox( NULL, errorMessage, errorCaption, MB_ICONERROR | MB_OK ); } if ( g_nonLocalizedResources ) { FreeLibrary( g_nonLocalizedResources ); } if ( g_localizedResources ) { FreeLibrary( g_localizedResources ); } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; }