Marshal.GetObjectForIUnknown(IntPtr) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca wystąpienie typu reprezentującego obiekt COM przez wskaźnik do interfejsu IUnknown .
public:
static System::Object ^ GetObjectForIUnknown(IntPtr pUnk);
[System.Security.SecurityCritical]
public static object GetObjectForIUnknown (IntPtr pUnk);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object GetObjectForIUnknown (IntPtr pUnk);
public static object GetObjectForIUnknown (IntPtr pUnk);
[<System.Security.SecurityCritical>]
static member GetObjectForIUnknown : nativeint -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetObjectForIUnknown : nativeint -> obj
static member GetObjectForIUnknown : nativeint -> obj
Public Shared Function GetObjectForIUnknown (pUnk As IntPtr) As Object
Parametry
- pUnk
-
IntPtr
nativeint
Wskaźnik do interfejsu IUnknown
.
Zwraca
Obiekt reprezentujący określony niezarządzany obiekt COM.
- Atrybuty
Wyjątki
pUnk
to Zero.
Uwagi
Ta metoda opakowuje IUnknown
obiekt zarządzany. Ma to wpływ na zwiększanie liczby odwołań składnika COM. Liczba odwołań zostanie zdekrementowana, gdy środowisko uruchomieniowe wykonuje odzyskiwanie pamięci na zarządzanym obiekcie reprezentującym obiekt COM.
Parametr pUnk
reprezentuje wskaźnik interfejsu IUnknown
, jednak ponieważ wszystkie interfejsy COM pochodzą bezpośrednio lub pośrednio z IUnknown
metody , można przekazać dowolny interfejs COM do tej metody. Obiekt zwrócony przez GetObjectForIUnknown jest otoką wywołaną środowiska uruchomieniowego, którą zarządza środowisko uruchomieniowe języka wspólnego, tak jak w przypadku każdego innego zarządzanego obiektu. Typ tej otoki jest często typem podstawowym System.__ComObject
, który jest ukrytym typem używanym, gdy typ otoki jest niejednoznaczny. Nadal można wykonywać późne wywołania do takiego typu podstawowego, o ile obiekt COM implementuje interfejs IDispatch . Podobnie można rzutować zwrócony obiekt do odpowiedniego interfejsu COM.
Aby obiekt był opakowany określonym typem klasy zarządzanej (a nie rodzajem otoki ogólnej), należy spełnić następujące wymagania:
Zaimplementuj interfejs IProvideClassInfo dla obiektu COM.
Zarejestruj zawierający zestaw przy użyciu Regasm.exe (narzędzie rejestracji zestawu).
Alternatywnie można uniknąć tych wymagań i nadal uzyskać obiekt opakowany określonym typem klasy zarządzanej Marshal.GetTypedObjectForIUnknown przy użyciu metody .