Marshal.GetObjectForIUnknown(IntPtr) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
pUnk
es Zero.
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:
Implemente la interfaz IProvideClassInfo para el objeto COM.
Registre el ensamblado contenedor con el Regasm.exe (Herramienta de registro de ensamblados).
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 .