Public Shared Function GetTypedObjectForIUnknown ( _ pUnk As IntPtr, _ t As Type _ ) As Object
Dim pUnk As IntPtr Dim t As Type Dim returnValue As Object returnValue = Marshal.GetTypedObjectForIUnknown(pUnk, t)
public static Object GetTypedObjectForIUnknown ( IntPtr pUnk, Type t )
public: static Object^ GetTypedObjectForIUnknown ( IntPtr pUnk, Type^ t )
public static function GetTypedObjectForIUnknown ( pUnk : IntPtr, t : Type ) : Object
Puntero a la interfaz IUnknown del objeto no administrado.
Type de la clase administrada solicitada.
ArgumentException
t no tiene el atributo System.Runtime.InteropServices.ComImportAttribute.
El parámetro t debe ser un tipo importado de COM o un subtipo de un tipo importado de COM. Además, t debe ser un tipo cuyos metadatos se importaron mediante la herramienta Importador de la biblioteca de tipos (Tlbimp.exe). Este tipo debe ser una clase y no una interfaz de coclase asociada, que reciba el nombre de la clase COM. Supongamos, por ejemplo, que Tlbimp.exe importa Miclase como una clase denominada MiclaseClass y una interfaz de coclase denominada Miclase. Asegúrese de utilizar MiclaseClass y no Miclase con este método. Para obtener más información acerca de las clases importadas y las interfaces de coclase, vea Conversión de tipos importados.
Si ya se ha obtenido un objeto para el parámetro pUnk, no se tendrá en cuenta t y se devolverá el objeto existente. pUnk representa un puntero de interfaz IUnknown; sin embargo, dado que todas las interfaces COM se derivan directa o indirectamente de IUnknown, se puede pasar cualquier interfaz COM a este método. El objeto devuelto por GetTypedObjectForIUnknown es un contenedor al que se puede llamar en tiempo de ejecución, que Common Language Runtime administra como cualquier otro objeto administrado. Para obtener más información, vea Contenedor al que se puede llamar en tiempo de ejecución.
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.