IFileOperation在哪里实施(我该如何验证)?

时间:2011-02-15 23:07:59

标签: c++ winapi com windows-7

我试图找出Windows 7中实现IFileOperation的位置。 据我所知the MSDN page,它位于shell32.dll中。

因此,我使用DLL导出查看器(来自NirSoft)检查了shell32.dll中的所有COM对象,并且IFileOperation不是其中之一。

我在注册表中搜索了CLSID_FileOperation {3ad05575-8857-4850-9277-11b85bdb8e09},我发现(据我所知)它是在shell32.dll中。

但是如果我找不到使用DLL导出的COM导出怎么可能呢?

1 个答案:

答案 0 :(得分:5)

DLL不需要导出任何特殊的东西来实现该接口。注册表告诉操作系统DLL实现了什么接口。当程序调用{​​{1}}时,操作系统可以在注册表中查找给定的CLSID。然后,操作系统加载相关的DLL并调用其CoCreateInstance函数来获取DllGetClassObject对象。然后,操作系统使用该接口来获取实现所请求接口的内容。