Bagikan melalui


Marshal.GetObjectForIUnknown(IntPtr) Metode

Definisi

Mengembalikan instans jenis yang mewakili objek COM dengan penunjuk ke antarmuka IUnknown-nya .

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

Parameter

pUnk
IntPtr

nativeint

Penunjuk ke IUnknown antarmuka.

Mengembalikan

Objek yang mewakili objek COM tidak terkelola yang ditentukan.

Atribut

Pengecualian

Keterangan

Metode ini membungkus IUnknown objek terkelola. Ini memiliki efek meningkatkan jumlah referensi komponen COM. Jumlah referensi akan dikurangi ketika runtime melakukan pengumpulan sampah pada objek terkelola yang mewakili objek COM.

Parameter pUnk mewakili IUnknown penunjuk antarmuka; namun, karena semua antarmuka COM berasal secara langsung atau tidak langsung dari IUnknown, Anda dapat meneruskan antarmuka COM apa pun ke metode ini. Objek yang dikembalikan oleh GetObjectForIUnknown adalah Runtime Callable Wrapper, yang dikelola runtime bahasa umum seperti halnya objek terkelola lainnya. Jenis pembungkus ini sering kali merupakan jenis dasar System.__ComObject , yang merupakan jenis tersembunyi yang digunakan ketika jenis pembungkus ambigu. Anda masih dapat melakukan panggilan terlambat ke jenis dasar seperti itu selama objek COM mengimplementasikan antarmuka IDispatch . Demikian juga, Anda dapat mentransmisikan objek yang dikembalikan ke antarmuka COM yang sesuai.

Agar objek dibungkus dengan jenis kelas terkelola tertentu (dan bukan jenis pembungkus generik), Anda harus mematuhi persyaratan berikut:

Atau, Anda dapat menghindari persyaratan ini dan masih mendapatkan objek yang dibungkus dengan jenis kelas terkelola tertentu dengan menggunakan Marshal.GetTypedObjectForIUnknown metode .

Berlaku untuk

Lihat juga