Constants
All constants are accessible through the cbxconstants unit.
Drag/Drop Effects
Drag Data (Content) Formats
Standard CF_HDROP format (clipboard format Id 15).
Elements of the DragData collection with this type contain Unicode file paths.
Standard CF_UNICODETEXT format (clipboard format Id 13).
Array of Windows Shell Id lists.
An element of the DragData collection with this type contains a PIDL. If the PIDL can be resolved to a filename, the corresponding field will also be non-empty.
A file name in system-default (8-bit CP_ACP or UTF8) format.
A URL in system-default (8-bit CP_ACP or UTF8) format.
Files with binary data included.
Each element of the DragData collection with this type contains a filename with data.
Files with binary data included.
Each element of the DragData collection with this type contains a filename with data.
Drag Operation Types
Key State Flags
Namespace Locations
No location.
Used for extensions that implement "file as folder" feature and that may appear anywhere within the Windows Shell namespace.
Add or Remove Programs Windows Shell folder or Programs and Features (Windows 10 and later).
Corresponds to FOLDERID_ChangeRemovePrograms well-known ID.
Control Panel folder.
Corresponds to FOLDERID_ControlPanelFolder well-known ID.
Desktop folder and Desktop itself.
Corresponds to FOLDERID_Desktop well-known ID.
My Computer Windows Shell folder.
Corresponds to FOLDERID_ComputerFolder well-known ID.
Network Windows Shell folder.
Corresponds to FOLDERID_NetworkFolder well-known ID.
Network Shortcuts folder.
Corresponds to FOLDERID_NetHood well-known ID.
Printers and Faxes folder or Devices and Printers (Windows 10 or later).
Corresponds to FOLDERID_PrintersFolder well-known ID.
User's root folder.
Corresponds to FOLDERID_UsersFiles well-known ID.
Libraries folder.
Corresponds to FOLDERID_UsersLibraries well-known ID.
Shell item comparison options
All item properties should be compared
Compare all the information of the items.
For instance, if the two items are files, the folder should compare their names, sizes, file times, attributes, and any other information in the items.
Only item internal names should be compared.
When comparing by name, compare the system names but not the display names. When this flag is passed, the two items are compared by whatever criteria are the most efficient, as long as comparison is performed consistently.
This flag is useful when comparing for equality or when the results of the sort are not displayed to the user. This flag cannot be combined with other flags.
Shell Notification Types
The name of a nonfolder item has changed.
Both PIDL/Path and NewPIDL/NewPath parameters are valid.
Renaming of a folder is indicated by the CHANGE_NOTIFY_RENAME_FOLDER flag.
A nonfolder item has been created.
Either PIDL, Path, or both parameters are valid.
Creation of a folder is indicated by the CHANGE_NOTIFY_CREATE_FOLDER flag.
A nonfolder item has been deleted.
Either PIDL, Path, or both parameters are valid.
Deletion of a folder is indicated by the CHANGE_NOTIFY_DELETE_FOLDER flag.
A folder has been created.
Either PIDL, Path, or both parameters are valid.
A folder has been removed.
Either PIDL, Path, or both parameters are valid.
The attributes of an item or folder have changed
Either PIDL, Path, or both parameters are valid.
The contents of an existing folder have changed, but the folder still exists and has not been renamed.
Either PIDL, Path, or both parameters are valid.
An existing item (a folder or a non-folder item) has changed, but the item still exists and has not been renamed.
Either PIDL, Path, or both parameters are valid.
The name of a folder has changed.
Both PIDL/Path and NewPIDL/NewPath parameters are valid.
Types of External Update
A new item or folder is created.
This flag must be exclusive if used.
An item or folder has been changed.
For folders, use this flag to tell the Windows Shell that the folder's contents have been changed.
An item was renamed; its name and possibly its Id have been changed.
This flag must be exclusive if used.
Flags associated with ShellMenu items
The command is a separator.
In Windows 11, a separator is properly displayed in the Classic menu, but the new context menu of Windows 11 ignores this flag and does not properly display separator items.
Item Property Types
Index of icon.
The index is used to choose the icon that will be displayed. The set of icons is defined in the property description (see AddIconColumn for details).
RefreshView Values
Refresh views with the item and, if the item is a folder, views with the item's direct children.
Refresh views with the item and, if the item is a folder, views with the item's children and grandchildren (recursively).
Shell Item Attributes
Shortcuts can be created for the specified items.
If a namespace extension returns this attribute, a Create Shortcut entry with a default handler is added to the shortcut menu that is displayed during drag-and-drop operations. The extension can also implement its own handler for the link verb in place of the default. If the extension does so, it is responsible for creating the shortcut. A Create Shortcut item is also added to Windows File Explorer's File menu and to normal shortcut menus.
The specified items can be bound to an IStorage object.
Should not be changed if item content is used.
The specified items are not fully present and recalled on open or access.
The specified items are encrypted and might require special presentation.
Accessing the item (through IStream or other storage interfaces) is expected to be a slow operation.
Applications should avoid accessing items flagged with SFGAO_ISSLOW.
The specified items are shown as dimmed and unavailable to the user.
The specified items are read-only.
In the case of folders, this means that new items cannot be created in those folders. This should not be confused with the behavior specified by the file Read-Only attribute.
The item is hidden and should not be displayed unless the Show hidden files and folders option is enabled in Folder Settings.
ShellItem property: IsHidden.
The items are non-enumerated items and should be hidden.
Should not be changed.
The items contain new content, as defined by the particular application.
Indicates that the item has a stream associated with it.
Should not be changed if item content is used. Default for items: True.
Children of this item are accessible through IStream or IStorage. Those children are flagged with SFGAO_STORAGE or SFGAO_STREAM.
Should not be changed if item content is used.
When specified as input, SFGAO_VALIDATE instructs the folder to validate that the items contained in a folder or Windows Shell item array exist.
Should not be changed.
The specified items are on removable media or are themselves removable devices.
The specified items can be hosted inside a web browser or Explorer frame.
To be used with non-folder items.
The specified folders are either file system folders or contain at least one descendant (child, grandchild, or later) that is a file system (SFGAO_FILESYSTEM) folder.
This attribute is added automatically to folders that represent filesystem objects.
If the root folder is expected to contain filesystem items, add this flag to the Attributes property of the ShellFolder component.
The specified items are folders.
Should not be changed. In the ShellFolder component, this flag is added or removed automatically depending on the value of the IsFolder parameter of the ListItem method.
The specified folders or files are part of the file system (that is, they are files, directories, or root directories).
The parsed names of the items can be assumed to be valid Win32 file system paths. These paths can be either UNC or drive-letter based.
This attribute is added automatically to folders and items that represent filesystem objects.
The specified folders have subfolders.
The SFGAO_HASSUBFOLDER attribute is only advisory and might be returned by Windows Shell folder implementations even if they do not contain subfolders. Note, however, that the converse - failing to return SFGAO_HASSUBFOLDER - definitively states that the folder objects do not have subfolders. Returning SFGAO_HASSUBFOLDER is recommended whenever a significant amount of time is required to determine whether any subfolders exist. For example, the Windows Shell always returns SFGAO_HASSUBFOLDER when a folder is located on a network drive.
Already handled, but may be changed if needed (when the application can determine for sure that the folder is empty).
Default value for the namespace root folder.
This attribute is a combination of SFGAO_FOLDER, SFGAO_HASSUBFOLDER, SFGAO_STREAM, SFGAO_STORAGEANCESTOR, SFGAO_DROPTARGET, SFGAO_STORAGE, and is used to initialize the value of the Attributes property of ShellFolder.
Shell Item Enumeration Flags
Include items that are folders in the enumeration.
Do not include folders when the flag is not set.
Include items that are not folders in the enumeration.
Do not include non-folder items when the flag is not set.
Include items that are hidden but not system in the enumeration.
Do not include hidden system items when the flag is set.
Include items that are both system and hidden in the enumeration.
Do not include just hidden (non-system) system items when the flag is set.
Shell Column Flags
The value is displayed as a string.
Use with a dynamic column to specify the type of its data.
The value is displayed as an integer.
Use with a dynamic column to specify the type of its data.
The value is displayed as a date.
Use with a dynamic column to specify the type of its data.
The column should be visible by default in Details view.
If not set, the column will not be visible, which may be confusing for users.
When sorting by contents of this column, do not sort subfolders separately from non-folder items.
Property Description View Flags
Show this property as the beginning of the next collection of properties in the view.
Fill the remainder of the view area with the content of this property.
Hide the label of this property if the view normally shows the label.
Error Codes
Cannot load native proxy DLL.
The attempted location can be found in the error message.
The major version of the proxy DLL doesn't match the major version of the .NET assembly.
Installation of the native proxy DLL failed.
The specific error code returned by the OS can be found in the error message.
Uninstallation of the native proxy DLL failed.
The specific error code returned by the OS can be found in the error message.
Initialization of the native proxy DLL failed.
The specific error code returned by the OS can be found in the error message.
The current license and the ID in the native proxy DLL name don't match.
The menu item with the given verb is a subitem. Only one level of subitems is supported.
The menu item with the given verb is a parent of some other item or items.