次の方法で共有


IROTData::GetComparisonData メソッド (objidl.h)

モニカーから、別のモニカーに対して等しいかどうかをモニカーをテストするために使用できるデータを取得します。

構文

HRESULT GetComparisonData(
  [out] byte  *pbData,
  [in]  ULONG cbMax,
  [out] ULONG *pcbData
);

パラメーター

[out] pbData

比較データを受け取るバッファーへのポインター。

[in] cbMax

pbData で指定されたバッファーの長さ。

[out] pcbData

比較データの長さを受け取る変数へのポインター。

戻り値

このメソッドは、E_OUTOFMEMORYおよびS_OK標準の戻り値を返すことができます。

注釈

GetComparisonData メソッドは、主に実行中のオブジェクト テーブル (ROT) によって呼び出されます。 メソッドによって返される比較データは、別のモニカーによって返される比較データに対してバイナリの等価性をテストします。 pcbData パラメーターを使用すると、ROT は取得したデータの末尾を見つけることができます。

実装者へのメモ

返される比較データは、モニカーを一意に識別する必要があり、できるだけ短いままである必要があります。 比較データには、モニカーの内部状態に関する情報とモニカーの CLSID が含まれている必要があります。 たとえば、ファイル モニカーの比較データには、モニカー内に格納されているパス名と、ファイル モニカー実装の CLSID が含まれます。 これにより、類似した状態情報を格納するが、異なるモニカー クラスのインスタンスである 2 つのモニカーを区別できます。

モニカーの比較データの長さは 2048 バイトを超えることはできません。 複合モニカーの場合、すべてのコンポーネントの比較データの合計長は 2048 バイトを超えることはできません。そのため、モニカーを複合モニカー内のコンポーネントにできる場合、返される比較データは 2048 バイト未満である必要があります。

比較データが cbMax パラメーターで指定された値より長い場合は、エラーを返す必要があります。 複合モニカーのコンポーネントで GetComparisonData が呼び出されると、 cbMax の値が順番にモニカーごとに小さくなります。

要件

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

こちらもご覧ください

IROTData