2 {X: this unit contains some definitions and initializations, needed to
3 support variants. To use variants, just place reference to sysvarnt
4 unit in your unit uses clause *first* }
9 Unassigned
: Variant
; { Unassigned standard constant }
10 Null
: Variant
; { Null standard constant }
11 EmptyParam
: OleVariant
; { "Empty parameter" standard constant which can be
12 passed as an optional parameter on a dual interface. }
18 VarAddRefProc
:= VariantAddRef
;
19 VarClrProc
:= VariantClr
;
21 TVarData(Unassigned
).VType
:= varEmpty
;
22 TVarData(Null
).VType
:= varNull
;
23 TVarData(EmptyParam
).VType
:= varError
;
24 TVarData(EmptyParam
).VError
:= $80020004; //DISP_E_PARAMNOTFOUND
26 ClearAnyProc
:= @VarInvalidOp
;
27 ChangeAnyProc
:= @VarCastError
;
28 RefAnyProc
:= @VarInvalidOp
;