VARIANT
Тип VARIANT. VARIANT является универсальным типом для хранения всевозможных данных и позволяет разным программам корректно обмениваться данными. Он представляет собой структуру, которая содержит два основных поля, первое это тип хранящегося значения, второе это само значение или указатель на область памяти. Тип VARIANT имеет следующее описание
type VARIANT {
ushort vt
ushort wReserved1
ushort wReserved2
ushort wReserved3
ulong val
}
vt - код типа содержащегося значения ( константы типа VT_*: $VT_UI4, $VT_I4, $VT_BSTR ... );
val - поле для хранения значений.
В библиотеке поддерживается лишь часть возможностей типа VARIANT, но разрешается работать непосредственно с полями данной структуры Пример создания VARIANT( VT_BOOL ):
VARIANT bool
....
bool.clear()
bool.vt = $VT_BOOL
(&bool.val)->uint = 0xffff// 0xffff - VARIANT_TRUE
Примеры операций с VARIANT:
uint val
str res
oleobj ActWorkSheet
VARIANT vval
....
vval = int( 100 ) //VARIANT( VT_I4 ) is being created
excapp~Cells(1,1) = vval //equals excapp~Cells(1,1) = 100
vval = "Test string" //VARIANT( VT_BSTR ) is being created
excapp~Cells(2,1) = vval //equals excapp~Cells(1,1) = "Test string"
val = uint( excapp~Cells(1,1)~Value ) //VARIANT( VT_I4 ) is converted to uint
res = excapp~Cells(2,1)~Value //VARIANT( VT_BSTR ) is converted to str
ActWorkSheet = excapp~ActiveWorkSheet //VARIANT( VT_DISPATCH ) is converted
to oleobj
Смотрите также | Исходники |