Lokales Attribut

Das [ lokale ] Attribut gibt dem 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 gesamte Schnittstelle gelten. Die [ Standardwerte für den Endpunkt,die ] [ Versionund ] den [ Zeiger _ ] sind optional. Wenn Sie mit dem _ /app-Konfigurationsschalter kompilieren, kann auch ein [ implizites _ Handle ] oder ein [ _ automatisches Handle vorhanden ] sein. Trennen Sie mehrere Attribute durch Kommas.

Schnittstellenname

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

string-uuid

Gibt eine vom Hilfsprogramm Uuidgen generierte UUID-Zeichenfolge an. Wenn Sie den MIDL-Compilerschalter /osfnicht 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ückrufe; ] das Zeigerattribut [ ref, ] [ eindeutigoder ] [ ptr; und die ] Verwendungsattribute [ Zeichenfolge, ] [ ignorierenund ] [ _ Kontexthandle ] . Trennen Sie mehrere Attribute durch Kommas.

Funktionsdeklarator

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

Bemerkungen

Das [ lokale ] Attribut kann auf einzelne Funktionen oder die Schnittstelle als Ganzes angewendet werden.

Bei Verwendung im Schnittstellenheader ermöglicht ihnen das [ lokale ] Attribut die Verwendung des MIDL-Compilers als Headergenerator. Der Compiler generiert keine Stubs für Funktionen und stellt nicht sicher, dass der Header übertragen werden kann.

Bei einer RPC-Schnittstelle kann das [ ] lokale Attribut nicht gleichzeitig mit dem [ uuid-Attribut verwendet ] werden. Entweder [ uuid ] oder [ local ] muss im Schnittstellenheader vorhanden sein, und der von Ihnen gewählten muss genau einmal auftreten.

Für eine COM-Schnittstelle (identifiziert durch das [ ] Objektschnittstellenattribut) kann die Schnittstellenattributliste das [ lokale ] Attribut enthalten, obwohl das [ uuid-Attribut ] vorhanden ist.

Bei Verwendung in einer einzelnen Funktion bestimmt das [ lokale ] Attribut eine lokale Prozedur, für die keine Stubs generiert werden. Die Verwendung von [ local ] als Funktionsattribut ist eine Microsoft-Erweiterung für DCE IDL. Daher ist dieses Attribut nicht verfügbar, wenn Sie mit dem MIDL-Schalter /osf 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 selbst eine Prozedur in der Schnittstelle enthalten ist, muss ein lokales attribut oder ein 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-Konfiguration

Automatisches _ Handle

Rückruf

_Kontexthandle

Endpunkt

IDL-Datei (Interface Definition)

Ignorieren

Implizites _ Handle

/osf

object

_Zeigerstandard

Ptr

ref

Schnur

Einzigartige

Uuid

Version