Compartir a través de


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
System_CAPS_pubmethod ErrorWrapper(Exception)

Inicializa una nueva instancia de la ErrorWrapper clase con el HRESULT que corresponda a la excepción suministrada.

System_CAPS_pubmethod ErrorWrapper(Int32)

Inicializa una nueva instancia de la ErrorWrapper clase con el valor HRESULT del error.

System_CAPS_pubmethod ErrorWrapper(Object)

Inicializa una nueva instancia de la ErrorWrapper clase con un objeto que contiene el valor HRESULT del error.

Propiedades

Nombre Descripción
System_CAPS_pubproperty ErrorCode

Obtiene el código de error del contenedor.

Métodos

Nombre Descripción
System_CAPS_pubmethod Equals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_pubmethod GetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethod GetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethod 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