defaultvalue 特性
[defaultvalue] 属性允许您指定类型化可选参数的默认值。
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
parameters
-
interface-name
-
指定接口的名称。
-
return-type
-
指定函数的返回类型。
-
function-name
-
指定将应用 [defaultvalue] 属性的函数的名称。
-
mandatory-param-list
-
指定或更多必需参数。
-
attribute-list
-
指定应用于 参数的一个或多个属性的列表,用逗号分隔。
-
param-type
-
指示可选参数的类型。
-
param-name
-
指定可选参数的名称。
-
optional-param-list
-
指定零个或多个附加参数,每个参数必须具有默认值。
备注
为 参数指定的默认值可以是任何常量,也可以是由 VARIANT 表示的解析为常量的表达式。 具体而言,不能将 [defaultvalue] 属性应用于结构、数组或 SAFEARRAY 类型的参数。
MIDL 编译器接受从左到右) (以下参数排序:
- 必需参数 (没有 [defaultvalue] 或 [可选] 属性的参数) ,
- 带或不带 [defaultvalue] 属性的可选参数,
- 具有 [optional] 属性且不带 [defaultvalue] 属性的参数,
- [lcid] 参数(如果有)
- [retval] 参数
示例
interface IFace : IUnknown
{
HRESULT Ex1([defaultvalue(44)] LONG i);
HRESULT Ex2([defaultvalue(44)] SHORT i);
...
};
interface QueryDef : IUnknown
{
HRESULT OpenRecordset( [in, defaultvalue(DBOPENTABLE)]
LONG Type,
[out,retval] Recordset **pprst);
}
// Type is now known to be a LONG type (good for browser in VBA and
// good for a C/C++ programmer) and has a default value of
// DBOPENTABLE
另请参阅