添加 IDL 属性
“添加 IDL 属性”向导向接口定义库 (IDL) 中定义的接口添加属性,例如在包含 .idl
文件的 ATL 项目中。 此向导在支持 MFC 的项目中不可用。
此向导在以下方面不同于添加属性向导和添加 IDL MFC 属性向导:
- “添加属性”向导向项目中的接口添加属性。
- “添加 IDL MFC 属性”向导专门用于支持 MFC 的 MFC 项目、ActiveX 项目或 ATL 项目。
添加 IDL 属性
在“视图”菜单上,选择“类视图”。
在类视图中单击要向其添加属性的接口的名称。
备注
也可以将属性添加到调度接口,它嵌套在库节点中(除非该项目已特性化)。
右键单击接口的名称。
从快捷菜单中,选择“添加”>“添加属性”。
在“添加 IDL 属性”向导中,提供用于创建属性的信息。
选择“确定”以添加属性。
属性的 Get
和 Put
方法在“类视图”中定义该属性的接口下显示为两个图标。 双击其中任一图标,查看 .idl
文件中的属性声明。
对于 ATL 接口,Get
和 Put
函数被添加到 .cpp
和 .h
文件中。
以下部分介绍了用于添加 IDL 属性的 UI:
属性名称
设置属性的名称。
属性类型
属性的数据类型。
返回类型
对于 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
从“参数”中移除所选参数。
铅笔图标
编辑所选参数。
特性
helpcontext
指定一个上下文 ID,使用户在帮助文件中查看关于此属性的信息。 有关详细信息,请参阅
helpcontext
。helpstring
指定一个字符串,用于描述该字符串适用的元素。 默认情况下,它被设置为
property
属性名称。 有关详细信息,请参阅helpstring
。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 。 |