IFileOperation 在哪里实现(以及如何验证这一点)?

发布于 2024-10-17 17:09:40 字数 423 浏览 0 评论 0原文

我试图找出 Windows 7 中 IFileOperation 的实现位置。 据我了解 MSDN 页面 它位于 shell32.dll 中。

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

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

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

I am trying to find out where IFileOperation is implemented in Windows 7.
As far as I understand from the MSDN page it is in shell32.dll.

So, I checked all the COM objects in shell32.dll using a DLL export viewer (from NirSoft) and IFileOperation is not one of them.

I searched the registry for the CLSID_FileOperation {3ad05575-8857-4850-9277-11b85bdb8e09} and I found (as far as I understand) that it is in shell32.dll.

But how can that be if I couldn't find that COM export using DLL export?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最单纯的乌龟 2024-10-24 17:09:40

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

A DLL doesn't need to export anything special to implement that interface. The registry tells the OS what DLL implements the interface. When a program calls CoCreateInstance, the OS can look up the given CLSID in the registry. The OS then loads the associated DLL and calls its DllGetClassObject function to get an IClassFactory object. The OS then uses that interface to get something that implements the requested interface.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文