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 関数から CoInitializeCoInitializeEx、または CoUninitialize を呼び出さないでください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー combaseapi.h (Objbase.h を含む)
Library Ole32.lib
[DLL] Ole32.dll

こちらもご覧ください

CoInitialize

CoInitializeEx

OleUninitialize