SHGNO (Windows CE 5.0)
This enumeration defines the values used with the IShellFolder::GetDisplayNameOf and IShellFolder::SetNameOf methods.
Syntax
typedef enum tagSHGDN { SHGDN_NORMAL, SHGDN_INFOLDER, SHGDN_FOREDITING, SHGDN_FORADDRESSBAR, SHGDN_FORPARSING} SHGNO;
Elements
- SHGDN_NORMAL
Full name. The name is relative to the desktop computer and not to a specific folder. This value is used for generic display of the name of the specified file object or subfolder. - SHGDN_INFOLDER
Relative name. The name is relative to the folder that is processing the name. - SHGDN_FOREDITING
The name is used for in-place editing when the user renames the item. - SHGDN_FORADDRESSBAR
The name is displayed in an address bar combo box. - SHGDN_FORPARSING
The name is used for parsing. That is, it can be passed to IShellFolder::ParseDisplayName to recover the object's pointer to an item identifier list (PIDL). The form this name takes depends on the particular object.
Remarks
This enumeration consists of two groups of values. The first group — SHGDN_NORMAL and SHGDN_INFOLDER — specifies the name's type. The second group — SHGDN_FOREDITING, SHGDN_FORADDRESSBAR, and SHGDN_FORPARSING — consists of modifiers to the first group that specify name retrieval options.
If SHGDN_FORPARSING is set and SHGDN_INFOLDER is not set, IShellFolder::GetDisplayNameOf can accept a PIDL that contains more than an SHITEMID structure. Otherwise, only a single-level PIDL can be passed.
Although the parsing name returned by file system objects is the object's fully qualified path, virtual folders might use something quite different. For example, some virtual folders use a globally unique identifier (GUID) as the parsing name and return a string of the form "::{GUID}". To check whether the object is part of the file system, call IShellFolder::GetAttributesOf and see if the SFGAO_FILESYSTEM flag is set. If you are implementing IShellFolder::GetDisplayNameOf, you are encouraged to return parsed names that are as close to the display names as possible. This practice helps the end user to type or edit these names.
The numeric value of SHGDN_NORMAL is zero, so you cannot test for the presence of this bit. Consider SHGDN_NORMAL a default setting that is used if no other flag in that group is set.
Example
The following tables show an example of possible return values for five different flag options and three different item types.
The following table shows the flag options.
Number | Flags | Description |
---|---|---|
1 | SHGDN_NORMAL | SHGDN_FORPARSING | Returns the fully qualified parsing name. |
2 | SHGDN_INFOLDER | SHGDN_FORPARSING | Returns the parsing name relative to the parent folder. |
3 | SHGDN_INFOLDER | SHGDN_FOREDITING | Returns the editing name relative to the parent folder. |
4 | SHGDN_INFOLDER | Returns the display name relative to the parent folder. |
5 | SHGDN_NORMAL | Returns the display name relative to the desktop. |
The following table shows the sample item types.
Letter | Description |
---|---|
A | A printer named Laser on a computer called Mailroom. |
B | The file C:\Directory\File.txt (when file name extensions are hidden). |
The following table shows the display names, as they would be returned.
Number | A | B |
---|---|---|
1 | \\Mailroom\Laser | C:\Directory\File.txt |
2 | Laser | File.txt |
3 | Laser | File |
4 | Laser | File |
5 | Laser on Mailroom | File |
Remarks about examples:
- A1-A5: The display name of the remote printer changes depending on whether it is being shown relative to its parent. When shown relative to its parent, only the printer name is needed, but when shown outside its parent, both the printer name and computer name are needed.
- B3: File.txt presents only its base name for editing instead of its full name.
Requirements
OS Versions: Windows CE .NET 4.2 and later.
Header: Shobjidl.h, Shobjidl.idl.
See Also
Standard Shell Enumerations | IShellFolder | SHGetDesktopFolder
Send Feedback on this topic to the authors