Marshal.GetObjectForIUnknown(IntPtr) Método

Definición

Devuelve una instancia de un tipo que representa un objeto COM por un puntero a su interfaz 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

Parámetros

pUnk
IntPtr

nativeint

Puntero a la interfaz IUnknown.

Devoluciones

Objeto que representa el objeto COM no administrado especificado.

Atributos

Excepciones

Comentarios

Este método se IUnknown ajusta en un objeto administrado. Esto tiene el efecto de incrementar el recuento de referencias del componente COM. El recuento de referencias se disminuirá cuando el tiempo de ejecución realice la recolección de elementos no utilizados en el objeto administrado que representa el objeto COM.

El pUnk parámetro representa un IUnknown puntero de interfaz; sin embargo, dado que todas las interfaces COM derivan directa o indirectamente de IUnknown, puede pasar cualquier interfaz COM a este método. El objeto devuelto por GetObjectForIUnknown es un contenedor invocable en tiempo de ejecución, que Common Language Runtime administra como hace cualquier otro objeto administrado. El tipo de este contenedor suele ser un tipo base System.__ComObject , que es un tipo oculto que se usa cuando el tipo contenedor es ambiguo. Todavía puede realizar llamadas enlazadas en tiempo de ejecución a un tipo base de este tipo siempre que el objeto COM implemente la interfaz IDispatch . Del mismo modo, puede convertir el objeto devuelto a una interfaz COM adecuada.

Para que un objeto se encapsula con un tipo de clase administrada específico (y no un tipo de contenedor genérico), debe cumplir los siguientes requisitos:

Como alternativa, puede evitar estos requisitos y seguir recibiendo un objeto que se encapsula con un tipo de clase administrada específico mediante el Marshal.GetTypedObjectForIUnknown método .

Se aplica a

Consulte también