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
-
指定套用至 參數的一或多個屬性清單,並以逗號分隔。
-
param-type
-
表示選擇性參數的類型。
-
param-name
-
指定選擇性參數的名稱。
-
optional-param-list
-
指定零個或多個額外的參數,每個參數都必須有預設值。
您為 參數指定的預設值可以是任何常數,或是解析為常數的運算式,可由 VARIANT表示。 具體而言,您無法將 [defaultvalue] 屬性套用至結構、陣列或 SAFEARRAY 類型的參數。
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