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 le 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 callable runtime, que le common language runtime gère comme n’importe quel 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 de wrapper est ambigu. Vous pouvez toujours effectuer des appels liés en retard à un tel type de base tant que l’objet COM implémente l’interface IDispatch . De même, vous pouvez caster l’objet retourné dans une interface COM appropriée.

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

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

S’applique à

Voir aussi