Automatic generation produced by ISE Eiffel
note description: "COM VARIANT structure" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date: 2017-04-13 09:28:51 -0800 (Thu, 13 Apr 2017) $" revision: "$Revision: 100180 $" class interface ECOM_VARIANT create make -- Create new variant. require -- from WEL_STRUCTURE True ensure -- from WEL_STRUCTURE not_shared: not shared make_from_pointer (a_pointer: POINTER) -- Make from pointer. require -- from ECOM_STRUCTURE valid_pointer: a_pointer /= default_pointer make_from_character (a_value: CHARACTER_8) -- Initialize instance with character a_value. ensure character: character_value = a_value make_from_integer (a_value: INTEGER_32) -- Initialize instance with integer a_value. ensure integer: integer_value = a_value make_from_real (a_value: REAL_32) -- Initialize instance with real a_value. ensure real: real_value = a_value make_from_double (a_value: REAL_64) -- Make from double a_value. ensure double: double_value = a_value make_from_boolean (a_value: BOOLEAN) -- Initialize instance with boolean a_value. ensure boolean: boolean_value = a_value make_from_date (a_value: DATE_TIME) -- Initialize instance with date a_value. ensure date: date_value.is_equal (a_value) make_from_error (a_value: ECOM_HRESULT) -- Initialize instance with scode a_value. ensure error: error.is_equal (a_value) make_from_decimal (a_value: ECOM_DECIMAL) -- Initialize instance with decimal a_value. ensure decimal: decimal.is_equal (a_value) make_from_currency (a_value: ECOM_CURRENCY) -- Initialize instance with currency a_value. ensure currency: currency.is_equal (a_value) make_from_string (a_value: STRING_8) -- Initialize instance with string a_value. ensure string: string_value.is_equal (a_value) make_from_variant (a_value: ECOM_VARIANT) -- Initialize instance with variant a_value. ensure variant_value: variant_value.is_equal (a_value) make_from_iunknown (a_value: ECOM_INTERFACE) -- Initialize instance with IUnknown interface a_value. ensure iunknown: iunknown.item = a_value.item make_from_integer_array (a_value: ECOM_ARRAY [INTEGER_32]) -- Initialize instance with integer array a_value. ensure integer_array: integer_array.is_equal (a_value) make_from_real_array (a_value: ECOM_ARRAY [REAL_32]) -- Initialize instance with real array a_value. ensure real_array: real_array.is_equal (a_value) make_from_double_array (a_value: ECOM_ARRAY [REAL_64]) -- Initialize instance with double array a_value. ensure double_array: double_array.is_equal (a_value) make_from_char_array (a_value: ECOM_ARRAY [CHARACTER_8]) -- Initialize instance with char array a_value. ensure char_array: char_array.is_equal (a_value) make_from_error_array (a_value: ECOM_ARRAY [ECOM_HRESULT]) -- Initialize instance with scode array a_value. ensure error_array: arrays_equal (error_array, a_value) make_from_currency_array (a_value: ECOM_ARRAY [ECOM_CURRENCY]) -- Initialize instance with currency array a_value. ensure currency_array: arrays_equal (currency_array, a_value) make_from_date_array (a_value: ECOM_ARRAY [DATE_TIME]) -- Initialize instance with date array a_value. ensure date_array: arrays_equal (date_array, a_value) make_from_string_array (a_value: ECOM_ARRAY [STRING_8]) -- Initialize instance with string array a_value. ensure string_array: arrays_equal (string_array, a_value) make_from_boolean_array (a_value: ECOM_ARRAY [BOOLEAN]) -- Initialize instance with boolean array a_value. ensure boolean_array: boolean_array.is_equal (a_value) make_from_decimal_array (a_value: ECOM_ARRAY [ECOM_DECIMAL]) -- Initialize instance with decimal array a_value. ensure decimal_array: arrays_equal (decimal_array, a_value) convert make_from_decimal_array ({POINTER}), make_from_decimal_array ({CHARACTER_8}), make_from_decimal_array ({INTEGER_32}), make_from_decimal_array ({REAL_32}), make_from_decimal_array ({REAL_64}), make_from_decimal_array ({BOOLEAN}), make_from_decimal_array ({DATE_TIME}), make_from_decimal_array ({ECOM_HRESULT}), make_from_decimal_array ({ECOM_DECIMAL}), make_from_decimal_array ({ECOM_CURRENCY}), make_from_decimal_array ({STRING_8}), make_from_decimal_array ({ECOM_INTERFACE}), make_from_decimal_array ({ECOM_ARRAY [INTEGER_32]}), make_from_decimal_array ({ECOM_ARRAY [REAL_32]}), make_from_decimal_array ({ECOM_ARRAY [REAL_64]}), make_from_decimal_array ({ECOM_ARRAY [BOOLEAN]}), make_from_decimal_array ({ECOM_ARRAY [CHARACTER_8]}), make_from_decimal_array ({ECOM_ARRAY [ECOM_HRESULT]}), make_from_decimal_array ({ECOM_ARRAY [ECOM_CURRENCY]}), make_from_decimal_array ({ECOM_ARRAY [DATE_TIME]}), make_from_decimal_array ({ECOM_ARRAY [STRING_8]}), make_from_decimal_array ({ECOM_ARRAY [ECOM_DECIMAL]}) feature -- Access boolean_array: ECOM_ARRAY [BOOLEAN] -- ARRAY of BOOLEAN. require has_boolean: has_boolean (variable_type) is_array: is_array (variable_type) boolean_array_reference: CELL [ECOM_ARRAY [BOOLEAN]] -- ARRAY of BOOLEAN. require has_boolean: has_boolean (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) boolean_reference: BOOLEAN_REF -- Reference boolean value require is_boolean_ref: is_boolean (variable_type) and is_byref (variable_type) boolean_value: BOOLEAN -- Boolean value require is_boolean: variable_type = vt_bool char_array: ECOM_ARRAY [CHARACTER_8] -- ARRAY of characters require has_character: has_character (variable_type) is_array: is_array (variable_type) char_array_reference: CELL [ECOM_ARRAY [CHARACTER_8]] -- ARRAY of characters require has_character: has_character (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) character_reference: CHARACTER_8_REF -- Reference character value require is_character_ref: is_character (variable_type) and is_byref (variable_type) character_value: CHARACTER_8 -- Character value require is_character: variable_type = vt_i1 currency: ECOM_CURRENCY -- Currency value require is_currency: variable_type = vt_cy currency_array: ECOM_ARRAY [ECOM_CURRENCY] -- ARRAY of CURRENCY require has_currency: has_currency (variable_type) is_array: is_array (variable_type) currency_array_reference: CELL [ECOM_ARRAY [ECOM_CURRENCY]] -- ARRAY of CURRENCY require has_currency: has_currency (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) currency_reference: ECOM_CURRENCY -- Reference currency value require is_currency_ref: is_currency (variable_type) and is_byref (variable_type) date_array: ECOM_ARRAY [DATE_TIME] -- ARRAY of DATE require has_date: has_date (variable_type) is_array: is_array (variable_type) date_array_reference: CELL [ECOM_ARRAY [DATE_TIME]] -- ARRAY of DATE require has_date: has_date (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) date_reference: CELL [DATE_TIME] -- Date reference value require is_date_ref: is_date (variable_type) and is_byref (variable_type) date_value: DATE_TIME -- Date value require is_date: variable_type = vt_date decimal: ECOM_DECIMAL -- Decimal value decimal_array: ECOM_ARRAY [ECOM_DECIMAL] -- ARRAY of ECOM_DECIMALs. require has_decimal: has_decimal (variable_type) is_array: is_array (variable_type) decimal_array_reference: CELL [ECOM_ARRAY [ECOM_DECIMAL]] -- ARRAY of ECOM_DECIMALs. require has_decimal: has_decimal (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) decimal_reference: ECOM_DECIMAL -- Decimal reference value require is_decimal_ref: is_decimal (variable_type) and is_byref (variable_type) double_array: ECOM_ARRAY [REAL_64] -- ARRAY of doubles require has_double: has_double (variable_type) is_array: is_array (variable_type) double_array_reference: CELL [ECOM_ARRAY [REAL_64]] -- ARRAY of doubles require has_double: has_double (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) double_reference: REAL_64_REF -- Reference double value require is_double_ref: is_double (variable_type) and is_byref (variable_type) double_value: REAL_64 -- Double value require is_double: variable_type = vt_r8 error: ECOM_HRESULT -- Error value require is_error: variable_type = vt_error error_array: ECOM_ARRAY [ECOM_HRESULT] -- ARRAY of HRESULTs require has_error: has_error (variable_type) is_array: is_array (variable_type) error_array_reference: CELL [ECOM_ARRAY [ECOM_HRESULT]] -- ARRAY of HRESULTs require has_error: has_error (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) error_reference: ECOM_HRESULT -- Error reference value require is_error_ref: is_error (variable_type) and is_byref (variable_type) generating_type: TYPE [ECOM_VARIANT] -- Type of current object -- (type of which it is a direct instance) -- (from ANY) ensure -- from ANY generating_type_not_void: Result /= Void generator: STRING_8 -- Name of current object's generating class -- (base class of the type of which it is a direct instance) -- (from ANY) ensure -- from ANY generator_not_void: Result /= Void generator_not_empty: not Result.is_empty idispatch: ECOM_AUTOMATION_INTERFACE -- IDispatch interface value require is_idispatch: is_idispatch (variable_type) idispatch_array: ECOM_ARRAY [ECOM_AUTOMATION_INTERFACE] -- ARRAY of ECOM_AUTOMATION_INTERFACEs. require has_idispatch: has_idispatch (variable_type) is_array: is_array (variable_type) idispatch_array_reference: CELL [ECOM_ARRAY [ECOM_AUTOMATION_INTERFACE]] -- ARRAY of ECOM_AUTOMATION_INTERFACEs. require has_idispatch: has_idispatch (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) idispatch_reference: CELL [ECOM_AUTOMATION_INTERFACE] -- IDispatch interface reference value require is_idispatch_ref: has_idispatch (variable_type) and is_byref (variable_type) integer2: INTEGER_32 -- Short value require is_integer2: variable_type = vt_i2 integer2_reference: INTEGER_32_REF -- Reference short value require is_integer2_ref: is_integer2 (variable_type) and is_byref (variable_type) integer4: INTEGER_32 -- Long value require is_integer4: variable_type = vt_i4 integer4_array: ECOM_ARRAY [INTEGER_32] -- Integer ARRAY value require has_integer4: has_integer4 (variable_type) is_array: is_array (variable_type) integer4_array_reference: CELL [ECOM_ARRAY [INTEGER_32]] -- Reference integer ARRAY value require has_integer4: has_integer4 (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) integer4_reference: INTEGER_32_REF -- Reference long value require is_integer4_ref: is_integer4 (variable_type) and is_byref (variable_type) integer_array: ECOM_ARRAY [INTEGER_32] -- Array of integers require has_int: has_int (variable_type) is_array: is_array (variable_type) integer_array_reference: CELL [ECOM_ARRAY [INTEGER_32]] -- Array of integers require has_int: has_int (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) integer_reference: INTEGER_32_REF -- Reference integer value require is_integer_ref: is_int (variable_type) and is_byref (variable_type) integer_value: INTEGER_32 -- Integer value require is_integer: variable_type = vt_int item: POINTER -- Generic Windows handle or structure pointer. -- Can be a HWND, HICON, RECT *, WNDCLASS *, etc... -- (from WEL_ANY) iunknown: ECOM_UNKNOWN_INTERFACE -- IUnknown interface value require is_iunknown: is_iunknown (variable_type) iunknown_array: ECOM_ARRAY [ECOM_UNKNOWN_INTERFACE] -- ARRAY of ECOM_UNKNOWN_INTERFACEs. require has_iunknown: has_iunknown (variable_type) is_array: is_array (variable_type) iunknown_array_reference: CELL [ECOM_ARRAY [ECOM_UNKNOWN_INTERFACE]] -- ARRAY of ECOM_UNKNOWN_INTERFACEs. require has_iunknown: has_iunknown (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) iunknown_reference: CELL [ECOM_UNKNOWN_INTERFACE] -- IUnknown interface reference value require is_unknown_ref: has_iunknown (variable_type) and is_byref (variable_type) real_array: ECOM_ARRAY [REAL_32] -- ARRAY of reals require has_real: has_real (variable_type) is_array: is_array (variable_type) real_array_reference: CELL [ECOM_ARRAY [REAL_32]] -- ARRAY of reals require has_real: has_real (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) real_reference: REAL_32_REF -- Reference real value require is_real_ref: is_real (variable_type) and is_byref (variable_type) real_value: REAL_32 -- Real value require is_real: variable_type = vt_r4 short_array: ECOM_ARRAY [INTEGER_32] -- Integer ARRAY value require has_integer2: has_integer2 (variable_type) is_array: is_array (variable_type) short_array_reference: CELL [ECOM_ARRAY [INTEGER_32]] -- Integer ARRAY value require has_integer2: has_integer2 (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) string_array: ECOM_ARRAY [STRING_8] -- ARRAY of STRING. require has_bstr: has_bstr (variable_type) is_array: is_array (variable_type) string_array_reference: CELL [ECOM_ARRAY [STRING_8]] -- ARRAY of STRING. require has_bstr: has_bstr (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) string_reference: CELL [STRING_8] -- Reference BSTR value require is_bstr_ref: is_bstr (variable_type) and is_byref (variable_type) string_value: STRING_8 -- BSTR value require is_bstr: variable_type = vt_bstr unsigned_character_array: ECOM_ARRAY [CHARACTER_8] -- Array of unsigned character require has_unsigned_char: has_unsigned_char (variable_type) is_array: is_array (variable_type) unsigned_character_array_reference: CELL [ECOM_ARRAY [CHARACTER_8]] -- Array of unsigned character require has_unsigned_char: has_unsigned_char (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) unsigned_character_reference: CHARACTER_8_REF -- Reference byte value require is_byte_ref: is_unsigned_char (variable_type) and is_byref (variable_type) unsigned_character_value: CHARACTER_8 -- Byte value require is_byte: is_unsigned_char (variable_type) unsigned_integer: INTEGER_32 -- Unsigned integer value require is_unsigned_integer: variable_type = vt_uint unsigned_integer2: INTEGER_32 -- Unsigned short value require is_unsigned_short: variable_type = vt_ui2 unsigned_integer2_reference: INTEGER_32_REF -- Reference unsigned short value require is_unsigned_integer2_ref: is_unsigned_short (variable_type) and is_byref (variable_type) unsigned_integer4: INTEGER_32 -- Unsigned long value require is_unsigned_long: variable_type = vt_ui4 unsigned_integer4_array: ECOM_ARRAY [INTEGER_32] -- Array of unsigned long require has_unsigned_long: has_unsigned_long (variable_type) is_array: is_array (variable_type) unsigned_integer4_array_reference: CELL [ECOM_ARRAY [INTEGER_32]] -- Array of unsigned long require has_unsigned_long: has_unsigned_long (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) unsigned_integer4_reference: INTEGER_32_REF -- Reference unsigned long value require is_unsigned_long_ref: is_unsigned_long (variable_type) and is_byref (variable_type) unsigned_integer_array: ECOM_ARRAY [INTEGER_32] -- Array of unsigned int require has_unsigned_int: has_unsigned_int (variable_type) is_array: is_array (variable_type) unsigned_integer_array_reference: CELL [ECOM_ARRAY [INTEGER_32]] -- Array of unsigned int require has_unsigned_int: has_unsigned_int (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) unsigned_integer_reference: INTEGER_32_REF -- Reference unsigned integer value require is_unsigned_int_ref: is_unsigned_int (variable_type) and is_byref (variable_type) unsigned_short_array: ECOM_ARRAY [INTEGER_32] -- Array of unsigned short require has_unsigned_short: has_unsigned_short (variable_type) is_array: is_array (variable_type) unsigned_short_array_reference: CELL [ECOM_ARRAY [INTEGER_32]] -- Array of unsigned short require has_unsigned_short: has_unsigned_short (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) variable_type: INTEGER_32 -- Variable type variant_array: ECOM_ARRAY [ECOM_VARIANT] -- ARRAY of ECOM_VARIANTs. require has_variant: has_variant (variable_type) is_array: is_array (variable_type) variant_array_reference: CELL [ECOM_ARRAY [ECOM_VARIANT]] -- ARRAY of ECOM_VARIANTs. require has_variant: has_variant (variable_type) is_array: is_array (variable_type) is_byref: is_byref (variable_type) variant_value: ECOM_VARIANT -- Variant value require is_variant: is_variant (variable_type) vt_array: INTEGER_32 -- A Safe array of data is passed -- (from ECOM_VAR_TYPE) vt_bool: INTEGER_32 -- Boolean: True = -1 False = 0 -- (from ECOM_VAR_TYPE) vt_bstr: INTEGER_32 -- Binary string -- (from ECOM_VAR_TYPE) vt_byref: INTEGER_32 -- Pointer to data is passed -- (from ECOM_VAR_TYPE) vt_carray: INTEGER_32 -- array -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_cy: INTEGER_32 -- Currency -- (from ECOM_VAR_TYPE) vt_date: INTEGER_32 -- Date -- (from ECOM_VAR_TYPE) vt_decimal: INTEGER_32 -- 16 byte fixed point -- (from ECOM_VAR_TYPE) vt_dispatch: INTEGER_32 -- IDispatch* -- (from ECOM_VAR_TYPE) vt_empty: INTEGER_32 -- Not specified -- (from ECOM_VAR_TYPE) vt_error: INTEGER_32 -- SCODE -- (from ECOM_VAR_TYPE) vt_hresult: INTEGER_32 -- HRESULT -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_i1: INTEGER_32 -- Character -- (from ECOM_VAR_TYPE) vt_i2: INTEGER_32 -- 2-byte signed integer -- (from ECOM_VAR_TYPE) vt_i4: INTEGER_32 -- 4-byte signed integer -- (from ECOM_VAR_TYPE) vt_i8: INTEGER_32 -- 8-byte signed integer -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_int: INTEGER_32 -- integer -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_lpstr: INTEGER_32 -- LPSTR -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_lpwstr: INTEGER_32 -- LPWSTR -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_null: INTEGER_32 -- SQL style Null -- (from ECOM_VAR_TYPE) vt_ptr: INTEGER_32 -- pointer -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_r4: INTEGER_32 -- 4-byte real -- (from ECOM_VAR_TYPE) vt_r8: INTEGER_32 -- 8-byte real -- (from ECOM_VAR_TYPE) vt_record: INTEGER_32 -- Record -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_reserved: INTEGER_32 -- Reserverd for Microsoft use -- (from ECOM_VAR_TYPE) vt_safearray: INTEGER_32 -- Safearray -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_typemask: INTEGER_32 -- Typemask. -- (from ECOM_VAR_TYPE) vt_ui1: INTEGER_32 -- Unsigned character -- (from ECOM_VAR_TYPE) vt_ui2: INTEGER_32 -- 2-bytes unsigned integer -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_ui4: INTEGER_32 -- 4-bytes unsigned integer -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_ui8: INTEGER_32 -- 8-bytes unsigned integer -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_uint: INTEGER_32 -- unsigned integer -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_unknown: INTEGER_32 -- IUnknown* -- (from ECOM_VAR_TYPE) vt_userdefined: INTEGER_32 -- User defined -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) vt_variant: INTEGER_32 -- VARIANT* -- (from ECOM_VAR_TYPE) vt_void: INTEGER_32 -- NULL -- may appear in TYPEDESC only -- (from ECOM_VAR_TYPE) feature -- Measurement structure_size: INTEGER_32 -- Size of VARIANT structure ensure -- from WEL_STRUCTURE positive_result: Result > 0 feature -- Comparison arrays_equal (a_array, a_other: ECOM_ARRAY [ANY]): BOOLEAN -- Are a_array and a_other equal using object comparison? require attached_array: a_array /= Void attached_other: a_other /= Void ensure array_comparison_unchanged: a_array.object_comparison = old a_array.object_comparison other_comparison_unchanged: a_other.object_comparison = old a_other.object_comparison frozen deep_equal (a: ANY; b: like arg #1): BOOLEAN -- Are a and b either both void -- or attached to isomorphic object structures? -- (from ANY) ensure -- from ANY instance_free: class shallow_implies_deep: standard_equal (a, b) implies Result both_or_none_void: (a = Void) implies (Result = (b = Void)) same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b)) symmetric: Result implies deep_equal (b, a) frozen equal (a: ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached -- to objects considered equal? -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b)) frozen is_deep_equal alias "≡≡≡" (other: ECOM_VARIANT): BOOLEAN -- Are Current and other attached to isomorphic object structures? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY shallow_implies_deep: standard_is_equal (other) implies Result same_type: Result implies same_type (other) symmetric: Result implies other.is_deep_equal (Current) frozen standard_equal (a: ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached to -- field-by-field identical objects of the same type? -- Always uses default object comparison criterion. -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b)) frozen standard_is_equal alias "≜" (other: ECOM_VARIANT): BOOLEAN -- Is other attached to an object of the same type -- as current object, and field-by-field identical to it? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY same_type: Result implies same_type (other) symmetric: Result implies other.standard_is_equal (Current) feature -- Status report conforms_to (other: ANY): BOOLEAN -- Does type of current object conform to type -- of other (as per Eiffel: The Language, chapter 13)? -- (from ANY) require -- from ANY other_not_void: other /= Void exists: BOOLEAN -- Does the `item` exist? -- (from WEL_ANY) ensure -- from WEL_ANY Result = (item /= default_pointer) has_boolean (variable_type: INTEGER_32): BOOLEAN -- Is variable boolean or boolen array or boolean pointer? -- (from ECOM_VAR_TYPE) has_bstr (variable_type: INTEGER_32): BOOLEAN -- Is variable bstr or bstr array or bstr pointer? -- (from ECOM_VAR_TYPE) has_character (variable_type: INTEGER_32): BOOLEAN -- Is variable character or character array or character pointer? -- (from ECOM_VAR_TYPE) has_currency (variable_type: INTEGER_32): BOOLEAN -- Is variable currency or currency array or currency pointer? -- (from ECOM_VAR_TYPE) has_date (variable_type: INTEGER_32): BOOLEAN -- Is variable date or date array or date pointer? -- (from ECOM_VAR_TYPE) has_decimal (variable_type: INTEGER_32): BOOLEAN -- Is variable decimal or decimal array or decimal pointer? -- (from ECOM_VAR_TYPE) has_double (variable_type: INTEGER_32): BOOLEAN -- Is variable double or double array or double pointer? -- (from ECOM_VAR_TYPE) has_error (variable_type: INTEGER_32): BOOLEAN -- Is variable error or error array or error pointer? -- (from ECOM_VAR_TYPE) has_hresult (variable_type: INTEGER_32): BOOLEAN -- Is variable HRESULT or HRESULT array or HRESULT pointer? -- (from ECOM_VAR_TYPE) has_idispatch (variable_type: INTEGER_32): BOOLEAN -- Is variable IDispatch interface pointer or IDispatch interface pointer array or IDispatch interface pointer pointer? -- (from ECOM_VAR_TYPE) has_int (variable_type: INTEGER_32): BOOLEAN -- Is variable int or int array or int pointer? -- (from ECOM_VAR_TYPE) has_integer2 (variable_type: INTEGER_32): BOOLEAN -- Is variable short integer or short integer array or short integer pointer? -- (from ECOM_VAR_TYPE) has_integer4 (variable_type: INTEGER_32): BOOLEAN -- Is variable long integer or long integer array or long integer pointer? -- (from ECOM_VAR_TYPE) has_iunknown (variable_type: INTEGER_32): BOOLEAN -- Is variable IUnknown interface pointer or IUnknown interface pointer array or IUnknown interface pointer pointer? -- (from ECOM_VAR_TYPE) has_long_long (variable_type: INTEGER_32): BOOLEAN -- Is variable long long or long long array or long long pointer? -- (from ECOM_VAR_TYPE) has_ptr (variable_type: INTEGER_32): BOOLEAN -- Is variable ptr or ptr array or ptr pointer? -- (from ECOM_VAR_TYPE) has_real (variable_type: INTEGER_32): BOOLEAN -- Is variable real or real array or real pointer? -- (from ECOM_VAR_TYPE) has_unsigned_char (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned char or unsigned char array or unsigned char pointer? -- (from ECOM_VAR_TYPE) has_unsigned_int (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned int or unsigned int array or unsigned int pointer? -- (from ECOM_VAR_TYPE) has_unsigned_long (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned long or unsigned long array or unsigned long pointer? -- (from ECOM_VAR_TYPE) has_unsigned_long_long (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned long long or unsigned long long array or unsigned long long pointer? -- (from ECOM_VAR_TYPE) has_unsigned_short (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned short or unsigned short array or unsigned short pointer? -- (from ECOM_VAR_TYPE) has_variant (variable_type: INTEGER_32): BOOLEAN -- Is variable variant or variant array or variant pointer? -- (from ECOM_VAR_TYPE) has_void (variable_type: INTEGER_32): BOOLEAN -- Is variable void or void array or void pointer? -- (from ECOM_VAR_TYPE) is_array (variable_type: INTEGER_32): BOOLEAN -- Is variable array? -- (from ECOM_VAR_TYPE) is_basic (a_type: INTEGER_32): BOOLEAN -- Is a_type basic type? -- (from ECOM_VAR_TYPE) is_boolean (variable_type: INTEGER_32): BOOLEAN -- Is variable boolean? -- (from ECOM_VAR_TYPE) is_bstr (variable_type: INTEGER_32): BOOLEAN -- Is variable BSTR? -- (from ECOM_VAR_TYPE) is_byref (variable_type: INTEGER_32): BOOLEAN -- Is variable passed by reference? -- (from ECOM_VAR_TYPE) is_carray (variable_type: INTEGER_32): BOOLEAN -- Is variable C ARRAY? -- (from ECOM_VAR_TYPE) is_character (variable_type: INTEGER_32): BOOLEAN -- Is variable character? -- (from ECOM_VAR_TYPE) is_currency (variable_type: INTEGER_32): BOOLEAN -- Is variable currency? -- (from ECOM_VAR_TYPE) is_date (variable_type: INTEGER_32): BOOLEAN -- Is variable date? -- (from ECOM_VAR_TYPE) is_decimal (variable_type: INTEGER_32): BOOLEAN -- Is decimal variable? -- (from ECOM_VAR_TYPE) is_double (variable_type: INTEGER_32): BOOLEAN -- Is variable double? -- (from ECOM_VAR_TYPE) is_error (variable_type: INTEGER_32): BOOLEAN -- Is variable error? -- (from ECOM_VAR_TYPE) is_hresult (variable_type: INTEGER_32): BOOLEAN -- Is variable HRESULT? -- (from ECOM_VAR_TYPE) is_idispatch (variable_type: INTEGER_32): BOOLEAN -- Is IDispatch interface pointer? -- (from ECOM_VAR_TYPE) is_int (variable_type: INTEGER_32): BOOLEAN -- Is variable int? -- (from ECOM_VAR_TYPE) is_integer2 (variable_type: INTEGER_32): BOOLEAN -- Is variable short integer? -- (from ECOM_VAR_TYPE) is_integer4 (variable_type: INTEGER_32): BOOLEAN -- Is variable long integer? -- (from ECOM_VAR_TYPE) is_iunknown (variable_type: INTEGER_32): BOOLEAN -- Is IUnknown interface pointer? -- (from ECOM_VAR_TYPE) is_long_long (variable_type: INTEGER_32): BOOLEAN -- Is variable long long? -- (from ECOM_VAR_TYPE) is_lpstr (variable_type: INTEGER_32): BOOLEAN -- Is variable LPSTR? -- (from ECOM_VAR_TYPE) is_lpwstr (variable_type: INTEGER_32): BOOLEAN -- Is variable LPWSTR? -- (from ECOM_VAR_TYPE) is_ptr (variable_type: INTEGER_32): BOOLEAN -- Is variable ptr? -- (from ECOM_VAR_TYPE) is_real (variable_type: INTEGER_32): BOOLEAN -- Is variable real? -- (from ECOM_VAR_TYPE) is_record (variable_type: INTEGER_32): BOOLEAN -- Is variable a Record? (i.e. a C struct) -- (from ECOM_VAR_TYPE) is_safearray (variable_type: INTEGER_32): BOOLEAN -- Is variable SAFEARRAY? -- (from ECOM_VAR_TYPE) is_unsigned_char (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned char? -- (from ECOM_VAR_TYPE) is_unsigned_int (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned int? -- (from ECOM_VAR_TYPE) is_unsigned_long (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned long? -- (from ECOM_VAR_TYPE) is_unsigned_long_long (variable_type: INTEGER_32): BOOLEAN -- Is variable unsigned long long? -- (from ECOM_VAR_TYPE) is_unsigned_short (variable_type: INTEGER_32): BOOLEAN -- Is Ivariable unsigned short? -- (from ECOM_VAR_TYPE) is_user_defined (variable_type: INTEGER_32): BOOLEAN -- Is variable user defined? -- (from ECOM_VAR_TYPE) is_variant (variable_type: INTEGER_32): BOOLEAN -- Is variable variant? -- (from ECOM_VAR_TYPE) is_void (variable_type: INTEGER_32): BOOLEAN -- Is variable void? -- (from ECOM_VAR_TYPE) same_type (other: ANY): BOOLEAN -- Is type of current object identical to type of other? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY definition: Result = (conforms_to (other) and other.conforms_to (Current)) shared: BOOLEAN -- Is `item` shared by another object? -- If False (by default), `item` will -- be destroyed by `destroy_item`. -- If True, `item` will not be destroyed. -- (from WEL_ANY) valid_var_type (a_var_type: INTEGER_32): BOOLEAN -- Is a_var_type a valid variant type? -- (from ECOM_VAR_TYPE) feature -- Status setting set_shared -- Set `shared` to True. -- (from WEL_ANY) ensure -- from WEL_ANY shared: shared set_unshared -- Set `shared` to False. -- (from WEL_ANY) ensure -- from WEL_ANY unshared: not shared feature -- Element change set (a: ANY) -- Set VARIANT with ANY. set_array (a_value: ECOM_ARRAY [ECOM_VARIANT]) -- Set ARRAY of ECOM_VARIANTs. require non_void_value: a_value /= Void set_boolean (a_value: BOOLEAN) -- Set boolean value. set_boolean_array (a_value: ECOM_ARRAY [BOOLEAN]) -- Set ARRAY of BOOLEAN. require non_void_value: a_value /= Void set_boolean_array_reference (a_value: CELL [ECOM_ARRAY [BOOLEAN]]) -- Set ARRAY of BOOLEAN. require non_void_value: a_value /= Void set_boolean_reference (a_value: BOOLEAN_REF) -- Set reference boolean value. require non_void: a_value /= Void set_char_array (a_value: ECOM_ARRAY [CHARACTER_8]) -- Set ARRAY of characters require non_void_value: a_value /= Void set_char_array_reference (a_value: CELL [ECOM_ARRAY [CHARACTER_8]]) -- Set ARRAY of characters require non_void_value: a_value /= Void set_character (a_char: CHARACTER_8) -- Set character value. ensure set: character_value = a_char set_character_reference (a_char: CHARACTER_8_REF) -- Set reference character value require non_void: a_char /= Void ensure set: character_reference = a_char set_currency (a_value: ECOM_CURRENCY) -- Set currency value. require non_void_currency: a_value /= Void valid: a_value.item /= default_pointer set_currency_array (a_value: ECOM_ARRAY [ECOM_CURRENCY]) -- Set ARRAY of CURRENCY require non_void_value: a_value /= Void set_currency_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_CURRENCY]]) -- Set ARRAY of CURRENCY require non_void_value: a_value /= Void set_currency_reference (a_value: ECOM_CURRENCY) -- Set reference currency value. require non_void_currency: a_value /= Void valid: a_value.item /= default_pointer set_date (a_value: DATE_TIME) -- Set date value. require non_void: a_value /= Void set_date_array (a_value: ECOM_ARRAY [DATE_TIME]) -- Set ARRAY of DATE require non_void_value: a_value /= Void set_date_array_reference (a_value: CELL [ECOM_ARRAY [DATE_TIME]]) -- Set ARRAY of DATE require non_void_value: a_value /= Void set_date_reference (a_value: CELL [DATE_TIME]) -- Set date reference value. require non_void: a_value /= Void valid_value: a_value.item /= Void set_decimal (a_value: ECOM_DECIMAL) -- Set decimal value. require non_void_decimal: a_value /= Void valid: a_value.item /= default_pointer set_decimal_array (a_value: ECOM_ARRAY [ECOM_DECIMAL]) -- Set ARRAY of ECOM_DECIMALs. require non_void_value: a_value /= Void set_decimal_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_DECIMAL]]) -- Set ARRAY of ECOM_DECIMALs. require non_void_value: a_value /= Void set_decimal_reference (a_value: ECOM_DECIMAL) -- Set decimal reference value. require non_void_decimal: a_value /= Void valid: a_value.item /= default_pointer set_double (a_value: REAL_64) -- Set double value. set_double_array (a_value: ECOM_ARRAY [REAL_64]) -- Set ARRAY of doubles require non_void_value: a_value /= Void set_double_array_reference (a_value: CELL [ECOM_ARRAY [REAL_64]]) -- Set ARRAY of doubles require non_void_value: a_value /= Void set_double_reference (a_value: REAL_64_REF) -- Set reference double value. require non_void: a_value /= Void set_empty -- Set empty VARIANT. set_error (a_value: ECOM_HRESULT) -- Set error value. require non_void: a_value /= Void set_error_array (a_value: ECOM_ARRAY [ECOM_HRESULT]) -- Set ARRAY of HRESULTs require non_void_value: a_value /= Void set_error_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_HRESULT]]) -- Set ARRAY of HRESULTs require non_void_value: a_value /= Void set_error_reference (a_value: ECOM_HRESULT) -- Set error reference value. require non_void: a_value /= Void set_idispatch (a_value: ECOM_INTERFACE) -- Set IDispatch interface value. require non_void: a_value /= Void set_idispatch_array (a_value: ECOM_ARRAY [ECOM_INTERFACE]) -- Set ARRAY of ECOM_AUTOMATION_INTERFACEs. require non_void_value: a_value /= Void set_idispatch_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_INTERFACE]]) -- Set ARRAY of ECOM_AUTOMATION_INTERFACEs. require non_void_value: a_value /= Void set_idispatch_reference (a_value: CELL [ECOM_INTERFACE]) -- Set IDispatch interface reference value. require non_void: a_value /= Void set_integer (a_value: INTEGER_32) -- Set integer value. set_integer2 (a_value: INTEGER_32) -- Set short value set_integer2_reference (a_value: INTEGER_32_REF) -- Set reference short value require non_void: a_value /= Void set_integer4 (a_value: INTEGER_32) -- Set long value set_integer4_array (a_value: ECOM_ARRAY [INTEGER_32]) -- Set integer ARRAY value require non_void_value: a_value /= Void set_integer4_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]]) -- Set integer ARRAY value require non_void_value: a_value /= Void set_integer4_reference (a_value: INTEGER_32_REF) -- Set reference long value require non_void: a_value /= Void set_integer_array (a_value: ECOM_ARRAY [INTEGER_32]) -- Set Array of integers require non_void_value: a_value /= Void set_integer_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]]) -- Set Array of integers require non_void_value: a_value /= Void set_integer_reference (a_value: INTEGER_32_REF) -- Set reference integer value. require non_void: a_value /= Void set_item (an_item: POINTER) -- Set `item` with an_item -- (from WEL_ANY) ensure -- from WEL_ANY item_set: item = an_item set_iunknown (a_value: ECOM_INTERFACE) -- Set IUnknown interface value. require non_void: a_value /= Void set_iunknown_array (a_value: ECOM_ARRAY [ECOM_INTERFACE]) -- Set ARRAY of ECOM_INTERFACEs. require non_void_value: a_value /= Void set_iunknown_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_INTERFACE]]) -- Set ARRAY of ECOM_UNKNOWN_INTERFACEs. require non_void_value: a_value /= Void set_iunknown_reference (a_value: CELL [ECOM_INTERFACE]) -- Set IUnknown interface reference value. require non_void: a_value /= Void set_real (a_value: REAL_32) -- Set real value. set_real_array (a_value: ECOM_ARRAY [REAL_32]) -- Set ARRAY of reals require non_void_value: a_value /= Void set_real_array_reference (a_value: CELL [ECOM_ARRAY [REAL_32]]) -- Set ARRAY of reals require non_void_value: a_value /= Void set_real_reference (a_value: REAL_32_REF) -- Set reference real value. require non_void: a_value /= Void set_short_array (a_value: ECOM_ARRAY [INTEGER_32]) -- Set integer ARRAY value require non_void_value: a_value /= Void set_short_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]]) -- Set integer ARRAY value require non_void_value: a_value /= Void set_string (a_value: STRING_8) -- Set BSTR value. require non_void_string: a_value /= Void set_string_array (a_value: ECOM_ARRAY [STRING_8]) -- Set ARRAY of STRING. require non_void_value: a_value /= Void set_string_array_reference (a_value: CELL [ECOM_ARRAY [STRING_8]]) -- Set ARRAY of STRING. require non_void_value: a_value /= Void set_string_reference (a_value: CELL [STRING_8]) -- Set reference BSTR value. require non_void_string: a_value /= Void valid_value: a_value.item /= Void set_unsigned_character (a_value: CHARACTER_8) -- Set unsigned character value set_unsigned_character_array (a_value: ECOM_ARRAY [CHARACTER_8]) -- Set Array of unsigned character require non_void_value: a_value /= Void set_unsigned_character_array_reference (a_value: CELL [ECOM_ARRAY [CHARACTER_8]]) -- Set Array of unsigned character require non_void_value: a_value /= Void set_unsigned_character_reference (a_value: CHARACTER_8_REF) -- Set reference byte value require non_void: a_value /= Void set_unsigned_integer (a_value: INTEGER_32) -- Set unsigned integer value. set_unsigned_integer2 (a_value: INTEGER_32) -- Set unsigned short value set_unsigned_integer2_reference (a_value: INTEGER_32_REF) -- Set reference unsigned short value require non_void: a_value /= Void set_unsigned_integer4 (a_value: INTEGER_32) -- Set unsigned long value set_unsigned_integer4_array (a_value: ECOM_ARRAY [INTEGER_32]) -- Set Array of unsigned long require non_void_value: a_value /= Void set_unsigned_integer4_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]]) -- Set Array of unsigned long require non_void_value: a_value /= Void set_unsigned_integer4_reference (a_value: INTEGER_32_REF) -- Set reference unsigned long value require non_void: a_value /= Void set_unsigned_integer_array (a_value: ECOM_ARRAY [INTEGER_32]) -- Set Array of unsigned int require non_void_value: a_value /= Void set_unsigned_integer_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]]) -- Set Array of unsigned int require non_void_value: a_value /= Void set_unsigned_integer_reference (a_value: INTEGER_32_REF) -- Set reference unsigned integer value. require non_void: a_value /= Void set_unsigned_short_array (a_value: ECOM_ARRAY [INTEGER_32]) -- Set Array of unsigned short require non_void_value: a_value /= Void set_unsigned_short_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]]) -- Set Array of unsigned short require non_void_value: a_value /= Void set_variant (a_value: ECOM_VARIANT) -- Set variant value. require non_void_variant: a_value /= Void valid: a_value.item /= default_pointer set_variant_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_VARIANT]]) -- Set ARRAY of ECOM_VARIANTs. require non_void_value: a_value /= Void feature -- Removal dispose -- Destroy the inner structure of Current. -- -- This function should be called by the GC when the -- object is collected or by the user if Current is -- no more usefull. -- (from WEL_ANY) feature -- Duplication frozen deep_copy (other: ECOM_VARIANT) -- Effect equivalent to that of: -- `copy` (other . `deep_twin`) -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY deep_equal: deep_equal (Current, other) frozen deep_twin: ECOM_VARIANT -- New object structure recursively duplicated from Current. -- (from ANY) ensure -- from ANY deep_twin_not_void: Result /= Void deep_equal: deep_equal (Current, Result) frozen standard_copy (other: ECOM_VARIANT) -- Copy every field of other onto corresponding field -- of current object. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_standard_equal: standard_is_equal (other) frozen standard_twin: ECOM_VARIANT -- New object field-by-field identical to other. -- Always uses default copying semantics. -- (from ANY) ensure -- from ANY standard_twin_not_void: Result /= Void equal: standard_equal (Result, Current) frozen twin: ECOM_VARIANT -- New object equal to Current -- `twin` calls `copy`; to change copying/twinning semantics, redefine `copy`. -- (from ANY) ensure -- from ANY twin_not_void: Result /= Void is_equal: Result ~ Current feature -- Basic operations copy (other: ECOM_VARIANT) -- Update current object using fields of object attached -- to other, so as to yield equal objects. -- (from WEL_STRUCTURE) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_equal: Current ~ other frozen default: ECOM_VARIANT -- Default value of object's type -- (from ANY) frozen default_pointer: POINTER -- Default value of type POINTER -- (Avoid the need to write p.`default` for -- some p of type POINTER.) -- (from ANY) ensure -- from ANY instance_free: class default_rescue -- Process exception for routines with no Rescue clause. -- (Default: do nothing.) -- (from ANY) frozen do_nothing -- Execute a null action. -- (from ANY) ensure -- from ANY instance_free: class initialize -- Fill Current with zeros. -- (from WEL_STRUCTURE) require -- from WEL_STRUCTURE exists: exists initialize_with_character (a_character: CHARACTER_8) -- Fill current with a_character. -- (from WEL_STRUCTURE) require -- from WEL_STRUCTURE exists: exists is_equal (other: ECOM_VARIANT): BOOLEAN -- Is other attached to an object considered -- equal to current object? -- (from WEL_STRUCTURE) require -- from ANY other_not_void: other /= Void ensure -- from ANY symmetric: Result implies other ~ Current consistent: standard_is_equal (other) implies Result memory_copy (source_pointer: POINTER; length: INTEGER_32) -- Copy length bytes from source_pointer to `item`. -- (from WEL_STRUCTURE) require -- from WEL_STRUCTURE length_small_enough: length <= structure_size length_large_enough: length > 0 exists: exists feature -- Basic Operations set_value (source: ECOM_VARIANT) -- Set Current to 'source'. -- (from ECOM_STRUCTURE) require -- from ECOM_STRUCTURE non_void: source /= Void valid_source: source.item /= default_pointer feature -- Output Io: STD_FILES -- Handle to standard file setup -- (from ANY) ensure -- from ANY instance_free: class io_not_void: Result /= Void out: STRING_8 -- Printable representation of value. ensure -- from ANY out_not_void: Result /= Void print (o: ANY) -- Write terse external representation of o -- on standard output. -- (from ANY) ensure -- from ANY instance_free: class frozen tagged_out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY tagged_out_not_void: Result /= Void feature -- Platform Operating_environment: OPERATING_ENVIRONMENT -- Objects available from the operating system -- (from ANY) ensure -- from ANY instance_free: class operating_environment_not_void: Result /= Void invariant -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) note copyright: "Copyright (c) 1984-2017, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class ECOM_VARIANT -- Generated by Eiffel Studio --
For more details: eiffel.org