viksoe.dk

atlshellext.h

The atlshellext.h and athshellextbase.h files contains a number of ATL classes designed to make it a breeze to implement Windows Shell Extensions.
They provide support for Name Space Extensions, Property Sheet Extensions, Context Menu handlers, PIDL structure wrappers and IExtractIcon implementations.

CShellModule
Extends the CComModule class and must be used.
Adds clipboard formats and a reference to the Shell memory
allocator.

CShellMalloc
Wraps the ::SHGetMalloc() interface.

CShellImageLists
A small helper class to create and initialize a standard
ImageList control for use in a Shell Name Space extension
that displays standard folder and file icons.

CPidl
Wraps the PIDL structure.
Implements all the methods needed to manipulate the general
PIDL structure.

CPidlList
Wraps an array of PIDL structures.
Many of the IShellFolder methods take a
PIDL array as input so it becomes very usefull there.

CPidlEnum
Implementation of the IEnumIDList interface.

IShellFolderImpl
Implementation of IShellFolder interface for
a standard Name Space Extension without subfolders.
Easy to extend and provides much of the basic functionality
of any Name Space Extension.

IShellViewImpl
Implementation of IShellView interface, including 
support for a ListView control.
Wires up the Windows messaging system so you can use ATL
message handlers. Has helper functions to support
toolbars and merging of menus.

CShellPropertyPage
Implementation of a Property Sheet Shell Extension.

CShellContextMenu
Implementation of a Context Menu Extension.
Uses a simple ATL map to relay menu messages.

CExtractFileIcon
Implementation of an IExtractIcon that
extracts the icons from files and folders.

CShellPidlPath
Wraps a ::SHGetPathFromIDList string.

Source Code Dependencies

Microsoft ATL Library

See Also

Sample Name Space extension
Sample Shell Context Menu extension

Download Files

DownloadSource Code (24 Kb)


Written by Bjarke Viksoe.
Article submitted 6/7/2001.