Figure 7 Namespace Extension COM Interface Method
Method |
Description |
Step |
IShellFolder |
||
BindToObject |
Retrieves the IShellFolder interface for the subfolder. |
2 |
CreateViewObject |
Creates a view object of the folder. |
1 |
CompareIDs |
Determines the relative order of two file objects or folders, given their item identifier lists. |
2 |
EnumObjects |
Enumerates the objects in a folder. |
2 |
GetAttributesOf |
Retrieves the attributes of the specified file object or subfolder. |
1 |
GetDisplayNameOf |
Retrieves the display name of a file object or subfolder. |
2 |
GetUIObjectOf |
Creates an OLE interface that can be used to carry out operations on a file object or subfolder like a context menu, icon extraction, data object for copying data, and so on. |
4 |
ParseDisplayName |
Translates a display name into an item identifier list. |
|
SetNameOf |
Sets the display name of the specified file object or subfolder and changes its identifier accordingly. |
|
BindToStorage |
Reserved for future use. |
|
IShellView |
||
CreateViewWindow |
Creates the view window. |
1 |
DestroyViewWindow |
Destroys the view window. |
1 |
GetCurrentInfo |
Returns the current folder settings. |
|
GetItemObject |
Allows callers to get an object that represents something in the view. |
|
Refresh |
Refreshes the display in response to user input. |
|
SaveViewState |
Saves the shell's view settings so the current state can be restored during a subsequent browsing session. |
|
SelectItem |
Changes the state of items within the shell view window. |
|
TranslateAccelerator |
Translates accelerator key strokes when a namespace extension's view has the focus. |
|
UIActivate |
Called whenever the activation state of the view window is changed by an event not caused by the shell view itself. |
3 |
AddPropertySheetPages |
Allows the view to add pages to the Options property sheet. |
|
EnableModeless |
Enables or disables modeless dialog boxes. Not in use by Windows Explorer at this time. |
|
EnableModelessSV |
Reserved for future use. |
|
IEnumIDList |
||
Clone |
Creates a new item enumeration object identical to the current one. |
2 |
Next |
Retrieves the specified number of item identifiers. |
2 |
Reset |
Returns to the beginning of the enumeration. |
2 |
Skip |
Skips over the specified number of items. |
2 |
Figure 8 SHITEMID and IDLIST
//
// SHITEMID -- Item ID
//
typedef struct _SHITEMID // mkid
{
USHORT cb; // Size of the ID (including cb itself)
BYTE abID[1]; // The item ID (variable length)
} SHITEMID;
typedef UNALIGNED SHITEMID *LPSHITEMID;
typedef const UNALIGNED SHITEMID *LPCSHITEMID;
//
// ITEMIDLIST -- List if item IDs (combined with 0-terminator)
//
typedef struct _ITEMIDLIST // idl
{
SHITEMID mkid;
} ITEMIDLIST;
typedef UNALIGNED ITEMIDLIST * LPITEMIDLIST;
typedef const UNALIGNED ITEMIDLIST * LPCITEMIDLIST;
Figure 9 IDL Data Structures
// From EnumIDL.h
typedef enum tagMYPIDLTYPE
{
PT_ROOT = 0x00,
PT_FOLDER = 0x01,
PT_FILE = 0x02,
PT_INVALID = 0x04
}MYPIDLTYPE;
typedef struct tagMYPIDLDATA
{
char szSignature[4];
MYPIDLTYPE pidlType;
DWORD dwSizeHigh;
DWORD dwSizeLow;
DWORD dwAttribs;
FILETIME ftLastWriteTime;
UINT uiSizeFile;
UINT uiSizeType;
// uiSizeFile, uiSizeType contain the size of
// File & Type strings from szFileAndType
TCHAR szFileAndType[1];
}MYPIDLDATA, FAR *LPMYPIDLDATA;
Figure 10 IShell Browser Methods
Method |
Description |
Step |
BrowseObject |
Tells Windows Explorer to browse in another folder. |
|
EnableModelessSB |
Enables or disables modeless windows of Windows Explorer, such as a floating toolbar. |
|
GetControlWindow |
Gets the window handle to a Windows Explorer control. |
|
GetViewStateStream |
Returns a view-specific stream that can be used to read and write the persistent data for a view. |
|
InsertMenusSB |
Inserts the Windows Explorer menu items in an empty menu created by the view. |
3 |
OnViewWindowActive |
Informs Windows Explorer that the view was activated. |
|
QueryActiveShellView |
Returns the currently activated (displayed) shell view object. |
|
RemoveMenusSB |
Instructs the container to remove its items from a composite menu. The tasks it performs are the opposite of InsertMenuSB tasks. |
3 |
SendControlMsg |
Sends messages to Windows Explorer controls. |
3 |
SetMenuSB |
Installs the composite menu in Windows Explorer. |
3 |
SetStatusTextSB |
Sets and displays status text in the Windows Explorer window. |
3 |
SetToolbarItems |
Adds toolbar items to the Windows Explorer toolbar. |
3 |
TranslateAcceleratorSB |
Reserved for future use. |
|
Figure 11 IContext Menu and IExtract Icon
Method |
Description |
Step |
IContextMenu |
||
GetCommandString |
Retrieves the help text for a menu command or the language-independent name of a menu command. |
4 |
InvokeCommand |
Carries out a menu command. |
4 |
QueryContextMenu |
Adds menu items to the specified menu. |
4 |
IExtractIcon |
||
Extract |
Extracts an icon from the specified location. |
|
GetIconLocation |
Retrieves the icon location for an object. |
|
Figure 12 More Namespace Extension Methods
Method |
Description |
Step |
IDataObject |
||
GetData |
Renders the data described in a FORMATETC structure and transfers it through the STGMEDIUM structure. |
5 |
GetDataHere |
Renders the data described in a FORMATETC structure and transfers it through the STGMEDIUM structure allocated by the caller. |
|
QueryGetData |
Determines whether the data object is capable of rendering the data described in the FORMATETC structure. |
5 |
GetCanonicalFormatEtc |
Provides a potentially different but logically equivalent FORMATETC structure. |
|
SetData |
Provides the source data object with data described by a FORMATETC structure and an STGMEDIUM structure. |
5 |
EnumFormatEtc |
Creates and returns a pointer to an object to enumerate the FORMATETC supported by the data object. |
|
DAdvise |
Creates a connection between a data object and an advise sink so the advise sink can receive notifications of changes in the data object. |
|
DUnadvise |
Destroys a notification previously set up with the DAdvise method. |
|
EnumDAdvise |
Creates and returns a pointer to an object to enumerate the current advisory connections. |
|
IDropSource |
||
QueryContinueDrag |
Determines whether a drag-and-drop operation should continue. |
|
GiveFeedback |
Gives visual feedback to an end user during a drag-and-drop operation. |
|
IDropTarget |
||
DragEnter |
Determines whether a drop can be accepted and its effect if it is accepted. |
|
DragOver |
Provides target feedback to the user through the DoDragDrop function. |
|
DragLeave |
Causes the drop target to suspend its feedback actions. |
|
Drop |
Drops the data into the target window. |
|
IEnumFORMATETC |
||
Next |
Retrieves a specified number of items in the enumeration sequence. |
|
Skip |
Skips over a specified number of items in the enumeration sequence. |
|
Reset |
Resets the enumeration sequence to the beginning. |
|
Clone |
Creates another enumerator that contains the same enumeration state as the current one. |
|