69
|
How do I encode data as ICalendar format

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content do
begin
with Components.Add('VCALENDAR') do
begin
Properties.Add('VERSION','2.1').Parameters.Add('UNICODE',OleVariant(ICalendar1.toICalendar[OleVariant(True),EXICALENDARLib_TLB.exPropertyTypeBoolean]));
Properties.Add('TEXT','This is just a bit of text to be encoded.');
Properties.Add('BINARY',OleVariant(ICalendar1.toICalendar['This is just a bit of text to be encoded.',EXICALENDARLib_TLB.exPropertyTypeBinary]));
with Components.Add('VEVENT') do
begin
Properties.Add('DTSTART','1/1/2001');
Properties.Add('DTEND','1/2/2001 10:00:00 AM');
end;
end;
end;
OutputDebugString( Save() );
end
|
68
|
How do I get the occurrences between giving start/end margins

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( 'AsArray: ' );
OutputDebugString( RecurRange['DTSTART=19970310;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3','1/1/2001','1/1/2002'] );
OutputDebugString( 'AsString: ' );
OutputDebugString( RecurRangeAsString['DTSTART=19970310;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3','1/1/2001','1/1/2002'] );
end
|
67
|
How do I get the value of specified part in the recurrence expression

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( 'FREQ: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurFREQ] );
OutputDebugString( 'DTSTART: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurDTSTART] );
OutputDebugString( 'UNTIL: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurUNTIL] );
OutputDebugString( 'COUNT: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurCOUNT] );
OutputDebugString( 'INTERVAL: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurINTERVAL] );
OutputDebugString( 'WKST: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurWKST] );
OutputDebugString( 'BYDAY: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYDAY] );
OutputDebugString( 'BYMONTHDAY: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYMONTHDAY] );
OutputDebugString( 'BYYEARDAY: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYYEARDAY] );
OutputDebugString( 'BYWEEKNO: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYWEEKNO] );
OutputDebugString( 'BYMONTH: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYMONTH] );
OutputDebugString( 'BYSETPOS: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYSETPOS] );
OutputDebugString( 'BYHOUR: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYHOUR] );
OutputDebugString( 'BYMINUTE: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYMINUTE] );
OutputDebugString( 'BYSECOND: ' );
OutputDebugString( RecurPartValue['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',EXICALENDARLib_TLB.exRecurBYSECOND] );
end
|
66
|
How do I check if the recurrence expression is syntactically correct (method 2)

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( '1.A) SyntaxError: ' );
OutputDebugString( RecurPartValue['DTSTART=20151205;FREQ=DAILY;BYDAY=MO',EXICALENDARLib_TLB.exRecurSyntaxError] );
OutputDebugString( '1.B) SyntaxErrorInfo: ' );
OutputDebugString( RecurPartValue['DTSTART=20151205;FREQ=DAILY;BYDAY=MO',EXICALENDARLib_TLB.exRecurSyntaxErrorInfo] );
OutputDebugString( '2.A) SyntaxError: ' );
OutputDebugString( RecurPartValue['FREQ=DAILY;BYDAY=MO',EXICALENDARLib_TLB.exRecurSyntaxError] );
OutputDebugString( '2.B) SyntaxErrorInfo: ' );
OutputDebugString( RecurPartValue['FREQ=DAILY;BYDAY=MO',EXICALENDARLib_TLB.exRecurSyntaxErrorInfo] );
end
|
65
|
How do I check if the recurrence expression is syntactically correct (method 1)

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( '1. If negative, the expression is incorrect' );
OutputDebugString( RecurCheck['DTSTART=20151205;FREQ=DAILY;BYDAY=MO','12/5/2015'] );
OutputDebugString( '2. If negative, the expression is incorrect' );
OutputDebugString( RecurCheck['junk','1/1/2001'] );
end
|
64
|
How do I check if a specified date match the giving recurrence

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( '12/5/2015' );
OutputDebugString( RecurCheck['DTSTART=20151205;FREQ=DAILY;BYDAY=MO','12/5/2015'] );
OutputDebugString( '12/7/2015' );
OutputDebugString( RecurCheck['DTSTART=20151205;FREQ=DAILY;BYDAY=MO','12/7/2015'] );
end
|
63
|
Recur: The 2nd to last weekday of the month

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970929;FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2',OleVariant(12)] );
end
|
62
|
Recur: The 3rd instance into the month of one of Tuesday, Wednesday or Thursday, for the next 3 months

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970904;FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3',OleVariant(12)] );
end
|
61
|
Recur: The last work day of the month

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970805;FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1',OleVariant(12)] );
end
|
60
|
Recur: An example where the days generated makes a difference because of WKST (Sample 2)

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU',OleVariant(12)] );
end
|
59
|
Recur: An example where the days generated makes a difference because of WKST (Sample 1)

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO',OleVariant(12)] );
end
|
58
|
Recur: Every 20 minutes from 9:00 AM to 4:40 PM every day

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40',OleVariant(12)] );
end
|
57
|
Recur: Every hour and a half for 4 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=MINUTELY;INTERVAL=90;COUNT=4',OleVariant(12)] );
end
|
56
|
Recur: Every 15 minutes for 6 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=MINUTELY;INTERVAL=15;COUNT=6',OleVariant(12)] );
end
|
55
|
Recur: Every 3 hours from 9:00 AM to 5:00 PM on a specific day

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z',OleVariant(12)] );
end
|
54
|
Recur: Every four years, the first Tuesday after a Monday in November, forever (U.S. Presidential Election day)

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19961105T090000;FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8',OleVariant(12)] );
end
|
53
|
Recur: The first Saturday that follows the first Sunday of the month, forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970913T090000;FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13',OleVariant(12)] );
end
|
52
|
Recur: Every Friday the 13th, forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13',OleVariant(12)] );
end
|
51
|
Recur: Every Thursday, but only during June, July, and August, forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970605T090000;FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8',OleVariant(12)] );
end
|
50
|
Recur: Every Thursday in March, forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970313T090000;FREQ=YEARLY;BYMONTH=3;BYDAY=TH',OleVariant(12)] );
end
|
49
|
Recur: Monday of week number 20 (where the default start of the week is Monday), forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970512T090000;FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO',OleVariant(12)] );
end
|
48
|
Recur: Every 20th Monday of the year, forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970101T090000;FREQ=YEARLY;BYDAY=20MO',OleVariant(12)] );
end
|
47
|
Recur: Every 3rd year on the 1st, 100th and 200th day for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970101T090000;FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200',OleVariant(12)] );
end
|
46
|
Recur: Every other year on January, February, and March for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970310T090000;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3',OleVariant(12)] );
end
|
45
|
Recur: Yearly in June and July for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970610T090000;FREQ=YEARLY;COUNT=10;BYMONTH=6,7',OleVariant(12)] );
end
|
44
|
Recur: Every Tuesday, every other month

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=MONTHLY;INTERVAL=2;BYDAY=TU',OleVariant(12)] );
end
|
43
|
Recur: Every 18 months on the 10th thru 15th of the month for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970910T090000;FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15',OleVariant(12)] );
end
|
42
|
Recur: Monthly on the first and last day of the month for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970930T090000;FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1',OleVariant(12)] );
end
|
41
|
Recur: Monthly on the 2nd and 15th of the month for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15',OleVariant(12)] );
end
|
40
|
Recur: Monthly on the third to the last day of the month, forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970928T090000;FREQ=MONTHLY;BYMONTHDAY=-3',OleVariant(12)] );
end
|
39
|
Recur: Monthly on the second to last Monday of the month for 6 months

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970922T090000;FREQ=MONTHLY;COUNT=6;BYDAY=-2MO',OleVariant(12)] );
end
|
38
|
Recur: Every other month on the 1st and last Sunday of the month for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970907T090000;FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU',OleVariant(12)] );
end
|
37
|
Recur: Monthly on the 1st Friday until December 24, 1997

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970905T090000;FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR',OleVariant(12)] );
end
|
36
|
Recur: Monthly on the 1st Friday for ten occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970905T090000;FREQ=MONTHLY;COUNT=10;BYDAY=1FR',OleVariant(12)] );
end
|
35
|
Recur: Every other week on Tuesday and Thursday, for 8 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH',OleVariant(12)] );
end
|
34
|
Recur: Every other week on Monday, Wednesday and Friday until December 24, 1997, but starting on Tuesday, September 2, 1997

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR',OleVariant(12)] );
end
|
33
|
Recur: Weekly on Tuesday and Thursday for 5 weeks

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH',OleVariant(12)] );
end
|
32
|
Recur: Weekly on Tuesday and Thursday for 5 weeks

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH',OleVariant(12)] );
end
|
31
|
Recur: Every other day - forever

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=DAILY;INTERVAL=2',OleVariant(12)] );
end
|
30
|
Recur: Daily until December 24, 1997

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=DAILY;UNTIL=19971224T000000Z',OleVariant(12)] );
end
|
29
|
Recur: Daily for 10 occurrences

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( RecurAllAsString['DTSTART=19970902T090000;FREQ=DAILY;COUNT=10',OleVariant(12)] );
end
|
28
|
How can I add a property of UTC offset type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('UTCOffset','+0100');
end;
OutputDebugString( Save() );
end
|
27
|
How can I add a property of URI type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('URI','http://www.exontrol.com');
end;
OutputDebugString( Save() );
end
|
26
|
How can I add a property of time type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Time1','12:00:00 PM');
Properties.Add('Time2',OleVariant(ICalendar1.toICalendar[OleVariant(0.5),EXICALENDARLib_TLB.exPropertyTypeTime]));
with Properties.Add('Time3',Null) do
begin
Value := OleVariant(0.5);
Type := EXICALENDARLib_TLB.exPropertyTypeTime;
end;
end;
OutputDebugString( Save() );
end
|
25
|
How can I add a property of text/string type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Text1','A1');
Properties.Add('Text2',OleVariant(ICalendar1.toICalendar['A1',EXICALENDARLib_TLB.exPropertyTypeText]));
with Properties.Add('Text3',Null) do
begin
Value := 'A1';
Type := EXICALENDARLib_TLB.exPropertyTypeText;
end;
end;
OutputDebugString( Save() );
end
|
24
|
How can I find properties of recurence type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Recur','FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=SA,SU');
end;
p := Root.Properties.Item['Recur'];
i := toICalendar[p.Value,p.GuessType];
OutputDebugString( 'icalendar:' );
OutputDebugString( i );
OutputDebugString( 'all:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,''] );
OutputDebugString( 'FREQ:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'FREQ'] );
OutputDebugString( 'UNTIL:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'UNTIL'] );
OutputDebugString( 'COUNT:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'COUNT'] );
OutputDebugString( 'INTERVAL:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'INTERVAL'] );
OutputDebugString( 'BYSECOND:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYSECOND'] );
OutputDebugString( 'BYMINUTE:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYMINUTE'] );
OutputDebugString( 'BYHOUR:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYHOUR'] );
OutputDebugString( 'BYDAY:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYDAY'] );
OutputDebugString( 'BYMONTHDAY:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYMONTHDAY'] );
OutputDebugString( 'BYYEARDAY:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYYEARDAY'] );
OutputDebugString( 'BYWEEKNO:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYWEEKNO'] );
OutputDebugString( 'BYMONTH:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYMONTH'] );
OutputDebugString( 'BYSETPOS:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'BYSETPOS'] );
OutputDebugString( 'WKST:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'WKST'] );
end
|
23
|
How can I add a property of recurrence type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Recur','FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU');
end;
OutputDebugString( Save() );
end
|
22
|
How can I find the duration in weeks, days, hours, minutes, seconds from a property of duration type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Period',OleVariant(ICalendar1.valuesToICalendar['Start=#1/1/2001#;Duration=1',EXICALENDARLib_TLB.exPropertyTypePeriod]));
end;
p := Root.Properties.Item['Period'];
i := toICalendar[p.Value,p.GuessType];
OutputDebugString( 'icalendar:' );
OutputDebugString( i );
OutputDebugString( 'all:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,''] );
OutputDebugString( 'start:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'Start'] );
OutputDebugString( 'end:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'End'] );
OutputDebugString( 'duration:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'Duration'] );
OutputDebugString( 'weeks:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'W'] );
OutputDebugString( 'days:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'D'] );
OutputDebugString( 'hour:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'H'] );
OutputDebugString( 'min:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'M'] );
OutputDebugString( 'sec:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'S'] );
end
|
21
|
How can I add a property of period type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Period1',OleVariant(ICalendar1.valuesToICalendar['Start=#1/1/2001#;Duration=1',EXICALENDARLib_TLB.exPropertyTypePeriod]));
Properties.Add('Period2',OleVariant(ICalendar1.valuesToICalendar['Start=#1/1/2001#;End=#1/2/2001#',EXICALENDARLib_TLB.exPropertyTypePeriod]));
Properties.Add('Period3',OleVariant(ICalendar1.valuesToICalendar['Duration=1;End=#1/2/2001#',EXICALENDARLib_TLB.exPropertyTypePeriod]));
end;
OutputDebugString( Save() );
end
|
20
|
How can I add a property of integer type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Integer1',OleVariant(1));
Properties.Add('Integer2',OleVariant(ICalendar1.toICalendar[OleVariant(1),EXICALENDARLib_TLB.exPropertyTypeInteger]));
with Properties.Add('Integer3',Null) do
begin
Value := OleVariant(1);
Type := EXICALENDARLib_TLB.exPropertyTypeInteger;
end;
end;
OutputDebugString( Save() );
end
|
19
|
How can I add a property of float type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Float1',OleVariant(1.5));
Properties.Add('Float2',OleVariant(ICalendar1.toICalendar[OleVariant(1.5),EXICALENDARLib_TLB.exPropertyTypeFloat]));
with Properties.Add('Float3',Null) do
begin
Value := OleVariant(1.5);
Type := EXICALENDARLib_TLB.exPropertyTypeFloat;
end;
end;
OutputDebugString( Save() );
end
|
18
|
How do I get the type of the property

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Duration1',OleVariant(ICalendar1.toICalendar[OleVariant(2.5),EXICALENDARLib_TLB.exPropertyTypeDuration]));
with Properties.Add('Duration2',Null) do
begin
Value := OleVariant(2.5);
Type := EXICALENDARLib_TLB.exPropertyTypeDuration;
end;
end;
with Root.Properties.Item['Duration1'] do
begin
OutputDebugString( Name );
OutputDebugString( 'Guess' );
OutputDebugString( GuessType );
OutputDebugString( Name );
OutputDebugString( 'Type' );
OutputDebugString( Type );
end;
with Root.Properties.Item['Duration2'] do
begin
OutputDebugString( Name );
OutputDebugString( 'Guess' );
OutputDebugString( GuessType );
OutputDebugString( Name );
OutputDebugString( 'Type' );
OutputDebugString( Type );
end;
end
|
17
|
How can I get values of the duration iCalendar format

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
OutputDebugString( 'all:' );
OutputDebugString( valuesFromICalendar['P1D',EXICALENDARLib_TLB.exPropertyTypeDuration,''] );
OutputDebugString( 'duration:' );
OutputDebugString( valuesFromICalendar['P1D',EXICALENDARLib_TLB.exPropertyTypeDuration,'Duration'] );
end
|
16
|
How can I find the duration in weeks, days, hours, minutes, seconds from a property of duration type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Duration',OleVariant(ICalendar1.toICalendar[OleVariant(3.325),EXICALENDARLib_TLB.exPropertyTypeDuration]));
end;
p := Root.Properties.Item['Duration'];
i := toICalendar[p.Value,p.GuessType];
OutputDebugString( 'icalendar:' );
OutputDebugString( i );
OutputDebugString( 'all:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,''] );
OutputDebugString( 'duration:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'Duration'] );
OutputDebugString( 'weeks:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'W'] );
OutputDebugString( 'days:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'D'] );
OutputDebugString( 'hour:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'H'] );
OutputDebugString( 'min:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'M'] );
OutputDebugString( 'sec:' );
OutputDebugString( valuesFromICalendar[i,p.GuessType,'S'] );
end
|
15
|
How can I add a property of duration type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Duration1',OleVariant(ICalendar1.toICalendar[OleVariant(2.5),EXICALENDARLib_TLB.exPropertyTypeDuration]));
with Properties.Add('Duration2',Null) do
begin
Value := OleVariant(2.5);
Type := EXICALENDARLib_TLB.exPropertyTypeDuration;
end;
Properties.Add('Duration3',OleVariant(ICalendar1.valuesToICalendar['D=2;H=12',EXICALENDARLib_TLB.exPropertyTypeDuration]));
end;
OutputDebugString( Save() );
end
|
14
|
How can I add a property of date-time type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('DateTime1','1/1/2001 12:00:00 PM');
Properties.Add('DateTime2',OleVariant(ICalendar1.toICalendar['1/1/2001',EXICALENDARLib_TLB.exPropertyTypeDateTime]));
with Properties.Add('DateTime3',Null) do
begin
Value := '1/1/2001';
Type := EXICALENDARLib_TLB.exPropertyTypeDateTime;
end;
end;
OutputDebugString( Save() );
end
|
13
|
How can I add a property of date type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Date1','1/1/2001');
Properties.Add('Date2',OleVariant(ICalendar1.toICalendar['1/1/2001',EXICALENDARLib_TLB.exPropertyTypeDate]));
with Properties.Add('Date3',Null) do
begin
Value := '1/1/2001';
Type := EXICALENDARLib_TLB.exPropertyTypeDate;
end;
end;
OutputDebugString( Save() );
end
|
12
|
How can I add a property of Calendar User Address type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('caladdress1','mailto:support@exontrol.com');
Properties.Add('caladdress2',OleVariant(ICalendar1.toICalendar['mailto:support@exontrol.com',EXICALENDARLib_TLB.exPropertyTypeCalAddress]));
with Properties.Add('caladdress3',Null) do
begin
Value := 'mailto:support@exontrol.com';
Type := EXICALENDARLib_TLB.exPropertyTypeCalAddress;
end;
end;
OutputDebugString( Save() );
end
|
11
|
How can I add a property of boolean type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Boolean1',OleVariant(True));
Properties.Add('Boolean2',OleVariant(ICalendar1.toICalendar['TRUE',EXICALENDARLib_TLB.exPropertyTypeBoolean]));
with Properties.Add('Boolean3',Null) do
begin
Value := OleVariant(0);
Type := EXICALENDARLib_TLB.exPropertyTypeBoolean;
end;
end;
OutputDebugString( Save() );
end
|
10
|
How can I add a property of binary type

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
Properties.Add('Binary1',OleVariant(ICalendar1.toICalendar['This is a bit of text converted to binary',EXICALENDARLib_TLB.exPropertyTypeBinary]));
with Properties.Add('Binary2',Null) do
begin
Value := 'This is a bit of text converted to binary';
Type := EXICALENDARLib_TLB.exPropertyTypeBinary;
end;
end;
OutputDebugString( Save() );
end
|
9
|
How can I access the root element of the iCalendar format

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
Load('BEGIN:VCALENDAR\r\nVERSION:2.0\r\nEND:VCALENDAR');
OutputDebugString( Root.Name );
OutputDebugString( Root.Properties.Item['Version'].Value );
end
|
8
|
How can I get notified once the control loads a new component, property, when using Load or LoadFile methods

// AddComponent event - Occurs when a new component is added.
procedure TForm1.ICalendar1AddComponent(ASender: TObject; NewComponent : IComponent);
begin
with ICalendar1 do
begin
OutputDebugString( NewComponent );
end
end;
// AddProperty event - Occurs when a new property is added.
procedure TForm1.ICalendar1AddProperty(ASender: TObject; NewPropery : IProperty);
begin
with ICalendar1 do
begin
OutputDebugString( NewPropery );
end
end;
ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
FireEvents := True;
Load('BEGIN:VCALENDAR\r\nVERSION:2.0\r\nEND:VCALENDAR');
end
|
7
|
How can I add a property with parameters

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
with Components.Add('VEVENT').Properties do
begin
Add('SUMMARY','Company Holiday Party').Parameters.Add('LANGUAGE','en-US');
Add('DATE','1/1/2001');
end;
end;
OutputDebugString( Save() );
end
|
6
|
How can I load iCalendar from a string

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
Load('BEGIN:VCALENDAR\r\nVERSION:2.0\r\nEND:VCALENDAR');
OutputDebugString( Content.Components.Item[OleVariant(0)].Name );
end
|
5
|
How can I add VEVENT objects

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
with Properties do
begin
Add('Version','2.0');
Add('PRODID','-//hacksw/handcal//NONSGML v1.0//EN');
end;
with Components.Add('VEVENT').Properties do
begin
Add('DTSTART','1/1/2001');
Add('DTEND','1/2/2001');
Add('SUMMARY','First Party');
end;
with Components.Add('VEVENT').Properties do
begin
Add('DTSTART','1/4/2001');
Add('DTEND','1/5/2001');
Add('SUMMARY','Second Party');
end;
end;
OutputDebugString( Save() );
end
|
4
|
How can I save the control's content to iCalendar format, as a file
ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
with Properties do
begin
Add('Version','2.0');
Add('PRODID','-//hacksw/handcal//NONSGML v1.0//EN');
end;
with Components.Add('VEVENT').Properties do
begin
Add('DTSTART','1/1/2001');
Add('DTEND','1/2/2001');
Add('SUMMARY','Bastille Day Party');
end;
end;
SaveFile('c:/temp/test.ical');
end
|
3
|
How can I load the iCalendar format from a file

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
LoadFile('c:/temp/test.ical');
OutputDebugString( Content.Components.Item['VCALENDAR'].Properties.Item['PRODID'].Value );
end
|
2
|
How do I export the control's content to iCalendar format

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR') do
begin
with Properties do
begin
Add('Version','2.0');
Add('PRODID','-//hacksw/handcal//NONSGML v1.0//EN');
end;
with Components.Add('VEVENT').Properties do
begin
Add('DTSTART','1/1/2001');
Add('DTEND','1/2/2001');
Add('SUMMARY','Bastille Day Party');
end;
end;
OutputDebugString( Save() );
end
|
1
|
How can I generate a VCALENDAR object

ICalendar1 := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ICalendar.1'))) as EXICALENDARLib_TLB.ICalendar);
with ICalendar1 do
begin
with Content.Components.Add('VCALENDAR').Properties do
begin
Add('Version','2.0');
Add('PRODID','-//hacksw/handcal//NONSGML v1.0//EN');
end;
OutputDebugString( Save() );
end
|