开发者

Where is IFileOperation implemented (and how can I verify this)?

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?


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜