Evaluar y enviar comentarios
MSDN
MSDN Library
 GetObjectForIUnknown (Método)
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
Marshal.GetObjectForIUnknown (Método)

Devuelve una instancia de un tipo que representa un objeto COM mediante un puntero a su interfaz IUnknown.

Espacio de nombres: System.Runtime.InteropServices
Ensamblado: mscorlib (en mscorlib.dll)

Visual Basic (Declaración)
Public Shared Function GetObjectForIUnknown ( _
    pUnk As IntPtr _
) As Object
Visual Basic (Uso)
Dim pUnk As IntPtr
Dim returnValue As Object

returnValue = Marshal.GetObjectForIUnknown(pUnk)
C#
public static Object GetObjectForIUnknown (
    IntPtr pUnk
)
C++
public:
static Object^ GetObjectForIUnknown (
    IntPtr pUnk
)
J#
public static Object GetObjectForIUnknown (
    IntPtr pUnk
)
JScript
public static function GetObjectForIUnknown (
    pUnk : IntPtr
) : Object

Parámetros

pUnk

Puntero a la interfaz IUnknown.

Valor devuelto

Objeto que representa el objeto COM no administrado especificado.

Este método ajusta el elemento IUnknown en un objeto administrado. Como resultado, incrementa el contador de referencias del componente COM. El contador de referencias se reducirá cuando el motor en tiempo de ejecución realice la recolección de elementos no utilizados en el objeto administrado que representa el objeto COM.

El primer parámetro, pUnk, representa un puntero de interfaz IUnknown; sin embargo, dado que todas las interfaces COM se derivan directa o indirectamente de IUnknown, puede pasar cualquier interfaz COM a este método. El objeto devuelto por GetObjectForIUnknown es un contenedor al que se puede llamar en tiempo de ejecución, que Common Language Runtime administra como cualquier otro objeto administrado. El tipo de este contenedor suele ser un tipo System.__ComObject genérico, que es un tipo oculto utilizado cuando el tipo de contenedor es ambiguo. Aún puede realizar llamadas en tiempo de ejecución a este tipo genérico, siempre que el objeto COM implemente la interfaz IDispatch. Asimismo, puede convertir el objeto devuelto en una interfaz COM apropiada. Para obtener más información, vea Contenedor al que se puede llamar en tiempo de ejecución.

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

  • Implemente la interfaz IProvideClassInfo para el objeto COM.

  • Registre el ensamblado que contiene el objeto mediante la herramienta Registro de ensamblado (Regasm.exe).

También puede obviar estos requisitos y obtener un objeto ajustado con un tipo de clase administrada específico utilizando el método Marshal.GetTypedObjectForIUnknown.

NotaNota

Este método utiliza SecurityAction.LinkDemand para evitar que se le llame desde código que no sea de confianza; sólo el llamador inmediato debe disponer del permiso SecurityPermissionAttribute.UnmanagedCode. Si se puede llamar al código desde código de confianza parcial, no pase ninguna entrada de usuario a los métodos de la clase Marshal sin validación. Para conocer las limitaciones importantes que existen a la hora de utilizar el miembro LinkDemand, vea Demand frente a LinkDemand.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker