Win32 API 日本語リファレンス
ホームUI.Shell › IIdentityName

IIdentityName

COM
IID7d903fca-d6f9-4810-8332-946c0177e247継承元IRelatedItem自前メソッド開始 vtbl5

公式ドキュメント

2つのアイテムが同一かどうかを比較するためのメソッドを公開します。

解説(Remarks)

このインターフェイスは、継承元である IRelatedItem インターフェイスのメソッドのみを提供します。

検索結果のように仮想的な場所にアイテムを表示するシェルデータソースは、通常、アイテムの実際の場所を検出する(つまり、あるファイルを含むフォルダーを見つける)ためのハンドラーとして、このインターフェイスを実装します。たとえば、このインターフェイスは Windows エクスプローラーの ファイルの場所を開く コマンドの実装に使用されます。ユーザーが検索結果内のファイルを右クリックし、ファイルの場所を開く を選択すると、このコマンドは IIdentityName を使用して本来のアイテムを取得し、そのアイテムの親を開く(そこはユーザーが既にいる場所です)のではなく、その親(ファイルフォルダー)でブラウザーを開きます。

いくつかのコントロール(タスクバー上の スタート ボタンや名前空間コントロール)は、IIdentityName を使用して元のアイテムを取得し、アイテムの重複を回避します。

このインターフェイスは、エイリアス化された ID リスト(ITEMIDLIST 型)を扱う際に役立ちます。これは次の2つのリストを使って説明できます。

  1. [computer][c:][users][pat][desktop][myfile.txt]。これはユーザーのデスクトップ上にあるファイルで、Windows Vista でファイルシステムを扱う IShellFolder 実装によって処理されます。
  2. [desktop][myfile.txt]。デスクトップの背後にある IShellFolder 実装は、ユーザーのデスクトップ上のファイル、ユーザーのデスクトップ全体、および ごみ箱 のような一部の特殊アイテムを表示します。IID IID_IIdentityName を指定して IShellFolder::BindToObject を通じてバインドするよう要求されると、この IShellFolder は基になるアイテム、つまり上記のファイルフォルダーアイテムを返します。
注意 このハンドラーのインスタンスを取得するには、IID_IIdentityItem を指定して IShellFolder::BindToObject を使用するか、BHID_SFObject を指定して IShellItem::BindToHandler を使用します。

メソッド 0

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IIdentityName "{7D903FCA-D6F9-4810-8332-946C0177E247}"
#usecom global IIdentityName IID_IIdentityName "{}"
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。