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.