Marshal.GetComInterfaceForObject Méthode

Définition

Retourne un pointeur d'interface qui représente l'interface d'un objet.

Surcharges

GetComInterfaceForObject(Object, Type)
Obsolète.

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée de l’objet spécifié. L'accès à l'interface de requête personnalisée est activé par défaut.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Obsolète.

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée de l’objet spécifié. L'accès à l'interface de requête personnalisée est contrôlé par le mode de personnalisation spécifié.

GetComInterfaceForObject<T,TInterface>(T)

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée d’un objet du type spécifié. L'accès à l'interface de requête personnalisée est activé par défaut.

GetComInterfaceForObject(Object, Type)

Attention

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

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée de l’objet spécifié. L'accès à l'interface de requête personnalisée est activé par défaut.

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

Paramètres

o
Object

Objet qui fournit l'interface.

T
Type

Type d'interface demandé.

Retours

IntPtr

nativeint

Pointeur d'interface qui représente l'interface spécifiée de l'objet.

Attributs

Exceptions

Le paramètre T n'est pas une interface.

- ou -

Le type n'est pas visible par COM.

- ou -

Le paramètre T est une définition de type générique.

Le paramètre o ne prend pas en charge l'interface demandée.

Le paramètre o a la valeur null.

- ou -

Le paramètre T a la valeur null.

Remarques

Cette méthode retourne un pointeur d’interface qui représente l’interface demandée sur l’objet spécifié. Il est particulièrement utile si vous avez une méthode non managée qui s’attend à recevoir un pointeur d’interface. L’appel d’un objet avec cette méthode entraîne l’incrémentation du nombre de références sur le pointeur d’interface avant que le pointeur ne soit retourné. Marshal.Release Utilisez toujours pour décrémenter le nombre de références une fois que vous avez terminé avec le pointeur. Vous devez respecter les règles définies par COM lors de l’utilisation de pointeurs d’interface COM bruts.

GetComInterfaceForObject(Object, Type) est utile lors de l’appel d’une méthode qui expose un paramètre d’objet IntPtr COM en tant que type ou avec un marshaling personnalisé. Bien que moins courant, vous pouvez utiliser cette méthode sur un objet managé pour obtenir un pointeur vers le wrapper COM callable de l’objet. Par exemple, vous pouvez utiliser GetComInterfaceForObject(Object, Type) sur un objet managé exporté vers COM pour obtenir un pointeur d’interface pour System.Runtime.InteropServices.UCOMIConnectionPointContainer. Vous ne pouvez pas obtenir de pointeur vers une interface de classe, car une interface de classe n’a pas le type correspondant à passer au deuxième paramètre (t). Utilisez plutôt Marshal.GetIDispatchForObject pour appeler les membres sur l’interface par défaut du wrapper com callable, qui est généralement une interface de classe de répartition automatique.

La GetComInterfaceForObject(Object, Type) surcharge de méthode permet la personnalisation de l’interface de requête par défaut. Pour spécifier s’il faut appliquer la personnalisation de l’interface de requête, utilisez la surcharge de méthode GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) .

Pour plus d’informations, consultez les articles Wrapper COM Callable et Runtime Callable Wrapper .

Voir aussi

S’applique à

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Attention

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

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée de l’objet spécifié. L'accès à l'interface de requête personnalisée est contrôlé par le mode de personnalisation spécifié.

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

Paramètres

o
Object

Objet qui fournit l'interface.

T
Type

Type d'interface demandé.

mode
CustomQueryInterfaceMode

Une des valeurs d'énumération qui indique s'il faut appliquer une personnalisation IUnknown::QueryInterface fournie par un ICustomQueryInterface.

Retours

IntPtr

nativeint

Pointeur d'interface qui représente l'interface de l'objet.

Attributs

Exceptions

Le paramètre T n'est pas une interface.

- ou -

Le type n'est pas visible par COM.

- ou -

Le paramètre T est une définition de type générique.

L'objet o ne prend pas en charge l'interface demandée.

Le paramètre o a la valeur null.

- ou -

Le paramètre T a la valeur null.

Remarques

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) vous permet de spécifier s’il faut appliquer la personnalisation de l’interface de requête. Utilisez la surcharge pour appliquer la GetComInterfaceForObject(Object, Type) personnalisation de l’interface de requête par défaut.

S’applique à

GetComInterfaceForObject<T,TInterface>(T)

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée d’un objet du type spécifié. L'accès à l'interface de requête personnalisée est activé par défaut.

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

Paramètres de type

T

Type d'élément o.

TInterface

Type d'interface à retourner.

Paramètres

o
T

Objet qui fournit l'interface.

Retours

IntPtr

nativeint

Pointeur d'interface qui représente l'interface TInterface.

Attributs

Exceptions

Le paramètre TInterface n'est pas une interface.

- ou -

Le type n'est pas visible par COM.

- ou -

Le paramètre T est un type générique ouvert.

Le paramètre o ne prend pas en charge l'interface TInterface.

Le paramètre o a la valeur null.

Remarques

Cette méthode retourne un pointeur d’interface qui représente l’interface TInterface sur l’objet spécifié. Il est particulièrement utile si vous avez une méthode non managée qui s’attend à recevoir un pointeur d’interface. L’appel d’un objet avec cette méthode entraîne l’incrémentation du nombre de références sur le pointeur d’interface avant que le pointeur ne soit retourné. Utilisez toujours la Marshal.Release méthode pour décrémenter le nombre de références lorsque vous avez terminé avec le pointeur. Vous devez respecter les règles définies par COM lors de l’utilisation de pointeurs d’interface COM bruts.

GetComInterfaceForObject<T,TInterface>(T) est utile lors de l’appel d’une méthode qui expose un paramètre d’objet IntPtr COM en tant que type ou avec un marshaling personnalisé. Vous pouvez également utiliser cette méthode sur un objet managé pour obtenir un pointeur vers le wrapper COM callable de l’objet, bien que cela soit moins courant. Par exemple, vous pouvez utiliser GetComInterfaceForObject<T,TInterface>(T) sur un objet managé exporté vers COM pour obtenir un pointeur d’interface pour System.Runtime.InteropServices.UCOMIConnectionPointContainer.

La GetComInterfaceForObject<T,TInterface>(T) surcharge de méthode permet la personnalisation de l’interface de requête par défaut. Pour spécifier s’il faut appliquer la personnalisation de l’interface de requête, utilisez la surcharge de méthode GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) .

Pour plus d’informations, consultez les articles Wrapper COM Callable et Runtime Callable Wrapper .

S’applique à