idispatch相关内容

如何在纯 C 中使用 IDispatch 来调用 COM 对象

我需要使用 R 工具中包含的 gcc 编译器(R 是 windows 的统计程序)编译我的一些代码,问题是我需要在我的代码中使用 IDispatch 来创建一个访问 COM 的方法对象,而 gcc 编译器不支持我用来执行此操作的大部分代码,这些代码基本上是 C++ 代码. 所以我的问题是如何在 C 中使用 IDispatch 来创建 COM 对象,而不必依赖于 MFC、.NET、C#、WTL ..
发布时间:2022-01-14 11:48:51 其他开发

如何获取 DShellFolderViewEvents 的方法签名

我正在尝试使用 ATL 接收 DShellFolderViewEvents,而我能够成功订阅的唯一方法是 DISPID_SELECTIONCHANGED.标题 shdispid.h 中似乎列出了许多其他事件,但我无法触发它们.不确定我做错了什么(它可能与 ATL 相关),但我想也许我正在使用错误的签名实现事件处理函数(目前我只是在尝试没有参数的 void 函数).问题是似乎没有描述 DShellF ..
发布时间:2021-11-30 14:07:21 其他开发

IDispatch Invoke()返回类型不匹配

我无法成功调用 create_session 成员.返回类型不匹配 //COM类->成员虚拟HRESULT __stdcall create_session(/* [in] */BSTR pbszName,/* [in] */long i32Value)= 0; 尝试如下调用 create_session 方法: //test.cppHRESULT create_session(IDisp ..
发布时间:2021-04-19 20:14:47 C/C++开发

如何获取DShellFolderViewEvents的方法签名

我正在尝试使用ATL下沉 DShellFolderViewEvents ,而我唯一能够成功订阅的方法是 DISPID_SELECTIONCHANGED .头文件 shdispid.h 中似乎还列出了许多其他事件,但我无法触发它们.不知道我在做什么错(可能与ATL有关),但我想也许我正在使用错误的签名实现事件处理程序函数(当前我只是在尝试没有参数的void函数).问题在于,似乎没有描述 DShell ..
发布时间:2021-04-12 19:19:16 其他开发

Delphi:模拟从剪贴板到EmbeddedWB的IHTMLElement的拖放

我有一个带有TEmbeddedWB的Delphi XE2应用程序,用于模拟用户操作。该应用程序导航到一个URL,使用数据填充相关的表单字段并提交数据。问题是,存在一个 字段,该字段接受上载的文件。 我已经了解了很多有关此程序的安全性问题,但发现有人建议将文件“拖出”剪贴板并“放置”到位。此后,我已经成功地将相关文件(jpeg图像)加载到剪贴板中(感谢CCR.Clipboa ..
发布时间:2020-10-20 19:03:38 前端开发

C#COM自动化的双接口和仅分发接口之间的区别

我正在针对C ++ COM服务器实现c#COM客户端。当我将COM接口标记为“ Dual”时,COM客户端可以正常工作,但是当我删除“ Dual”属性时,它会引发InvalidCastException。 因此,对我来说很容易解决将其标记为双重。但是从在线阅读来看,它似乎不是推荐用于COM服务器的方法。任何人都可以向我解释(用外行术语)将接口标记为双重接口的重要性,为什么不推荐使用它? ..
发布时间:2020-10-06 00:22:37 C#/.NET

如何正确调用IDispatch :: Invoke与所需的BSTR *参数

有许多如何使用BSTR *参数调用IDispatch :: Invoke的示例。我可以将其与其他许多“ SomeType *”参数一起使用,但是无论我如何尝试,我都会得到类型不匹配的HRESULT,E_OUTOFMEMORY或访问冲突。在我看来,我在内存方面做错了事,但是我在遵循发现的不同示例...作为补充说明,最后的[[out] UINT puArgErr”参数永远不会填充参数索引,造成了问题。 ..
发布时间:2020-06-07 18:44:18 C/C++开发

使用C#中的参数打包IDispatch调用(使用DISPPARAMS)

我正在使用Invoke在支持IDispatch的旧式COM对象上进行后期绑定.这似乎是必要的,因为.NET的Type.GetMethod Type.InvokeMember似乎不适用于这些对象. 以下代码可以很好地从对象中获取属性,调用者将属性名称作为字符串传递,以使用后期绑定获取属性值.该类在其构造函数中使用一个对象,并将this.idisp(和this.lcid)设置为该对象的接口指针( ..
发布时间:2020-05-06 04:18:04 C#/.NET

查找ActiveX组件的所有属性

我试图环顾四周,但不能说服自己一个答案,因为COM / ActiveX的世界似乎很混乱。 基本上我想知道的是,给定GUID,是有没有办法知道所有的接口,属性和方法暴露的ActiveX控件? 我读到某个地方,你只需要问一个特定的属性是否有。但是我怎么知道一个属性之前知道什么? 我猜IDispatch做类似的东西,但我不能弄清楚如何使用它。如果这是一个工作,一个小片段,最好是在C#将帮助 ..
发布时间:2016-12-18 20:34:34 C#/.NET

实现IDispatch在c#

我正在写一些测试代码来模拟非托管代码,调用我的c#实现的后期绑定COM对象。我有一个声明为IDispatch类型的接口如下。 [Guid(“2D570F11-4BD8-40e7-BF14-38772063AAF0”)] [InterfaceType(ComInterfaceType.InterfaceIsDual )] public interface TestInterface ..
发布时间:2016-12-18 18:32:18 C#/.NET

COM / OLE / ActiveX / IDispatch混淆

我无法围绕这些术语之间的差异。 是COM和ActiveX同义词吗? ActiveX对象只是一个暴露IDispatch的COM对象吗? 许多旧的MSDN页面提到没有任何COM上下文的IDispatch。它是否有一个单独的历史,并在其生命周期的稍后在COM“伞”下引入? OLE在哪里适合?在MFC命名和MSDN中是否存在(相当多) - 只是遗留的? 维基百科提供了一些见解 ..
发布时间:2016-12-18 18:22:34 .NET组件控件

如何使用IDispatch在纯C中调用一个COM对象

我需要编译一些我的代码使用gcc编译器包含在R工具(R的统计程序为Windows),问题是,我需要使用IDispatch在我的代码创建访问的方法的COM对象,gcc编译器不支持我使用的大部分代码,这基本上是C ++代码。 所以我的问题是如何我在C中使用IDispatch来创建COM对象,而不必依赖于MFC,.NET,C#,WTL或ATL。我相信,如果我这样做,我将能够编译我的代码没有任何问题 ..
发布时间:2016-12-18 17:29:04 .NET组件控件

使用DISPID_NEWENUM在C ++中检索JavaScript数组对象在IE9上失败

之后我回答了一个类似问题,我发现当尝试枚举对象时,使用 IDispatch :: Invoke(DISPID_NEWENUM,...)失败, DISP_E_EXCEPTION 在IE9上。 这发生在任何javascript数组上的 IDispatch 和 IDispatchEx 。 不必说,该代码在IE6-IE8上运行良好,只在IE9上失败。 同一问题也会显示在 MSDN中开发论 ..
发布时间:2016-10-25 15:53:40 C/C++开发

使用DISPID_NEWENUM在C ++中检索JavaScript数组对象在IE9上失败

之后我回答了一个类似问题,我发现当尝试枚举对象时,使用 IDispatch :: Invoke(DISPID_NEWENUM,...)失败, DISP_E_EXCEPTION 在IE9上。 这发生在任何javascript数组上的 IDispatch 和 IDispatchEx 。 不必说,该代码在IE6-IE8上运行良好,只在IE9上失败。 同一问题也会显示在 MSDN中开发论 ..
发布时间:2016-10-25 15:07:57 C/C++开发

.NET2.0 C#互操作:如何从C#调用COM代码?

在我的最后一个开发环境中,我能够轻松地与COM交互,调用COM对象的方法。这里是原代码,翻译成C#代码风格(以掩盖原来的语言): 公共静态无效SpawnIEWithSource(字符串szSourceHTML ) { OleVariant即; // IWebBrowser2的 OleVariant即=新的InternetExplorer(); ie.Navigate2(“关于:空白 ..
发布时间:2016-09-28 13:46:17 C#/.NET

我有哪些选项C ++ DLL调用C#DLL?

我有一个C ++ DLL需要调用一个函数(传递一个值,返回一个值),在C#类库。 就是给我唯一的选择在C#DLL COM接口和IDispatch接口调用它从C ++? 这是最好的方法是什么? 解决方案 选项夫妇为您提供此处 使用混合模式的C ++ / CLI装配的桥梁在C ++和C#DLL之间 通过暴露几个主要的C#类作为COM对象使用一个COM桥梁。这然后可以通过正常 ..
发布时间:2016-09-20 09:18:56 C#/.NET

请问C#.NET支持的IDispatch后期绑定?

问题 我的问题是:请问C#nativly支持后期绑定的IDispatch ? 的 pretend 的我试图自动化办公,同时与客户已安装任何版本兼容。 在.NET世界,如果你使用Office 2000安装,每个开发人员开发的,每一个客户,从现在到年底的时候,需要有Office 2000中。 在.NET之前的世界中,我们使用的 COM 交谈Office应用程序。 例如: 1)使用版本独 ..
发布时间:2016-08-29 13:24:34 C#/.NET