_SHGDNF列挙 (shobjidl_core.h)
IShellFolder::GetDisplayNameOf メソッドと IShellFolder::SetNameOf メソッドで使用される値を定義して、これらのメソッドで使用されるファイル名またはフォルダー名の種類を指定します。
構文
typedef enum _SHGDNF {
SHGDN_NORMAL = 0,
SHGDN_INFOLDER = 0x1,
SHGDN_FOREDITING = 0x1000,
SHGDN_FORADDRESSBAR = 0x4000,
SHGDN_FORPARSING = 0x8000
} ;
定数
SHGDN_NORMAL 値: 0 別のフラグと組み合わされていない場合は、アイテムを識別する親相対名を返します。ユーザーへの表示に適しています。 多くの場合、この名前にはファイル名拡張子などの追加情報が含まれていないので、一意である必要はありません。 この名前には、アイテムを含むフォルダーを識別する情報が含まれる場合があります。 たとえば、このフラグを設定すると、 IShellFolder::GetDisplayNameOf が特定のユーザーのフォルダーの文字列 "username ( on Machine)" を返す可能性があります。 |
SHGDN_INFOLDER 値: 0x1 名前は、要求が行われたフォルダーを基準にしています。 これは、フォルダーのコンテキストで使用した場合にユーザーに表示される名前です。 たとえば、ビューおよびフォルダーのアドレス バー パス セグメントで使用されます。 この名前には、特定のユーザーのフォルダーの "username (マシン上) " ではなく "username" など、あいまいさの解消情報を含めないようにしてください。 このフラグは、 SHGDN_FORPARSINGとSHGDN_FOREDITING と組み合わせて使用 します。 |
SHGDN_FOREDITING 値: 0x1000 この名前は、ユーザーがアイテムの名前を変更するときにインプレース編集に使用されます。 |
SHGDN_FORADDRESSBAR 値: 0x4000 名前は、アドレス バーのコンボ ボックスに表示されます。 |
SHGDN_FORPARSING 値: 0x8000 名前は解析に使用されます。 つまり、 IShellFolder::P arseDisplayName に渡して、オブジェクトの PIDL を回復できます。 この名前の形式は、特定のオブジェクトによって異なります。 SHGDN_FORPARSING単独で使用する場合、名前はデスクトップに対して相対的です。 SHGDN_INFOLDERと組み合わせると、名前は要求が行われたフォルダーに対して相対的になります。 |
注釈
SHGDNF 型は、次に示すように Shobjidl.h で定義されています。
typedef DWORD SHGDNF;
この列挙は、値の 2 つのグループで構成されます。 最初のグループ (SHGDN_NORMALとSHGDN_INFOLDER) は、名前の型を指定します。 2 番目のグループ (SHGDN_FOREDITING、SHGDN_FORADDRESSBAR、SHGDN_FORPARSING) は、名前取得オプションを指定する最初のグループの修飾子で構成されます。
SHGDN_FORPARSINGが設定されていて、SHGDN_INFOLDERが設定されていない場合、 IShellFolder::GetDisplayNameOf は 、SHITEMID 構造体を含む PIDL を受け入れることができます。 それ以外の場合は、単一レベルの PIDL のみを渡すことができます。
メモ ファイル システム オブジェクトによって返される解析名はオブジェクトの完全修飾パスですが、仮想フォルダーではまったく異なるものが使用される場合があります。 たとえば、一部の仮想フォルダーでは、解析名として GUID が使用され、"::{GUID}" という形式の文字列が返されます。 オブジェクトがファイル システムの一部であるかどうかをチェックするには、IShellFolder::GetAttributesOf を呼び出して、SFGAO_FILESYSTEM フラグが設定されているかどうかを確認します。 IShellFolder::GetDisplayNameOf を実装する開発者は、エンド ユーザーが多くの場合、これらの名前を入力または編集する必要があるため、表示名にできるだけ近い解析名を返すようにお勧めします。
SHGDN_NORMALの数値は 0 であるため、このビットの有無をテストすることはできません。 SHGDN_NORMAL、そのグループ内の他のフラグが設定されていない場合に使用される既定の設定を検討してください。
例
次の表は、5 つの異なるフラグ オプションと 3 つの異なる項目の種類に対して可能な戻り値の例を示しています。
これらはフラグ オプションです。
Number | Flags | 説明 |
---|---|---|
1 | SHGDN_FORPARSING | 完全修飾解析名を返します。 |
2 | SHGDN_INFOLDER |SHGDN_FORPARSING | 親フォルダーを基準にした解析名を返します。 |
3 | SHGDN_INFOLDER |SHGDN_FOREDITING | 親フォルダーを基準とした編集名を返します。 |
4 | SHGDN_INFOLDER | 親フォルダーを基準とした表示名を返します。 |
5 | SHGDN_NORMAL | 特定のフォルダーではなく、デスクトップに対する相対的な表示名を返します。 |
項目の種類の例を次に示します。
レター | 説明 |
---|---|
A | ボリューム ラベルがC_DRIVEされているローカル コンピューター上の C: ドライブ。 |
B | Mailroom というコンピューター上の Laser という名前のプリンター。 |
C | ファイル C:\Directory\File.txt (ファイル名拡張子が非表示の場合)。 |
次の表では、表示名が返される場合の表示名について説明します。
A | B | C | |
---|---|---|---|
1 | C:\ | \\Mailroom\Laser | C:\Directory\File.txt |
2 | C:\ | レーザー | File.txt |
3 | C_DRIVE | レーザー | ファイル |
4 | C_DRIVE (C:) | レーザー | ファイル |
5 | C_DRIVE (C:) | メールルーム上のレーザー | ファイル |
例に関する解説
- A3: C: ドライブには、"C_DRIVE (C:)" という文字列全体ではなく、編集用のボリューム名が表示されます。
- B1-B5: リモート・プリンターの表示名は、それが親に対して相対的に表示されているかどうかによって変わります。 親に対して相対的に表示される場合はプリンター名のみが必要ですが、親の外部に表示されると、プリンター名とコンピューター名の両方が表示されます。
- C3: File.txt は、完全な名前ではなく、編集用のベース名のみを表示します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP、Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | shobjidl_core.h (Shobjidl.h を含む) |