IExtractIcon

The IExtractIcon interface is used by the shell to retrieve icons for objects it displays.

The operating system provides default icons for file objects but you can specify custom icons by making appropriate registry entries and, in some cases, by using IExtractIcon.

When to Implement

You implement IExtractIcon to provide either instance-specific icons for objects in a particular class, or icons for subfolders that extend the Explorer's name space. These implementations are accomplished by writing handler code in an OLE in-process server COM DLL.

In addition, if you implement IShellFolder, you will need to provide an implementation of IExtractIcon that callers can obtain by using IShellFolder::GetUIObjectOf.

Shell extensions based on IExtractIcon must be initialized by using IPersistFile::Load. You should also note that shell extensions do not work unless all appropriate registry entries are made.

When to Use

In most cases, you don't call this interface directly. It is usually called by the shell when an icon has been made available by a properly registered handler. However, you can call IExtractIcon directly if you want to delegate the task of icon extracting to another object.

Methods in Vtable Order

IUnknown Methods Description
QueryInterface Returns pointers to supported interfaces.
AddRef Increments reference count.
Release Decrements reference count.

IExtractIcon Methods Description
GetIconLocation Retrieves the icon location for an object.
Extract Extracts an icon from the specified location.