// TestProg.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "TestProg.h" #include "MainFrm.h" #include "ChildFrm.h" #include "IpFrame.h" #include "TestProgDoc.h" #include "TestProgView.h" #include "afxwin.h" #include "afxcmn.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CTestProgApp BEGIN_MESSAGE_MAP(CTestProgApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, &CTestProgApp::OnAppAbout) // Standard file based document commands ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen) // Standard print setup command ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() // CTestProgApp construction CTestProgApp::CTestProgApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } // The one and only CTestProgApp object CTestProgApp theApp; // This identifier was generated to be statistically unique for your app // You may change it if you prefer to choose a specific identifier // {81A5B9DA-E0DC-4E02-9097-38F90D423C7B} static const CLSID clsid = { 0x81A5B9DA, 0xE0DC, 0x4E02, { 0x90, 0x97, 0x38, 0xF9, 0xD, 0x42, 0x3C, 0x7B } }; // CTestProgApp initialization BOOL CTestProgApp::InitInstance() { // InitCommonControlsEx() 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. INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // Set this to include all the common control classes you want to use // in your application. InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); void (__cdecl *InitUsagelogPtr)(void) = NULL; hinstDll = LoadLibrary(L"userlog.dll"); if( hinstDll==NULL ) { MessageBox(0, L"Loading of DLL failed", L"Failure", MB_OK); } InitUsagelogPtr = (void (*)(void)) GetProcAddress(hinstDll, "InitUsagelog"); if( InitUsagelogPtr==NULL ) { MessageBox(0, L"Loading of InitFuncPtr failed", L"Failure", MB_OK); } if( InitUsagelogPtr!=NULL ) { InitUsagelogPtr(); } // Initialize OLE libraries if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need // Change the registry key under which our settings are stored // TODO: You should modify this string to be something appropriate // such as the name of your company or organization SetRegistryKey(_T("Local AppWizard-Generated Applications")); LoadStdProfileSettings(4); // Load standard INI file options (including MRU) // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_TestProgTYPE, RUNTIME_CLASS(CTestProgDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CTestProgView)); if (!pDocTemplate) return FALSE; pDocTemplate->SetContainerInfo(IDR_TestProgTYPE_CNTR_IP); pDocTemplate->SetServerInfo( IDR_TestProgTYPE_SRVR_EMB, IDR_TestProgTYPE_SRVR_IP, RUNTIME_CLASS(CInPlaceFrame)); AddDocTemplate(pDocTemplate); // Connect the COleTemplateServer to the document template // The COleTemplateServer creates new documents on behalf // of requesting OLE containers by using information // specified in the document template m_server.ConnectTemplate(clsid, pDocTemplate, FALSE); // Register all OLE server factories as running. This enables the // OLE libraries to create objects from other applications COleTemplateServer::RegisterAll(); // Note: MDI applications register all server objects without regard // to the /Embedding or /Automation on the command line // create main MDI Frame window CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME)) { delete pMainFrame; return FALSE; } m_pMainWnd = pMainFrame; // call DragAcceptFiles only if there's a suffix // In an MDI app, this should occur immediately after setting m_pMainWnd // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // App was launched with /Embedding or /Automation switch. // Run app as automation server. if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated) { // Don't show the main window return TRUE; } // App was launched with /Unregserver or /Unregister switch. Unregister // typelibrary. Other unregistration occurs in ProcessShellCommand(). else if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppUnregister) { m_server.UpdateRegistry(OAT_INPLACE_SERVER, NULL, NULL, FALSE); } // App was launched standalone or with other switches (e.g. /Register // or /Regserver). Update registry entries, including typelibrary. else { m_server.UpdateRegistry(OAT_INPLACE_SERVER); } // Dispatch commands specified on the command line. Will return FALSE if // app was launched with /RegServer, /Register, /Unregserver or /Unregister. if (!ProcessShellCommand(cmdInfo)) return FALSE; // The main window has been initialized, so show and update it pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); return TRUE; } int CTestProgApp::ExitInstance() { //TODO: Zusätzliche Ressourcen behandeln, die Sie möglicherweise hinzugefügt haben AfxOleTerm(FALSE); void (*ReleaseUsagelogPtr)(void) = NULL; ReleaseUsagelogPtr = (void (*)(void)) GetProcAddress(hinstDll, "ReleaseUsagelog"); if( ReleaseUsagelogPtr==NULL ) { MessageBox(0, L"Loading of ReleaseFuncPtr failed", L"Failure", MB_OK); } if( ReleaseUsagelogPtr!=NULL ) { ReleaseUsagelogPtr(); } FreeLibrary(hinstDll); return CWinApp::ExitInstance(); } // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation protected: DECLARE_MESSAGE_MAP() public: CListBox listbox_test; CTabCtrl tabControl_test; afx_msg void OnBnClickedButton1(); }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, listbox_test); for(int i=0; i<10; i++) listbox_test.AddString(L"Testeintrag"); DDX_Control(pDX, IDC_TAB1, tabControl_test); tabControl_test.InsertItem(0, L"Tab 1"); tabControl_test.InsertItem(1, L"Tab 2"); tabControl_test.InsertItem(2, L"Tab 3"); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // App command to run the dialog void CTestProgApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } // CTestProgApp message handlers