CoIncrementMTAUsage 関数 (combaseapi.h)
MTA スレッドが実行されていない場合でも、MTA サポートをアクティブに保ちます。
構文
HRESULT CoIncrementMTAUsage(
[out] CO_MTA_USAGE_COOKIE *pCookie
);
パラメーター
[out] pCookie
CoDecrementMTAUsage 関数の Cookie を受け取る PVOID 変数のアドレス。呼び出しが失敗した場合は NULL。
戻り値
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
注釈
CoIncrementMTAUsage 関数を使用すると、クライアントは MTA ワーカーを作成し、完了するまで待ってからプロセスを終了できます。
CoIncrementMTAUsage 関数を使用すると、MTA スレッド数が 0 になった場合でも、MTA サポートに関連するリソースがシステムによって解放されません。
成功したら、 CoDecrementMTAUsage を 1 回だけ呼び出します。 失敗した場合は、 CoDecrementMTAUsage 関数を 呼び出さないでください。
プロセスのシャットダウン中や dllmain 内で CoIncrementMTAUsage を 呼び出さないでください。 呼び出しの前に CoIncrementMTAUsage を呼び出して、シャットダウン プロセスを開始できます。
CoIncrementMTAUsage によって以前に返された Cookie が CoDecrementMTAUsage に渡されている限り、あるスレッドから CoIncrementMTAUsage を呼び出し、別のスレッドから CoDecrementMTAUsage を呼び出すことができます。
MTA がまだ存在しない場合は、CoIncrementMTAUsage によって MTA が作成されます。 CoIncrementMTAUsage は、現在のスレッドがまだアパートメント内にない場合に、現在のスレッドを MTA に配置します
CoIncrementMTAUsage は、次の場合に使用できます。
- すべてのワーカー スレッドがアイドル状態の場合でも、サーバーで MTA を維持する必要があります。
- API 実装では COM を初期化する必要がありますが、現在のスレッドが既にアパートメント内にあり、現在のスレッドが特定のアパートメントに入る必要があるかどうかに関する情報はありません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | combaseapi.h |
Library | Ole32.lib |
[DLL] | Ole32.dll |