gpt4 book ai didi

c# - 如何从 C++ 向 COM 公开带有 IHTMLDocument* 类型参数的方法?

转载 作者:行者123 更新时间:2023-11-28 08:09:44 27 4
gpt4 key购买 nike

我有一个 C++ 库 (Win32),它填充了我想从 .NET(一个 IE 工具栏)使用的网页中的一些字段,但我不知道如何通过 COM 公开该方法。我已经知道我应该像这样将它添加到 .idl 文件中的界面:

interface IPlugin : IDispatch{
#include <mshtml.h>
HRESULT FillFields(IHTMLDocument2* pDocument, BSTR value1, BSTR value2);
};

但是 mshtml.h 的 #include 给我以下错误:

error MIDL2003: redefinition : _LARGE_INTEGER
error MIDL2003: redefinition : _ULARGE_INTEGER
error MIDL2003: redefinition : INT
error MIDL2003: redefinition : Int64ShllMod32

有什么方法可以将 IHTMLDocument 对象从 C# 传递到 C++ 并修改它在 C++ 中的内容,或者 COM 是否应该仅与用于自动化的类型(如 BSTR)一起使用?

谢谢

最佳答案

您可以使用 #importIHTMLDocument2 的 IDL 定义放入 MIDL 范围内。

MIDL 编译器将为您生成#include。 MIDL 文件中的显式 #include 仅在极少数极端情况下有用。

关于c# - 如何从 C++ 向 COM 公开带有 IHTMLDocument* 类型参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com