ErrorWrapper 类

定义

注意

ErrorWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.

对封送处理程序应该将其作为 VT_ERROR 封送的对象进行包装。

public ref class ErrorWrapper sealed
[System.Obsolete("ErrorWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")]
public sealed class ErrorWrapper
public sealed class ErrorWrapper
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class ErrorWrapper
[<System.Obsolete("ErrorWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")>]
type ErrorWrapper = class
type ErrorWrapper = class
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ErrorWrapper = class
Public NotInheritable Class ErrorWrapper
继承
ErrorWrapper
属性

示例

下面的代码示例首先演示从 COM 封送回为Int32对象的单个Int32对象。 然后,它将从 COM 封送回的数组演示 Int32UInt32 数组。

// 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;  

注解

默认情况下, Object 类型参数封送为 VARIANT 类型,其中对象类型确定 VARTYPE 的值 VARIANT

类型 ErrorWrapper 必须作为 Object 类型传递才能封送为 VARIANT 类型的 VT_ERROR,否则该 ErrorWrapper 类型将封送为整数。

下表演示了使用平台调用对本机函数的托管调用中的封送处理。

托管签名参数 pArr 值 封送为
ErrorWrapper[] pArr ErrorWrapper[10] 的 ErrorWrapper (77) Int[10]
Object[] pArr ErrorWrapper[10] 的 ErrorWrapper (77) VARIANT[10]VT_ERROR
Object[] pArr ErrorWrapper (77) 的对象[10] VARIANT[10]VT_ERROR

下表说明了如何使用 COM 运行时可调用包装器 (RCW) 封送对本机函数的托管调用中的数据。

托管签名参数 pArr 值 封送为
ErrorWrapper[] pArr ErrorWrapper[10] 的 ErrorWrapper (77) Int[10]
Object[] pArr ErrorWrapper[10] 的 ErrorWrapper (77) SafeArrayTypeMismatch 异常
Object[] pArr ErrorWrapper (77) 的对象[10] SAFEARRAY(VARIANT)

请注意, ErrorWrapper 对象在从 COM 传递回后不会将其封送为类型 VT_ERROR 。 单个值作为类型 VT_I4从 COM 封送回,而数组则从 COM 封送回类型 VT_UI4

有关 的详细信息 VT_ERROR,请参阅 MSDN 库中的现有文档 VARENUM::VT_ERROR

构造函数

ErrorWrapper(Exception)
已过时.

使用与所提供的异常相对应的 HRESULT 初始化 ErrorWrapper 类的新实例。

ErrorWrapper(Int32)
已过时.

使用错误的 HRESULT 初始化 ErrorWrapper 类的新实例。

ErrorWrapper(Object)
已过时.

使用包含错误 HRESULT 的对象初始化 ErrorWrapper 类的新实例。

属性

ErrorCode
已过时.

获取包装的错误代码。

方法

Equals(Object)
已过时.

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()
已过时.

作为默认哈希函数。

(继承自 Object)
GetType()
已过时.

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()
已过时.

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()
已过时.

返回表示当前对象的字符串。

(继承自 Object)

适用于