Dela via


defaultvalue-attribut

Med attributet [defaultvalue] kan du ange ett standardvärde för en valfri typparameter.

interface interface-name
{
  return-type function-name(
        mandatory-param-list, 
        [[attribute-list,] defaultvalue(value)] param-type param-name
        [ , optional-param-list]);
}

Parameterar

gränssnittsnamn

Anger namnet på gränssnittet.

returtyp

Anger funktionens returtyp.

function-name

Anger namnet på den funktion som attributet [defaultvalue] ska tillämpas på.

mandatory-param-list

Anger en eller flera obligatoriska parametrar.

attributlista

Anger en lista med ett eller flera attribut, avgränsade med kommatecken, som gäller för parametern.

param-type

Anger typen av den valfria parametern.

param-name

Anger namnet på den valfria parametern.

optional-param-list

Anger noll eller fler ytterligare parametrar, som var och en måste ha ett standardvärde.

Anmärkningar

Standardvärdet som du anger för parametern kan vara valfri konstant, eller ett uttryck som matchas till en konstant, som kan representeras av en VARIANT. Mer specifikt kan du inte använda attributet [defaultvalue] för en parameter som är en struktur, en matris eller en SAFEARRAY-typ .

MIDL-kompilatorn accepterar följande parameterordning (från vänster till höger):

  1. Obligatoriska parametrar (parametrar som inte har attributen [defaultvalue] eller [optional] ),
  2. valfria parametrar med eller utan attributet [defaultvalue]
  3. parametrar med attributet [optional] och utan attributet [defaultvalue]
  4. [lcid] parameter, om någon,
  5. [retval] parameter

Exempel

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

Se även

dispinterface

generera ett typbibliotek med MIDL-

gränssnitt

lcid

valfritt

ODL-filexempel

ODL-filsyntax

omval

TYPEFLAGS