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.IntPtrEin 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:
Implementieren der IProvideClassInfo Schnittstelle für das COM-Objekt.
Registrieren Sie die enthaltende Assembly mit dem Regasm.exe (Assembly Registration Tool).
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
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