Marshal.GetObjectForIUnknown(IntPtr) Méthode

Définition

Retourne une instance d’un type qui représente un objet COM par un pointeur vers son interface IUnknown .

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

Paramètres

pUnk
IntPtr

nativeint

Pointeur vers l'interface IUnknown.

Retours

Objet qui représente l’objet COM non managé spécifié.

Attributs

Exceptions

pUnk a la valeur Zero.

Remarques

Cette méthode est encapsulé IUnknown dans un objet managé. Cela a pour effet d’incrémenter le nombre de références du composant COM. Le nombre de références est décrémenté lorsque le runtime effectue un garbage collection sur l’objet managé qui représente l’objet COM.

Le pUnk paramètre représente un pointeur d’interface IUnknown ; toutefois, étant donné que toutes les interfaces COM dérivent directement ou indirectement de IUnknown, vous pouvez passer n’importe quelle interface COM à cette méthode. L’objet retourné par GetObjectForIUnknown est un wrapper pouvant être appelé au runtime, que le Common Language Runtime gère comme il le fait tout autre objet managé. Le type de ce wrapper est souvent un type de base System.__ComObject , qui est un type masqué utilisé lorsque le type wrapper est ambigu. Vous pouvez toujours effectuer des appels à liaison tardive vers un tel type de base tant que l’objet COM implémente l’interface IDispatch . De même, vous pouvez convertir l’objet retourné en une interface COM appropriée.

Pour qu’un objet soit encapsulé avec un type de classe managé spécifique (et non un type wrapper générique), vous devez respecter les exigences suivantes :

Vous pouvez également éviter ces exigences et obtenir un objet encapsulé avec un type de classe managé spécifique à l’aide de la Marshal.GetTypedObjectForIUnknown méthode.

S’applique à

Voir aussi