Partilhar via


CWinApp::InitInstance

O Windows permite que várias cópias do mesmo programa para executar ao mesmo time.

virtual BOOL InitInstance( );

Valor de retorno

Diferente de zero se a inicialização é bem-sucedida; caso contrário, 0.

Comentários

Inicialização do aplicativo é dividida conceitualmente em duas seções: inicialização de aplicativo único que é feita pela primeira vez o execuções de programa e inicialização de instância que é executado cada vez uma cópia do programa é executado, incluindo a primeira vez.Implementação da estrutura de WinMain chama esta função.

Substituir InitInstance para inicializar cada nova instância do seu aplicativo executando sob Windows. Normalmente, substituir InitInstance para construir sua janela principal do objeto e conjunto o CWinThread::m_pMainWnd membro de dados para apontar para essa janela. Para obter mais informações sobre substituição a função de membro, consulte CWinApp: Classe de aplicativo.

Observação:

Aplicativos MFC devem ser inicializados sistema autônomo um único thread apartment (STA).Se você chamar CoInitializeEx in your InitInstance Substituir, especificar COINIT_APARTMENTTHREADED (em vez de COINIT_MULTITHREADED). Para obter mais informações, consulte PRB: Aplicativo MFC pára de responder quando você inicializar o aplicativo sistema autônomo um multithreaded apartment (828643) em http://suporte.Microsoft.com/padrão.aspx?scid=kb;en-US;828643.

Exemplo

// AppWizard implements the InitInstance overridable function 
// according to options you select.  For example, the multiple document
// interface (MDI) option was chosen for the AppWizard code created
// below. You can add other per-instance initializations to the code
// created by AppWizard.

BOOL CMFCListViewApp::InitInstance()
{
   AfxSetAmbientActCtx(FALSE);
   // Remainder of function definition omitted.

   CWinApp::InitInstance();

   // Initialize OLE libraries
   if (!AfxOleInit())
   {
      AfxMessageBox(_T("OleInit failed."));
      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
   // 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_MFCListViewTYPE,
      RUNTIME_CLASS(CMFCListViewDoc),
      RUNTIME_CLASS(CChildFrame), // custom MDI child frame
      RUNTIME_CLASS(CMyListView));
   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(m_nCmdShow);
   pMainFrame->UpdateWindow();

   return TRUE;
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classes CWinApp

Gráfico de hierarquia

Outros recursos

Membros de CWinApp