ActiveX / IDL - 如何从OCX控件中的“ATL简单对象”导出成员函数?

时间:2013-05-17 13:54:00

标签: visual-c++ activex atl idl

我在MSVC ++ 10中有一个ActiveX控件,它编译成.ocx。我已经为这个控件添加了另一个“ATL Simple Object”,我想从中导出一些函数。

如果调用此库OcxTest,我必须执行以下步骤来导出函数:

  1. 在OcxTestCtrl.h文件中将该函数声明为<{1}}的受保护成员(由项目向导生成)。

  2. 在OcxTestCtrl.cpp中定义函数。

  3. 将其添加到OcxTestCtrl.cpp中的调度图

    COcxTestCtrl

  4. 在以下时间点将其添加到OcxTest.idl中的IDL

    BEGIN_DISPATCH_MAP(COcxTestCtrl, COleControl)
         DISP_FUNCTION_ID(COcxTestCtrl, "Test", 1, Test, VT_I4, VTS_I4 VTS_I4)
    END_DISPATCH_MAP()

  5. 现在,我在为我添加到项目中的其他“ATL简单对象”定义导出的地方有点迷失。我想前两个步骤与我写的类似。其他两个步骤怎么样?

    1. Dispatch Map的定义是否完全类似于主要对象的定义?

    2. 在IDL中我必须放置导出的函数吗?

0 个答案:

没有答案