Freigeben über


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

  • iid
    Type: System.Guid

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

  • ppv
    Type: System.IntPtr

    Enthä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

SecurityCriticalAttribute

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