Lokales Attribut

Das [local] -Attribut gibt für den MIDL-Compiler an, dass eine Schnittstelle oder Funktion nicht remote ist.

[ 
    local 
    [, interface-attribute-list] 
] 
interface interface-name
{
}

[ 
    object, 
    uuid(string-uuid), 
    local [, interface-attribute-list] 
]
interface interface-name
{
}

[ local [, function-attribute-list] ] function-declarator ;

Parameter

interface-attribute-list

Gibt andere Attribute an, die für die Schnittstelle als Ganzes gelten. Die Attribute [Endpunkt], [Version] und [pointer_default] sind optional. Wenn Sie mit dem Schalter /app_config kompilieren, können auch [implicit_handle] oder [auto_handle] vorhanden sein. Trennen Sie mehrere Attribute durch Kommas.

Schnittstellenname

Gibt den Namen an, mit dem Softwarekomponenten die Schnittstelle abgrenzen können.

string-uuid

Gibt eine vom Hilfsprogramm Uuidgen generierte UUID-Zeichenfolge an. Wenn Sie nicht den MIDL-Compilerschalter /osf verwenden, können Sie die UUID-Zeichenfolge in Anführungszeichen einschließen.

function-attribute-list

Gibt null oder mehr Attribute an, die für die Funktion gelten. Gültige Funktionsattribute sind [Rückruf]; das Zeigerattribute [ref], [unique] oder [ptr]; und die Verwendungsattribute [Zeichenfolge], [ignorieren] und [context_handle]. Trennen Sie mehrere Attribute durch Kommas.

Funktionsdeklarator

Gibt den Typbezeichner, den Funktionsnamen und die Parameterliste für die Funktion an.

Bemerkungen

Das Attribut [local] kann auf einzelne Funktionen oder auf die gesamte Schnittstelle angewendet werden.

Wenn sie im Schnittstellenheader verwendet wird, können Sie mit dem Attribut [local] den MIDL-Compiler als Headergenerator verwenden. Der Compiler generiert keine Stubs für Funktionen und stellt nicht sicher, dass der Header übertragen werden kann.

Für eine RPC-Schnittstelle kann das Attribut [local] nicht gleichzeitig mit dem [uuid] -Attribut verwendet werden. Entweder [uuid] oder [local] muss im Schnittstellenheader vorhanden sein, und die von Ihnen ausgewählte muss genau einmal auftreten.

Für eine COM-Schnittstelle (identifiziert durch das [Object]- Schnittstellenattribute) kann die Schnittstellenattributeliste das Attribut [local] enthalten, obwohl das [uuid] -Attribut vorhanden ist.

Bei Verwendung in einer einzelnen Funktion gibt das Attribut [local] eine lokale Prozedur an, für die keine Stubs generiert werden. Die Verwendung von [local] als Funktionsattribute ist eine Microsoft-Erweiterung für DCE IDL. Daher ist dieses Attribut nicht verfügbar, wenn Sie mit dem MIDL /osf-Schalter kompilieren.

Beachten Sie, dass eine Schnittstelle ohne Attribute in eine IDL-Basisdatei importiert werden kann. Die Schnittstelle darf jedoch nur Datentypen ohne Prozeduren enthalten. Wenn in der Schnittstelle auch nur eine Prozedur enthalten ist, muss ein lokales Oder UUID-Attribut angegeben werden.

Beispiele

/* IDL file #1 */ 
[
    local
] 
interface local_procs 
{ 
    void MyLocalProc(void);
} 
 
/* IDL file #2 */ 
[
    object, 
    uuid(12345678-1234-1234-123456789ABC), 
    local
] 
interface local_object_procs : IUnknown
{ 
    void MyLocalObjectProc(void);
} 
 
/* IDL file #3 */ 
[
    uuid(87654321-1234-1234-123456789ABC)
] 
interface mixed_procs 
{ 
    [local] void MyLocalProc(void); 
    HRESULT MyRemoteProc([in] short sParam); 
}

Weitere Informationen

/app_config

auto_handle

Rückruf

context_handle

Endpunkt

IDL-Datei (Interface Definition)

Ignorieren

implicit_handle

/Osf

Objekt

pointer_default

Ptr

Ref

Schnur

Einzigartige

UUID

Version