ErrorWrapper 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
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 封送回的数组演示 Int32 为 UInt32 数组。
// 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) |