Clase ErrorWrapper
Publicado: octubre de 2016
Ajusta los objetos que se va a calcular como un VT_ERROR.
Espacio de nombres: System.Runtime.InteropServices
Ensamblado: mscorlib (en mscorlib.dll)
Jerarquía de herencia
System.Object
System.Runtime.InteropServices.ErrorWrapper
Sintaxis
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class ErrorWrapper
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class ErrorWrapper sealed
[<Sealed>]
[<SerializableAttribute>]
[<ComVisibleAttribute(true)>]
type ErrorWrapper = class end
<SerializableAttribute>
<ComVisibleAttribute(True)>
Public NotInheritable Class ErrorWrapper
Constructores
Nombre | Descripción | |
---|---|---|
ErrorWrapper(Exception) | Inicializa una nueva instancia de la ErrorWrapper clase con el HRESULT que corresponda a la excepción suministrada. |
|
ErrorWrapper(Int32) | Inicializa una nueva instancia de la ErrorWrapper clase con el valor HRESULT del error. |
|
ErrorWrapper(Object) | Inicializa una nueva instancia de la ErrorWrapper clase con un objeto que contiene el valor HRESULT del error. |
Propiedades
Nombre | Descripción | |
---|---|---|
ErrorCode | Obtiene el código de error del contenedor. |
Métodos
Nombre | Descripción | |
---|---|---|
Equals(Object) | Determina si el objeto especificado es igual al objeto actual.(Heredado de Object). |
|
GetHashCode() | Sirve como la función hash predeterminada.(Heredado de Object). |
|
GetType() | Obtiene el Type de la instancia actual.(Heredado de Object). |
|
ToString() | Devuelve una cadena que representa el objeto actual.(Heredado de Object). |
Comentarios
De forma predeterminada, Object argumentos de tipo se serializan como un VARIANT tipo, donde el tipo de objeto determina el VARTYPE valor de la VARIANT.
El ErrorWrapper tipo debe pasarse como un Object tipo que se van a calcular como un VARIANT de tipo VT_ERROR, de lo contrario el ErrorWrapper tipo se serializa como un entero.
La tabla siguiente muestra el cálculo de referencias en una llamada a una función nativa, administrada mediante invocación de plataforma.
Parámetro de la firma administrada |
valor pArr |
Calcular las referencias como |
---|---|---|
ErrorWrapper [] pArr |
ErrorWrapper [10] de ErrorWrapper (77) |
Int[10] |
PArr de objeto] |
ErrorWrapper [10] de ErrorWrapper (77) |
VARIANT[10] de VT_ERROR |
PArr de objeto] |
Objeto [10] de ErrorWrapper (77) |
VARIANT[10] de VT_ERROR |
La tabla siguiente muestra la serialización de datos en una llamada administrada a una función nativa, usando contenedores RCW de COM en tiempo de ejecución (RCW).
Parámetro de la firma administrada |
valor pArr |
Calcular las referencias como |
---|---|---|
ErrorWrapper [] pArr |
ErrorWrapper [10] de ErrorWrapper (77) |
Int[10] |
PArr de objeto] |
ErrorWrapper [10] de ErrorWrapper (77) |
SafeArrayTypeMismatch (excepción) |
PArr de objeto] |
Objeto [10] de ErrorWrapper (77) |
SAFEARRAY(VARIANT) |
Tenga en cuenta que ErrorWrapper objetos no se serializan como tipo VT_ERROR después de que se pasan desde COM. Un valor único se vuelve a calcular desde COM como tipo VT_I4, mientras las matrices se vuelven a calcular desde COM como tipo VT_UI4.
Para obtener más información sobre VT_ERROR, consulte la documentación existente sobre VARENUM::VT_ERROR en MSDN library.
Ejemplos
En el ejemplo de código siguiente se muestra primero un único Int32 objeto vuelve a calcular desde COM como un Int32 objeto. A continuación se muestra un Int32 matriz vuelve a calcular desde COM como un UInt32 matriz.
// Scenario 1:
// Pass a single value.
Int32 x = 3;
Object o = new ErrorWrapper(x);
// Pass 'o' to COM.
// On the return trip, 'o' has been unwrapped and is still an Int32 object.
Int32 y = (Int32)o;
Scenario 2:
// Pass an array of values.
Int32[] arr = new Int32[3];
Object o = new ErrorWrapper(arr);
// Pass 'o' to COM.
// On the return trip, 'o' has been unwrapped and is now a UInt32[] array.
UInt32[ ] arr2 = (UInt32[])o;
Información de versión
Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Windows Phone
Disponible desde 8.1
Seguridad para subprocesos
Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.
Ver también
Espacio de nombres System.Runtime.InteropServices
Volver al principio