shell使用IExtractIcon接口来检索其显示的对象的图标。
操作系统提供文件对象的默认图标,但您可以通过制作适当的注册表项,并在某些情况下使用IExtractIcon来指定自定义图标。
何时实施
您可以实现IExtractIcon为特定类中的对象提供特定于实例的图标,或扩展Explorer名称空间的子文件夹的图标。这些实现通过在OLE进程内服务器COM DLL中编写处理程序代码来实现。
此外,如果您实施IShellFolder,则需要提供IExtractIcon的呼叫者可以使用IShellFolder::GetUIObjectOf获取的实施。
必须使用IPersistFile::Load对基于IExtractIcon的Shell扩展进行初始化。您还应该注意,除了做出所有适当的注册表项之外,shell扩展不起作用。
何时使用
在大多数情况下,您不要直接调用此接口。当一个图标已被正确注册的处理程序提供时,它通常由shell调用。但是,如果要将图标提取任务委托给另一个对象,可以直接调用IExtractIcon.
Vtable Order中的方法
IUnknown方法 | 描述 |
QueryInterface | 返回指向支持的接口的指针。 |
AddRef | 增加引用计数。 |
发布 | 减少引用计数。 |
IExtractIcon方法 | 描述 | |
GetIconLocation | 检索对象的图标位置。 | |
提取 | 从指定位置提取图标。 |