Marshal.QueryInterface-Methode: (IntPtr, Guid, IntPtr)
Veröffentlicht: Oktober 2016
Fordert einen Zeiger auf eine angegebene Schnittstelle von einem COM-Objekt an.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
[SecurityCriticalAttribute]
public static int QueryInterface(
IntPtr pUnk,
ref Guid iid,
out IntPtr ppv
)
public:
[SecurityCriticalAttribute]
static int QueryInterface(
IntPtr pUnk,
Guid% iid,
[OutAttribute] IntPtr% ppv
)
[<SecurityCriticalAttribute>]
static member QueryInterface :
pUnk:nativeint *
iid:Guid byref *
ppv:nativeint byref -> int
<SecurityCriticalAttribute>
Public Shared Function QueryInterface (
pUnk As IntPtr,
ByRef iid As Guid,
<OutAttribute> ByRef ppv As IntPtr
) As Integer
Parameter
pUnk
Type: System.IntPtrDie abzufragende Schnittstelle.
iid
Type: System.GuidDer Schnittstellenbezeichner (Interface Identifier, IID) der angeforderten Schnittstelle.
ppv
Type: System.IntPtrEnthält nach dem Beenden der Methode einen Verweis auf die zurückgegebene Schnittstelle.
Rückgabewert
Type: System.Int32
Ein HRESULT, das den Erfolg oder Fehler des Aufrufs angibt.
Hinweise
Die QueryInterface Methode macht die IUnknown::QueryInterface Methode eines COM-Objekts, das versucht, einen bestimmten Schnittstellenzeiger abzurufen. Mithilfe von QueryInterface für ein COM-Objekt entspricht der Ausführung eines Umwandlungsvorgangs in verwaltetem Code. Das Aufrufen eines Objekts mit dieser Methode bewirkt, dass den Verweiszähler für den Schnittstellenzeiger vor der Rückgabe des Zeigers inkrementiert wird. Verwenden Sie immer Marshal.Release um den Verweiszähler zu verringern, wenn Sie mit dem Mauszeiger beendet haben. Zum Abrufen einer IntPtr Wert, der darstellt ein IUnknown -Schnittstellenzeiger, rufen Sie Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObject, oder Marshal.GetIDispatchForObject.
Sicherheit
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Versionsinformationen
Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Siehe auch
AddRef
Release
GetComInterfaceForObject
GetIUnknownForObject
GetIDispatchForObject
GetObjectForIUnknown
Marshal-Klasse
System.Runtime.InteropServices-Namespace
Zurück zum Anfang