42
43
tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
43
44
tkDynArray,tkInterfaceRaw);
45
TTOrdType = (otSByte,otUByte,otSWord,otUWord,otSLong,otULong);
46
TOrdType = (otSByte,otUByte,otSWord,otUWord,otSLong,otULong);
47
48
TFloatType = (ftSingle,ftDouble,ftExtended,ftComp,ftCurr);
48
49
TMethodKind = (mkProcedure,mkFunction,mkConstructor,mkDestructor,
75
76
PTypeInfo = ^TTypeInfo;
76
77
PPTypeInfo = ^PTypeInfo;
78
80
PTypeData = ^TTypeData;
79
TTypeData = packed record
82
{$ifndef FPC_REQUIRES_PROPER_ALIGNMENT}
84
{$endif FPC_REQUIRES_PROPER_ALIGNMENT}
81
87
tkUnKnown,tkLString,tkWString,tkAString,tkVariant:
83
89
tkInteger,tkChar,tkEnumeration,tkWChar:
86
92
tkInteger,tkChar,tkEnumeration,tkBool,tkWChar : (
87
93
MinValue,MaxValue : Longint;
180
191
Function FindPropInfo(Instance: TObject; const PropName: string): PPropInfo;
181
192
Function FindPropInfo(AClass:TClass;const PropName: string): PPropInfo;
182
193
Procedure GetPropInfos(TypeInfo : PTypeInfo;PropList : PPropList);
183
Function GetPropList(TypeInfo : PTypeInfo;TypeKinds : TTypeKinds; PropList : PPropList) : Integer;
195
Function GetPropList(TypeInfo : PTypeInfo;TypeKinds : TTypeKinds; PropList : PPropList;Sorted : boolean):longint;
196
Function GetPropList(TypeInfo: PTypeInfo; var PropList: PPropList): SizeInt;
198
Function GetPropList(TypeInfo : PTypeInfo;TypeKinds : TTypeKinds; PropList : PPropList;Sorted : boolean = true):longint;
199
Function GetPropList(TypeInfo: PTypeInfo; out PropList: PPropList): SizeInt;
185
203
// Property information routines.
186
204
Function IsStoredProp(Instance: TObject;PropInfo : PPropInfo) : Boolean;
193
211
Function PropIsType(AClass: TClass; const PropName: string; TypeKind: TTypeKind): Boolean;
195
213
// subroutines to read/write properties
196
Function GetOrdProp(Instance: TObject; PropInfo : PPropInfo) : Longint;
197
Function GetOrdProp(Instance: TObject; const PropName: string): Longint;
198
Procedure SetOrdProp(Instance: TObject; PropInfo : PPropInfo; Value : Longint);
199
Procedure SetOrdProp(Instance: TObject; const PropName: string; Value: Longint);
214
Function GetOrdProp(Instance: TObject; PropInfo : PPropInfo) : Int64;
215
Function GetOrdProp(Instance: TObject; const PropName: string): Int64;
216
Procedure SetOrdProp(Instance: TObject; PropInfo : PPropInfo; Value : Int64);
217
Procedure SetOrdProp(Instance: TObject; const PropName: string; Value: Int64);
201
219
Function GetEnumProp(Instance: TObject; const PropName: string): string;
202
220
Function GetEnumProp(Instance: TObject; const PropInfo: PPropInfo): string;
226
244
Procedure SetFloatProp(Instance: TObject; const PropName: string; Value: Extended);
227
245
Procedure SetFloatProp(Instance: TObject; PropInfo : PPropInfo; Value : Extended);
229
Function GetVariantProp(Instance: TObject; PropInfo : PPropInfo): Variant;
230
Function GetVariantProp(Instance: TObject; const PropName: string): Variant;
231
Procedure SetVariantProp(Instance: TObject; const PropName: string; const Value: Variant);
232
Procedure SetVariantProp(Instance: TObject; PropInfo : PPropInfo; const Value: Variant);
234
247
Function GetObjectProp(Instance: TObject; const PropName: string): TObject;
235
248
Function GetObjectProp(Instance: TObject; const PropName: string; MinClass: TClass): TObject;
236
249
Function GetObjectProp(Instance: TObject; PropInfo: PPropInfo): TObject;
253
266
Function GetPropValue(Instance: TObject; const PropName: string): Variant;
254
267
Function GetPropValue(Instance: TObject; const PropName: string; PreferStrings: Boolean): Variant;
255
268
Procedure SetPropValue(Instance: TObject; const PropName: string; const Value: Variant);
269
Function GetVariantProp(Instance: TObject; PropInfo : PPropInfo): Variant;
270
Function GetVariantProp(Instance: TObject; const PropName: string): Variant;
271
Procedure SetVariantProp(Instance: TObject; const PropName: string; const Value: Variant);
272
Procedure SetVariantProp(Instance: TObject; PropInfo : PPropInfo; const Value: Variant);
257
275
// Auxiliary routines, which may be useful
258
276
Function GetEnumName(TypeInfo : PTypeInfo;Value : Integer) : string;
266
284
DotSep: String = '.';
269
EPropertyError = Class(Exception);
287
EPropertyError = Class(Exception);
288
TGetPropValue = Function (Instance: TObject; const PropName: string; PreferStrings: Boolean) : Variant;
289
TSetPropValue = Procedure (Instance: TObject; const PropName: string; const Value: Variant);
290
TGetVariantProp = Function (Instance: TObject; PropInfo : PPropInfo): Variant;
291
TSetVariantProp = Procedure (Instance: TObject; PropInfo : PPropInfo; const Value: Variant);
294
OnGetPropValue : TGetPropValue = Nil;
295
OnSetPropValue : TSetPropValue = Nil;
296
OnGetVariantprop : TGetVariantProp = Nil;
297
OnSetVariantprop : TSetVariantProp = Nil;
274
SErrPropertyNotFound = 'Unknown property: "%s"';
275
SErrUnknownEnumValue = 'Unknown enumeration value: "%s"';
278
304
PMethod = ^TMethod;
534
570
TD:=GetTypeData(TypeInfo);
535
571
// Get this objects TOTAL published properties count
536
TP:=(@TD^.UnitName+Length(TD^.UnitName)+1);
572
TP:=aligntoptr(PPropInfo(aligntoptr((@TD^.UnitName+Length(TD^.UnitName)+1))));
537
573
Count:=PWord(TP)^;
538
574
// Now point TP to first propinfo record.
539
575
Inc(Pointer(TP),SizeOF(Word));
542
579
PropList^[0]:=TP;
543
580
Inc(Pointer(PropList),SizeOf(Pointer));
544
581
// Point to TP next propinfo record.
545
582
// Located at Name[Length(Name)+1] !
546
TP:=PPropInfo(pointer(@TP^.Name)+PByte(@TP^.Name)^+1);
583
TP:=aligntoptr(PPropInfo(pointer(@TP^.Name)+PByte(@TP^.Name)^+1));
549
586
// recursive call for parent info.
568
Function GetPropList(TypeInfo : PTypeInfo;TypeKinds : TTypeKinds; PropList : PPropList) : Integer;
603
Procedure InsertPropnosort (PL : PProplist;PI : PPropInfo; Count : longint);
608
Type TInsertProp = Procedure (PL : PProplist;PI : PPropInfo; Count : longint);
610
//Const InsertProps : array[false..boolean] of TInsertProp = (InsertPropNoSort,InsertProp);
613
Function GetPropList(TypeInfo : PTypeInfo;TypeKinds : TTypeKinds; PropList : PPropList;Sorted : boolean):longint;
615
Function GetPropList(TypeInfo : PTypeInfo;TypeKinds : TTypeKinds; PropList : PPropList;Sorted : boolean = true):longint;
570
619
Store Pointers to property information OF A CERTAIN KIND in the list pointed
571
620
to by proplist. PRopList must contain enough space to hold ALL
575
625
TempList : PPropList;
576
626
PropInfo : PPropinfo;
577
627
I,Count : longint;
628
DoInsertProp : TInsertProp;
631
DoInsertProp:=@InsertProp
633
DoInsertProp:=@InsertPropnosort;
580
635
Count:=GetTypeData(TypeInfo)^.Propcount;
607
678
Ordinal properties
608
679
---------------------------------------------------------------------}
610
Function GetOrdProp(Instance : TObject;PropInfo : PPropInfo) : Longint;
681
Function GetOrdProp(Instance : TObject;PropInfo : PPropInfo) : Int64;
683
TGetInt64ProcIndex=function(index:longint):Int64 of object;
684
TGetInt64Proc=function():Int64 of object;
612
685
TGetIntegerProcIndex=function(index:longint):longint of object;
613
686
TGetIntegerProc=function:longint of object;
687
TGetWordProcIndex=function(index:longint):word of object;
688
TGetWordProc=function:word of object;
689
TGetByteProcIndex=function(index:longint):Byte of object;
690
TGetByteProc=function:Byte of object;
615
692
TypeInfo: PTypeInfo;
616
693
AMethod : TMethod;
619
case (PropInfo^.PropProcs) and 3 of
621
Result:=PLongint(Pointer(Instance)+Longint(PropInfo^.GetProc))^;
625
if (PropInfo^.PropProcs and 3)=ptStatic then
626
AMethod.Code:=PropInfo^.GetProc
628
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Longint(PropInfo^.GetProc))^;
629
AMethod.Data:=Instance;
630
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
631
Result:=TGetIntegerProcIndex(AMethod)(PropInfo^.Index)
633
Result:=TGetIntegerProc(AMethod)();
636
{ cut off unnecessary stuff }
637
700
TypeInfo := PropInfo^.PropType;
638
703
case TypeInfo^.Kind of
640
Result:=Result and $ff;
642
Result:=Result and $ffff;
645
case GetTypeData(TypeInfo)^.OrdType of
647
Result:=Result and $ffff;
649
Result:=Result and $ff;
711
OrdType:=GetTypeData(TypeInfo)^.OrdType;
713
otSByte,otUByte: DataSize := 1;
714
otSWord,otUWord: DataSize := 2;
716
Signed := OrdType in [otSByte,otSWord,otSLong];
730
case (PropInfo^.PropProcs) and 3 of
734
1: Result:=PShortInt(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
735
2: Result:=PSmallInt(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
736
4: Result:=PLongint(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
737
8: Result:=PInt64(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
741
1: Result:=PByte(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
742
2: Result:=PWord(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
743
4: Result:=PLongint(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
744
8: Result:=PInt64(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
750
if (PropInfo^.PropProcs and 3)=ptStatic then
751
AMethod.Code:=PropInfo^.GetProc
753
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Ptrint(PropInfo^.GetProc))^;
754
AMethod.Data:=Instance;
755
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then begin
757
1: Result:=TGetByteProcIndex(AMethod)(PropInfo^.Index);
758
2: Result:=TGetWordProcIndex(AMethod)(PropInfo^.Index);
759
4: Result:=TGetIntegerProcIndex(AMethod)(PropInfo^.Index);
760
8: result:=TGetInt64ProcIndex(AMethod)(PropInfo^.Index)
764
1: Result:=TGetByteProc(AMethod)();
765
2: Result:=TGetWordProc(AMethod)();
766
4: Result:=TGetIntegerProc(AMethod)();
767
8: result:=TGetInt64Proc(AMethod)();
772
1: Result:=ShortInt(Result);
773
2: Result:=SmallInt(Result);
655
Procedure SetOrdProp(Instance : TObject;PropInfo : PPropInfo;Value : Longint);
780
Procedure SetOrdProp(Instance : TObject;PropInfo : PPropInfo;Value : Int64);
782
TSetInt64ProcIndex=procedure(index:longint;i:Int64) of object;
783
TSetInt64Proc=procedure(i:Int64) of object;
657
784
TSetIntegerProcIndex=procedure(index,i:longint) of object;
658
785
TSetIntegerProc=procedure(i:longint) of object;
660
787
DataSize: Integer;
661
788
AMethod : TMethod;
790
if PropInfo^.PropType^.Kind in [tkInt64,tkQword] then
664
794
if PropInfo^.PropType^.Kind <> tkClass then
666
796
{ cut off unnecessary stuff }
690
821
if ((PropInfo^.PropProcs shr 2) and 3)=ptStatic then
691
822
AMethod.Code:=PropInfo^.SetProc
693
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Longint(PropInfo^.SetProc))^;
824
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Ptrint(PropInfo^.SetProc))^;
694
825
AMethod.Data:=Instance;
695
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
696
TSetIntegerProcIndex(AMethod)(PropInfo^.Index,Value)
828
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
829
TSetInt64ProcIndex(AMethod)(PropInfo^.Index,Value)
831
TSetInt64Proc(AMethod)(Value);
698
TSetIntegerProc(AMethod)(Value);
835
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
836
TSetIntegerProcIndex(AMethod)(PropInfo^.Index,Value)
838
TSetIntegerProc(AMethod)(Value);
704
Function GetOrdProp(Instance: TObject; const PropName: string): Longint;
845
Function GetOrdProp(Instance: TObject; const PropName: string): Int64;
706
847
Result:=GetOrdProp(Instance,FindPropInfo(Instance,PropName));
710
Procedure SetOrdProp(Instance: TObject; const PropName: string; Value: Longint);
851
Procedure SetOrdProp(Instance: TObject; const PropName: string; Value: Int64);
712
853
SetOrdProp(Instance,FindPropInfo(Instance,PropName),Value);
748
889
{ ---------------------------------------------------------------------
891
---------------------------------------------------------------------}
893
Function GetInt64Prop(Instance: TObject; PropInfo: PPropInfo): Int64;
895
Result:=GetOrdProp(Instance,PropInfo);
899
procedure SetInt64Prop(Instance: TObject; PropInfo: PPropInfo; const Value: Int64);
901
SetOrdProp(Instance,PropInfo,Value);
905
Function GetInt64Prop(Instance: TObject; const PropName: string): Int64;
907
Result:=GetInt64Prop(Instance,FindPropInfo(Instance,PropName));
911
Procedure SetInt64Prop(Instance: TObject; const PropName: string; const Value: Int64);
913
SetInt64Prop(Instance,FindPropInfo(Instance,PropName),Value);
917
{ ---------------------------------------------------------------------
750
919
---------------------------------------------------------------------}
1077
1246
Case GetTypeData(PropInfo^.PropType)^.FloatType of
1079
Result:=PSingle(Pointer(Instance)+Longint(PropInfo^.GetProc))^;
1248
Result:=PSingle(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
1081
Result:=PDouble(Pointer(Instance)+Longint(PropInfo^.GetProc))^;
1250
Result:=PDouble(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
1083
Result:=PExtended(Pointer(Instance)+Longint(PropInfo^.GetProc))^;
1252
Result:=PExtended(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
1085
Result:=PComp(Pointer(Instance)+Longint(PropInfo^.GetProc))^;
1254
Result:=PComp(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
1086
1255
{$ifdef HASCURRENCY}
1088
Result:=PCurrency(Pointer(Instance)+Longint(PropInfo^.GetProc))^;
1257
Result:=PCurrency(Pointer(Instance)+Ptrint(PropInfo^.GetProc))^;
1089
1258
{$endif HASCURRENCY}
1138
1314
Case GetTypeData(PropInfo^.PropType)^.FloatType of
1140
PSingle(Pointer(Instance)+Longint(PropInfo^.SetProc))^:=Value;
1316
PSingle(Pointer(Instance)+Ptrint(PropInfo^.SetProc))^:=Value;
1142
PDouble(Pointer(Instance)+Longint(PropInfo^.SetProc))^:=Value;
1318
PDouble(Pointer(Instance)+Ptrint(PropInfo^.SetProc))^:=Value;
1144
PExtended(Pointer(Instance)+Longint(PropInfo^.SetProc))^:=Value;
1320
PExtended(Pointer(Instance)+Ptrint(PropInfo^.SetProc))^:=Value;
1145
1321
{$ifdef FPC_COMP_IS_INT64}
1147
1323
PComp(Pointer(Instance)+PtrUInt(PropInfo^.SetProc))^:=trunc(Value);
1195
1382
{ ---------------------------------------------------------------------
1197
---------------------------------------------------------------------}
1199
Function GetVariantProp(Instance : TObject;PropInfo : PPropInfo): Variant;
1201
{$warning GetVariantProp not implemented}
1210
Procedure SetVariantProp(Instance : TObject;PropInfo : PPropInfo; const Value: Variant);
1212
{$warning SetVariantProp not implemented}
1216
Function GetVariantProp(Instance: TObject; const PropName: string): Variant;
1218
Result:=GetVariantProp(Instance,FindPropInfo(Instance,PropName));
1222
Procedure SetVariantProp(Instance: TObject; const PropName: string; const Value: Variant);
1224
SetVariantprop(instance,FindpropInfo(Instance,PropName),Value);
1228
{ ---------------------------------------------------------------------
1229
1383
Method properties
1230
1384
---------------------------------------------------------------------}
1233
1387
Function GetMethodProp(Instance : TObject;PropInfo : PPropInfo) : TMethod;
1235
TGetMethodProcIndex=function(index:longint):PMethod of object;
1236
TGetMethodProc=function():PMethod of object;
1389
TGetMethodProcIndex=function(Index: Longint): TMethod of object;
1390
TGetMethodProc=function(): TMethod of object;
1238
1392
value: PMethod;
1239
1393
AMethod : TMethod;
1242
1397
case (PropInfo^.PropProcs) and 3 of
1244
Value:=PMethod(Pointer(Instance)+Longint(PropInfo^.GetProc));
1400
Value:=PMethod(Pointer(Instance)+Ptrint(PropInfo^.GetProc));
1248
1407
if (PropInfo^.PropProcs and 3)=ptStatic then
1249
1408
AMethod.Code:=PropInfo^.GetProc
1251
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Longint(PropInfo^.GetProc))^;
1410
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Ptrint(PropInfo^.GetProc))^;
1252
1411
AMethod.Data:=Instance;
1253
1412
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
1254
Value:=TGetMethodProcIndex(AMethod)(PropInfo^.Index)
1413
Result:=TGetMethodProcIndex(AMethod)(PropInfo^.Index)
1256
Value:=TGetMethodProc(AMethod)();
1415
Result:=TGetMethodProc(AMethod)();
1276
1428
case (PropInfo^.PropProcs shr 2) and 3 of
1278
PMethod(Pointer(Instance)+Longint(PropInfo^.SetProc))^ := Value;
1430
PMethod(Pointer(Instance)+Ptrint(PropInfo^.SetProc))^ := Value;
1282
1434
if ((PropInfo^.PropProcs shr 2) and 3)=ptStatic then
1283
1435
AMethod.Code:=PropInfo^.SetProc
1285
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Longint(PropInfo^.SetProc))^;
1437
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Ptrint(PropInfo^.SetProc))^;
1286
1438
AMethod.Data:=Instance;
1287
1439
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
1288
1440
TSetMethodProcIndex(AMethod)(PropInfo^.Index,@Value)
1308
1460
{ ---------------------------------------------------------------------
1310
1462
---------------------------------------------------------------------}
1312
Function GetInt64Prop(Instance: TObject; PropInfo: PPropInfo): Int64;
1314
TGetInt64ProcIndex=function(index:longint):Int64 of object;
1315
TGetInt64Proc=function():Int64 of object;
1320
case (PropInfo^.PropProcs) and 3 of
1322
Result:=PInt64(Pointer(Instance)+Longint(PropInfo^.GetProc))^;
1326
if (PropInfo^.PropProcs and 3)=ptStatic then
1327
AMethod.Code:=PropInfo^.GetProc
1329
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Longint(PropInfo^.GetProc))^;
1330
AMethod.Data:=Instance;
1331
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
1332
result:=TGetInt64ProcIndex(AMethod)(PropInfo^.Index)
1334
result:=TGetInt64Proc(AMethod)();
1340
procedure SetInt64Prop(Instance: TObject; PropInfo: PPropInfo; const Value: Int64);
1342
TSetInt64ProcIndex=procedure(index:longint;i:Int64) of object;
1343
TSetInt64Proc=procedure(i:Int64) of object;
1347
case (PropInfo^.PropProcs shr 2) and 3 of
1349
PInt64(Pointer(Instance)+Longint(PropInfo^.SetProc))^ := Value;
1353
if ((PropInfo^.PropProcs shr 2) and 3)=ptStatic then
1354
AMethod.Code:=PropInfo^.SetProc
1356
AMethod.Code:=PPointer(Pointer(Instance.ClassType)+Longint(PropInfo^.SetProc))^;
1357
AMethod.Data:=Instance;
1358
if ((PropInfo^.PropProcs shr 6) and 1)<>0 then
1359
TSetInt64ProcIndex(AMethod)(PropInfo^.Index,Value)
1361
TSetInt64Proc(AMethod)(Value);
1367
Function GetInt64Prop(Instance: TObject; const PropName: string): Int64;
1369
Result:=GetInt64Prop(Instance,FindPropInfo(Instance,PropName));
1373
Procedure SetInt64Prop(Instance: TObject; const PropName: string; const Value: Int64);
1375
SetInt64Prop(Instance,FindPropInfo(Instance,PropName),Value);
1464
Procedure CheckVariantEvent(P : Pointer);
1468
Raise Exception.Create(SErrNoVariantSupport);
1471
Function GetVariantProp(Instance : TObject;PropInfo : PPropInfo): Variant;
1473
CheckVariantEvent(Pointer(OnGetVariantProp));
1474
Result:=OnGetVariantProp(Instance,PropInfo);
1478
Procedure SetVariantProp(Instance : TObject;PropInfo : PPropInfo; const Value: Variant);
1480
CheckVariantEvent(Pointer(OnSetVariantProp));
1481
OnSetVariantProp(Instance,PropInfo,Value);
1485
Function GetVariantProp(Instance: TObject; const PropName: string): Variant;
1487
Result:=GetVariantProp(Instance,FindPropInfo(Instance,PropName));
1491
Procedure SetVariantProp(Instance: TObject; const PropName: string; const Value: Variant);
1493
SetVariantprop(instance,FindpropInfo(Instance,PropName),Value);
1440
1563
$Log: typinfo.pp,v $
1441
Revision 1.25 2004/05/24 21:05:19 florian
1442
* fixed comp property writing for cpus where comp=int64
1444
Revision 1.24 2004/05/23 19:00:40 florian
1445
+ added widestring routines
1447
Revision 1.23 2004/02/22 16:48:39 florian
1448
* several 64 bit issues fixed
1450
Revision 1.22 2004/02/21 22:53:49 florian
1451
* several 64 bit/x86-64 fixes
1453
Revision 1.21 2004/02/20 15:55:26 peter
1454
* enable variant again
1456
Revision 1.20 2003/12/24 22:27:13 peter
1460
Revision 1.19 2003/12/22 11:32:04 marco
1461
* splitted up tintfflags into several components
1463
Revision 1.18 2003/10/24 08:37:20 marco
1466
Revision 1.17 2003/10/17 20:58:27 olle
1467
* Changed m68k to cpum68k, i386 to cpui386
1469
Revision 1.16 2003/04/24 11:46:25 florian
1470
* fixed wrong newlines
1472
Revision 1.15 2003/03/29 16:55:56 michael
1473
+ Patch from Mattias Gaertner for single typeinfo
1475
Revision 1.14 2002/09/07 16:01:22 peter
1476
* old logs removed and tabs fixed
1478
Revision 1.13 2002/04/04 18:32:59 peter
1479
* merged getpropinfo fix
1564
Revision 1.45 2005/04/16 09:24:29 michael
1565
+ Moved constants to rtlconsts and added callbacks for variant support
1567
Revision 1.44 2005/04/14 17:43:07 michael
1568
+ Added getPropValue by Uberto Barbini
1570
Revision 1.43 2005/04/05 06:44:25 marco
1571
* Currency property patch from Dean Zobec
1573
Revision 1.42 2005/04/03 11:50:58 marco
1574
* patch for 3854 added. There are probably more places that need explicit
1577
Revision 1.41 2005/03/14 21:15:52 florian
1578
* fixed compilation on i386
1580
Revision 1.40 2005/03/14 19:16:06 peter
1581
* getordprop supports int64
1583
Revision 1.39 2005/02/26 20:59:38 florian
1584
* fixed 1.0.10 issue
1586
Revision 1.38 2005/02/26 11:37:01 florian
1587
+ overload of GetPropList added
1589
Revision 1.37 2005/02/22 12:14:56 marco
1590
* getproplist sorted param added.
1592
Revision 1.36 2005/02/14 17:13:31 peter
1595
Revision 1.35 2005/02/08 16:10:29 florian
1596
* TTOrdType -> TOrdType