initial commit
[rofl0r-KOL.git] / system / sysvarnt.pas
blobf571120363c2d588e335c9a192af7412b7e6f64c
1 unit sysvarnt;
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* }
6 interface
8 var
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. }
14 implementation
16 initialization
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;
30 finalization
32 end.