|
@@ -16,7 +16,7 @@
|
|
|
|
|
|
var
|
|
|
variantmanager : tvariantmanager;
|
|
|
-
|
|
|
+
|
|
|
procedure printmissingvariantunit;
|
|
|
begin
|
|
|
writeln(stderr);
|
|
@@ -25,8 +25,8 @@ procedure printmissingvariantunit;
|
|
|
writeln(stderr,'as one of the first units.');
|
|
|
writeln(stderr);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
procedure invalidvariantop;
|
|
|
begin
|
|
|
printmissingvariantunit;
|
|
@@ -39,8 +39,8 @@ procedure invalidvariantopnovariants;
|
|
|
printmissingvariantunit;
|
|
|
HandleErrorFrame(221,get_frame);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
procedure vardisperror;
|
|
|
begin
|
|
|
printmissingvariantunit;
|
|
@@ -486,8 +486,8 @@ operator :=(const source : olevariant) dest : variant;{$ifdef SYSTEMINLINE}inlin
|
|
|
begin
|
|
|
tvardata(result):=tvardata(source);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : variant) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromvar(dest,source);
|
|
@@ -628,49 +628,159 @@ operator :=(const source : olevariant) dest : byte;{$ifdef SYSTEMINLINE}inline;{
|
|
|
endless recursion }
|
|
|
dest:=variantmanager.vartoint(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : olevariant) dest : shortint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
dest:=variantmanager.vartoint(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : olevariant) dest : word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
dest:=variantmanager.vartoint(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : olevariant) dest : smallint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
dest:=variantmanager.vartoint(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : olevariant) dest : dword;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
dest:=variantmanager.vartoint(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : olevariant) dest : longint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
dest:=variantmanager.vartoint(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : olevariant) dest : qword;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
dest:=variantmanager.vartoint64(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
+
|
|
|
|
|
|
operator :=(const source : olevariant) dest : int64;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
dest:=variantmanager.vartoword64(variant(tvardata(source)));
|
|
|
end;
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+{ Boolean }
|
|
|
+operator :=(const source : olevariant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartobool(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+operator :=(const source : olevariant) dest : wordbool;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartobool(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+operator :=(const source : olevariant) dest : longbool;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartobool(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+{ Chars }
|
|
|
+operator :=(const source : olevariant) dest : char;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ var
|
|
|
+ S : String;
|
|
|
+ begin
|
|
|
+ VariantManager.VarToPStr(S,Source);
|
|
|
+ If Length(S)>0 then
|
|
|
+ Dest:=S[1]
|
|
|
+ else
|
|
|
+ Dest:=#0;
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+operator :=(const source : olevariant) dest : widechar;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ Var
|
|
|
+ WS : WideString;
|
|
|
+ begin
|
|
|
+ VariantManager.VarToWStr(WS,Source);
|
|
|
+ If Length(WS)>0 then
|
|
|
+ Dest:=WS[1]
|
|
|
+ else
|
|
|
+ Dest:=#0;
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+{ Strings }
|
|
|
+operator :=(const source : olevariant) dest : shortstring;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ variantmanager.vartopstr(dest,variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+operator :=(const source : olevariant) dest : ansistring;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ variantmanager.vartolstr(dest,variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+operator :=(const source : olevariant) dest : widestring;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ variantmanager.vartowstr(dest,variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+{ Floats }
|
|
|
+{$ifdef SUPPORT_SINGLE}
|
|
|
+operator :=(const source : olevariant) dest : single;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartoreal(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+{$endif SUPPORT_SINGLE}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef SUPPORT_DOUBLE}
|
|
|
+operator :=(const source : olevariant) dest : double;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartoreal(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+{$endif SUPPORT_DOUBLE}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef SUPPORT_EXTENDED}
|
|
|
+operator :=(const source : olevariant) dest : extended;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartoreal(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+{$endif SUPPORT_EXTENDED}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef SUPPORT_COMP}
|
|
|
+operator :=(const source : olevariant) dest : comp;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartoreal(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+{$endif SUPPORT_COMP}
|
|
|
+
|
|
|
+{ Misc. }
|
|
|
+operator :=(const source : olevariant) dest : currency;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartocurr(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
+operator :=(const source : olevariant) dest : tdatetime;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+ begin
|
|
|
+ dest:=variantmanager.vartotdatetime(variant(tvardata(source)));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
{**********************************************************************
|
|
|
to OLEVariant assignments
|
|
|
**********************************************************************}
|
|
@@ -679,62 +789,62 @@ operator :=(const source : byte) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : shortint) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : word) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : smallint) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : dword) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : longint) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : qword) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : int64) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromint(dest,source,1);
|
|
|
end;
|
|
|
-
|
|
|
+
|
|
|
{ Boolean }
|
|
|
operator :=(const source : boolean) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.varfromBool(variant(tvardata(dest)),Source);
|
|
|
end;
|
|
|
|
|
|
-
|
|
|
+
|
|
|
operator :=(const source : wordbool) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.varfromBool(variant(tvardata(Dest)),Source);
|
|
|
end;
|
|
|
|
|
|
-
|
|
|
+
|
|
|
operator :=(const source : longbool) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.varfromBool(variant(tvardata(Dest)),Source);
|
|
@@ -746,32 +856,32 @@ operator :=(const source : char) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{
|
|
|
begin
|
|
|
variantmanager.olevarfrompstr(dest,source);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : widechar) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.varfromwstr(variant(tvardata(dest)),source);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
{ Strings }
|
|
|
operator :=(const source : shortstring) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfrompstr(dest,source);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : ansistring) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.olevarfromlstr(dest,source);
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
operator :=(const source : widestring) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
begin
|
|
|
variantmanager.varfromwstr(variant(tvardata(dest)),source);
|
|
|
end;
|
|
|
-
|
|
|
+
|
|
|
|
|
|
{**********************************************************************
|
|
|
Variant manager functions
|