IHolder::TrackResource メソッド (comsvcs.h)

リソースを追跡します。

構文

HRESULT TrackResource(
  [in] const RESID __MIDL__IHolder0003
);

パラメーター

[in] __MIDL__IHolder0003

追跡するリソースのハンドル。 TrackResource を呼び出す前に、リソース ディスペンサーによってこのリソースが既に作成されています。

戻り値

このメソッドは、次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
ResId は有効なリソース ハンドルではありません。
E_fail
メソッドが失敗しました。 リソースが追跡されていません。 原因として、呼び出し元のトランザクションが中止されている可能性があります。

注釈

一部のリソースはインベントリに保持されません。彼らは常にオンデマンドで製造されています。 Holder は、オブジェクトの有効期間の最後に残されたリソースを自動的に解放するメカニズムとしてのみ使用されます。

TrackResource は、 IHolder::UntrackResource を呼び出してリソースが解放されるまで、または TrackResource を呼び出したオブジェクトが解放されるまでリソースを追跡する必要があることをホルダーに通知します。この時点で、ディスペンサー マネージャーはリソースを自動的に解放します。

TrackResource がトランザクション オブジェクトから呼び出されると、Resource Dispenser の IDispenserDriver::EnlistResource メソッドが呼び出されます。 EnlistResource メソッドは、リソースをトランザクションに参加させることができます。または、リソースがトランザクションに対応せず、参加されていないことを示すS_FALSEを返すことができます。

このリソースは、次の両方が当てはまる場合に最終的に破棄されます。

  • リソース ディスペンサーは IHolder::UntrackResource を呼び出すか (コンポーネントの要求時に最も可能性が高い)、またはオブジェクトの有効期間が終了します。
  • リソースが参加したトランザクション (存在する場合) が実行されます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー comsvcs.h

こちらもご覧ください

IDispenserDriver

IDispenserManager

IHolder