Marshal.CreateWrapperOfType 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í.
Sobrecargas
| Nombre | Description |
|---|---|
| CreateWrapperOfType(Object, Type) |
Obsoletos.
Ajusta el objeto COM especificado en un objeto del tipo especificado. |
| CreateWrapperOfType<T,TWrapper>(T) |
Ajusta el objeto COM especificado en un objeto del tipo especificado. |
CreateWrapperOfType(Object, Type)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
Precaución
CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519
Ajusta el objeto COM especificado en un objeto del tipo especificado.
public:
static System::Object ^ CreateWrapperOfType(System::Object ^ o, Type ^ t);
[System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")]
[System.Security.SecurityCritical]
public static object CreateWrapperOfType(object o, Type t);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object? CreateWrapperOfType(object? o, Type t);
[System.Security.SecurityCritical]
public static object CreateWrapperOfType(object o, Type t);
public static object CreateWrapperOfType(object o, Type t);
public static object? CreateWrapperOfType(object? o, Type t);
[<System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")>]
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
static member CreateWrapperOfType : obj * Type -> obj
Public Shared Function CreateWrapperOfType (o As Object, t As Type) As Object
Parámetros
- o
- Object
Objeto que se va a encapsular.
- t
- Type
Tipo de contenedor que se va a crear.
Devoluciones
Objeto recién ajustado que es una instancia del tipo deseado.
- Atributos
Excepciones
El t parámetro es null.
o no se puede convertir al tipo de destino porque no admite todas las interfaces necesarias.
Comentarios
CreateWrapperOfType convierte un tipo de clase COM, normalmente el tipo base __ComObject , en otro tipo de clase COM. El objeto COM de entrada, representado por el parámetro o, es un contenedor invocable en tiempo de ejecución (RCW).
t Los parámetros y o deben ser clases cuyas firmas se atribuyen a System.Runtime.InteropServices.ComImportAttribute. La herramienta Tlbimp.exe (Importador de biblioteca de tipos) aplica este atributo automáticamente cuando importa una biblioteca de tipos. Si crea el RCW manualmente en el código fuente, debe aplicar este atributo a la firma administrada que representa la coclase original para indicar sus orígenes COM.
Tlbimp.exe importa una coclase COM como una clase administrada y una interfaz. La interfaz coclase tiene el mismo nombre que la coclase original y la clase administrada tiene el nombre de coclase original anexado con "Class". Por ejemplo, una coclase denominada MyCoclass se convierte en una interfaz de coclase denominada MyCoclass y una clase administrada denominada MyCoclassClass. Puesto que t debe ser una clase, no una interfaz, asegúrese de especificar la clase administrada (MyCoclassClass) y no la interfaz de coclase.
Nota:
Se pierde la identidad del objeto COM de entrada porque una nueva instancia de RCW ajusta el puntero IUnknown expuesto por el RCW original.
Consulte también
Se aplica a
CreateWrapperOfType<T,TWrapper>(T)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
Ajusta el objeto COM especificado en un objeto del tipo especificado.
public:
generic <typename T, typename TWrapper>
static TWrapper CreateWrapperOfType(T o);
[System.Security.SecurityCritical]
public static TWrapper CreateWrapperOfType<T,TWrapper>(T o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static TWrapper CreateWrapperOfType<T,TWrapper>(T? o);
public static TWrapper CreateWrapperOfType<T,TWrapper>(T o);
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : 'T -> 'Wrapper
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : 'T -> 'Wrapper
static member CreateWrapperOfType : 'T -> 'Wrapper
Public Shared Function CreateWrapperOfType(Of T, TWrapper) (o As T) As TWrapper
Parámetros de tipo
- T
Tipo de objeto que se va a encapsular.
- TWrapper
Tipo de objeto que se va a devolver.
Parámetros
- o
- T
Objeto que se va a encapsular.
Devoluciones
Objeto recién ajustado.
- Atributos
Excepciones
o no se puede convertir en TWrapper porque no admite todas las interfaces necesarias.
Comentarios
CreateWrapperOfType<T,TWrapper>(T) convierte un objeto COM de tipo T en el TWrapper tipo de clase COM. El objeto COM de entrada, representado por el parámetro o, es un contenedor invocable en tiempo de ejecución (RCW).
Tanto el T parámetro de tipo genérico como el o parámetro deben ser clases cuyas firmas se atribuyen al System.Runtime.InteropServices.ComImportAttribute atributo . La herramienta Tlbimp.exe (Importador de biblioteca de tipos) aplica este atributo automáticamente cuando importa una biblioteca de tipos. Si crea el RCW manualmente en el código fuente, debe aplicar este atributo a la firma administrada que representa la coclase original para indicar sus orígenes COM.
Tlbimp.exe importa una coclase COM como una clase administrada y una interfaz. La interfaz coclase tiene el mismo nombre que la coclase original y la clase administrada tiene el nombre de coclase original anexado con "Class". Por ejemplo, una coclase denominada MyCoclass se convierte en una interfaz de coclase denominada MyCoclass y una clase administrada denominada MyCoclassClass. Dado queT debe ser una clase, no una interfaz, asegúrese de especificar la clase administrada (MyCoclassClass) y no la coclass interfaz.
Nota:
Se pierde la identidad del objeto COM de entrada, ya que una nueva instancia de RCW ajusta el puntero IUnknown expuesto por el RCW original.