Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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