class
	ECOM_VARIANT

General
	cluster: structures
	description: "COM VARIANT structure"
	create: make_from_decimal, make_from_char_array, make_from_error, make_from_character, make_from_double_array, make_from_string, make_from_pointer, make_from_integer, make_from_boolean, make_from_boolean_array, make_from_double, make_from_error_array, make_from_real_array, make_from_real, make_from_iunknown, make_from_currency_array, make_from_variant, make_from_string_array, make_from_decimal_array, make, make_from_currency, make_from_date_array, make_from_date, make_from_integer_array

Ancestors
	ECOM_STRUCTURE*
	ECOM_VAR_TYPE

Queries
	arrays_equal (a_array, a_other: ECOM_ARRAY [ANY]): BOOLEAN
	boolean_array: ECOM_ARRAY [BOOLEAN]
	boolean_array_reference: CELL [ECOM_ARRAY [BOOLEAN]]
	boolean_reference: BOOLEAN_REF
	boolean_value: BOOLEAN
	char_array: ECOM_ARRAY [CHARACTER_8]
	char_array_reference: CELL [ECOM_ARRAY [CHARACTER_8]]
	character_reference: CHARACTER_8_REF
	character_value: CHARACTER_8
	currency: ECOM_CURRENCY
	currency_array: ECOM_ARRAY [ECOM_CURRENCY]
	currency_array_reference: CELL [ECOM_ARRAY [ECOM_CURRENCY]]
	currency_reference: ECOM_CURRENCY
	date_array: ECOM_ARRAY [DATE_TIME]
	date_array_reference: CELL [ECOM_ARRAY [DATE_TIME]]
	date_reference: CELL [DATE_TIME]
	date_value: DATE_TIME
	decimal: ECOM_DECIMAL
	decimal_array: ECOM_ARRAY [ECOM_DECIMAL]
	decimal_array_reference: CELL [ECOM_ARRAY [ECOM_DECIMAL]]
	decimal_reference: ECOM_DECIMAL
	double_array: ECOM_ARRAY [REAL_64]
	double_array_reference: CELL [ECOM_ARRAY [REAL_64]]
	double_reference: REAL_64_REF
	double_value: REAL_64
	error: ECOM_HRESULT
	error_array: ECOM_ARRAY [ECOM_HRESULT]
	error_array_reference: CELL [ECOM_ARRAY [ECOM_HRESULT]]
	error_reference: ECOM_HRESULT
	exists: BOOLEAN
	has_boolean (variable_type: INTEGER_32): BOOLEAN
	has_bstr (variable_type: INTEGER_32): BOOLEAN
	has_character (variable_type: INTEGER_32): BOOLEAN
	has_currency (variable_type: INTEGER_32): BOOLEAN
	has_date (variable_type: INTEGER_32): BOOLEAN
	has_decimal (variable_type: INTEGER_32): BOOLEAN
	has_double (variable_type: INTEGER_32): BOOLEAN
	has_error (variable_type: INTEGER_32): BOOLEAN
	has_hresult (variable_type: INTEGER_32): BOOLEAN
	has_idispatch (variable_type: INTEGER_32): BOOLEAN
	has_int (variable_type: INTEGER_32): BOOLEAN
	has_integer2 (variable_type: INTEGER_32): BOOLEAN
	has_integer4 (variable_type: INTEGER_32): BOOLEAN
	has_iunknown (variable_type: INTEGER_32): BOOLEAN
	has_long_long (variable_type: INTEGER_32): BOOLEAN
	has_ptr (variable_type: INTEGER_32): BOOLEAN
	has_real (variable_type: INTEGER_32): BOOLEAN
	has_unsigned_char (variable_type: INTEGER_32): BOOLEAN
	has_unsigned_int (variable_type: INTEGER_32): BOOLEAN
	has_unsigned_long (variable_type: INTEGER_32): BOOLEAN
	has_unsigned_long_long (variable_type: INTEGER_32): BOOLEAN
	has_unsigned_short (variable_type: INTEGER_32): BOOLEAN
	has_variant (variable_type: INTEGER_32): BOOLEAN
	has_void (variable_type: INTEGER_32): BOOLEAN
	idispatch: ECOM_AUTOMATION_INTERFACE
	idispatch_array: ECOM_ARRAY [ECOM_AUTOMATION_INTERFACE]
	idispatch_array_reference: CELL [ECOM_ARRAY [ECOM_AUTOMATION_INTERFACE]]
	idispatch_reference: CELL [ECOM_AUTOMATION_INTERFACE]
	integer2: INTEGER_32
	integer2_reference: INTEGER_32_REF
	integer4: INTEGER_32
	integer4_array: ECOM_ARRAY [INTEGER_32]
	integer4_array_reference: CELL [ECOM_ARRAY [INTEGER_32]]
	integer4_reference: INTEGER_32_REF
	integer_array: ECOM_ARRAY [INTEGER_32]
	integer_array_reference: CELL [ECOM_ARRAY [INTEGER_32]]
	integer_reference: INTEGER_32_REF
	integer_value: INTEGER_32
	is_array (variable_type: INTEGER_32): BOOLEAN
	is_basic (a_type: INTEGER_32): BOOLEAN
	is_boolean (variable_type: INTEGER_32): BOOLEAN
	is_bstr (variable_type: INTEGER_32): BOOLEAN
	is_byref (variable_type: INTEGER_32): BOOLEAN
	is_carray (variable_type: INTEGER_32): BOOLEAN
	is_character (variable_type: INTEGER_32): BOOLEAN
	is_currency (variable_type: INTEGER_32): BOOLEAN
	is_date (variable_type: INTEGER_32): BOOLEAN
	is_decimal (variable_type: INTEGER_32): BOOLEAN
	is_double (variable_type: INTEGER_32): BOOLEAN
	is_equal (other: [like Current] ECOM_VARIANT): BOOLEAN
	is_error (variable_type: INTEGER_32): BOOLEAN
	is_hresult (variable_type: INTEGER_32): BOOLEAN
	is_idispatch (variable_type: INTEGER_32): BOOLEAN
	is_int (variable_type: INTEGER_32): BOOLEAN
	is_integer2 (variable_type: INTEGER_32): BOOLEAN
	is_integer4 (variable_type: INTEGER_32): BOOLEAN
	is_iunknown (variable_type: INTEGER_32): BOOLEAN
	is_long_long (variable_type: INTEGER_32): BOOLEAN
	is_lpstr (variable_type: INTEGER_32): BOOLEAN
	is_lpwstr (variable_type: INTEGER_32): BOOLEAN
	is_ptr (variable_type: INTEGER_32): BOOLEAN
	is_real (variable_type: INTEGER_32): BOOLEAN
	is_record (variable_type: INTEGER_32): BOOLEAN
	is_safearray (variable_type: INTEGER_32): BOOLEAN
	is_unsigned_char (variable_type: INTEGER_32): BOOLEAN
	is_unsigned_int (variable_type: INTEGER_32): BOOLEAN
	is_unsigned_long (variable_type: INTEGER_32): BOOLEAN
	is_unsigned_long_long (variable_type: INTEGER_32): BOOLEAN
	is_unsigned_short (variable_type: INTEGER_32): BOOLEAN
	is_user_defined (variable_type: INTEGER_32): BOOLEAN
	is_variant (variable_type: INTEGER_32): BOOLEAN
	is_void (variable_type: INTEGER_32): BOOLEAN
	item: POINTER
	iunknown: ECOM_UNKNOWN_INTERFACE
	iunknown_array: ECOM_ARRAY [ECOM_UNKNOWN_INTERFACE]
	iunknown_array_reference: CELL [ECOM_ARRAY [ECOM_UNKNOWN_INTERFACE]]
	iunknown_reference: CELL [ECOM_UNKNOWN_INTERFACE]
	out: STRING_8
	real_array: ECOM_ARRAY [REAL_32]
	real_array_reference: CELL [ECOM_ARRAY [REAL_32]]
	real_reference: REAL_32_REF
	real_value: REAL_32
	shared: BOOLEAN
	short_array: ECOM_ARRAY [INTEGER_32]
	short_array_reference: CELL [ECOM_ARRAY [INTEGER_32]]
	string_array: ECOM_ARRAY [STRING_8]
	string_array_reference: CELL [ECOM_ARRAY [STRING_8]]
	string_reference: CELL [STRING_8]
	string_value: STRING_8
	structure_size: INTEGER_32
	unsigned_character_array: ECOM_ARRAY [CHARACTER_8]
	unsigned_character_array_reference: CELL [ECOM_ARRAY [CHARACTER_8]]
	unsigned_character_reference: CHARACTER_8_REF
	unsigned_character_value: CHARACTER_8
	unsigned_integer: INTEGER_32
	unsigned_integer2: INTEGER_32
	unsigned_integer2_reference: INTEGER_32_REF
	unsigned_integer4: INTEGER_32
	unsigned_integer4_array: ECOM_ARRAY [INTEGER_32]
	unsigned_integer4_array_reference: CELL [ECOM_ARRAY [INTEGER_32]]
	unsigned_integer4_reference: INTEGER_32_REF
	unsigned_integer_array: ECOM_ARRAY [INTEGER_32]
	unsigned_integer_array_reference: CELL [ECOM_ARRAY [INTEGER_32]]
	unsigned_integer_reference: INTEGER_32_REF
	unsigned_short_array: ECOM_ARRAY [INTEGER_32]
	unsigned_short_array_reference: CELL [ECOM_ARRAY [INTEGER_32]]
	valid_var_type (a_var_type: INTEGER_32): BOOLEAN
	variable_type: INTEGER_32
	variant_array: ECOM_ARRAY [ECOM_VARIANT]
	variant_array_reference: CELL [ECOM_ARRAY [ECOM_VARIANT]]
	variant_value: ECOM_VARIANT
	vt_array: INTEGER_32
	vt_bool: INTEGER_32
	vt_bstr: INTEGER_32
	vt_byref: INTEGER_32
	vt_carray: INTEGER_32
	vt_cy: INTEGER_32
	vt_date: INTEGER_32
	vt_decimal: INTEGER_32
	vt_dispatch: INTEGER_32
	vt_empty: INTEGER_32
	vt_error: INTEGER_32
	vt_hresult: INTEGER_32
	vt_i1: INTEGER_32
	vt_i2: INTEGER_32
	vt_i4: INTEGER_32
	vt_i8: INTEGER_32
	vt_int: INTEGER_32
	vt_lpstr: INTEGER_32
	vt_lpwstr: INTEGER_32
	vt_null: INTEGER_32
	vt_ptr: INTEGER_32
	vt_r4: INTEGER_32
	vt_r8: INTEGER_32
	vt_record: INTEGER_32
	vt_reserved: INTEGER_32
	vt_safearray: INTEGER_32
	vt_typemask: INTEGER_32
	vt_ui1: INTEGER_32
	vt_ui2: INTEGER_32
	vt_ui4: INTEGER_32
	vt_ui8: INTEGER_32
	vt_uint: INTEGER_32
	vt_unknown: INTEGER_32
	vt_userdefined: INTEGER_32
	vt_variant: INTEGER_32
	vt_void: INTEGER_32

Commands
	copy (other: [like Current] ECOM_VARIANT)
	dispose
	initialize
	initialize_with_character (a_character: CHARACTER_8)
	make
	make_from_boolean (a_value: BOOLEAN)
	make_from_boolean_array (a_value: ECOM_ARRAY [BOOLEAN])
	make_from_char_array (a_value: ECOM_ARRAY [CHARACTER_8])
	make_from_character (a_value: CHARACTER_8)
	make_from_currency (a_value: ECOM_CURRENCY)
	make_from_currency_array (a_value: ECOM_ARRAY [ECOM_CURRENCY])
	make_from_date (a_value: DATE_TIME)
	make_from_date_array (a_value: ECOM_ARRAY [DATE_TIME])
	make_from_decimal (a_value: ECOM_DECIMAL)
	make_from_decimal_array (a_value: ECOM_ARRAY [ECOM_DECIMAL])
	make_from_double (a_value: REAL_64)
	make_from_double_array (a_value: ECOM_ARRAY [REAL_64])
	make_from_error (a_value: ECOM_HRESULT)
	make_from_error_array (a_value: ECOM_ARRAY [ECOM_HRESULT])
	make_from_integer (a_value: INTEGER_32)
	make_from_integer_array (a_value: ECOM_ARRAY [INTEGER_32])
	make_from_iunknown (a_value: ECOM_INTERFACE)
	make_from_pointer (a_pointer: POINTER)
	make_from_real (a_value: REAL_32)
	make_from_real_array (a_value: ECOM_ARRAY [REAL_32])
	make_from_string (a_value: STRING_8)
	make_from_string_array (a_value: ECOM_ARRAY [STRING_8])
	make_from_variant (a_value: ECOM_VARIANT)
	memory_copy (source_pointer: POINTER; length: INTEGER_32)
	set (a: ANY)
	set_array (a_value: ECOM_ARRAY [ECOM_VARIANT])
	set_boolean (a_value: BOOLEAN)
	set_boolean_array (a_value: ECOM_ARRAY [BOOLEAN])
	set_boolean_array_reference (a_value: CELL [ECOM_ARRAY [BOOLEAN]])
	set_boolean_reference (a_value: BOOLEAN_REF)
	set_char_array (a_value: ECOM_ARRAY [CHARACTER_8])
	set_char_array_reference (a_value: CELL [ECOM_ARRAY [CHARACTER_8]])
	set_character (a_char: CHARACTER_8)
	set_character_reference (a_char: CHARACTER_8_REF)
	set_currency (a_value: ECOM_CURRENCY)
	set_currency_array (a_value: ECOM_ARRAY [ECOM_CURRENCY])
	set_currency_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_CURRENCY]])
	set_currency_reference (a_value: ECOM_CURRENCY)
	set_date (a_value: DATE_TIME)
	set_date_array (a_value: ECOM_ARRAY [DATE_TIME])
	set_date_array_reference (a_value: CELL [ECOM_ARRAY [DATE_TIME]])
	set_date_reference (a_value: CELL [DATE_TIME])
	set_decimal (a_value: ECOM_DECIMAL)
	set_decimal_array (a_value: ECOM_ARRAY [ECOM_DECIMAL])
	set_decimal_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_DECIMAL]])
	set_decimal_reference (a_value: ECOM_DECIMAL)
	set_double (a_value: REAL_64)
	set_double_array (a_value: ECOM_ARRAY [REAL_64])
	set_double_array_reference (a_value: CELL [ECOM_ARRAY [REAL_64]])
	set_double_reference (a_value: REAL_64_REF)
	set_empty
	set_error (a_value: ECOM_HRESULT)
	set_error_array (a_value: ECOM_ARRAY [ECOM_HRESULT])
	set_error_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_HRESULT]])
	set_error_reference (a_value: ECOM_HRESULT)
	set_idispatch (a_value: ECOM_INTERFACE)
	set_idispatch_array (a_value: ECOM_ARRAY [ECOM_INTERFACE])
	set_idispatch_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_INTERFACE]])
	set_idispatch_reference (a_value: CELL [ECOM_INTERFACE])
	set_integer (a_value: INTEGER_32)
	set_integer2 (a_value: INTEGER_32)
	set_integer2_reference (a_value: INTEGER_32_REF)
	set_integer4 (a_value: INTEGER_32)
	set_integer4_array (a_value: ECOM_ARRAY [INTEGER_32])
	set_integer4_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]])
	set_integer4_reference (a_value: INTEGER_32_REF)
	set_integer_array (a_value: ECOM_ARRAY [INTEGER_32])
	set_integer_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]])
	set_integer_reference (a_value: INTEGER_32_REF)
	set_iunknown (a_value: ECOM_INTERFACE)
	set_iunknown_array (a_value: ECOM_ARRAY [ECOM_INTERFACE])
	set_iunknown_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_INTERFACE]])
	set_iunknown_reference (a_value: CELL [ECOM_INTERFACE])
	set_real (a_value: REAL_32)
	set_real_array (a_value: ECOM_ARRAY [REAL_32])
	set_real_array_reference (a_value: CELL [ECOM_ARRAY [REAL_32]])
	set_real_reference (a_value: REAL_32_REF)
	set_shared
	set_short_array (a_value: ECOM_ARRAY [INTEGER_32])
	set_short_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]])
	set_string (a_value: STRING_8)
	set_string_array (a_value: ECOM_ARRAY [STRING_8])
	set_string_array_reference (a_value: CELL [ECOM_ARRAY [STRING_8]])
	set_string_reference (a_value: CELL [STRING_8])
	set_unshared
	set_unsigned_character (a_value: CHARACTER_8)
	set_unsigned_character_array (a_value: ECOM_ARRAY [CHARACTER_8])
	set_unsigned_character_array_reference (a_value: CELL [ECOM_ARRAY [CHARACTER_8]])
	set_unsigned_character_reference (a_value: CHARACTER_8_REF)
	set_unsigned_integer (a_value: INTEGER_32)
	set_unsigned_integer2 (a_value: INTEGER_32)
	set_unsigned_integer2_reference (a_value: INTEGER_32_REF)
	set_unsigned_integer4 (a_value: INTEGER_32)
	set_unsigned_integer4_array (a_value: ECOM_ARRAY [INTEGER_32])
	set_unsigned_integer4_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]])
	set_unsigned_integer4_reference (a_value: INTEGER_32_REF)
	set_unsigned_integer_array (a_value: ECOM_ARRAY [INTEGER_32])
	set_unsigned_integer_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]])
	set_unsigned_integer_reference (a_value: INTEGER_32_REF)
	set_unsigned_short_array (a_value: ECOM_ARRAY [INTEGER_32])
	set_unsigned_short_array_reference (a_value: CELL [ECOM_ARRAY [INTEGER_32]])
	set_value (source: [like Current] ECOM_VARIANT)
	set_variant (a_value: ECOM_VARIANT)
	set_variant_array_reference (a_value: CELL [ECOM_ARRAY [ECOM_VARIANT]])