【发布时间】:2014-08-02 23:47:24
【问题描述】:
我一直在尝试使用 ComImport 为我正在编写的 C# 应用程序在各种 dll 中设置一些与一些 win32 类的互操作。我不明白的是您如何找到课程的 GUID?我发现了一些有效的导入示例,但我不确定作者如何找到这些类的 GUID。下面列出了导入 IFileDialog 及其方法之一的示例。
[ComImport(), Guid("42F85136-DB7E-439C-85F1-E4075D135FC8"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IFileDialog {
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[PreserveSig()]
uint Show([In, Optional] IntPtr hwndOwner); //IModalWindow
我正在使用 Visual Studio 2012,我可以看到如何在 COM 选项卡上的 Microsoft Shell 控件和自动化中添加对 shell32.dll 的引用,但这似乎对我没有任何作用。我在这里想念什么?您在哪里找到 GUID?有什么方法可以让 Visual Studio 生成上面列出的代码,还是我需要找到每个类的 GUID,然后编写上面列出的方法导入?
【问题讨论】: