Freigeben über


Marshal.QueryInterface(IntPtr, Guid, IntPtr) Methode

Definition

Fordert einen Zeiger auf eine angegebene Schnittstelle von einem COM-Objekt an.

public:
 static int QueryInterface(IntPtr pUnk, Guid % iid, [Runtime::InteropServices::Out] IntPtr % ppv);
[System.Security.SecurityCritical]
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
public static int QueryInterface (IntPtr pUnk, in Guid iid, out IntPtr ppv);
[<System.Security.SecurityCritical>]
static member QueryInterface : nativeint * Guid * nativeint -> int
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member QueryInterface : nativeint * Guid * nativeint -> int
static member QueryInterface : nativeint * Guid * nativeint -> int
Public Shared Function QueryInterface (pUnk As IntPtr, ByRef iid As Guid, ByRef ppv As IntPtr) As Integer

Parameter

pUnk
IntPtr

nativeint

Die abzufragende Schnittstelle.

iid
Guid

Der Schnittstellenbezeichner (Interface Identifier, IID) der angeforderten Schnittstelle.

ppv
IntPtr

nativeint

Enthält nach dem Beenden der Methode einen Verweis auf die zurückgegebene Schnittstelle.

Gibt zurück

Ein HRESULT, das den Erfolg oder Fehler des Aufrufs angibt.

Attribute

Hinweise

Die QueryInterface -Methode macht die IUnknown::QueryInterface-Methode eines COM-Objekts verfügbar, die versucht, einen bestimmten Schnittstellenzeiger abzurufen. Die Verwendung QueryInterface in einem COM-Objekt entspricht der Ausführung eines Umwandlungsvorgangs in verwaltetem Code. Das Aufrufen eines Objekts mit dieser Methode bewirkt, dass die Verweisanzahl auf dem Schnittstellenzeiger erhöht wird, bevor der Zeiger zurückgegeben wird. Verwenden Sie Marshal.Release immer, um die Verweisanzahl zu dekrementieren, sobald Sie mit dem Zeiger fertig sind. Um einen IntPtr Wert abzurufen, der einen IUnknown-Schnittstellenzeiger darstellt, können Sie , Marshal.GetIUnknownForObjectoder Marshal.GetIDispatchForObjectaufrufenMarshal.GetComInterfaceForObject.

Gilt für:

Weitere Informationen