defaultvalue 属性
[defaultvalue] 属性を使用すると、型指定された省略可能なパラメーターの既定値を指定できます。
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
パラメーター
-
interface-name
-
インターフェイスの名前を指定します。
-
return-type
-
関数の戻り値の型を指定します。
-
function-name
-
[defaultvalue] 属性を適用する関数の名前を指定します。
-
mandatory-param-list
-
以上の必須パラメーターを指定します。
-
attribute-list
-
パラメーターに適用される 1 つ以上の属性の一覧をコンマで区切って指定します。
-
param-type
-
省略可能なパラメーターの型を示します。
-
param-name
-
省略可能なパラメーターの名前を指定します。
-
optional-param-list
-
0 個以上の追加パラメーターを指定します。各パラメーターには既定値が必要です。
注釈
パラメーターに指定する既定値には、任意の定数、または VARIANT で表すことができる定数に解決される式を指定できます。 具体的には、構造体、配列、または SAFEARRAY 型のパラメーターに [defaultvalue] 属性を適用することはできません。
MIDL コンパイラは、(左から右へ) 次のパラメーター順序を受け入れます。
- 必須パラメーター ( [defaultvalue] 属性または [省略可能] 属性を持たないパラメーター)
- 省略可能なパラメーターと [defaultvalue] 属性の有無に関係なく、
- パラメーターに [省略可能] 属性を指定し、[ 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
関連項目