Поделиться через


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
Атрибуты

Примеры

В следующем примере кода сначала демонстрируется одинокий Int32 объект, маршалированные обратно из COM в качестве Int32 объекта . Затем он демонстрирует Int32 массив, маршалированные из COM в виде массива 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] of ErrorWrapper(77) Int[10]
Object[] pArr ErrorWrapper[10] of ErrorWrapper(77) VARIANT[10] из VT_ERROR
Object[] pArr Object[10] of ErrorWrapper(77) VARIANT[10] из VT_ERROR

В следующей таблице показано маршалирование данных в управляемом вызове собственной функции с помощью вызываемых оболочек среды выполнения COM( RCW).

Параметр управляемой сигнатуры Значение pArr Маршалировано как
ErrorWrapper[] pArr ErrorWrapper[10] of ErrorWrapper(77) Int[10]
Object[] pArr ErrorWrapper[10] of ErrorWrapper(77) Исключение SafeArrayTypeMismatch
Object[] pArr Object[10] of ErrorWrapper(77) SAFEARRAY(VARIANT)

Обратите внимание, что ErrorWrapper объекты не маршалируются как тип VT_ERROR после их обратной передаче из COM. Одно значение маршалируется обратно из COM как тип VT_I4, а массивы маршалируются обратно из COM как тип VT_UI4.

Дополнительные сведения о VT_ERRORсм. в существующей документации по VARENUM::VT_ERROR в библиотеке MSDN.

Конструкторы

ErrorWrapper(Exception)
Устаревшие..

Инициализирует новый экземпляр класса ErrorWrapper со значением HRESULT, которое относится к выданному исключению.

ErrorWrapper(Int32)
Устаревшие..

Инициализирует новый экземпляр класса ErrorWrapper, используя значение HRESULT ошибки.

ErrorWrapper(Object)
Устаревшие..

Инициализирует новый экземпляр класса ErrorWrapper с объектом, содержащим значение HRESULT ошибки.

Свойства

ErrorCode
Устаревшие..

Возвращает код ошибки обертки.

Методы

Equals(Object)
Устаревшие..

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()
Устаревшие..

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()
Устаревшие..

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()
Устаревшие..

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()
Устаревшие..

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к