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 编译器接受从左到右) (以下参数排序:

  1. 必需参数 (没有 [defaultvalue][可选] 属性的参数) ,
  2. 带或不带 [defaultvalue] 属性的可选参数,
  3. 具有 [optional] 属性且不带 [defaultvalue] 属性的参数,
  4. [lcid] 参数(如果有)
  5. [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

另请参阅

dispinterface

使用 MIDL 生成类型库

接口

lcid

ODL 文件示例

ODL 文件语法

retval

TYPEFLAGS