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 ラウンド トリップで元の識別子リストが返されない可能性があるフラグの組み合わせもあります。 この状況は例外的ですが、確認チェック必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shobjidl_core.h (Shobjidl.h を含む) |
[DLL] | Shell32.dll (バージョン 4.0 以降) |