CoUninitialize 関数 (combaseapi.h)
現在のスレッドの COM ライブラリを閉じ、スレッドによって読み込まれるすべての DLL をアンロードし、スレッドが保持するその他のリソースを解放し、スレッド上のすべての RPC 接続を強制的に閉じます。
構文
void CoUninitialize();
戻り値
なし
解説
スレッドは、CoInitialize 関数または CoInitializeEx 関数に対して行った正常な呼び出し (S_FALSEを返す呼び出しを含む) ごとに、CoUninitialize を 1 回呼び出す必要があります。 ライブラリを初期化した CoInitialize または CoInitializeEx 呼び出しに対応する CoUninitialize 呼び出しのみを閉じることができます。
OleInitialize の呼び出しは、OleUninitialize の呼び出しによってバランスを取る必要があります。 OleUninitialize 関数は内部的に CoUninitialize を呼び出すので、OleUninitialize を呼び出すアプリケーションでも CoUninitialize を呼び出す必要はありません。
CoUninitialize は、アプリケーションが メイン ウィンドウを非表示にし、メイン メッセージ ループを通過した後に COM ライブラリに対して最後に呼び出されたので、アプリケーションのシャットダウン時に呼び出す必要があります。 開いている会話が残っている場合、 CoUninitialize はモーダル メッセージ ループを開始し、この COM アプリケーションのコンテナーまたはサーバーから保留中のメッセージをディスパッチします。 CoUninitialize は、メッセージをディスパッチすることで、保留中のすべてのメッセージを受信する前にアプリケーションが終了しないようにします。 COM 以外のメッセージは破棄されます。
インプロセス サーバーの読み込みまたはアンロードの順序を制御する方法がないため、DllMain 関数から CoInitialize、CoInitializeEx、または CoUninitialize を呼び出さないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | combaseapi.h (Objbase.h を含む) |
Library | Ole32.lib |
[DLL] | Ole32.dll |