Marshal.GetComInterfaceForObject Metode

Definisi

Mengembalikan penunjuk antarmuka yang mewakili antarmuka untuk objek.

Overload

GetComInterfaceForObject(Object, Type)
Kedaluwarsa.

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek yang ditentukan. Akses antarmuka kueri kustom diaktifkan secara default.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Kedaluwarsa.

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek yang ditentukan. Akses antarmuka kueri kustom dikontrol oleh mode kustomisasi yang ditentukan.

GetComInterfaceForObject<T,TInterface>(T)

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek dari jenis yang ditentukan. Akses antarmuka kueri kustom diaktifkan secara default.

GetComInterfaceForObject(Object, Type)

Sumber:
Marshal.NoCom.cs
Sumber:
Marshal.NoCom.cs
Sumber:
Marshal.NoCom.cs

Perhatian

GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek yang ditentukan. Akses antarmuka kueri kustom diaktifkan secara default.

public:
 static IntPtr GetComInterfaceForObject(System::Object ^ o, Type ^ T);
[System.Obsolete("GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509")]
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject (object o, Type T);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T);
public static IntPtr GetComInterfaceForObject (object o, Type T);
[<System.Obsolete("GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509")>]
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : obj * Type -> nativeint
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type -> nativeint
static member GetComInterfaceForObject : obj * Type -> nativeint
Public Shared Function GetComInterfaceForObject (o As Object, T As Type) As IntPtr

Parameter

o
Object

Objek yang menyediakan antarmuka.

T
Type

Jenis antarmuka yang diminta.

Mengembalikan

IntPtr

nativeint

Penunjuk antarmuka yang mewakili antarmuka yang ditentukan untuk objek .

Atribut

Pengecualian

Parameter T bukan antarmuka.

-atau-

Jenis tidak terlihat oleh COM.

-atau-

Parameter T adalah definisi jenis generik.

Parameter o tidak mendukung antarmuka yang diminta.

Parameternya o adalah null.

-atau-

Parameternya T adalah null.

Keterangan

Metode ini mengembalikan penunjuk antarmuka yang mewakili antarmuka yang diminta pada objek yang ditentukan. Ini sangat berguna jika Anda memiliki metode tidak terkelola yang mengharapkan untuk diteruskan penunjuk antarmuka. Memanggil objek dengan metode ini menyebabkan jumlah referensi bertambah pada penunjuk antarmuka sebelum penunjuk dikembalikan. Selalu gunakan Marshal.Release untuk mengurangi jumlah referensi setelah Anda selesai dengan penunjuk. Anda harus mematuhi aturan yang ditentukan oleh COM saat menggunakan penunjuk antarmuka COM mentah.

GetComInterfaceForObject(Object, Type) berguna saat memanggil metode yang mengekspos parameter objek COM sebagai IntPtr jenis, atau dengan marshaling kustom. Meskipun kurang umum, Anda dapat menggunakan metode ini pada objek terkelola untuk mendapatkan penunjuk ke pembungkus yang dapat dipanggil COM objek. Misalnya, Anda dapat menggunakan GetComInterfaceForObject(Object, Type) pada objek terkelola yang diekspor ke COM untuk mendapatkan penunjuk antarmuka untuk System.Runtime.InteropServices.UCOMIConnectionPointContainer. Anda tidak dapat memperoleh penunjuk ke antarmuka kelas karena antarmuka kelas tidak memiliki jenis yang sesuai untuk diteruskan ke parameter kedua (t). Sebagai gantinya, gunakan Marshal.GetIDispatchForObject untuk memanggil anggota pada antarmuka default pembungkus yang dapat dipanggil COM, yang biasanya merupakan antarmuka kelas pengiriman otomatis.

Metode GetComInterfaceForObject(Object, Type) kelebihan beban memungkinkan penyesuaian antarmuka kueri secara default. Untuk menentukan apakah akan menerapkan kustomisasi antarmuka kueri, gunakan GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) metode kelebihan beban.

Untuk informasi tambahan, lihat artikel COM Callable Wrapper dan Runtime Callable Wrapper .

Lihat juga

Berlaku untuk

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Sumber:
Marshal.NoCom.cs
Sumber:
Marshal.NoCom.cs
Sumber:
Marshal.NoCom.cs

Perhatian

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek yang ditentukan. Akses antarmuka kueri kustom dikontrol oleh mode kustomisasi yang ditentukan.

public:
 static IntPtr GetComInterfaceForObject(System::Object ^ o, Type ^ T, System::Runtime::InteropServices::CustomQueryInterfaceMode mode);
[System.Obsolete("GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[<System.Obsolete("GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
Public Shared Function GetComInterfaceForObject (o As Object, T As Type, mode As CustomQueryInterfaceMode) As IntPtr

Parameter

o
Object

Objek yang menyediakan antarmuka.

T
Type

Jenis antarmuka yang diminta.

mode
CustomQueryInterfaceMode

Salah satu nilai enumerasi yang menunjukkan apakah akan menerapkan IUnknown::QueryInterface kustomisasi yang disediakan oleh ICustomQueryInterface.

Mengembalikan

IntPtr

nativeint

Penunjuk antarmuka yang mewakili antarmuka untuk objek .

Atribut

Pengecualian

Parameter T bukan antarmuka.

-atau-

Jenis tidak terlihat oleh COM.

-atau-

Parameter T adalah definisi jenis generik.

Objek o tidak mendukung antarmuka yang diminta.

Parameternya o adalah null.

-atau-

Parameternya T adalah null.

Keterangan

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) memungkinkan Anda menentukan apakah akan menerapkan kustomisasi antarmuka kueri. GetComInterfaceForObject(Object, Type) Gunakan kelebihan beban untuk menerapkan kustomisasi antarmuka kueri secara default.

Berlaku untuk

GetComInterfaceForObject<T,TInterface>(T)

Sumber:
Marshal.NoCom.cs
Sumber:
Marshal.NoCom.cs
Sumber:
Marshal.NoCom.cs

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek dari jenis yang ditentukan. Akses antarmuka kueri kustom diaktifkan secara default.

public:
generic <typename T, typename TInterface>
 static IntPtr GetComInterfaceForObject(T o);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject<T,TInterface> (T o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject<T,TInterface> (T o);
public static IntPtr GetComInterfaceForObject<T,TInterface> (T o);
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : 'T -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : 'T -> nativeint
static member GetComInterfaceForObject : 'T -> nativeint
Public Shared Function GetComInterfaceForObject(Of T, TInterface) (o As T) As IntPtr

Jenis parameter

T

Jenis o.

TInterface

Jenis antarmuka yang akan dikembalikan.

Parameter

o
T

Objek yang menyediakan antarmuka.

Mengembalikan

IntPtr

nativeint

Penunjuk antarmuka yang mewakili TInterface antarmuka.

Atribut

Pengecualian

Parameter TInterface bukan antarmuka.

-atau-

Jenis tidak terlihat oleh COM.

-atau-

Parameter T adalah jenis generik terbuka.

Parameter o tidak mendukung TInterface antarmuka.

Parameternya o adalah null.

Keterangan

Metode ini mengembalikan penunjuk antarmuka yang mewakili TInterface antarmuka pada objek yang ditentukan. Ini sangat berguna jika Anda memiliki metode tidak terkelola yang mengharapkan untuk diteruskan penunjuk antarmuka. Memanggil objek dengan metode ini menyebabkan jumlah referensi bertambah pada penunjuk antarmuka sebelum penunjuk dikembalikan. Selalu gunakan Marshal.Release metode untuk mengurangi jumlah referensi ketika Anda telah selesai dengan penunjuk. Anda harus mematuhi aturan yang ditentukan oleh COM saat menggunakan penunjuk antarmuka COM mentah.

GetComInterfaceForObject<T,TInterface>(T) berguna saat memanggil metode yang mengekspos parameter objek COM sebagai IntPtr jenis, atau dengan marshaling kustom. Anda juga dapat menggunakan metode ini pada objek terkelola untuk mendapatkan penunjuk ke pembungkus yang dapat dipanggil COM objek, meskipun ini kurang umum. Misalnya, Anda dapat menggunakan GetComInterfaceForObject<T,TInterface>(T) pada objek terkelola yang diekspor ke COM untuk mendapatkan penunjuk antarmuka untuk System.Runtime.InteropServices.UCOMIConnectionPointContainer.

Metode GetComInterfaceForObject<T,TInterface>(T) kelebihan beban memungkinkan penyesuaian antarmuka kueri secara default. Untuk menentukan apakah akan menerapkan kustomisasi antarmuka kueri, gunakan GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) metode kelebihan beban.

Untuk informasi tambahan, lihat artikel COM Callable Wrapper dan Runtime Callable Wrapper .

Berlaku untuk