+ more olevariant type cast wrappers

git-svn-id: trunk@1168 -
This commit is contained in:
florian 2005-09-23 16:36:09 +00:00
parent 6863cb00df
commit 372141e19d
2 changed files with 162 additions and 53 deletions

View File

@ -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

View File

@ -286,7 +286,7 @@ operator :=(const source : variant) dest : double;{$ifdef SYSTEMINLINE}inline;{$
{$ifdef SUPPORT_EXTENDED}
operator :=(const source : variant) dest : extended;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP}
operator :=(const source : variant) dest : comp;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_COMP}
@ -328,7 +328,7 @@ procedure VarCast(var dest : variant;const source : variant;vartype : longint);
{**********************************************************************
from OLEVariant assignments
**********************************************************************}
{ Integer }
operator :=(const source : olevariant) dest : byte;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : olevariant) dest : shortint;{$ifdef SYSTEMINLINE}inline;{$endif}
@ -339,7 +339,6 @@ operator :=(const source : olevariant) dest : longint;{$ifdef SYSTEMINLINE}inlin
operator :=(const source : olevariant) dest : qword;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : olevariant) dest : int64;{$ifdef SYSTEMINLINE}inline;{$endif}
{
{ Boolean }
operator :=(const source : olevariant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : olevariant) dest : wordbool;{$ifdef SYSTEMINLINE}inline;{$endif}
@ -364,18 +363,18 @@ operator :=(const source : olevariant) dest : double;{$ifdef SYSTEMINLINE}inline
{$ifdef SUPPORT_EXTENDED}
operator :=(const source : olevariant) dest : extended;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP}
operator :=(const source : olevariant) dest : comp;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_COMP}
{ Misc. }
operator :=(const source : olevariant) dest : currency;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : olevariant) dest : tdatetime;{$ifdef SYSTEMINLINE}inline;{$endif}
}
{**********************************************************************
to OLEVariant assignments
**********************************************************************}
{ Integer }
operator :=(const source : byte) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : shortint) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}