Share via


添加 IDL 属性

“添加 IDL 属性”向导向接口定义库 (IDL) 中定义的接口添加属性,例如在包含 .idl 文件的 ATL 项目中。 此向导在支持 MFC 的项目中不可用。

此向导在以下方面不同于添加属性向导和添加 IDL MFC 属性向导:

  • “添加属性”向导向项目中的接口添加属性。
  • “添加 IDL MFC 属性”向导专门用于支持 MFC 的 MFC 项目、ActiveX 项目或 ATL 项目。

添加 IDL 属性

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

  2. 类视图中单击要向其添加属性的接口的名称。

    注意

    也可以将属性添加到调度接口,它嵌套在库节点中(除非该项目已特性化)。

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

  4. 从快捷菜单中,选择“添加”>“添加属性”。

  5. 在“添加 IDL 属性”向导中,提供用于创建属性的信息。

  6. 选择“确定”以添加属性。

属性的 GetPut 方法在“类视图”中定义该属性的接口下显示为两个图标。 双击其中任一图标,查看 .idl 文件中的属性声明。

对于 ATL 接口,GetPut 函数被添加到 .cpp.h 文件中。

添加 IDL 属性向导

以下部分介绍了用于添加 IDL 属性的 UI:

“添加 IDL 属性”的屏幕截图,其中包含两个参数:[ in ] int i 和 [ in ] char c。返回类型是 HRESULT。属性类型为浮动。

  • 属性名称

    设置属性的名称。

  • 属性类型

    属性的数据类型。

  • 返回类型

    对于 ATL 接口,设置属性的返回类型。 对于双重接口,HRESULT 始终为返回类型,并且选择选项不可用。 对于自定义接口,可以从列表中选择返回类型。 仍建议使用 HRESULT,因为它提供了返回错误的标准方式。

  • Get 函数

    对于 ATL 接口,创建 Get 方法以检索属性值。 选择“Get”、“Put”或同时选择两者 。

  • Put 函数

    对于 ATL 接口,创建 Put 方法以设置属性值。 选择“Get”、“Put”或同时选择两者 。 如果选择 Put 函数,可以从以下两种方式中进行选择,以实现此方法:

    选项 说明
    propput PropPut 函数返回对象的一个副本。 propput 是使属性可写入的默认方法,也是最常用的方法。
    propputref PropPutRef 函数返回对对象的引用,而不是返回对象本身的副本。 考虑将 propputref 选项用于可能具有初始化开销的对象,如大型结构或数组。
  • 参数

    显示要添加到属性的参数列表。 列表中的每个项都包含参数名称、参数类型和属性。

    in 指示参数从调用过程传递到被调用过程。 out 指示指针参数从被调用过程返回到调用过程(从服务器到客户端)。

  • +

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

  • x

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

  • 铅笔图标

    编辑所选参数。

  • 特性

  1. helpcontext

    指定一个上下文 ID,使用户在帮助文件中查看关于此属性的信息。 有关详细信息,请参阅 helpcontext

  2. helpstring

    指定一个字符串,用于描述该字符串适用的元素。 默认情况下,它被设置为 property属性名称。 有关详细信息,请参阅 helpstring

  3. id

    设置用于标识属性的数字标识符。 此选项不适用于自定义接口的属性。 有关详细信息,请参阅 id

  • 附加特性

Microsoft 接口定义语言 (MIDL) 中的关键字在 MIDL 语言参考中进行了详细介绍。

选项 描述
bindable 指示该属性支持数据绑定。 有关详细信息,请参阅 bindable
defaultbind 指示此单一、可绑定属性最好地表示了该对象。 有关详细信息,请参阅 defaultbind
defaultcollelem 指示该属性是默认集合的某个元素的访问器函数。 有关详细信息,请参阅 defaultcollelem
displaybind 指示应作为可绑定属性显示给用户的属性。 有关详细信息,请参阅 displaybind
hidden 指示该属性存在,但不应在面向用户的浏览器中显示。 有关详细信息,请参阅 hidden
immediatebind 指示将立即通知数据库对数据绑定对象的此属性所做的所有更改。 有关详细信息,请参阅 immediatebind
local 向 MIDL 编译器指出该属性不是远程的。 有关详细信息,请参阅 local
nonbrowsable 标记不应显示在属性浏览器中的接口或调度接口成员。 有关详细信息,请参阅 nonbrowsable
requestedit 指示该属性支持 OnRequestEdit 通知。 有关详细信息,请参阅 requestedit
restricted 指定此属性不能任意调用。 有关详细信息,请参阅 restricted
source 指示该属性的成员是事件的源。 有关详细信息,请参阅 source

另请参阅

添加属性
添加 IDL MFC 属性