Marshal.GetObjectForIUnknown(IntPtr) Metoda

Definice

Vrátí instanci typu, která představuje objekt COM ukazatelem na jeho rozhraní 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

Ukazatel na IUnknown rozhraní.

Návraty

Objekt, který představuje zadaný nespravovaný objekt COM.

Atributy

Výjimky

Poznámky

Tato metoda se zabalí IUnknown do spravovaného objektu. To má vliv na zvýšení počtu odkazů komponenty COM. Počet odkazů se sníží, když modul runtime provede uvolňování paměti spravovaného objektu, který představuje objekt COM.

Parametr pUnk představuje IUnknown ukazatel rozhraní, ale protože všechna rozhraní MODELU COM jsou odvozena přímo nebo nepřímo z IUnknown, můžete předat jakékoli rozhraní MODELU COM této metodě. Objekt vrácený GetObjectForIUnknown je obálka volatelná za běhu, kterou modul CLR spravuje stejně jako jakýkoli jiný spravovaný objekt. Typ tohoto obálky je často základním System.__ComObject typem, což je skrytý typ používaný při nejednoznačném typu obálky. Stále můžete provádět opožděná volání takového základního typu, pokud objekt COM implementuje rozhraní IDispatch . Stejně tak můžete vrácený objekt přetypovat na příslušné rozhraní MODELU COM.

Aby byl objekt zabalený určitým typem spravované třídy (a ne obecným typem obálky), musíte dodržovat následující požadavky:

Alternativně se můžete těmto požadavkům vyhnout a přesto získat objekt, který je zabalený konkrétním typem spravované třídy pomocí Marshal.GetTypedObjectForIUnknown metody.

Platí pro

Viz také