我试图找出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导出怎么可能呢?
答案 0 :(得分:5)
DLL不需要导出任何特殊的东西来实现该接口。注册表告诉操作系统DLL实现了什么接口。当程序调用{{1}}时,操作系统可以在注册表中查找给定的CLSID。然后,操作系统加载相关的DLL并调用其CoCreateInstance
函数来获取DllGetClassObject
对象。然后,操作系统使用该接口来获取实现所请求接口的内容。