ErrorWrapper Class
Wraps objects the marshaler should marshal as a VT_ERROR.
Assembly: mscorlib (in mscorlib.dll)
| Name | Description | |
|---|---|---|
![]() | ErrorWrapper(Exception^) | Initializes a new instance of the ErrorWrapper class with the HRESULT that corresponds to the exception supplied. |
![]() | ErrorWrapper(Int32) | Initializes a new instance of the ErrorWrapper class with the HRESULT of the error. |
![]() | ErrorWrapper(Object^) | Initializes a new instance of the ErrorWrapper class with an object containing the HRESULT of the error. |
| Name | Description | |
|---|---|---|
![]() | ErrorCode | Gets the error code of the wrapper. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
By default, Object type arguments are marshaled as a VARIANT type, where the object type determines the VARTYPE value of the VARIANT.
The ErrorWrapper type must to be passed as an Object type to be marshaled as a VARIANT of type VT_ERROR, otherwise the ErrorWrapper type is marshaled as an integer.
The following table illustrates marshaling in a managed call to a native function, using platform invoke.
Managed signature parameter | pArr value | Marshaled as |
|---|---|---|
ErrorWrapper[] pArr | ErrorWrapper[10] of ErrorWrapper(77) | Int[10] |
Object[] pArr | ErrorWrapper[10] of ErrorWrapper(77) | VARIANT[10] of VT_ERROR |
Object[] pArr | Object[10] of ErrorWrapper(77) | VARIANT[10] of VT_ERROR |
The following table illustrates marshaling data in a managed call to a native function, using COM runtime callable wrappers (RCW).
Managed signature parameter | pArr value | Marshaled as |
|---|---|---|
ErrorWrapper[] pArr | ErrorWrapper[10] of ErrorWrapper(77) | Int[10] |
Object[] pArr | ErrorWrapper[10] of ErrorWrapper(77) | SafeArrayTypeMismatch exception |
Object[] pArr | Object[10] of ErrorWrapper(77) | SAFEARRAY(VARIANT) |
Note that ErrorWrapper objects are not marshaled as type VT_ERROR after they are passed back from COM. A single value is marshaled back from COM as type VT_I4, while arrays are marshaled back from COM as type VT_UI4.
For more information on VT_ERROR, please see the existing documentation for VARENUM::VT_ERROR in the MSDN library.
The following code example first demonstrates a lone Int32 object marshaled back from COM as an Int32 object. It then demonstrates an Int32 array marshaled back from COM as a UInt32 array.
// 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;
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

