idispatch

    0热度

    1回答

    我试图复制我在C#中使用JScript观察到的行为。我正在使用IDispatch枚举成员并在后期绑定的对象上调用它们。我是一个完整的C++ noob,并且足够了解COM是非常危险的。 这里是我的问题: DISPID_VALUE总是为零(0)? (似乎是) 当调用COM对象时,我应该何时调用DISPID_VALUE成员? (类似,当接口本身被索引或调用...?) 有什么规则/提示什么时候调用.Ite

    0热度

    1回答

    的情况是这样的: 我有一个COM对象发问。将其命名为ICom。 COM对象要求我实现一个IDispatch,即IComEvents的后代,它通知我事件。 我实现了一个IDispatch并将其连接到COM接口。 到目前为止好。当事件发生时,我的IComEvents下降的Invoke()被调用。 现在,我必须手动解析Invoke()参数。例如,如果通知功能是HRESULT OnMouseHit(INT

    1热度

    2回答

    我想用Python的COM服务器只公开IDispatch接口,既没有IDL文件,也没有为它的类型库。我确实有不同方法的文档以及如何使用它们。 试图使用win32com包失败,因为它似乎没有类型信息时可用win32com fallback假设任何属性访问属性获取或设置,从来没有方法调用。 也就是说,当我做到以下几点: import win32com.client c = win32com.

    3热度

    1回答

    我们使用(由平Ly的创建ComLib.pas)一些旧的代码,所以我们可以用枚举接口的(OleVariant)对象: type TDispNewEnum = dispinterface ['{97079E31-6957-11D2-9154-0000B4552A26}'] // dummy property _NewEnum: IUnknown readonly disp

    0热度

    1回答

    亲爱MFC /的ActiveX/COM破解,我已经“继承”旧的MFC应用 它建立并于2010年VS到目前为止运行(最初与Visual Studio 6中创建)的源极,但已经嵌入了一些ActiveX控件作为源代码,显然是由 Visual Studio向导生成的(.h和.cpp文件,见下文); 但是不在自己的子项目中,以便生成.dll或.ocx文件。 这里就是这样的一个控制的头文件中的相关部分: #i

    0热度

    2回答

    我需要继承抽象方法的接口, 在VB/C#中,我们只需覆盖从我们的接口中的方法,而没有必要的IUnknown或IDispatch方法编写 但在C++中,在 类继承接口在接口, &覆盖方法后,当我试图实例派生类 我得到以下错误 error C2259: 'Imyinterface' : cannot instantiate abstract class 1> due to following m

    1热度

    2回答

    我对通过IDispatch/IUnknown指针看到的__vfptr感到困惑。 我正在创建自由线程的COM obj(IMyContainer)。在这个对象的内部,我需要保留指向2个实现相同IMyInterface的com对象的不同实例。所以我调用CreateAndSaveDispToMap()两次。 我的想法是保持他们的IDispatch指针在一些std :: map。在这一刻,我怀疑每个实例的r

    5热度

    2回答

    我使用WM_COPYDATA来启用我的两个进程A和B之间的通信。与基本数据类型交换数据没有问题。 现在我遇到了一个问题,在某些情况下,我想将流程A中的接口(IDispatch)传递给我的流程B.可能吗?

    3热度

    1回答

    我创建了一个用于某些应用程序的自动化任务的COM对象。发生这种情况时,应用程序启动并显示其“主窗口”。 用户关闭主应用程序窗口时会出现问题。下一个调用COM对象的调用不起作用。问题是它不会失败,并且不会报告错误。如果我在下一行代码中放置一个调试器断点,它永远不会到达。如果我用try/catch包围Invoke调用,则不会发生异常。在发布版本中,它只是崩溃。 这应该如何工作?由于我使用CComDis

    0热度

    2回答

    在C++中,我试图调用OLE方法,它看起来是这样的: HRESULT GetFirstMono( [out] BSTR* name, [out, retval] BSTR* monoID); 我用下面的代码来调用它(改编自http://www.codeproject.com/KB/office/MSOfficeAuto.aspx): int cArgs = 1; DIS