IShellFolder::GetDisplayNameOf メソッド (shobjidl_core.h)

指定したファイル オブジェクトまたはサブフォルダーの表示名を取得します。

構文

HRESULT GetDisplayNameOf(
  [in]  PCUITEMID_CHILD pidl,
  [in]  SHGDNF          uFlags,
  [out] STRRET          *pName
);

パラメーター

[in] pidl

種類: PCUITEMID_CHILD

親フォルダーを基準にしてファイル オブジェクトまたはサブフォルダーを一意に識別する PIDL。

[in] uFlags

種類: SHGDNF

返される表示名の種類を要求するために使用されるフラグ。 使用可能な値の一覧については、 SHGDNF 列挙型に関するページを参照してください。

[out] pName

型: STRRET*

このメソッドが戻るときに、 には、表示名を返す STRRET 構造体へのポインターが含まれます。 この構造体で返される名前の型は、要求された型にすることができますが、Shell フォルダーは別の型を返す場合があります。

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

注釈

この関数によって割り当てられたリソースを解放するのは呼び出し元の責任です。

通常、 pidl は親フォルダーに含まれる項目のみを参照できます。 PIDL は単一レベルで、1 つの SHITEMID 構造体の後に終端ゼロが続く必要があります。 親フォルダーから 1 レベルより深いアイテムの表示名を取得する場合は、 SHBindToParent を使用してアイテムの直接の親フォルダーにバインドし、アイテムの単一レベルの PIDL を IShellFolder::GetDisplayNameOf に渡します。

また、 SHGDN_FORPARSING フラグが uFlags で設定されていて 、SHGDN_INFOLDER フラグが設定されていない場合、 pidl は名前空間階層内の親フォルダーの下の任意のレベルのオブジェクトを参照できます。 一度に 、pidl は親フォルダーを基準とした複数レベルの PIDL であり、複数 の SHITEMID 構造体を 含む場合があります。 ただし、これはサポートされなくなり、 pidl は 1 つの子項目のみを参照するようになりました。

pName が指す構造体から表示名を取得する最も簡単な方法は、StrRetToBuf または StrRetToStr に渡すことです。 これらの関数は STRRET 構造体を受け取り、名前を返します。 構造体の uType メンバーを調べて、適切なメンバーから名前を取得することもできます。

uFlags で指定されたフラグは、名前の使用目的に関するヒントです。 IShellFolder が要求された形式の名前を返す保証はありません。 そのフォームが使用できない場合は、別のフォームが返される可能性があります。 特に、 SHGDN_FORPARSING フラグによって返される名前が IShellFolder::P arseDisplayName によって正常に解析される保証はありません。 また、 GetDisplayNameOf/ParseDisplayName ラウンド トリップで元の識別子リストが返されない可能性があるフラグの組み合わせもあります。 この状況は例外的ですが、確認チェック必要があります。

メモuFlagsSHGDN_FORPARSING フラグが設定されている場合に返される解析名は、必ずしも通常のテキスト文字列ではありません。 [マイ コンピューター] などの仮想フォルダーは、フォルダー オブジェクトの GUID を含む文字列を "::{GUID}" という形式で返す場合があります。 IShellFolder::GetDisplayNameOf を実装する開発者は、多くの場合、エンド ユーザーがこれらの名前を入力または編集する必要があるため、表示名にできるだけ近い解析名を返すことが推奨されます。
 

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl_core.h (Shobjidl.h を含む)
[DLL] Shell32.dll (バージョン 4.0 以降)

こちらもご覧ください

IShellFolder

IShellFolder2