X-Git-Url: https://git.saurik.com/apple/mdnsresponder.git/blobdiff_plain/7f0064bd55e3fa98568d2c359429ff8a38b23a6c..2682e09e0dbe18ba42fd4707b09a89e8c34f697c:/Clients/PrinterSetupWizard/PrinterSetupWizardApp.cpp diff --git a/Clients/PrinterSetupWizard/PrinterSetupWizardApp.cpp b/Clients/PrinterSetupWizard/PrinterSetupWizardApp.cpp index 295b4a9..d2a896d 100644 --- a/Clients/PrinterSetupWizard/PrinterSetupWizardApp.cpp +++ b/Clients/PrinterSetupWizard/PrinterSetupWizardApp.cpp @@ -1,50 +1,54 @@ -/* +/* -*- Mode: C; tab-width: 4 -*- + * * Copyright (c) 1997-2004 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ + * 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 * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. + * http://www.apache.org/licenses/LICENSE-2.0 * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and + * 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. - * - * @APPLE_LICENSE_HEADER_END@ - - Change History (most recent first): - -$Log: PrinterSetupWizardApp.cpp,v $ -Revision 1.3 2004/07/13 21:24:23 rpantos -Fix for . - -Revision 1.2 2004/06/24 20:12:08 shersche -Clean up source code -Submitted by: herscher - -Revision 1.1 2004/06/18 04:36:57 rpantos -First checked in - - -*/ + */ #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 @@ -71,12 +75,44 @@ CPrinterSetupWizardApp theApp; 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 @@ -87,28 +123,47 @@ BOOL CPrinterSetupWizardApp::InitInstance() AfxEnableControlContainer(); - CPrinterSetupWizardSheet dlg(IDS_CAPTION); + { + CPrinterSetupWizardSheet dlg(IDS_CAPTION); - m_pMainWnd = &dlg; + m_pMainWnd = &dlg; - try - { - INT_PTR nResponse = dlg.DoModal(); - - if (nResponse == IDOK) + try { - // TODO: Place code here to handle when the dialog is - // dismissed with OK + 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 + } } - else if (nResponse == IDCANCEL) + catch (CPrinterSetupWizardSheet::WizardException & exc) { - // TODO: Place code here to handle when the dialog is - // dismissed with Cancel + MessageBox(NULL, exc.text, exc.caption, MB_OK|MB_ICONEXCLAMATION); } } - catch (CPrinterSetupWizardSheet::WizardException & exc) + +exit: + + if ( err ) + { + MessageBox( NULL, errorMessage, errorCaption, MB_ICONERROR | MB_OK ); + } + + if ( g_nonLocalizedResources ) + { + FreeLibrary( g_nonLocalizedResources ); + } + + if ( g_localizedResources ) { - MessageBox(NULL, exc.text, exc.caption, MB_OK|MB_ICONEXCLAMATION); + FreeLibrary( g_localizedResources ); } // Since the dialog has been closed, return FALSE so that we exit the