Constants
All constants are accessible through the callback.CBFSShell.Constants class.
The drop target does not accept the data
The data from the drag source is copied to the drop target.
The data from the drag source is moved to the drop target.
The data from the drag source is linked to the drop target.
Standard CF_HDROP format (clipboard format Id 15).
Elements of the DragData collection with this type contain Unicode file paths.
Standard CF_BITMAP format (clipboard format Id 2).
Standard CF_TEXT format (clipboard format Id 1).
Standard CF_UNICODETEXT format (clipboard format Id 13).
Text in RTF format
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 file name in Unicode (UTF16) format
A URL in system-default (8-bit CP_ACP or UTF8) format.
A URL in Unicode (UTF16) 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.
Cursor entered the folder
Cursor is moving over the folder
Cursor is leaving the folder
A drag operation has been initiated in the folder.
Left mouse button
Right mouse button
Middle mouse button
Shift keyboard key
Control keyboard key
Alt keyboard key
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.
Fonts folder.
Corresponds to FOLDERID_Fonts 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.
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.
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.
The default value of the Notifications property
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 or folder has been deleted.
The attributes of an item or a folder have been updated.
An item was renamed; its name and possibly its Id have been changed.
This flag must be exclusive if used.
No command flags are set
A split button is displayed.
The command is a separator.
A UAC shield is displayed.
The item is a switch.
Boolean
64-bit signed integer
Date
Text string
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).
Do not refresh anything
Refresh the item
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).
The specified items can be copied.
The specified items can be moved.
Shortcuts can be created for the specified items.
The specified items can be bound to an IStorage object.
Should not be changed if item content is used.
The specified items can be renamed.
The specified items can be deleted.
The specified items have property sheets.
The specified items are drop targets.
The specified items are not fully present and recalled on open or access.
The specified items are system items.
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 shortcuts.
The specified objects are shared.
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 are compressed.
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.
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.
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.
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.
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.
Will be slow to compute. Perform on a background thread.
Not displayed in the UI.
When sorting by contents of this column, do not sort subfolders separately from non-folder items.
Can't resize the column.
The width is the same in all dpi.
Fixed width and height ratio.
Grouping is disabled for this column.
Content of the column cell should be centered.
Content of the column cell should be aligned to the right.
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.
The content of the column cell can be wrapped to the next row.
An item with given ID cannot be found.
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.
End of data stream has been reached and no data could be read.
Proxy DLL not installed properly.
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.
Writing to the Windows registry failed.
This Menu instance has already been started.
A menu item with the same verb is already registered.
No menu items have been registered.
A parent with the given verb has not been found.
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.
The passed parameter was not valid.
The provided buffer is too small to accommodate all the data that must be placed in it.
Drag/Drop Effects
DROP_EFFECT_NONE
Value: 0x00000000
DROP_EFFECT_COPY
Value: 0x00000001
DROP_EFFECT_MOVE
Value: 0x00000002
DROP_EFFECT_LINK
Value: 0x00000004
Drag Data (Content) Formats
DATA_FORMAT_CF_HDROP
Value: "CF_HDROP"
DATA_FORMAT_CF_BITMAP
Value: "CF_BITMAP"
DATA_FORMAT_CF_TEXT
Value: "CF_TEXT"
DATA_FORMAT_CF_UNICODETEXT
Value: "CF_UNICODETEXT"
DATA_FORMAT_CF_RTF
Value: "Rich Text Format"
DATA_FORMAT_CFSTR_SHELLIDLIST
Value: "Shell IDList Array"
DATA_FORMAT_CFSTR_FILENAMEA
Value: "FileName"
DATA_FORMAT_CFSTR_FILENAMEW
Value: "FileNameW"
DATA_FORMAT_CFSTR_INETURLA
Value: "UniformResourceLocator"
DATA_FORMAT_CFSTR_INETURLW
Value: "UniformResourceLocatorW"
DATA_FORMAT_CFSTR_FILEDESCRIPTORA
Value: "FileGroupDescriptor"
DATA_FORMAT_CFSTR_FILEDESCRIPTORW
Value: "FileGroupDescriptorW"
Drag Operation Types
DRAG_TYPE_ENTER
Value: 0
DRAG_TYPE_OVER
Value: 1
DRAG_TYPE_LEAVE
Value: 2
DRAG_TYPE_START
Value: 5
Key State Flags
KEY_STATE_MK_LBUTTON
Value: 0x00000001
KEY_STATE_MK_RBUTTON
Value: 0x00000002
KEY_STATE_MK_MBUTTON
Value: 0x00000010
KEY_STATE_MK_SHIFT
Value: 0x00000004
KEY_STATE_MK_CONTROL
Value: 0x00000008
KEY_STATE_MK_ALT
Value: 0x00000020
Namespace Locations
NS_LOCATION_NONE
Value: ""
NS_LOCATION_COMMONPLACES
Value: "CommonPlaces"
NS_LOCATION_CONTROLPANEL
Value: "ControlPanel"
NS_LOCATION_DESKTOP
Value: "Desktop"
NS_LOCATION_FONTS
Value: "FontsFolder"
NS_LOCATION_MYCOMPUTER
Value: "MyComputer"
NS_LOCATION_NETWORK_NEIGHBORHOOD
Value: "NetworkNeighborhood"
NS_LOCATION_ENTIRE_NETWORK
Value: "NetworkNeighborhood\\EntireNetwork"
NS_LOCATION_PRINTERS_AND_FAXES
Value: "PrintersAndFaxes"
NS_LOCATION_USERS_FILES
Value: "UsersFiles"
NS_LOCATION_USERS_LIBRARIES
Value: "UsersLibraries"
Shell item comparison options
ICO_ALLFIELDS
Value: 0x01
ICO_CANONICALONLY
Value: 0x02
Shell Notification Types
CHANGE_NOTIFY_RENAME
Value: 0x00000001
CHANGE_NOTIFY_CREATE
Value: 0x00000002
CHANGE_NOTIFY_DELETE
Value: 0x00000004
CHANGE_NOTIFY_CREATE_FOLDER
Value: 0x00000008
CHANGE_NOTIFY_DELETE_FOLDER
Value: 0x00000010
CHANGE_NOTIFY_ATTRIBUTES
Value: 0x00000800
CHANGE_NOTIFY_UPDATE_FOLDER
Value: 0x00001000
CHANGE_NOTIFY_UPDATE
Value: 0x00002000
CHANGE_NOTIFY_RENAME_FOLDER
Value: 0x00020000
CHANGE_NOTIFY_DEFAULT
Value: 0x0002001F
Types of External Update
UPDATE_TYPE_CREATE
Value: 0x00000001
UPDATE_TYPE_CHANGE
Value: 0x00000002
UPDATE_TYPE_DELETE
Value: 0x00000004
UPDATE_TYPE_ATTRIBUTES
Value: 0x00000008
UPDATE_TYPE_RENAME
Value: 0x00000010
Flags associated with ShellMenu items
CMF_DEFAULT
Value: 0x00
CMF_HASSPLITBUTTON
Value: 0x02
CMF_ISSEPARATOR
Value: 0x08
CMF_HASLUASHIELD
Value: 0x0010
CMF_TOGGLEABLE
Value: 0x0100
Item Property Types
PROP_TYPE_BOOL
Value: 1
PROP_TYPE_LONG
Value: 2
PROP_TYPE_DATE
Value: 3
PROP_TYPE_STRING
Value: 4
PROP_TYPE_ICON
Value: 5
RefreshView Values
REFRESH_VIEW_NO_REFRESH
Value: 0
REFRESH_VIEW_ITEM
Value: 1
REFRESH_VIEW_CHILDREN
Value: 2
REFRESH_VIEW_GRANDCHILDREN
Value: 3
Shell Item Attributes
SFGAO_CANCOPY
Value: 0x00000001
SFGAO_CANMOVE
Value: 0x00000002
SFGAO_CANLINK
Value: 0x00000004
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.
SFGAO_STORAGE
Value: 0x00000008
SFGAO_CANRENAME
Value: 0x00000010
SFGAO_CANDELETE
Value: 0x00000020
SFGAO_HASPROPSHEET
Value: 0x00000040
SFGAO_DROPTARGET
Value: 0x00000100
SFGAO_PLACEHOLDER
Value: 0x00000800
SFGAO_SYSTEM
Value: 0x00001000
SFGAO_ENCRYPTED
Value: 0x00002000
SFGAO_ISSLOW
Value: 0x00004000
SFGAO_GHOSTED
Value: 0x00008000
SFGAO_LINK
Value: 0x00010000
SFGAO_SHARE
Value: 0x00020000
SFGAO_READONLY
Value: 0x00040000
SFGAO_HIDDEN
Value: 0x00080000
SFGAO_NONENUMERATED
Value: 0x00100000
SFGAO_NEWCONTENT
Value: 0x00200000
SFGAO_STREAM
Value: 0x00400000
SFGAO_STORAGEANCESTOR
Value: 0x00800000
SFGAO_VALIDATE
Value: 0x01000000
SFGAO_REMOVABLE
Value: 0x02000000
SFGAO_COMPRESSED
Value: 0x04000000
SFGAO_BROWSABLE
Value: 0x08000000
SFGAO_FILESYSANCESTOR
Value: 0x10000000
SFGAO_FOLDER
Value: 0x20000000
SFGAO_FILESYSTEM
Value: 0x40000000
This attribute is added automatically to folders and items that represent filesystem objects.
SFGAO_HASSUBFOLDER
Value: 0x80000000
Already handled, but may be changed if needed (when the application can determine for sure that the folder is empty).
SFGAO_DEFAULT_ROOT
Value: 0xA0C00108
Shell Item Enumeration Flags
SHCONTF_FOLDERS
Value: 0x00000020
SHCONTF_NONFOLDERS
Value: 0x00000040
SHCONTF_INCLUDEHIDDEN
Value: 0x00000080
SHCONTF_INCLUDESUPERHIDDEN
Value: 0x00010000
Shell Column Flags
SHCOLSTATE_TYPE_STR
Value: 0x00000001
SHCOLSTATE_TYPE_INT
Value: 0x00000002
SHCOLSTATE_TYPE_DATE
Value: 0x00000003
SHCOLSTATE_ONBYDEFAULT
Value: 0x00000010
SHCOLSTATE_SLOW
Value: 0x00000020
SHCOLSTATE_HIDDEN
Value: 0x00000100
SHCOLSTATE_NOSORTBYFOLDERNESS
Value: 0x00000800
SHCOLSTATE_FIXED_WIDTH
Value: 0x00001000
SHCOLSTATE_NODPISCALE
Value: 0x00002000
SHCOLSTATE_FIXED_RATIO
Value: 0x00004000
SHCOLSTATE_NO_GROUPBY
Value: 0x00040000
Property Description View Flags
PDVF_CENTERALIGN
Value: 0x00000001
PDVF_RIGHTALIGN
Value: 0x00000002
PDVF_BEGINNEWGROUP
Value: 0x00000004
PDVF_FILLAREA
Value: 0x00000008
PDVF_HIDELABEL
Value: 0x00000200
PDVF_CANWRAP
Value: 0x00001000
Error Codes
CBFSSHELL_ERR_FILE_NOT_FOUND
Value: 2
CBFSSHELL_ERR_CANT_LOAD_PROXY
Value: 20
CBFSSHELL_ERR_PROXY_VERSION_MISMATCH
Value: 28
CBFSSHELL_ERR_STREAM_EOF
Value: 38
CBFSSHELL_ERR_NOT_INSTALLED
Value: 55
CBFSSHELL_ERR_INSTALL_FAILED
Value: 56
CBFSSHELL_ERR_UNINSTALL_FAILED
Value: 57
CBFSSHELL_ERR_INIT_FAILED
Value: 58
CBFSSHELL_ERR_PROXY_NAME_MISMATCH
Value: 59
CBFSSHELL_ERR_CANT_WRITE_TO_REGISTRY
Value: 60
CBFSSHELL_ERR_ALREADY_STARTED
Value: 61
CBFSSHELL_ERR_MENU_ITEM_ALREADY_REG
Value: 62
CBFSSHELL_ERR_MENU_ITEM_NOT_REG
Value: 63
CBFSSHELL_ERR_PARENT_MENU_ITEM_NOT_FOUND
Value: 64
CBFSSHELL_ERR_PARENT_MENU_ITEM_IS_SUBITEM
Value: 65
CBFSSHELL_ERR_MENU_ITEM_IS_PARENT
Value: 66
CBFSSHELL_ERR_INVALID_PARAMETER
Value: 87
CBFSSHELL_ERR_INSUFFICIENT_BUFFER
Value: 122