BOOL CCustomPagesApp::InitInstance() { // 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("Microsoft\\MFC\\Samples")); LoadStdProfileSettings(); // Load standard INI file options (including MRU) SetRegistryBase (_T("Settings")); // Initialize all Managers for usage. They are automatically constructed // if not yet present InitContextMenuManager(); InitKeyboardManager(); // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views. CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CCustomPagesDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CCustomPagesView)); AddDocTemplate(pDocTemplate); // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // Dispatch commands specified on the command line if (!ProcessShellCommand(cmdInfo)) return FALSE; LoadCustomState (); // The one and only window has been initialized, so show and update it. m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; }
BOOL CWordPadApp::InitInstance() { ParseCommandLine(cmdInfo); if (::FindWindow(szWordPadClass, NULL) && IsDocOpen(cmdInfo.m_strFileName)) return FALSE; SetRegistryKey(szRegKey); LoadOptions(); Enable3dControls(); CSplashWnd splash; BOOL bSplash = cmdInfo.m_bShowSplash; if (!cmdInfo.m_bRunEmbedded) { switch (m_nCmdShow) { case SW_HIDE: case SW_SHOWMINIMIZED: case SW_MINIMIZE: case SW_SHOWMINNOACTIVE: bSplash = FALSE; break; case SW_RESTORE: case SW_SHOW: case SW_SHOWDEFAULT: case SW_SHOWNA: case SW_SHOWNOACTIVATE: case SW_SHOWNORMAL: case SW_SHOWMAXIMIZED: if (m_bMaximized) m_nCmdShow = SW_SHOWMAXIMIZED; break; } } else { //Excel 4 will start OLE servers minimized m_nCmdShow = SW_SHOWNORMAL; } int nCmdShow = m_nCmdShow; if (bSplash) { // only show splash if not embedded splash.Create(NULL); splash.ShowWindow(SW_SHOW); splash.UpdateWindow(); } LoadAbbrevStrings(); #ifdef CREATE_DEV_NAMES m_hDevNames = CreateDevNames(); #else m_hDevNames = NULL; #endif NotifyPrinterChanged((m_hDevNames == NULL)); free((void*)m_pszHelpFilePath); m_pszHelpFilePath = _T("WORDPAD.HLP"); // Initialize OLE libraries if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } RegisterFormats(); // Initialize RichEdit control if (LoadLibrary(_T("RICHED32.DLL")) == NULL) { AfxMessageBox(IDS_RICHED_LOAD_FAIL, MB_OK|MB_ICONEXCLAMATION); return FALSE; } // 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. LoadStdProfileSettings(); // Load standard INI file options (including MRU) // Initialize all Managers for usage. They are automatically constructed // if not yet present SetRegistryBase (_T("SettingsPro")); InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo params; params.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager ()->SetTooltipParams ( 0xFFFF, RUNTIME_CLASS (CMFCToolTipCtrl), ¶ms); EnableTearOffMenus (NULL, ID_FREE_TEAROFF1, ID_FREE_TEAROFF2); // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views. DocTemplate.SetContainerInfo(IDR_CNTR_INPLACE); DocTemplate.SetServerInfo( IDR_SRVR_EMBEDDED, IDR_SRVR_INPLACE, RUNTIME_CLASS(CInPlaceFrame)); // 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, &DocTemplate, TRUE); // Note: SDI applications register server objects only if /Embedding // or /Automation is present on the command line. // Check to see if launched as OLE server if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated) { // Register all OLE server (factories) as running. This enables the // OLE libraries to create objects from other applications. COleTemplateServer::RegisterAll(); AfxOleSetUserCtrl(FALSE); // Application was run with /Embedding or /Automation. Don't show the // main window in this case. return TRUE; } // make sure the main window is showing m_bPromptForType = FALSE; OnFileNew(); m_bPromptForType = TRUE; // destroy splash window if (cmdInfo.m_bShowSplash) splash.DestroyWindow(); m_nCmdShow = -1; if (m_pMainWnd == NULL) // i.e. OnFileNew failed return FALSE; if (!cmdInfo.m_strFileName.IsEmpty()) // open an existing document m_nCmdShow = nCmdShow; // Dispatch commands specified on the command line if (cmdInfo.m_nShellCommand != CCommandLineInfo::FileNew && !ProcessShellCommand(cmdInfo)) { return FALSE; } LoadCustomState (); // Enable File Manager drag/drop open m_pMainWnd->DragAcceptFiles(); // When a server application is launched stand-alone, it is a good idea // to update the system registry in case it has been damaged. // do registry stuff in separate thread #ifndef _UNICODE if (m_bWin31) // no threads on Win32s UpdateRegistry(); else #endif AfxBeginThread(DoRegistry, this, THREAD_PRIORITY_IDLE); if (afxGlobalData.m_nBitsPerPixel < 16) { AfxMessageBox(IDS_WRONG_DISPLAY_SETTINGS); } // Set application general look: CAppLookDlg dlg (TRUE); dlg.DoModal (); return TRUE; }
BOOL CConfigApp::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(); if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } // Initialize OLE libraries if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); globalData.SetDPIAware (); // 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("BCGP AppWizard-Generated Applications")); LoadStdProfileSettings(4); // Load standard INI file options (including MRU) SetRegistryBase (_T("Settings")); InitContextMenuManager(); InitKeyboardManager(); InitShellManager(); InitParam(); // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CConfigDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CConfigView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 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; LoadCustomState (); // The one and only window has been initialized, so show and update it m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // call DragAcceptFiles only if there's a suffix // In an SDI app, this should occur after ProcessShellCommand return TRUE; }
//************************************************************************************* BOOL CBCGWorkspace::LoadState (LPCTSTR lpszSectionName /*=NULL*/, CBCGFrameImpl* pFrameImpl /*= NULL*/) { if (lpszSectionName != NULL) { m_strRegSection = lpszSectionName; } CString strSection = GetRegSectionPath (); //----------------------------- // Other things to do before ?: //----------------------------- PreLoadState(); //------------------------ // Loaded library version: //------------------------ CBCGRegistrySP regSP; CBCGRegistry& reg = regSP.Create (FALSE, TRUE); if (reg.Open (GetRegSectionPath (strRegEntryVersion))) { reg.Read (strVersionMajorKey, m_iSavedVersionMajor); reg.Read (strVersionMinorKey, m_iSavedVersionMinor); } //-------------------------------------- // Save general toolbar/menu parameters: //-------------------------------------- CBCGToolBar::LoadParameters (strSection); CMD_MGR.LoadState (strSection); BOOL bResetImages = FALSE; // Reset images to default if (m_bResourceSmartUpdate) { CBCGToolbarButton::m_bUpdateImages = FALSE; } if (pFrameImpl != NULL) { //------------------- // Load rebars state: //------------------- #ifndef BCG_NO_REBAR CBCGRebarState::LoadState (strSection, pFrameImpl->m_pFrame); #endif //----------------------------------------------------- // Load all toolbars, menubar and docking control bars: //----------------------------------------------------- for (POSITION posTlb = gAllToolbars.GetHeadPosition (); posTlb != NULL;) { CBCGToolBar* pToolBar = (CBCGToolBar*) gAllToolbars.GetNext (posTlb); ASSERT (pToolBar != NULL); if (CWnd::FromHandlePermanent (pToolBar->m_hWnd) != NULL) { ASSERT_VALID(pToolBar); if (!m_bLoadSaveFrameBarsOnly || pToolBar->GetTopLevelFrame () == pFrameImpl->m_pFrame) { if (!pToolBar->m_bLocked && !pFrameImpl->IsUserDefinedToolbar(pToolBar)) { pToolBar->LoadState (strSection); if (pToolBar->IsResourceChanged ()) { bResetImages = TRUE; } } } } } #ifndef BCG_NO_SIZINGBAR for (POSITION posCb = gAllSizingControlBars.GetHeadPosition (); posCb != NULL;) { CBCGSizingControlBar* pBar = (CBCGSizingControlBar*) gAllSizingControlBars.GetNext (posCb); ASSERT (pBar != NULL); if (CWnd::FromHandlePermanent (pBar->m_hWnd) != NULL) { ASSERT_VALID (pBar); if (!m_bLoadSaveFrameBarsOnly || pBar->GetTopLevelFrame () == pFrameImpl->m_pFrame) { pBar->LoadState (m_strRegSection + strRegEntryNameSizingBars); } } } #endif // BCG_NO_SIZINGBAR //---------------------------- // Load user defined toolbars: //---------------------------- pFrameImpl->LoadUserToolbars (); //------------------------ // Load tear-off toolbars: //------------------------ pFrameImpl->LoadTearOffMenus (); CBCGDockState dockState; dockState.LoadState(m_strRegSection + strRegEntryNameControlBars); if (m_bForceDockStateLoad || pFrameImpl->IsDockStateValid (dockState)) { pFrameImpl->SetDockState (dockState); } } //-------------------------------------- // Load mouse/keyboard/menu managers: //-------------------------------------- if (g_pMouseManager != NULL) { g_pMouseManager->LoadState (strSection); } if (g_pContextMenuManager != NULL) { g_pContextMenuManager->LoadState(strSection); } if (g_pKeyboardManager != NULL) { g_pKeyboardManager->LoadState (strSection, pFrameImpl == NULL ? NULL : pFrameImpl->m_pFrame); } if (g_pUserToolsManager != NULL) { g_pUserToolsManager->LoadState (strSection); } #if defined _AFXDLL && !defined _BCGCONTROLBAR_STATIC_ // Skins manager can not be used in the static version if (g_pSkinManager != NULL) { g_pSkinManager->LoadState (strSection); } #endif if (m_bResourceSmartUpdate) { CBCGToolbarButton::m_bUpdateImages = TRUE; } if (m_bForceImageReset || (m_bResourceSmartUpdate && bResetImages)) { for (POSITION posTlb = gAllToolbars.GetHeadPosition (); posTlb != NULL;) { CBCGToolBar* pToolBar = (CBCGToolBar*) gAllToolbars.GetNext (posTlb); ASSERT (pToolBar != NULL); if (CWnd::FromHandlePermanent (pToolBar->m_hWnd) != NULL) { ASSERT_VALID (pToolBar); pToolBar->ResetImages (); } } if (pFrameImpl != NULL) { ASSERT_VALID (pFrameImpl->m_pFrame); pFrameImpl->m_pFrame->RecalcLayout (); } } //---------- // Call Hook //---------- LoadCustomState(); //---------------------------------------------------------------------- // To not confuse internal serialization, set version number to current: //---------------------------------------------------------------------- m_iSavedVersionMajor = _BCGCB_VERSION_MAJOR; m_iSavedVersionMinor = _BCGCB_VERSION_MINOR; return TRUE; }
BOOL CInstallApp::InitInstance() { HWND oldHWnd = NULL; EnumWindows(EnumWndProc,(LPARAM)&oldHWnd); //枚举所有运行的窗口 if(oldHWnd != NULL) { ::ShowWindow(oldHWnd,SW_SHOWNORMAL); //激活找到的前一个程序 ::SetForegroundWindow(oldHWnd); //把它设为前景窗口 return false; //退出本次运行 } // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } // 初始化 OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("BCGSoft\\BCGControlBarPro\\Samples")); // LoadStdProfileSettings(); // 加载标准 INI 文件选项(包括 MRU) SetRegistryBase (_T("Settings")); InitContextMenuManager(); InitKeyboardManager(); InitParam(); // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CInstallDoc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(CInstallView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准外壳命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。如果 // 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; LoadCustomState (); // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // 仅当具有后缀时才调用 DragAcceptFiles // 在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生 return TRUE; }