Marshal.GetComInterfaceForObject Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
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
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.
Remarques
Cette méthode retourne un pointeur d’interface qui représente l’interface demandée sur l’objet spécifié. Elle 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 autorise 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
- GetComInterfaceForObjectInContext(Object, Type)
- ComImportAttribute
- Release(IntPtr)
- UCOMIConnectionPointContainer
- GetIDispatchForObject(Object)
S’applique à
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
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é.
Une des valeurs d'énumération qui indique s'il faut appliquer une personnalisation IUnknown::QueryInterface
fournie par un ICustomQueryInterface.
Retours
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.
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)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
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
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é. Elle 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 ce 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 autorise 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 .