Object Attributes and Interfaces
Every file object and folder has attributes that determine, among other things, what actions can be carried out on it. An application can determine the attributes of any file object or folder and can retrieve interfaces for items in a shell folder.
To determine the attributes of a file object or folder, an application can use the IShellFolder::GetAttributesOf member function. Attributes include capabilities (such as whether a file object can be deleted or can be a drop target), display attributes (such as whether a folder is shared), contents flags (such as whether a folder has subfolders), as well as other attributes (such as whether an object is a folder, whether it is part of the file system, and so on). For a list of attributes, see the description of the IShellFolder::GetAttributesOf member function.
An application can retrieve interfaces that can be used to carry out actions on a file object or folder by using the IShellFolder::GetUIObjectOf member function. For example, the application can display the property sheets for a file object by retrieving the object's IContextMenu interface and activating the Properties command.