Marshal.GetObjectForIUnknown(IntPtr) Metoda

Definice

Vrátí instanci typu, který představuje objekt COM ukazatelem na jeho IUnknown rozhraní.

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 zabalí IUnknown spravovaný objekt. To má za následek 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 libovolné rozhraní MODELU COM této metodě. Objekt vrácený GetObjectForIUnknown objektem je modul Runtime Callable Wrapper, který modul CLR (Common Language Runtime) spravuje stejně jako jakýkoli jiný spravovaný objekt. Typ této obálky je často základní System.__ComObject typ, což je skrytý typ, který se používá, když je typ obálky nejednoznačný. Stále můžete provádět pozdní volání takového základního typu, pokud objekt COM implementuje rozhraní IDispatch . Stejně tak můžete přetypovat vrácený objekt do příslušného rozhraní COM.

Aby byl objekt zabalený pomocí konkrétního typu spravované třídy (a ne obecného typu obálky), musíte splňovat následující požadavky:

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

Platí pro

Viz také