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):

  1. Parâmetros obrigatórios (parâmetros que não têm os atributos [defaultvalue] ou [opcional] ),
  2. parâmetros opcionais com ou sem o atributo [defaultvalue] ,
  3. parâmetros com o atributo [opcional] e sem o atributo [defaultvalue] ,
  4. Parâmetro [lcid] , se houver,
  5. 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

dispinterface

Gerando uma biblioteca de tipos com MIDL

Interface

Lcid

Opcional

Exemplo de arquivo ODL

Sintaxe de arquivo ODL

retval

TYPEFLAGS