Freigeben über


Marshal.GetObjectForIUnknown-Methode: (IntPtr)

 

Veröffentlicht: Oktober 2016

Gibt eine Instanz eines Typs, der durch einen Zeiger auf ein COM-Objekt stellt die IUnknown Schnittstelle.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

Syntax

[SecurityCriticalAttribute]
public static object GetObjectForIUnknown(
    IntPtr pUnk
)
public:
[SecurityCriticalAttribute]
static Object^ GetObjectForIUnknown(
    IntPtr pUnk
)
[<SecurityCriticalAttribute>]
static member GetObjectForIUnknown : 
        pUnk:nativeint -> Object
<SecurityCriticalAttribute>
Public Shared Function GetObjectForIUnknown (
    pUnk As IntPtr
) As Object

Parameter

  • pUnk
    Type: System.IntPtr

    Ein Zeiger auf die IUnknown-Schnittstelle.

Rückgabewert

Type: System.Object

Ein Objekt, das das angegebene nicht verwaltete COM-Objekt darstellt.

Hinweise

Diese Methode umschließt IUnknown in einem verwalteten Objekt. Dies hat den Effekt der Verweiszähler der COM-Komponente. Der Verweiszähler wird dekrementiert, wenn die Common Language Runtime Garbagecollection für das verwaltete Objekt ausgeführt, das COM-Objekt darstellt.

Die pUnk Parameter darstellt ein IUnknown -Schnittstellenzeiger, aber da alle COM-Schnittstellen direkt oder indirekt von abgeleitet sind IUnknown, können Sie eine beliebige COM-Schnittstelle an diese Methode übergeben. Das zurückgegebene Objekt GetObjectForIUnknown ist ein Runtime Callable Wrapper, der die common Language Runtime wie sie verwaltet wird eines anderes verwalteten Objekts. Der Typ dieses Wrappers ist häufig ein generisches System.__ComObject Typ, der ist eine verborgene verwendet, wenn der Wrappertyp mehrdeutig ist. Sie können weiterhin spät gebundene Aufrufe eines solchen generischen Typs ausführen, solange das COM-Objekt implementiert die IDispatch Schnittstelle. Ebenso können Sie das zurückgegebene Objekt in eine entsprechende COM-Schnittstelle umwandeln.

Für ein Objekt, das umschlossen werden mit einem bestimmten verwalteten Klassentyps (und nicht für einen Wrappertyp generische) müssen Sie die folgenden Anforderungen entsprechen:

Alternativ können Sie diese Anforderungen zu vermeiden und weiterhin erhalten ein Objekt, das mit einem bestimmten verwalteten Klasse, mithilfe umschlossen wird der Marshal.GetTypedObjectForIUnknown Methode.

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
GetTypedObjectForIUnknown
Marshal-Klasse
System.Runtime.InteropServices-Namespace

Zurück zum Anfang