Windows オペレーティング システムでは、同じアプリケーションの複数のコピー、つまり "インスタンス" を実行できます。 WinMain は、アプリケーションの新しいインスタンスが起動されるたびに、InitInstance を呼び出します。
MFC アプリケーション ウィザードが作成する InitInstance の標準実装では、以下の操作を行います。
基本となる動作は、ドキュメント テンプレートの作成です。このテンプレートから、ドキュメント、ビュー、フレーム ウィンドウが作成されます。 この過程の詳細については、「ドキュメント テンプレートの作成」を参照してください。
.ini ファイルまたは Windows のレジストリ情報から標準のファイル オプション (最近使ったファイルの名前など) を読み込みます。
1 つ以上のドキュメント テンプレートを登録します。
MDI アプリケーションの場合は、メイン フレーム ウィンドウを作成します。
コマンド ラインを解析して、コマンド ラインで指定されたドキュメントを開くか、新しい空のドキュメントを開きます。
独自の初期化コードを追加することも、ウィザードの書いたコードを変更して使用することもできます。
注意
MFC アプリケーションは、シングル スレッド アパートメント (STA: Single-Threaded Apartment) として初期化する必要があります。 InitInstance のオーバーライドで CoInitializeEx を呼び出す場合、COINIT_MULTITHREADED ではなく COINIT_APARTMENTTHREADED を指定してください。 詳細は、「prb を参照してください。MFC アプリケーションがマルチ スレッド アパートメント (828643) でアプリケーションを初期化するときを応答を停止https://support.microsoft.com/default.aspx?scid=kb;en-us;828643。