我有一个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?
谢谢
发布于 2012-02-24 19:35:17
您可以使用#import将IHTMLDocument2的IDL定义放入MIDL中的作用域。
MIDL编译器将为您生成#include。MIDL文件中的显式#include仅在极少数情况下有用。
https://stackoverflow.com/questions/9429749
复制相似问题