idispatch

    1热度

    2回答

    传递的JavaScript我发现在“wtypes.h”一些定义 VT_PTR = 26, VT_SAFEARRAY = 27, VT_CARRAY = 28, VT_USERDEFINED = 29, VT_LPSTR = 30, VT_LPWSTR = 31, * VT_PTR [T] pointer type * VT_SAFEARRAY [T] (use V

    3热度

    3回答

    我试过环顾四周,但无法说服自己,因为COM/ActiveX的世界似乎很混乱。 基本上我想知道的是,鉴于GUID,有没有办法知道ActiveX控件公开的所有接口,属性和方法? 我在某个地方读过,你只需要问一个特定的财产是否存在。但是在知道那里有什么之前,我该如何询问一个物业? 我猜IDispatch做了类似的事情,但我无法弄清楚如何使用它。如果这是一个有效的工具,那么最好在C#中使用一小段代码片段可

    0热度

    1回答

    如你所知可以使用下面的代码创建一个新的Array对象。 var a = new Array(); 现在我实施IWebBrowser一个IDispatch接口,我可以通过一个对象的JavaScript,但如何处理程序创建一个类似如下的代码定制对象,该CustomObject是不确定的对象类型。 var a = new CustomObject();

    0热度

    1回答

    我有一个Delphi XE2应用程序,带有一个TEmbeddedWB,用于模拟用户操作。应用程序导航到一个URL,用数据填充相关的表单域并提交数据。问题是有一个<input type=file />字段接受上载的文件。 在完成了大量关于此事的阅读之后,我明白有一个安全问题以编程的方式执行此操作,但也发现有人提出了一个建议,即可以将文件从剪贴板'拖动'到'放下'位置。我已经成功地将相关文件(jpeg

    0热度

    1回答

    我得到一个ms字的句柄,然后使用AccessibleObjectFromEvent得到的是IDispatch(迟bingding)。然后我想调用它的属性或方法,它是失败的。 但可以使用c#。 How to use use late binding to get excel instance? 这样的代码。 function GetProperty(dispobj: IDispatch; Prope

    2热度

    3回答

    我有一个托管Active Script JScript引擎的应用程序。根据jscript.dll的版本,它运行到JScript 5.8。该应用程序向JScript环境公开了许多对象和方法。 当脚本调用特定的功能,与IDL这样的: HRESULT func(VARIANT varInput); 我想确定输入是instanceof另一个功能(即,如果该函数是一个构造函数,其原型是在输入的原型链)。在J

    0热度

    1回答

    我有一个基于MFC的Windows应用程序与GUI,它是用C++编写的并且有很多COM对象;我们称之为“HelloWorld”。 用户向我发送了一个错误报告:有时,为了响应某个特定的用户操作,MessageBox出现(在下图中我删除了标题栏标题)。 1)在MessageBox的标题栏标题是HelloWorld,并寻找在代码串,似乎对我来说,这是资源字符串 由AFX_IDS_APP_TITLE标识(

    4热度

    1回答

    我有一个用C#编写的COM服务器和一个用Delphi写的COM客户端。我已经实现了一个简单而优雅的回拨机制,它像一个魅力。但是,FastMM4报告说我的Delphi客户端正在创建内存泄漏。我已经将应用程序提炼成漏洞来自哪里的本质。我泄漏是由对象被引用计数的方式引起的(它永远不会变成零,所以永远不会被销毁),所以我试图理解为什么引用计数是按照它的方式工作的,是这是因为我在执行中做错了。 我已经尽可能

    1热度

    1回答

    我想在一个免费的Pascal项目使用ActiveX对象时,从文档我知道一个方法声明为 long Fetch(VARIANT* vValue) 其中vVariant会调用后包含结果(整数或浮点值)。 的LazActiveX“导入类型库”功能转换这 _SomeApi = dispinterface ['...'] ... function Fetch(vValue:

    0热度

    1回答

    我想构建一个函数来将VARIANTARG类型分配给DISPPARAMS结构,并且我有一些问题想出如何检查arg的实际类型。 myFunc(int count, const BYTE* types, ...) { DISPPARAMS dParams; //Initialization stuff goes here for(int x = 0;x < count;