BOOL CLegoApp::InitInstance() { // 假如應用程式資訊清單指定使用 ComCtl32.dll 6 (含) 以後版本, // 來啟動視覺化樣式,在 Windows XP 上,則需要 InitCommonControls()。 // 否則任何視窗的建立都將失敗。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 設定要包含所有您想要用於應用程式中的 // 通用控制項類別。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); // 初始化 OLE 程式庫 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); EnableTaskbarInteraction(); // 需要有 AfxInitRichEdit2() 才能使用 RichEdit 控制項 // AfxInitRichEdit2(); // 標準初始設定 // 如果您不使用這些功能並且想減少 // 最後完成的可執行檔大小,您可以 // 從下列程式碼移除不需要的初始化常式, // 變更儲存設定值的登錄機碼 // TODO: 您應該適度修改此字串 // (例如,公司名稱或組織名稱) SetRegistryKey(_T("本機 AppWizard 所產生的應用程式")); LoadStdProfileSettings(4); // 載入標準 INI 檔選項 (包含 MRU) InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // 登錄應用程式的文件範本。文件範本負責在文件、 // 框架視窗與檢視間進行連接 CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_LegoTYPE, RUNTIME_CLASS(CLegoDoc), RUNTIME_CLASS(CChildFrame), // 自訂 MDI 子框架 RUNTIME_CLASS(CLegoView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 建立主 MDI 框架視窗 CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME)) { delete pMainFrame; return FALSE; } m_pMainWnd = pMainFrame; // 只有在 MDI 應用程式中有後置字元時,才呼叫 DragAcceptFiles // 這會立即發生在設定 m_pMainWnd 之後 // 剖析標準 Shell 命令、DDE、檔案開啟舊檔的命令列 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // phlin // DON'T display a new MDI child window during startup!!! cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; // 在命令列中指定的分派命令。如果已使用 // /RegServer、/Register、/Unregserver 或 /Unregister 啟動應用程式,將傳回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; // 已經初始設定主視窗,所以顯示並更新該視窗 pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); return TRUE; }
BOOL Cp02dialog2App::InitInstance() { // 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을 // 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다. // InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다. INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 응용 프로그램에서 사용할 모든 공용 컨트롤 클래스를 포함하도록 // 이 항목을 설정하십시오. InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); // OLE 라이브러리를 초기화합니다. if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); EnableTaskbarInteraction(FALSE); // RichEdit 컨트롤을 사용하려면 AfxInitRichEdit2()가 있어야 합니다. // AfxInitRichEdit2(); // 표준 초기화 // 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면 // 아래에서 필요 없는 특정 초기화 // 루틴을 제거해야 합니다. // 해당 설정이 저장된 레지스트리 키를 변경하십시오. // TODO: 이 문자열을 회사 또는 조직의 이름과 같은 // 적절한 내용으로 수정해야 합니다. SetRegistryKey(_T("로컬 응용 프로그램 마법사에서 생성된 응용 프로그램")); LoadStdProfileSettings(4); // MRU를 포함하여 표준 INI 파일 옵션을 로드합니다. InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // 응용 프로그램의 문서 템플릿을 등록합니다. 문서 템플릿은 // 문서, 프레임 창 및 뷰 사이의 연결 역할을 합니다. CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(Cp02dialog2Doc), RUNTIME_CLASS(CMainFrame), // 주 SDI 프레임 창입니다. RUNTIME_CLASS(Cp02dialog2View)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 표준 셸 명령, DDE, 파일 열기에 대한 명령줄을 구문 분석합니다. CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 명령줄에 지정된 명령을 디스패치합니다. // 응용 프로그램이 /RegServer, /Register, /Unregserver 또는 /Unregister로 시작된 경우 FALSE를 반환합니다. if (!ProcessShellCommand(cmdInfo)) return FALSE; // 창 하나만 초기화되었으므로 이를 표시하고 업데이트합니다. m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // 접미사가 있을 경우에만 DragAcceptFiles를 호출합니다. // SDI 응용 프로그램에서는 ProcessShellCommand 후에 이러한 호출이 발생해야 합니다. return TRUE; }
BOOL CKillDBGApp::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(); //初始化Scintilla Scintilla_LinkLexers(); Scintilla_RegisterClasses(AfxGetApp()->m_hInstance); // 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("KillDBG")); // To create the main window, this code creates a new frame window // object and then sets it as the application's main window object //提升自身到 Debug Privilege HANDLE hProcess=GetCurrentProcess(); HANDLE hToken; BOOL bRet=FALSE; if (OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES, &hToken)) { LUID luid; if (LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid)) { TOKEN_PRIVILEGES tp; tp.PrivilegeCount=1; tp.Privileges[0].Luid=luid; tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; if (AdjustTokenPrivileges(hToken, FALSE, &tp, NULL, (PTOKEN_PRIVILEGES)NULL, (PDWORD)NULL)) { bRet=(GetLastError() == ERROR_SUCCESS); } } CloseHandle(hToken); } if (!bRet) { MessageBox(NULL,_T("提升进程权限到SE_DEBUG_NAME失败,可能会导致部分进程无法调试"),NULL,MB_OK | MB_ICONWARNING); } //创建主窗口 CMainFrame* pFrame = new CMainFrame; if (!pFrame) return FALSE; m_pMainWnd = pFrame; // create and load the frame with its resources pFrame->LoadFrame(IDR_MAINFRAME,WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,NULL); // The one and only window has been initialized, so show and update it pFrame->ShowWindow(SW_SHOW); pFrame->UpdateWindow(); // call DragAcceptFiles only if there's a suffix // In an SDI app, this should occur after ProcessShellCommand return TRUE; }
BOOL CDicomViewerApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } // 初始化 OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); EnableTaskbarInteraction(); // 使用 RichEdit 控件需要 AfxInitRichEdit2() // AfxInitRichEdit2(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(16); // 加载标准 INI 文件选项(包括 MRU) InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_DicomViewerTYPE, RUNTIME_CLASS(CDicomViewerDoc), RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架 RUNTIME_CLASS(CDicomViewerView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 创建主 MDI 框架窗口 CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME)) { delete pMainFrame; return FALSE; } m_pMainWnd = pMainFrame; // 仅当具有后缀时才调用 DragAcceptFiles // 在 MDI 应用程序中,这应在设置 m_pMainWnd 之后立即发生 // 启用拖/放 m_pMainWnd->DragAcceptFiles(); // 分析标准 shell 命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 启用“DDE 执行” EnableShellOpen(); RegisterShellFileTypes(TRUE); // 调度在命令行中指定的命令。如果 // 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; // 主窗口已初始化,因此显示它并对其进行更新 pMainFrame->ShowWindow(SW_SHOWMAXIMIZED); pMainFrame->UpdateWindow(); return TRUE; }
BOOL Ctest1App::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // 初始化 OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); EnableTaskbarInteraction(FALSE); // 使用 RichEdit 控件需要 AfxInitRichEdit2() // AfxInitRichEdit2(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU) // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(Ctest1Doc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(Ctest1View)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准 shell 命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。如果 // 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // 仅当具有后缀时才调用 DragAcceptFiles // 在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生 if(!jcd3d::jcd3d_init(NULL, 300, 300, TRUE, D3DDEVTYPE_HAL, 1, m_pMainWnd->m_hWnd)) { return FALSE; } //D3DVIEWPORT9 d3dViewPort = {0, 0, 300, 300, 0.0f, 1.0f}; //jcd3d::jcd3d_lpd3dd->SetViewport(&d3dViewPort); jcd3d::jcd3d_setProjectionPerspectiveTransform(jcd3d::jcd3d_lpd3dd, 300, 300); jcd3d::jcd3d_initRenderState(jcd3d::jcd3d_lpd3dd, D3DCULL_CCW, FALSE, TRUE, D3DSHADE_GOURAUD, D3DFILL_WIREFRAME, FALSE); D3DXCreateTeapot(jcd3d::jcd3d_lpd3dd, &lpMeshTeapot, NULL); _beginthreadex(NULL, 0, myThreadProcress, NULL, 0, &myThreadID); myRenderThreadPause = FALSE; return TRUE; }
BOOL CRepoApp::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); CWinAppEx::InitInstance(); EnableTaskbarInteraction(); // AfxInitRichEdit2() is required to use RichEdit control // AfxInitRichEdit2(); // 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(5); // Load standard INI file options (including MRU) InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_RepoTYPE, RUNTIME_CLASS(CRepoDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CLeftView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 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); // 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(SW_SHOWMAXIMIZED); pMainFrame->UpdateWindow(); return TRUE; }
BOOL CToS2App::InitInstance() { // 假如應用程式資訊清單指定使用 ComCtl32.dll 6 (含) 以後版本, // 來啟動視覺化樣式,在 Windows XP 上,則需要 InitCommonControls()。 // 否則任何視窗的建立都將失敗。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 設定要包含所有您想要用於應用程式中的 // 通用控制項類別。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); // 建立殼層管理員,以防對話方塊包含 // 任何殼層樹狀檢視或殼層清單檢視控制項。 CShellManager *pShellManager = new CShellManager; // 啟動 [Windows 原生] 視覺化管理員可啟用 MFC 控制項中的主題 CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); // 標準初始設定 // 如果您不使用這些功能並且想減少 // 最後完成的可執行檔大小,您可以 // 從下列程式碼移除不需要的初始化常式, // 變更儲存設定值的登錄機碼 // TODO: 您應該適度修改此字串 // (例如,公司名稱或組織名稱) SetRegistryKey(_T("本機 AppWizard 所產生的應用程式")); CToS2Dlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置於使用 [確定] 來停止使用對話方塊時 // 處理的程式碼 } else if (nResponse == IDCANCEL) { // TODO: 在此放置於使用 [取消] 來停止使用對話方塊時 // 處理的程式碼 } else if (nResponse == -1) { TRACE(traceAppMsg, 0, "警告: 對話方塊建立失敗,因此,應用程式意外終止。\n"); TRACE(traceAppMsg, 0, "警告: 如果您要在對話方塊上使用 MFC 控制項,則無法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n"); } // 刪除上面所建立的殼層管理員。 if (pShellManager != NULL) { delete pShellManager; } // 因為已經關閉對話方塊,傳回 FALSE,所以我們會結束應用程式, // 而非提示開始應用程式的訊息。 return FALSE; }
BOOL CSceneEditApp::InitInstance() { // // 如果一个运行在 Windows XP 上的应用程序清单指定要 // // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, // //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 // INITCOMMONCONTROLSEX InitCtrls; // InitCtrls.dwSize = sizeof(InitCtrls); // // 将它设置为包括所有要在应用程序中使用的 // // 公共控件类。 // InitCtrls.dwICC = ICC_WIN95_CLASSES; // InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // EnableTaskbarInteraction(FALSE); // 使用 RichEdit 控件需要 AfxInitRichEdit2() // AfxInitRichEdit2(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); //初始化OLE OleInitialize(NULL); //初始化GDI+ Gdiplus::GdiplusStartupInput gdiplusStartupInput; GdiplusStartup(&g_gdiplusToken, &gdiplusStartupInput, NULL); CMainFrame* pFrame = new CMainFrame; if (!pFrame) return FALSE; m_pMainWnd = pFrame; // 创建并加载框架及其资源 pFrame->LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, NULL); /////////////////////////////////////////// ///////////////////////////初始化主程序 CView* pView = pFrame->GetActiveView(); RECT rect; pView->GetClientRect(&rect); m_app.Init(rect.right-rect.left, rect.bottom-rect.top, pView->GetSafeHwnd(), m_pMainWnd->GetSafeHwnd()); /////////////////////////////////////////// ///////////////////////////初始化编辑器UI if(!pFrame->CreateEditorMainUI()) return FALSE; /////////////////////////////////////////// ///////////////////////////初始化完毕,开始渲染... pFrame->ShowWindow(SW_SHOW); pFrame->UpdateWindow(); //pFrame->SetForegroundWindow(); pFrame->SetTimer(0, (UINT)TIME_PER_FRAME*1000, NULL); return TRUE; }
BOOL CThresholding1App::InitInstance() { AfxOleInit(); // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); // 分析标准 shell 命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); #if !defined(_WIN32_WCE) || defined(_CE_DCOM) // 通过 CoRegisterClassObject() 注册类工厂。 if (FAILED(_AtlModule.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE))) return FALSE; #endif // !defined(_WIN32_WCE) || defined(_CE_DCOM) // 应用程序是用 /Embedding 或 /Automation 开关启动的。 // 将应用程序作为自动化服务器运行。 if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated) { // 不显示主窗口 return TRUE; } // 应用程序是用 /Unregserver 或 /Unregister 开关启动的。 if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppUnregister) { _AtlModule.UpdateRegistryAppId(FALSE); _AtlModule.UnregisterServer(TRUE); return FALSE; } // 应用程序是用 /Register 或 /Regserver 开关启动的。 if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppRegister) { _AtlModule.UpdateRegistryAppId(TRUE); _AtlModule.RegisterServer(TRUE); return FALSE; } // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CThresholding1Dlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }
BOOL CVODServerApp::InitInstance() { //COM库的初始化也可以写OLE库的初始化 //CoInitialize(NULL);//下面有OLE库的初始化了 // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。 否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); //Socket库的初始化是通过设置生成的。 if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } // 初始化 OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); EnableTaskbarInteraction(FALSE); // 使用 RichEdit 控件需要 AfxInitRichEdit2() // AfxInitRichEdit2(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU) // 注册应用程序的文档模板。 文档模板 // 将用作文档、框架窗口和视图之间的连接 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CVODServerDoc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(CVODServerView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准 shell 命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。 如果 // 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); //加载皮肤 //1 初始化界面库 VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL)); //2 加载皮肤文件 //VERIFY(1 == LoadSkinFile(_T("./skin/xpsteel.smf"))); /*VERIFY(1 == LoadSkinFile(_T("./skin/corona.smf")));*/ VERIFY(1 == LoadSkinFile(_T("corona.smf"))); //3 设置窗口皮肤 VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, _T("MainFrame"))); //4 设置对话框窗口皮肤 VERIFY(1 == SetDialogSkin(_T("Dialog"))); g_pWnd = (CMainFrame*)AfxGetMainWnd(); return TRUE; }
BOOL CMidtermProjectApp::InitInstance() { // 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을 // 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다. // InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다. INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 응용 프로그램에서 사용할 모든 공용 컨트롤 클래스를 포함하도록 // 이 항목을 설정하십시오. InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // OLE 라이브러리를 초기화합니다. if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // 표준 초기화 // 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면 // 아래에서 필요 없는 특정 초기화 // 루틴을 제거해야 합니다. // 해당 설정이 저장된 레지스트리 키를 변경하십시오. // TODO: 이 문자열을 회사 또는 조직의 이름과 같은 // 적절한 내용으로 수정해야 합니다. SetRegistryKey(_T("로컬 응용 프로그램 마법사에서 생성된 응용 프로그램")); LoadStdProfileSettings(4); // MRU를 포함하여 표준 INI 파일 옵션을 로드합니다. // 응용 프로그램의 문서 템플릿을 등록합니다. 문서 템플릿은 // 문서, 프레임 창 및 뷰 사이의 연결 역할을 합니다. //CMultiDocTemplate* pDocTemplate; m_pImageDocTemplate = new CMultiDocTemplate(IDR_MidtermProjectTYPE, RUNTIME_CLASS(CMidtermProjectDoc), RUNTIME_CLASS(CChildFrame), // 사용자 지정 MDI 자식 프레임입니다. RUNTIME_CLASS(CMidtermProjectView)); if (!m_pImageDocTemplate) return FALSE; AddDocTemplate(m_pImageDocTemplate); // 주 MDI 프레임 창을 만듭니다. CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME)) { delete pMainFrame; return FALSE; } m_pMainWnd = pMainFrame; // 접미사가 있을 경우에만 DragAcceptFiles를 호출합니다. // MDI 응용 프로그램에서는 m_pMainWnd를 설정한 후 바로 이러한 호출이 발생해야 합니다. // 끌어서 놓기에 대한 열기를 활성화합니다. m_pMainWnd->DragAcceptFiles(); // DDE Execute 열기를 활성화합니다. EnableShellOpen(); RegisterShellFileTypes(TRUE); // 표준 셸 명령, DDE, 파일 열기에 대한 명령줄을 구문 분석합니다. CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 프로그램 시작 시 빈 창을 띄우지 않는다. if ( cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew ) cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; // 명령줄에 지정된 명령을 디스패치합니다. // 응용 프로그램이 /RegServer, /Register, /Unregserver 또는 /Unregister로 시작된 경우 FALSE를 반환합니다. if (!ProcessShellCommand(cmdInfo)) return FALSE; // 주 창이 초기화되었으므로 이를 표시하고 업데이트합니다. pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); return TRUE; }
BOOL CHallQueFrontApp::InitInstance() { #ifdef _DEBUG ::AllocConsole(); g_hStdOutput = ::GetStdHandle(STD_OUTPUT_HANDLE); #endif HWND hWnd = ::FindWindow(NULL, L"大厅排队叫号系统"); if(hWnd) { return FALSE; } // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // 初始化 OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU) // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 /////////////////////////////////////////////////////////////////////////// //////////////////// 检测注册信息 /////////////////////////////////// if(!VerifyLicense()) { STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; CDoFile doFile; CString strExePath = doFile.GetExeFullFilePath(); strExePath += _T("\\QueSystemRegister.exe"); BOOL flag = ::CreateProcess(strExePath,NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi); if(flag) { WaitForSingleObject(pi.hThread,INFINITE); } } if(!VerifyLicense()) { return FALSE; } ////////////////// End 检测注册信息 /////////////////////////////// CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CHallQueFrontDoc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(CHallQueFrontView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准外壳命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。如果 // 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; //让程序开机启动 // AddAutoRun(_T("HallQueFront")); // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->SetWindowText(_T("大厅排队叫号系统")); m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // 仅当具有后缀时才调用 DragAcceptFiles // 在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生 //////////////////////////////////////////// /////////////////////////////////////////// AfxInitRichEdit(); return TRUE; }
BOOL CMyCommApp::InitInstance() { 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. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif // 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(10); // 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. //App dir GetModuleFileName(NULL,m_AppDir.GetBufferSetLength (MAX_PATH+1),MAX_PATH); m_AppDir.ReleaseBuffer (); int nPos = 0; nPos = m_AppDir.ReverseFind('\\'); CString str = m_AppDir.Right(m_AppDir.GetLength()-nPos-1); // 不含路径的升级文件名 m_AppDir = m_AppDir.Left (nPos); //============================================================================= //1.3 2008-2-16 // 增加发送文件功能。 // // // m_AppVersion = "1.3"; //============================================================================= m_downfileexefilename = ""; CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CMyCommDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CMyCommView)); AddDocTemplate(pDocTemplate); // Enable DDE Execute open EnableShellOpen(); RegisterShellFileTypes(TRUE); // 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; //App Params m_SendkeyType = SendKeyStyle(GetProfileInt("Other","SendKeyType",0)); // The one and only window has been initialized, so show and update it. m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // Enable drag/drop open m_pMainWnd->DragAcceptFiles(); return TRUE; }
BOOL Cv3App::InitInstance() { CWinAppEx::InitInstance(); // Initialize OLE libraries if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); EnableTaskbarInteraction(FALSE); // AfxInitRichEdit2() is required to use RichEdit control // AfxInitRichEdit2(); // 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) InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // 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(Cv3Doc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CPieWeatherView)); 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; // 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 CGalileoApp::InitInstance() { char iometer_path[MAX_PATH]; char *p; test_state = TestIdle; login_state = closed; // 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. #if _MSC_VER < 1300 #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif #endif //init file version strings GetAppFileVersionString(&m_pVersionString, &m_pVersionStringWithDebug); SetRegistryKey( "Intel" ); // Stores information in the registry under // HKEY_CURRENT_USER\Software\Intel. LoadStdProfileSettings(); // Load standard INI file options (including MRU) // // Check to see if the end user license agreement should be displayed. // If the current version is not stored in the registry, disply the EULA. // #ifndef _DEBUG if ( GetProfileString( "Settings", "Version" ) != m_pVersionString ) { CLegalBox legalDlg; // Display EULA. if ( legalDlg.DoModal() == IDOK ) // User agrees to terms, so store the version in the registry. WriteProfileString( "Settings", "Version", m_pVersionString ); else return FALSE; // User does not agree to terms so exit. } #endif // 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(CGalileoDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CGalileoView)); AddDocTemplate(pDocTemplate); // Enable DDE Execute open EnableShellOpen(); RegisterShellFileTypes(TRUE); // // Pass the command line info to cmdline.ParseParam(). // Here is the expected syntax: // // iometer ? // iometer [config_file [result_file [timeout_value]]] // iometer [/c config_file] [/r results_file] [/t timeout_value] // // ? - show Iometer version number and command line syntax // // config_file - the name of the Iometer configuration file to restore // when Iometer starts (must be a valid .icf file) // // results_file - the name of a writable text file to which the test // results should be appended. If the file doesn't exist, it will be // created. // // timeout_value - the number of seconds to wait for managers to log in // when restoring a config file. // // If both config_file and results_file are specified, Iometer will // attempt to run the test in batch mode, requiring no user intervention // to load the config file, start the tests, stop the tests (if a run time // was specified in the Test Setup tab), and close Iometer. Batch mode // can be canceled by aborting the manager waiting list dialog or by // manually stopping a test while it is running. // CWinApp::ParseCommandLine(cmdline); // If the command line parser had any trouble, kill the program. if ( cmdline.m_bFail ) return FALSE; if ( !OnCmdMsg(ID_FILE_NEW, 0, NULL, NULL) ) { OnFileNew(); } if (m_pMainWnd == NULL) { ErrorMessage("Error creating application's main frame. " "Please report this as an Iometer bug."); return FALSE; } // Fill in the local address strings. IdentifyLocalAddresses(); // Set the status bar. CRect rect; m_wndStatusBar.GetWindowRect( &rect ); int* widths; widths = (int*)malloc( sizeof(int) * 3 ); widths[0] = rect.Width() - 300; widths[1] = rect.Width() - 150; widths[2] = -1; m_wndStatusBar.GetStatusBarCtrl().SetParts( 3, widths ); free( widths ); // Set status bar text. pView->ClearStatusBar(); // Disable most buttons. pView->ButtonReset(); // make sure CGalileoApp::OnIdle() gets called at least once in a while pView->SetTimer( IDLE_TIMER, IDLE_DELAY, NULL ); // Get the full pathname for Iometer.exe. if ( !GetModuleFileName( NULL, iometer_path, sizeof( iometer_path ) ) ) { ErrorMessage( "Could not get Iometer.exe pathname!" ); // Set iometer_path to a null string; this will make NEW_WORKER_COMMAND // search for Dynamo in the current directory and $PATH iometer_path[0] = '\0'; } // Find the last backslash in the pathname, if any if ( p = strrchr( iometer_path, '\\' ) ) { // Terminate the string right after the last backslash, leaving // the full pathname of the directory containing Iometer.exe. p++; *p = '\0'; } // Build the command line to launch Dynamo. We must quote the pathname in case it // contains any spaces, but the "start" command (NEW_WORKER_COMMAND) assumes the // first quoted argument is the window title, so we must provide it twice. new_manager_command_line_format = (CString) NEW_WORKER_COMMAND + "\"" + iometer_path + NEW_WORKER_EXECUTABLE + "%s\"" + " " + "\"" + iometer_path + NEW_WORKER_EXECUTABLE + "\"%s"; if ( cmdline.GetConfigFile().IsEmpty() ) { #ifndef _DEBUG // If the default config file exists, load it. if ( ::GetFileAttributes(DEFAULT_CONFIG_FILE) != 0xFFFFFFFF ) { OpenDocumentFile(DEFAULT_CONFIG_FILE); } else { // If no config file was specified on the command line // and the default config file doesn't exist, start a // local manager.with no command line options. LaunchDynamo(); } #endif } else { // If a config file was specified on the command line, open it OpenDocumentFile( cmdline.GetConfigFile() ); } 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 CImgAppApp::InitInstance() { // 假如應用程式資訊清單指定使用 ComCtl32.dll 6 (含) 以後版本, // 來啟動視覺化樣式,在 Windows XP 上,則需要 InitCommonControls()。 // 否則任何視窗的建立都將失敗。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 設定要包含所有您想要用於應用程式中的 // 通用控制項類別。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // 初始化 OLE 程式庫 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // 標準初始設定 // 如果您不使用這些功能並且想減少 // 最後完成的可執行檔大小,您可以 // 從下列程式碼移除不需要的初始化常式, // 變更儲存設定值的登錄機碼 // TODO: 您應該適度修改此字串 // (例如,公司名稱或組織名稱) SetRegistryKey(_T("本機 AppWizard 所產生的應用程式")); LoadStdProfileSettings(4); // 載入標準 INI 檔選項 (包含 MRU) // 登錄應用程式的文件範本。文件範本負責在文件、 // 框架視窗與檢視間進行連接 CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_ImgAppTYPE, RUNTIME_CLASS(CImgAppDoc), RUNTIME_CLASS(CChildFrame), // 自訂 MDI 子框架 RUNTIME_CLASS(CImgAppView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 建立主 MDI 框架視窗 CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME)) { delete pMainFrame; return FALSE; } m_pMainWnd = pMainFrame; // 只有在 MDI 應用程式中有後置字元時,才呼叫 DragAcceptFiles // 這會立即發生在設定 m_pMainWnd 之後 // 剖析標準 Shell 命令、DDE、檔案開啟舊檔的命令列 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 在命令列中指定的分派命令。如果已使用 // /RegServer、/Register、/Unregserver 或 /Unregister 啟動應用程式,將傳回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; // 已經初始設定主視窗,所以顯示並更新該視窗 pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); return TRUE; }
BOOL CQmonntApp::InitInstance() { if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // Standardinitialisierung // Wenn Sie diese Funktionen nicht nutzen und die Größe Ihrer fertigen // ausführbaren Datei reduzieren wollen, sollten Sie die nachfolgenden // spezifischen Initialisierungsroutinen, die Sie nicht benötigen, entfernen. #ifdef _AFXDLL Enable3dControls(); // Diese Funktion bei Verwendung von MFC in gemeinsam genutzten DLLs aufrufen #else Enable3dControlsStatic(); // Diese Funktion bei statischen MFC-Anbindungen aufrufen #endif // Ändern des Registrierungsschlüssels, unter dem unsere Einstellungen gespeichert sind. // Sie sollten dieser Zeichenfolge einen geeigneten Inhalt geben // wie z.B. den Namen Ihrer Firma oder Organisation. SetRegistryKey(_T("Sun\\GridEngine")); LoadStdProfileSettings(0); // Standard-INI-Dateioptionen einlesen (einschließlich MRU) // Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen // dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten. CMultiDocTemplate *pDocTemplate = new CMultiDocTemplate( IDR_QMONNTTYPE, RUNTIME_CLASS(CQmonntDoc), RUNTIME_CLASS(CSplitterFrame), RUNTIME_CLASS(CQmonntView)); ASSERT_VALID(pDocTemplate); AddDocTemplate(pDocTemplate); m_pQMonNTDocTemplate = pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_DEBUGDOCTYPE, RUNTIME_CLASS(CDebugDoc), RUNTIME_CLASS(CDebugFrmWnd), RUNTIME_CLASS(CDebugView)); ASSERT_VALID(pDocTemplate); AddDocTemplate(pDocTemplate); // Haupt-MDI-Rahmenfenster erzeugen CMainFrame *pMainFrame = new CMainFrame; ASSERT_VALID(pMainFrame); if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE; m_pMainWnd = pMainFrame; // Befehlszeile parsen, um zu prüfen auf Standard-Umgebungsbefehle DDE, Datei offen CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // Verteilung der in der Befehlszeile angegebenen Befehle if (!ProcessShellCommand(cmdInfo)) return FALSE; // Das Hauptfenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden. pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); return TRUE; }
BOOL CDuiVisionDemoApp::InitInstance() { CWinApp::InitInstance(); AfxEnableControlContainer(); // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("Blueant")); // 初始化DuiVision界面库,可以指定语言,dwLangID为0表示自动判断当前语言 // 1116是应用程序ID,每个DUI应用程序应该使用不同的ID,ID主要用于进程间通信传递命令行时候区分应用 DWORD dwLangID = 0; new DuiSystem(m_hInstance, dwLangID, _T("DuiVisionDemo.ui"), 1116, IDD_DUIVISIONDEMO_DIALOG, _T("")); // 检查是否已经有进程在运行 CString strAppMutex = DuiSystem::Instance()->GetConfig(_T("appMutex")); // 从配置文件中获取互斥量名字 if(!strAppMutex.IsEmpty()) { ::CreateMutex(NULL,TRUE, _T("Global\\") + strAppMutex); if(ERROR_ALREADY_EXISTS == GetLastError() || ERROR_ACCESS_DENIED == GetLastError()) { // 读取命令行参数,如果不需要处理命令行可以直接退出 CString strCmd = _T(""); if(__argc > 1) { strCmd = __targv[1]; DuiSystem::LogEvent(DUIV_LOG_LEVELDEBUG, _T("Command line:%s"), strCmd); } // 发送进程间消息(lParam为1表示不显示界面,appMutex作为应用名,信息参数传递命令行参数) CString strAppName = DuiSystem::Instance()->GetConfig(_T("appMutex")); DuiSystem::Instance()->SendInterprocessMessage(0, DuiSystem::Instance()->GetAppID(), 1, strAppName, strCmd); // 释放DuiVision界面库的资源 DuiSystem::Release(); return FALSE; // Here we quit this application } } // 创建主窗口 CDlgBase* pMainDlg = DuiSystem::CreateDuiDialog(_T("dlg_main"), NULL, _T(""), TRUE); // 给主窗口注册事件处理对象 CDuiHandlerMain* pHandler = new CDuiHandlerMain(); pHandler->SetDialog(pMainDlg); DuiSystem::RegisterHandler(pMainDlg, pHandler); // 初始化提示信息窗口 DuiSystem::Instance()->CreateNotifyMsgBox(_T("dlg_notifymsg")); // 按照非模式对话框创建主窗口,可以默认隐藏 pMainDlg->Create(pMainDlg->GetIDTemplate(), NULL); //pMainDlg->ShowWindow(SW_HIDE); INT_PTR nResponse = pMainDlg->RunModalLoop(); // 如果是按照模式对话框运行主窗口,只要改为如下代码就可以 //INT_PTR nResponse = pMainDlg->DoModal(); // 释放DuiVision界面库的资源 DuiSystem::Release(); // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }
BOOL CCRApp::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. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif // 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(); // 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. CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CCRDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CCRView)); pDocTemplate->SetContainerInfo(IDR_CNTR_INPLACE); pDocTemplate->SetServerInfo( IDR_SRVR_EMBEDDED, IDR_SRVR_INPLACE, 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, TRUE); // Note: SDI applications register server objects only if /Embedding // or /Automation is present on the command line. // Enable DDE Execute open EnableShellOpen(); RegisterShellFileTypes(TRUE); // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 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(); // Application was run with /Embedding or /Automation. Don't show the // main window in this case. return TRUE; } // When a server application is launched stand-alone, it is a good idea // to update the system registry in case it has been damaged. m_server.UpdateRegistry(OAT_DOC_OBJECT_SERVER); // Dispatch commands specified on the command line if (!ProcessShellCommand(cmdInfo)) return FALSE; // The one and only window has been initialized, so show and update it. //改变窗口标题 m_pMainWnd->SetWindowText("全国计算机仿真大奖赛——基于BP网络的字符识别"); m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // Enable drag/drop open m_pMainWnd->DragAcceptFiles(); OnAppAbout(); return TRUE; }
BOOL CKTVStartApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。 否则,将无法创建窗口。 // Enable High-DPI support on Windows 7 or newer. CefEnableHighDPISupport(); //wchar_t path[MAX_PATH]; //GetModuleFileName(NULL, path, sizeof(path)); ////判断环境是否为WOW64 //BOOL isWOW64; //REGSAM p; //IsWow64Process(GetCurrentProcess(), &isWOW64); //if (isWOW64) { // p = KEY_WRITE | KEY_WOW64_64KEY; //} //else { // p = KEY_WRITE; //} //HKEY hKey; //if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, NULL, 0, p, NULL, &hKey, NULL) != ERROR_SUCCESS) { // //失败 // return 0; //} //if (RegSetValueEx(hKey, TEXT("KTVStart"), 0, REG_SZ, (BYTE*)path, sizeof(path) * sizeof(TCHAR)) != ERROR_SUCCESS) { // //失败 // return 0; //} //RegCloseKey(hKey); CefMainArgs main_args(theApp.m_hInstance); CefRefPtr<SimpleApp> app(new SimpleApp); int exit_code = CefExecuteProcess(main_args, app.get(), NULL); if (exit_code >= 0) { exit(exit_code); } CefSettings settings; //settings.log_severity = LOGSEVERITY_DISABLE; settings.ignore_certificate_errors = true; //settings.command_line_args_disabled = 0; //settings.Add("enable-media-stream", "enable-media-stream"); CefSettingsTraits::init(&settings); settings.multi_threaded_message_loop = true; CefInitialize(main_args, settings, app.get(), NULL); INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 激活“Windows Native”视觉管理器,以便在 MFC 控件中启用主题 CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); // 安装钩子 //g_HookHwnd = SetWindowsHookEx(WH_KEYBOARD_LL, MyHookFun, m_hInstance, 0); CKTVStartDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } else if (nResponse == -1) { TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n"); TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n"); } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } #ifndef _AFXDLL ControlBarCleanUp(); #endif // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }
//初始化函数 BOOL CGamePlazaApp::InitInstance() { __super::InitInstance(); //判断是否重入 #ifndef ADMIN_PLAZA #ifndef _DEBUG bool bExistIGame=false; CMutex Mutex(FALSE,MAIN_DLG_CLASSNAME,NULL); if (Mutex.Lock(0)==FALSE) bExistIGame=true; CWnd * pIGameWnd=CWnd::FindWindow(MAIN_DLG_CLASSNAME,NULL); if (pIGameWnd!=NULL) { bExistIGame=true; if (pIGameWnd->IsIconic()) pIGameWnd->ShowWindow(SW_RESTORE); pIGameWnd->SetActiveWindow(); pIGameWnd->BringWindowToTop(); pIGameWnd->SetForegroundWindow(); } if (bExistIGame==true) return FALSE; #endif #endif DWORD d=MAKELONG(MAKEWORD(6,0),MAKEWORD(1,0)); //程序初始化 AfxOleInit(); AfxInitRichEdit(); AfxInitRichEdit2(); InitCommonControls(); AfxEnableControlContainer(); //设置注册表 SetRegistryKey(szSystemRegKey); //加载界面库 CSkinAttribute::LoadSkinAttribute(GET_OBJECT_INTERFACE(m_SkinRecordFile,IUnknownEx)); //加载配置 g_GlobalOption.LoadOptionParameter(); //全局信息 if (g_GlobalUnits.InitGlobalUnits()==false) { AfxMessageBox(TEXT("游戏广场初始化失败,程序即将退出!"),MB_ICONSTOP); return FALSE; } //注册窗口类 WNDCLASS WndClasss; memset(&WndClasss,0,sizeof(WndClasss)); WndClasss.lpfnWndProc=::DefWindowProc; WndClasss.hInstance=AfxGetInstanceHandle(); WndClasss.lpszClassName=MAIN_DLG_CLASSNAME; if (!AfxRegisterClass(&WndClasss)) AfxThrowResourceException(); //建立窗口 const DWORD dwStyte=WS_SYSMENU|WS_MINIMIZEBOX|WS_OVERLAPPED|WS_CLIPCHILDREN; CGameFrame * pMainFrame=new CGameFrame(); pMainFrame->Create(MAIN_DLG_CLASSNAME,TEXT(""),dwStyte,CRect(0,0,0,0)); m_pMainWnd=pMainFrame; return TRUE; }
BOOL CCGRealtime_2010_00App::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); // 初始化 OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); EnableTaskbarInteraction(FALSE); // 使用 RichEdit 控件需要 AfxInitRichEdit2() // AfxInitRichEdit2(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU) InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CCGRealtime_2010_00Doc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(CCGRealtime_2010_00View)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准 shell 命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。如果 // 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // 仅当具有后缀时才调用 DragAcceptFiles // 在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生 AllocConsole(); // 开辟控制台 SetConsoleTitle(_T("Debug Output")); // 设置控制台窗口标题 freopen("CONOUT$","w",stdout); // 重定向输出 return TRUE; }
BOOL CUIDesignerApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); // 初始化 OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("")); LoadStdProfileSettings(); // 加载标准 INI 文件选项(包括 MRU) SetRegistryBase(_T("Settings")); InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 CMultiDocTemplate* pUIDocTemplate = NULL; pUIDocTemplate = new CMultiDocTemplate(IDR_UIDESIGNER, RUNTIME_CLASS(CUIDesignerDoc), RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架 RUNTIME_CLASS(CUIDesignerView)); if (!pUIDocTemplate) return FALSE; AddDocTemplate(pUIDocTemplate); // 创建主 MDI 框架窗口 CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME)) { delete pMainFrame; return FALSE; } m_pMainWnd = pMainFrame; // 仅当具有后缀时才调用 DragAcceptFiles // 在 MDI 应用程序中,这应在设置 m_pMainWnd 之后立即发生 // 启用拖/放 m_pMainWnd->DragAcceptFiles(); // 启用“DDE 执行” EnableShellOpen(); RegisterShellFileTypes(TRUE); // 主窗口已初始化,因此显示它并对其进行更新 pMainFrame->ShowWindow(SW_SHOWMAXIMIZED); pMainFrame->UpdateWindow(); return TRUE; }
BOOL CXImageApp::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; } // Create the shell manager, in case the dialog contains // any shell tree view or shell list view controls. CShellManager *pShellManager = new CShellManager; // Activate "Windows Native" visual manager for enabling themes in MFC controls CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); // 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")); CXImageDlg dlg; m_pMainWnd = &dlg; 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 == -1) { TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is terminating unexpectedly.\n"); TRACE(traceAppMsg, 0, "Warning: if you are using MFC controls on the dialog, you cannot #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS.\n"); } // Delete the shell manager created above. if (pShellManager != NULL) { delete pShellManager; } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; }
BOOL CServeApp::InitInstance() { // 如果一个运行在 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(); EnableTaskbarInteraction(FALSE); // 使用 RichEdit 控件需要 AfxInitRichEdit2() // AfxInitRichEdit2(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU) // 注册应用程序的文档模板。 文档模板 // 将用作文档、框架窗口和视图之间的连接 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CServeDoc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(CServeView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准 shell 命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。 如果 // 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。 if (!ProcessShellCommand(cmdInfo)) return FALSE; // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; }
BOOL C网络聊天室服务器端App::InitInstance() { // 如果一个运行在 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; } AfxEnableControlContainer(); //初始化OLE DLL if (!AfxOleInit()) { AfxMessageBox(L"初始化OLE DLL失败!"); return FALSE; } // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 激活“Windows Native”视觉管理器,以便在 MFC 控件中启用主题 CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); C网络聊天室服务器端Dlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } else if (nResponse == -1) { TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n"); TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n"); } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }
BOOL CTortoiseProcApp::InitInstance() { EnableCrashHandler(); InitializeJumpList(); CheckUpgrade(); CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); CMFCButton::EnableWindowsTheming(); Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken,&gdiplusStartupInput,NULL); if(!CheckMsysGitDir()) { UINT ret = CMessageBox::Show(NULL,_T("MSysGit (http://code.google.com/p/msysgit/) not found."), _T("TortoiseGit"), 3, IDI_HAND, _T("&Set MSysGit path"), _T("&Goto WebSite"), _T("&Abort")); if(ret == 2) { ShellExecute(NULL, NULL, _T("http://code.google.com/p/msysgit/"), NULL, NULL, SW_SHOW); } else if(ret == 1) { // open settings dialog CSettings dlg(IDS_PROC_SETTINGS_TITLE); dlg.SetTreeViewMode(TRUE, TRUE, TRUE); dlg.SetTreeWidth(220); dlg.DoModal(); dlg.HandleRestart(); } return FALSE; } //set the resource dll for the required language CRegDWORD loc = CRegDWORD(_T("Software\\TortoiseGit\\LanguageID"), 1033); long langId = loc; CString langDll; CStringA langpath = CStringA(CPathUtils::GetAppParentDirectory()); langpath += "Languages"; // bindtextdomain("subversion", (LPCSTR)langpath); // bind_textdomain_codeset("subversion", "UTF-8"); HINSTANCE hInst = NULL; do { langDll.Format(_T("..\\Languages\\TortoiseProc%d.dll"), langId); hInst = LoadLibrary(langDll); CString sVer = _T(STRPRODUCTVER); CString sFileVer = CPathUtils::GetVersionFromFile(langDll); if (sFileVer.Compare(sVer)!=0) { FreeLibrary(hInst); hInst = NULL; } if (hInst != NULL) { AfxSetResourceHandle(hInst); } else { DWORD lid = SUBLANGID(langId); lid--; if (lid > 0) { langId = MAKELANGID(PRIMARYLANGID(langId), lid); } else langId = 0; } } while ((hInst == NULL) && (langId != 0)); TCHAR buf[6]; _tcscpy_s(buf, _T("en")); langId = loc; CString sHelppath; sHelppath = this->m_pszHelpFilePath; sHelppath = sHelppath.MakeLower(); // MFC uses a help file with the same name as the application by default, // which means we have to change that default to our language specific help files sHelppath.Replace(_T("tortoiseproc.chm"), _T("TortoiseGit_en.chm")); free((void*)m_pszHelpFilePath); m_pszHelpFilePath=_tcsdup(sHelppath); sHelppath = CPathUtils::GetAppParentDirectory() + _T("Languages\\TortoiseGit_en.chm"); do { CString sLang = _T("_"); if (GetLocaleInfo(MAKELCID(langId, SORT_DEFAULT), LOCALE_SISO639LANGNAME, buf, _countof(buf))) { sLang += buf; sHelppath.Replace(_T("_en"), sLang); if (PathFileExists(sHelppath)) { free((void*)m_pszHelpFilePath); m_pszHelpFilePath=_tcsdup(sHelppath); break; } } sHelppath.Replace(sLang, _T("_en")); if (GetLocaleInfo(MAKELCID(langId, SORT_DEFAULT), LOCALE_SISO3166CTRYNAME, buf, _countof(buf))) { sLang += _T("_"); sLang += buf; sHelppath.Replace(_T("_en"), sLang); if (PathFileExists(sHelppath)) { free((void*)m_pszHelpFilePath); m_pszHelpFilePath=_tcsdup(sHelppath); break; } } sHelppath.Replace(sLang, _T("_en")); DWORD lid = SUBLANGID(langId); lid--; if (lid > 0) { langId = MAKELANGID(PRIMARYLANGID(langId), lid); } else langId = 0; } while (langId); setlocale(LC_ALL, ""); // 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. INITCOMMONCONTROLSEX used = { sizeof(INITCOMMONCONTROLSEX), ICC_ANIMATE_CLASS | ICC_BAR_CLASSES | ICC_COOL_CLASSES | ICC_DATE_CLASSES | ICC_HOTKEY_CLASS | ICC_INTERNET_CLASSES | ICC_LISTVIEW_CLASSES | ICC_NATIVEFNTCTL_CLASS | ICC_PAGESCROLLER_CLASS | ICC_PROGRESS_CLASS | ICC_TAB_CLASSES | ICC_TREEVIEW_CLASSES | ICC_UPDOWN_CLASS | ICC_USEREX_CLASSES | ICC_WIN95_CLASSES }; InitCommonControlsEx(&used); AfxOleInit(); AfxEnableControlContainer(); AfxInitRichEdit2(); CWinAppEx::InitInstance(); SetRegistryKey(_T("TortoiseGit")); CCmdLineParser parser(AfxGetApp()->m_lpCmdLine); // if HKCU\Software\TortoiseGit\Debug is not 0, show our command line // in a message box if (CRegDWORD(_T("Software\\TortoiseGit\\Debug"), FALSE)==TRUE) AfxMessageBox(AfxGetApp()->m_lpCmdLine, MB_OK | MB_ICONINFORMATION); if ( parser.HasKey(_T("path")) && parser.HasKey(_T("pathfile"))) { CMessageBox::Show(NULL, IDS_ERR_INVALIDPATH, IDS_APPNAME, MB_ICONERROR); return FALSE; } CTGitPath cmdLinePath; CTGitPathList pathList; if ( parser.HasKey(_T("pathfile")) ) { CString sPathfileArgument = CPathUtils::GetLongPathname(parser.GetVal(_T("pathfile"))); cmdLinePath.SetFromUnknown(sPathfileArgument); if (pathList.LoadFromFile(cmdLinePath)==false) return FALSE; // no path specified! if ( parser.HasKey(_T("deletepathfile")) ) { // We can delete the temporary path file, now that we've loaded it ::DeleteFile(cmdLinePath.GetWinPath()); } // This was a path to a temporary file - it's got no meaning now, and // anybody who uses it again is in for a problem... cmdLinePath.Reset(); } else { CString sPathArgument = CPathUtils::GetLongPathname(parser.GetVal(_T("path"))); int asterisk = sPathArgument.Find('*'); cmdLinePath.SetFromUnknown(asterisk >= 0 ? sPathArgument.Left(asterisk) : sPathArgument); pathList.LoadFromAsteriskSeparatedString(sPathArgument); } if (pathList.GetCount() == 0) { pathList.AddPath(CTGitPath::CTGitPath(g_Git.m_CurrentDir)); } hWndExplorer = NULL; CString sVal = parser.GetVal(_T("hwnd")); if (!sVal.IsEmpty()) hWndExplorer = (HWND)_ttoi64(sVal); while (GetParent(hWndExplorer)!=NULL) hWndExplorer = GetParent(hWndExplorer); if (!IsWindow(hWndExplorer)) { hWndExplorer = NULL; } // Subversion sometimes writes temp files to the current directory! // Since TSVN doesn't need a specific CWD anyway, we just set it // to the users temp folder: that way, Subversion is guaranteed to // have write access to the CWD { DWORD len = GetCurrentDirectory(0, NULL); if (len) { TCHAR * originalCurrentDirectory = new TCHAR[len]; if (GetCurrentDirectory(len, originalCurrentDirectory)) { //sOrigCWD = originalCurrentDirectory; //sOrigCWD = CPathUtils::GetLongPathname(sOrigCWD); } delete [] originalCurrentDirectory; } TCHAR pathbuf[MAX_PATH]; GetTempPath(MAX_PATH, pathbuf); SetCurrentDirectory(pathbuf); } // check for newer versions if (CRegDWORD(_T("Software\\TortoiseGit\\CheckNewer"), TRUE) != FALSE) { time_t now; struct tm ptm; time(&now); if ((now != 0) && (localtime_s(&ptm, &now)==0)) { int week = 0; // we don't calculate the real 'week of the year' here // because just to decide if we should check for an update // that's not needed. week = ptm.tm_yday / 7; CRegDWORD oldweek = CRegDWORD(_T("Software\\TortoiseGit\\CheckNewerWeek"), (DWORD)-1); if (((DWORD)oldweek) == -1) oldweek = week; // first start of TortoiseProc, no update check needed else { if ((DWORD)week != oldweek) { oldweek = week; TCHAR com[MAX_PATH+100]; GetModuleFileName(NULL, com, MAX_PATH); _tcscat_s(com, MAX_PATH+100, _T(" /command:updatecheck")); CAppUtils::LaunchApplication(com, 0, false); } } } } if (parser.HasVal(_T("configdir"))) { // the user can override the location of the Subversion config directory here CString sConfigDir = parser.GetVal(_T("configdir")); // g_GitGlobal.SetConfigDir(sConfigDir); } // to avoid that SASL will look for and load its plugin dlls all around the // system, we set the path here. // Note that SASL doesn't have to be initialized yet for this to work // sasl_set_path(SASL_PATH_TYPE_PLUGIN, (LPSTR)(LPCSTR)CUnicodeUtils::GetUTF8(CPathUtils::GetAppDirectory().TrimRight('\\'))); HANDLE TSVNMutex = ::CreateMutex(NULL, FALSE, _T("TortoiseGitProc.exe")); if(!g_Git.SetCurrentDir(cmdLinePath.GetWinPathString())) { int i=0; for(i=0;i<pathList.GetCount();i++) if(g_Git.SetCurrentDir(pathList[i].GetWinPath())) break; } if(!g_Git.m_CurrentDir.IsEmpty()) SetCurrentDirectory(g_Git.m_CurrentDir); { CString err; try { // requires CWD to be set CGit::m_LogEncode = CAppUtils::GetLogOutputEncode(); } catch (char* msg) { err = CString(msg); } if (!err.IsEmpty()) { UINT choice = CMessageBox::Show(hWndExplorer, err, _T("TortoiseGit Error"), 1, IDI_ERROR, _T("&Edit .git/config"), _T("Edit &global .gitconfig"), _T("&Abort")); if (choice == 1) { // open the config file with alternative editor CString path = g_Git.m_CurrentDir; path += _T("\\.git\\config"); CAppUtils::LaunchAlternativeEditor(path); } else if (choice == 2) { // open the global config file with alternative editor TCHAR buf[MAX_PATH]; ExpandEnvironmentStrings(_T("%HOMEDRIVE%\\%HOMEPATH%\\.gitconfig"), buf, MAX_PATH); CAppUtils::LaunchAlternativeEditor(buf); } return FALSE; } } // execute the requested command CommandServer server; Command * cmd = server.GetCommand(parser.GetVal(_T("command"))); if (cmd) { cmd->SetExplorerHwnd(hWndExplorer); cmd->SetParser(parser); cmd->SetPaths(pathList, cmdLinePath); retSuccess = cmd->Execute(); delete cmd; } if (TSVNMutex) ::CloseHandle(TSVNMutex); // Look for temporary files left around by TortoiseSVN and // remove them. But only delete 'old' files because some // apps might still be needing the recent ones. { DWORD len = ::GetTempPath(0, NULL); TCHAR * path = new TCHAR[len + 100]; len = ::GetTempPath (len+100, path); if (len != 0) { CSimpleFileFind finder = CSimpleFileFind(path, _T("*svn*.*")); FILETIME systime_; ::GetSystemTimeAsFileTime(&systime_); __int64 systime = (((_int64)systime_.dwHighDateTime)<<32) | ((__int64)systime_.dwLowDateTime); while (finder.FindNextFileNoDirectories()) { CString filepath = finder.GetFilePath(); HANDLE hFile = ::CreateFile(filepath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL); if (hFile != INVALID_HANDLE_VALUE) { FILETIME createtime_; if (::GetFileTime(hFile, &createtime_, NULL, NULL)) { ::CloseHandle(hFile); __int64 createtime = (((_int64)createtime_.dwHighDateTime)<<32) | ((__int64)createtime_.dwLowDateTime); if ((createtime + 864000000000) < systime) //only delete files older than a day { ::SetFileAttributes(filepath, FILE_ATTRIBUTE_NORMAL); ::DeleteFile(filepath); } } else ::CloseHandle(hFile); } } } delete[] path; } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; }
BOOL CFdmApp::InitInstance() { AfxEnableControlContainer (); SetRegistryKey (IDS_COMPANY); bool bContinue = true; if (_CrashReporter.CheckIfSubmitDumpIsRequestedByCommandLine (bContinue)) { if (!bContinue) return FALSE; } CheckRegistry (); fsIECatchMgr::CleanIEPluginKey (); CString strPath = GetProfileString ("", "Path", ""); BOOL bNeedLocalRegister = FALSE; if (strPath == "") { CRegKey key; if (ERROR_SUCCESS == key.Open (HKEY_CURRENT_USER, "Software\\FreeDownloadManager.ORG\\Free Download Manager", KEY_WRITE)) vmsSHCopyKey (HKEY_LOCAL_MACHINE, "Software\\FreeDownloadManager.ORG\\Free Download Manager", key); strPath = GetProfileString ("", "Path", ""); bNeedLocalRegister = strPath != ""; } if (GetFileAttributes (strPath + "\\fdm.exe") == DWORD (-1)) { strPath = ""; bNeedLocalRegister = false; } if (strPath == "" || FALSE == SetCurrentDirectory (strPath)) _dwAppState |= APPSTATE_PORTABLE_MODE; char szExeDir [MY_MAX_PATH], szExeFile [MY_MAX_PATH]; GetModuleFileName (NULL, szExeFile, sizeof (szExeFile)); fsGetPath (szExeFile, szExeDir); if (IS_PORTABLE_MODE) { strPath = szExeDir; SetCurrentDirectory (strPath); } m_strAppPath = strPath; if (m_strAppPath.IsEmpty () == FALSE) { if (m_strAppPath [m_strAppPath.GetLength ()-1] != '\\' && m_strAppPath [m_strAppPath.GetLength ()-1] != '/') m_strAppPath += '\\'; } if (IS_PORTABLE_MODE == false) { CString strDataFldr = szExeDir; strDataFldr += "Data"; if (m_strAppPath.CompareNoCase (szExeDir) && DWORD (-1) != GetFileAttributes (strDataFldr)) { _dwAppState |= APPSTATE_PORTABLE_MODE; _dwAppState |= APPSTATE_PORTABLE_MODE_NOREG; m_strAppPath = szExeDir; } } if (IS_PORTABLE_MODE) { vmsAppSettingsStore* pStgs = _App.get_SettingsStore (); CString strStgsFile = m_strAppPath + "Data\\settings.dat"; fsBuildPathToFile (strStgsFile); pStgs->LoadSettingsFromFile (strStgsFile); _App.ApplySettingsToMutexes (); } BOOL bNoLng = FALSE; if (FALSE == InitLanguage ()) bNoLng = TRUE; if (strcmp (m_lpCmdLine, "-suis") == 0 || strcmp (m_lpCmdLine, "-euis") == 0 || strcmp (m_lpCmdLine, "-duis") == 0) { IntegrationSettings (); return FALSE; } if (IS_PORTABLE_MODE) { char szTmpFile [MY_MAX_PATH]; CString str = m_strAppPath; str += "Data"; CreateDirectory (str, NULL); if (0 == GetTempFileName (str, "fdm", 0, szTmpFile)) MessageBox (NULL, LS (L_NOWRITEACCESSTODATAFOLDER), vmsFdmAppMgr::getAppName (), MB_ICONWARNING); else DeleteFile (szTmpFile); } _SkinMgr.Initialize (); _IECatchMgr.ReadSettings (); _NOMgr.Initialize (); _IECMM.ReadState (); HRESULT hRes = OleInitialize (NULL); if (FAILED(hRes)) return FALSE; m_bCOMInited = TRUE; const tstring currentVersion = vmsFdmAppMgr::getVersion ()->m_fileVersion.ToString (); bool currentVersionFirstRun = currentVersion != _App.RecentVersionRun (); if (currentVersionFirstRun) _App.RecentVersionRun (currentVersion); vmsAppGlobalObjects::Create2 (currentVersionFirstRun); fsFDMCmdLineParser cmdline; cmdline.Parse (fsFDMCmdLineParser::Elevated); if (cmdline.isRunAsElevatedTasksProcessor ()) { RunAsElevatedTasksProcessor (cmdline); return FALSE; } if (cmdline.isNeedExit ()) return FALSE; m_bForceSilentSpecified = cmdline.is_ForceSilentSpecified (); if (cmdline.isNeedRegisterServer ()) { onNeedRegisterServer (); return FALSE; } else if (cmdline.isNeedUnregisterServer ()) { onNeedUnregisterServer (); return FALSE; } if (vmsWinSecurity::IsVistaOrHigher () && strncmp (m_lpCmdLine, "-nelvcheck", 10) && stricmp (m_lpCmdLine, "-autorun")) { if (vmsWinSecurity::IsProcessElevated ()) { WCHAR wsz [MAX_PATH] = L""; GetModuleFileNameW (NULL, wsz, MAX_PATH); std::wstring wstr = L"\""; wstr += wsz; wstr += L"\" -nelvcheck "; wstr += CT2WEX<> (m_lpCmdLine); _appMutex.CloseMutex (); STARTUPINFOW si = {0}; PROCESS_INFORMATION pi = {0}; si.cb = sizeof (si); if (vmsWinSecurity::RunAsDesktopUser (wsz, (LPWSTR)wstr.c_str (), NULL, si, pi)) return FALSE; _appMutex.Create (); } } cmdline.Parse (fsFDMCmdLineParser::Normal); if (CheckFdmStartedAlready (m_bForceSilentSpecified == FALSE)) return FALSE; if (!InitATL()) return FALSE; _App.StartCount (_App.StartCount () + 1); if (IS_PORTABLE_MODE && (_dwAppState & APPSTATE_PORTABLE_MODE_NOREG) == 0) Install_RegisterServer (); vmsFilesToDelete::Process (); if (bNeedLocalRegister) RegisterServer (FALSE); #ifdef _AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif CheckLocked (); _UpdateMgr.ReadSettings (); if (_UpdateMgr.IsStartUpdaterNeeded ()) { if (_UpdateMgr.StartUpdater ()) return FALSE; else ::MessageBox (NULL, LS (L_CANTFINDUPDATER), LS (L_ERR), MB_ICONERROR); } vmsFlvSniffInjector::o ().Enable (_App.FlvMonitoring_Enable () != FALSE); LoadHistory (); _Snds.ReadSettings (); if (!vmsBtSupport::isBtDllValid ()) { MessageBox (NULL, LS (L_INVALID_BT_MODULE), _T ("Free Download Manager"), MB_ICONERROR); return FALSE; } if (!_App.get_SettingsStore ()->GetProfileInt (_T ("State"), _T ("FfExtChecked"), FALSE)) { DWORD dwResult; CheckFirefoxExtension (&dwResult); if (!(dwResult & (1 << 1))) _App.get_SettingsStore ()->WriteProfileInt (_T ("State"), _T ("FfExtChecked"), TRUE); } CMainFrame* pFrame = NULL; fsnew1 (pFrame, CMainFrame); m_pMainWnd = pFrame; if (FALSE == pFrame->LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, NULL)) { return FALSE; } BOOL bHidden = _tcscmp (m_lpCmdLine, _T ("-autorun")) == 0; _App.View_ReadWndPlacement (pFrame, "MainFrm", bHidden ? fsAppSettings::RWPA_FORCE_SWHIDE_AND_KEEP_MINIMIZED_MAXIMIZED_STATE : fsAppSettings::RWPA_NONE); if (!bHidden) { if (_App.Prg_StartMinimized ()) { if (IsWindowVisible (pFrame->m_hWnd)) pFrame->ShowWindow (SW_MINIMIZE); } else { pFrame->UpdateWindow(); if (pFrame->IsWindowVisible ()) pFrame->SetForegroundWindow (); } } m_bStarting = FALSE; hRes = _Module.RegisterClassObjects (CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE); if (FAILED (hRes)) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, hRes, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION ); LocalFree( lpMsgBuf ); } m_bATLInited2 = SUCCEEDED (hRes); return TRUE; }
BOOL CWorkSpaceToolBarApp::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. CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_WORKSPTYPE, RUNTIME_CLASS(CWorkSpaceToolBarDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CWorkSpaceToolBarView)); AddDocTemplate(pDocTemplate); // create main MDI Frame window CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE; m_pMainWnd = pMainFrame; // 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; // The main window has been initialized, so show and update it. pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); return TRUE; }