atributo defaultvalue
O atributo [defaultvalue] permite que você especifique um valor padrão para um parâmetro opcional tipado.
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
Parâmetros
-
interface-name
-
Especifica o nome da interface.
-
return-type
-
Especifica o tipo de retorno da função.
-
function-name
-
Especifica o nome da função à qual o atributo [defaultvalue] será aplicado.
-
mandatory-param-list
-
Especifica em ou mais parâmetros necessários.
-
attribute-list
-
Especifica uma lista de um ou mais atributos, separados por vírgulas, que se aplicam ao parâmetro .
-
param-type
-
Indica o tipo do parâmetro opcional.
-
param-name
-
Especifica o nome do parâmetro opcional.
-
optional-param-list
-
Especifica zero ou mais parâmetros adicionais, cada um dos quais deve ter um valor padrão.
Comentários
O valor padrão especificado para o parâmetro pode ser qualquer constante ou uma expressão que seja resolvida para uma constante, que pode ser representada por uma VARIANT. Especificamente, você não pode aplicar o atributo [defaultvalue] a um parâmetro que seja uma estrutura, uma matriz ou um tipo SAFEARRAY .
O compilador MIDL aceita a seguinte ordenação de parâmetro (da esquerda para a direita):
- Parâmetros obrigatórios (parâmetros que não têm os atributos [defaultvalue] ou [opcional] ),
- parâmetros opcionais com ou sem o atributo [defaultvalue] ,
- parâmetros com o atributo [opcional] e sem o atributo [defaultvalue] ,
- Parâmetro [lcid] , se houver,
- Parâmetro [retval]
Exemplos
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
Confira também