// [!output APP_IMPL] : Definiert das Klassenverhalten für die Anwendung. // #include "stdafx.h" #include "[!output APP_HEADER]" #include "[!output DIALOG_HEADER]" #ifdef _DEBUG #define new DEBUG_NEW #endif // [!output APP_CLASS] BEGIN_MESSAGE_MAP([!output APP_CLASS], [!output APP_BASE_CLASS]) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // [!output APP_CLASS]-Erstellung [!output APP_CLASS]::[!output APP_CLASS]() { [!if CONTEXT_HELP && HELPSTYLE_HTML] EnableHtmlHelp(); [!endif] // TODO: Hier Code zur Konstruktion einfügen // Alle wichtigen Initialisierungen in InitInstance positionieren } // Das einzige [!output APP_CLASS]-Objekt [!output APP_CLASS] theApp; [!if AUTOMATION] const GUID CDECL BASED_CODE _tlid = [!output LIBID_STATIC_CONST_GUID_FORMAT]; const WORD _wVerMajor = 1; const WORD _wVerMinor = 0; [!endif] // [!output APP_CLASS]-Initialisierung BOOL [!output APP_CLASS]::InitInstance() { [!if MANIFEST] // InitCommonControlsEx() ist für Windows XP erforderlich, wenn ein Anwendungsmanifest // die Verwendung von ComCtl32.dll Version 6 oder höher zum Aktivieren // von visuellen Stilen angibt. Ansonsten treten beim Erstellen von Fenstern Fehler auf. INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // Legen Sie dies fest, um alle allgemeinen Steuerelementklassen einzubeziehen, // die Sie in Ihrer Anwendung verwenden möchten. InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); [!endif] [!output APP_BASE_CLASS]::InitInstance(); [!if SOCKETS] if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } [!endif] [!if AUTOMATION || ACCESSIBILITY] // OLE-Bibliotheken initialisieren if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } [!endif] [!if ACTIVEX_CONTROLS] AfxEnableControlContainer(); [!endif] // Standardinitialisierung // Wenn Sie diese Features nicht verwenden und die Größe // der ausführbaren Datei verringern möchten, entfernen Sie // die nicht erforderlichen Initialisierungsroutinen. // Ändern Sie den Registrierungsschlüssel, unter dem Ihre Einstellungen gespeichert sind. // TODO: Ändern Sie diese Zeichenfolge entsprechend, // z.B. zum Namen Ihrer Firma oder Organisation. SetRegistryKey(_T("Vom lokalen Anwendungs-Assistenten generierte Anwendungen")); [!if AUTOMATION] // Befehlszeile für die Automatisierung oder Registrierung bzw. das Aufheben der Registrierung von Optionen verarbeiten. CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // Anwendung wurde mit /Embedding oder /Automation gestartet. // Führen Sie die Anwendung als Automatisierungsserver aus. if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated) { // Klassenfactorys über CoRegisterClassObject() registrieren. COleTemplateServer::RegisterAll(); } // Anwendung wurde mit /Unregserver oder /Unregister gestartet. Entfernen // Sie die Einträge aus der Registrierung. else if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppUnregister) { COleObjectFactory::UpdateRegistryAll(FALSE); AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor); return FALSE; } // Anwendung wurde als Standalone oder mit anderen Optionen gestartet (z.B. /Register // oder /Regserver). Aktualisieren Sie die Registrierungseinträge, einschl. der Typenbibliothek. else { COleObjectFactory::UpdateRegistryAll(); AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid); if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppRegister) return FALSE; } [!endif] [!output DIALOG_CLASS] dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Fügen Sie hier Code ein, um das Schließen des // Dialogfelds über "OK" zu steuern } else if (nResponse == IDCANCEL) { // TODO: Fügen Sie hier Code ein, um das Schließen des // Dialogfelds über "Abbrechen" zu steuern } // Da das Dialogfeld geschlossen wurde, FALSE zurückliefern, sodass wir die // Anwendung verlassen, anstatt das Nachrichtensystem der Anwendung zu starten. return FALSE; }