添加 IDL MFC 方法

“添加 IDL MFC 方法”向导将方法添加到接口定义库 (IDL) 接口,该接口在 Microsoft Framework 类 (MFC) 项目中定义。 如果项目包含与接口关联的类,向导还会向该类添加该方法。

若要使用此向导,项目必须是 MFC 项目、ActiveX 项目或支持 MFC 的 ATL 项目。 例如,如果你有 Microsoft ActiveX 控件项目,可以按照以下过程将方法添加到解决方案中的 IDL 接口。

此向导与添加方法向导(将方法添加到 IDL 接口)在以下方面有所不同:

  • 此向导特定于支持 MFC 的 MFC、ActiveX 或 ATL 项目。 对于不支持 MFC 的 ATL 项目,只有“添加方法”向导可用

  • 如果在项目中找到调度映射,则会添加以下条目:

    BEGIN_DISPATCH_MAP(CMFCApplication2Doc, CDocument)
        DISP_FUNCTION_ID(CMFCApplication2Doc, "methodName", dispidmethodName, internalName, VT_EMPTY, VTS_NONE)
    END_DISPATCH_MAP()
    
  • 将生成以下关联的方法实现:

    void CMFCApplication2Doc::internalName()
    {
         AFX_MANAGE_STATE(AfxGetAppModuleState());
         // TODO: Add your dispatch handler code here
    }
    

向接口添加方法

  1. 在“视图”菜单上,选择“类视图”。

  2. 在“类视图”中,展开项目节点,显示想要向其添加方法的接口

  3. 右键单击接口的名称。

  4. 在快捷菜单上选择“添加”,然后选择“添加方法”

  5. 在“添加 IDL MFC 方法”向导中,提供关于方法的信息

  6. 选择“确定”以添加方法。

UI 元素列表

以下部分介绍了“添加 IDL MFC 方法”向导 UI:

Wizard UI. Method name:DoClick, Internal name:DoClick, Return type:void, Method type:custom, Parameters:long l, char C, Attributes id:1.

  • 方法名称

    设置方法的名称。 下表描述了方法名称选项(具体取决于接口的类型):

    接口类型 方法名称
    ATL 双重接口、自定义接口和本地自定义接口 提供自己的方法名。
    MFC 调度接口 提供自己的方法名或从列表中选择建议的方法名。 如果从列表中选择一个名称,则相应的返回类型会在“返回类型”中显示,并且无法更改
    MFC ActiveX 控件调度接口 提供自己的方法名称或选择一种常用方法:DoClickRefresh。 有关常用方法的详细信息,请参阅 MFC ActiveX 控件:添加常用方法
  • 内部名称

    仅在“方法类型”为“自定义”时可用。 内部名称是将在调度映射、头 (.h) 文件和实现 (.cpp) 文件中使用的名称。 默认情况下,此名称与“方法名”相同。 已将其添加到 MFC 调度接口中。

    如果要将方法添加到 MFC 或 MFC ActiveX 控件的调度接口,则可以更改方法名称,如下表所述:

    接口类型 内部名称
    ATL 双重接口、自定义接口和本地自定义接口 不可用。
    MFC 调度接口 默认设置为方法名。 可编辑内部名称。
    MFC ActiveX 控件调度接口 仅能为自定义方法设置内部名称。 常用方法不使用内部名称。
  • 返回类型

    该方法返回的数据类型。 接口方法的标准返回类型是 HRESULT

    如果接口是双重接口或自定义接口,则只允许 HRESULT 返回类型。

    可以根据要添加到方法的接口类型设置数据类型,如下表所述:

    接口类型 返回类型
    双重接口 HRESULT。 不可更改。
    自定义接口 HRESULT。 不可更改。
    本地自定义接口 提供自己的返回类型或从列表中选择一个类型。
    调度接口 提供自己的返回类型或从列表中选择一个类型。
    MFC ActiveX 控件调度接口 如果实现常用方法,则返回类型将设置为适当的值且不可更改。 如果从“方法名”列表中选择方法,并选择了“选择方法类型”下的“自定义”,请从列表中选择返回类型
  • 方法类型

    仅适用于 MFC ActiveX 控件。 如果在“方法名称”中提供方法名称(而不是从列表中选择方法),则不可用

    如果在“方法名称”列表中选择其中一种方法,请在“方法类型”下拉列表中选择“常用”或“自定义”实现。 方法的选择会影响向导提供的返回类型和方法实现,如下表所述:

    方法类型 说明
    常用 默认值。 插入在“方法名称”列表中所选方法的默认实现。 如果选择“常用”,则“返回类型”不可更改
    自定义 为“方法名称”中选择的方法提供自定义实现。 可以提供自己的返回类型或从“返回类型”列表中选择一个类型
  • Parameters

    显示方法的参数、修饰符和类型。 向导会在你添加参数时更新“参数”列表。

  • +

    添加参数。 在“参数”中,键入参数类型、名称和任何修饰符。 例如,int x,然后选择“确定”。

    如果未提供参数名称,则向导将忽略所有“参数类型”选择;对于 ATL 项目,也会忽略参数属性

  • x

    从“参数”列表中移除所选参数。

  • 铅笔图标

    编辑所选参数。

  • id

    设置标识方法的数字 ID。 有关详细信息,请参阅 MIDL 参考中的 id

  • call_as

    指定要映射到此本地方法的远程方法的名称。 有关详细信息,请参阅 MIDL 参考中的 call_as

  • helpcontext

    指定一个上下文 ID,让用户可以在帮助文件中查看此方法的相关信息。 有关详细信息,请参阅 MIDL 参考中的 helpcontext

  • helpstring

    指定描述关联元素的文本。 默认情况下,为其方法名称。 有关详细信息,请参阅 MIDL 参考中的 helpstring

另请参阅

添加方法向导
添加 IDL 方法向导
MFC 向导和对话框