/[projects]/dao/DelphiScanner/Components/tpsystools_4.04/source/COM/_StToHTML.pas
ViewVC logotype

Contents of /dao/DelphiScanner/Components/tpsystools_4.04/source/COM/_StToHTML.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2671 - (show annotations) (download)
Tue Aug 25 18:15:15 2015 UTC (8 years, 9 months ago) by torben
File size: 14644 byte(s)
Added tpsystools component
1 (* ***** BEGIN LICENSE BLOCK *****
2 * Version: MPL 1.1
3 *
4 * The contents of this file are subject to the Mozilla Public License Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 * http://www.mozilla.org/MPL/
8 *
9 * Software distributed under the License is distributed on an "AS IS" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
12 * License.
13 *
14 * The Original Code is TurboPower SysTools
15 *
16 * The Initial Developer of the Original Code is
17 * TurboPower Software
18 *
19 * Portions created by the Initial Developer are Copyright (C) 1996-2002
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 *
24 * ***** END LICENSE BLOCK ***** *)
25
26 {*********************************************************}
27 {* _STTOHTML.PAS 3.00 *}
28 {*********************************************************}
29
30 {$I STDEFINE.INC}
31 {$I STCOMDEF.INC}
32 unit _StToHTML;
33
34 interface
35
36 uses
37 ComObj, ActiveX, AxCtrls, Classes, StStrms, StToHTML, SysTools_TLB, _StUtil, StdVcl;
38
39 type
40 TStToHTML = class(TAutoObject, IConnectionPointContainer, IStToHTML)
41 private { Private declarations }
42 FConnectionPoints: TConnectionPoints;
43 FConnectionPoint: TConnectionPoint;
44 FSinkList: TList;
45 FEvents: IStToHTMLEvents;
46
47 FSourceToHTML : StToHTML.TStStreamToHTML;
48 FKeywords : IStStringList;
49 FCommentMarkers: IStStringList;
50 FEmbeddedHTML : IStStringList;
51 FPageFooter : IStStringList;
52 FPageHeader : IStStringList;
53 FStringMarkers : IStStringList;
54
55 FIsLicensed : Boolean;
56
57 procedure _OnProgress(Sender : TObject; Percent : Word);
58 public { Public declarations }
59 procedure Initialize; override;
60 destructor Destroy; override;
61 protected {Protected declarations }
62 { IConnectionPointContainer }
63 property ConnectionPoints: TConnectionPoints read FConnectionPoints
64 implements IConnectionPointContainer;
65 procedure EventSinkChanged(const EventSink: IUnknown); override;
66
67 { IStToHTML properties (GET) }
68 function Get_CaseSensitve: WordBool; safecall;
69 function Get_CommentMarkers: IStStringList; safecall;
70 function Get_EmbeddedHTML: IStStringList; safecall;
71 function Get_FixedLineLength: Integer; safecall;
72 function Get_Keywords: IStStringList; safecall;
73 function Get_LineTermChar: WideString; safecall;
74 function Get_LineTerminator: TStLineTerminator; safecall;
75 function Get_PageFooter: IStStringList; safecall;
76 function Get_PageHeader: IStStringList; safecall;
77 function Get_Stream: OleVariant; safecall;
78 function Get_StringMarkers: IStStringList; safecall;
79 function Get_WordDelimeters: WideString; safecall;
80
81 { IStToHTML properties (SET) }
82 procedure Set_CaseSensitve(Value: WordBool); safecall;
83 procedure Set_CommentMarkers(const Value: IStStringList); safecall;
84 procedure Set_EmbeddedHTML(const Value: IStStringList); safecall;
85 procedure Set_FixedLineLength(Value: Integer); safecall;
86 procedure Set_Keywords(const Value: IStStringList); safecall;
87 procedure Set_LineTermChar(const Value: WideString); safecall;
88 procedure Set_LineTerminator(Value: TStLineTerminator); safecall;
89 procedure Set_PageFooter(const Value: IStStringList); safecall;
90 procedure Set_PageHeader(const Value: IStStringList); safecall;
91 procedure Set_Stream(Value: OleVariant); safecall;
92 procedure Set_StringMarkers(const Value: IStStringList); safecall;
93 procedure Set_WordDelimeters(const Value: WideString); safecall;
94
95 { IStToHTML methods }
96 procedure Clear; safecall;
97 procedure GenerateHTML; safecall;
98 procedure LoadFromFile(const FileName: WideString); safecall;
99 procedure SaveToFile(const FileName: WideString); safecall;
100 function License(const Key: WideString): WordBool; safecall;
101 end;
102
103 implementation
104
105 uses ComServ {$IFDEF LICENSE}, StComLic {$ENDIF};
106
107 { ********** TStSourceToHTML Interface - IConnectionPointContainer Methods *************** }
108 procedure TStToHTML.EventSinkChanged(const EventSink: IUnknown);
109 begin
110 FEvents := EventSink as IStToHTMLEvents;
111 if FConnectionPoint <> nil then
112 FSinkList := FConnectionPoint.SinkList;
113 end;
114
115 { ********** TStSourceToHTML Interface *************************************************** }
116 procedure TStToHTML.Initialize;
117 begin
118 inherited Initialize;
119 FConnectionPoints := TConnectionPoints.Create(Self);
120 if AutoFactory.EventTypeInfo <> nil then
121 FConnectionPoint := FConnectionPoints.CreateConnectionPoint(
122 AutoFactory.EventIID, ckSingle, EventConnect)
123 else FConnectionPoint := nil;
124
125 {$IFDEF LICENSE}
126 FIsLicensed := False;
127 {$ELSE}
128 FIsLicensed := True;
129 {$ENDIF}
130
131 FSourceToHTML := StToHTML.TStStreamToHTML.Create;
132 FSourceToHTML.InputStream := Classes.TMemoryStream.Create;
133 FSourceToHTML.OutputStream := Classes.TMemoryStream.Create;
134
135 FKeywords := TStStringList.Create(FSourceToHTML.Keywords);
136 FCommentMarkers := TStStringList.Create(FSourceToHTML.CommentMarkers);
137 FEmbeddedHTML := TStStringList.Create(FSourceToHTML.EmbeddedHTML);
138 FPageFooter := TStStringList.Create(FSourceToHTML.PageFooter);
139 FPageHeader := TStStringList.Create(FSourceToHTML.PageHeader);
140 FStringMarkers := TStStringList.Create(FSourceToHTML.StringMarkers);
141
142 FSourceToHTML.OnProgress := _OnProgress;
143 end;
144
145 destructor TStToHTML.Destroy;
146 begin
147 if Assigned(FSourceToHTML.InputStream) then
148 FSourceToHTML.InputStream.Free;
149
150 if Assigned(FSourceToHTML.OutputStream) then
151 FSourceToHTML.OutputStream.Free;
152
153 FKeywords := nil;
154 FCommentMarkers := nil;
155 FEmbeddedHTML := nil;
156 FPageFooter := nil;
157 FPageHeader := nil;
158 FStringMarkers := nil;
159
160 FSourceToHTML.Free;
161
162 inherited Destroy;
163 end;
164
165 { ********** TStSourceToHTML Events ****************************************************** }
166 procedure TStToHTML._OnProgress(Sender : TObject; Percent : Word);
167 begin
168 if Assigned(FEvents) then
169 FEvents.OnProgress(Percent);
170 end;
171
172 { ********** TStSourceToHTML Properties *** (Get) **************************************** }
173 function TStToHTML.Get_CaseSensitve: WordBool;
174 begin
175 {$IFDEF LICENSE}
176 if (not FIsLicensed) or (not COMHasBeenLicensed) then
177 OleError(CLASS_E_NOTLICENSED);
178 {$ENDIF}
179 Result := FSourceToHTML.CaseSensitive;
180 end;
181
182 function TStToHTML.Get_CommentMarkers: IStStringList;
183 begin
184 {$IFDEF LICENSE}
185 if (not FIsLicensed) or (not COMHasBeenLicensed) then
186 OleError(CLASS_E_NOTLICENSED);
187 {$ENDIF}
188 Result := FCommentMarkers;
189 end;
190
191 function TStToHTML.Get_EmbeddedHTML: IStStringList;
192 begin
193 {$IFDEF LICENSE}
194 if (not FIsLicensed) or (not COMHasBeenLicensed) then
195 OleError(CLASS_E_NOTLICENSED);
196 {$ENDIF}
197 Result := FEmbeddedHTML;
198 end;
199
200 function TStToHTML.Get_FixedLineLength: Integer;
201 begin
202 {$IFDEF LICENSE}
203 if (not FIsLicensed) or (not COMHasBeenLicensed) then
204 OleError(CLASS_E_NOTLICENSED);
205 {$ENDIF}
206 Result := FSourceToHTML.InFixedLineLength;
207 end;
208
209 function TStToHTML.Get_LineTermChar: WideString;
210 begin
211 {$IFDEF LICENSE}
212 if (not FIsLicensed) or (not COMHasBeenLicensed) then
213 OleError(CLASS_E_NOTLICENSED);
214 {$ENDIF}
215 Result := FSourceToHTML.InLineTermChar;
216 end;
217
218 function TStToHTML.Get_LineTerminator: TStLineTerminator;
219 begin
220 {$IFDEF LICENSE}
221 if (not FIsLicensed) or (not COMHasBeenLicensed) then
222 OleError(CLASS_E_NOTLICENSED);
223 {$ENDIF}
224 Result := TStLineTerminator(FSourceToHTML.InLineTerminator);
225 end;
226
227 function TStToHTML.Get_PageFooter: IStStringList;
228 begin
229 {$IFDEF LICENSE}
230 if (not FIsLicensed) or (not COMHasBeenLicensed) then
231 OleError(CLASS_E_NOTLICENSED);
232 {$ENDIF}
233 Result := FPageFooter;
234 end;
235
236 function TStToHTML.Get_PageHeader: IStStringList;
237 begin
238 {$IFDEF LICENSE}
239 if (not FIsLicensed) or (not COMHasBeenLicensed) then
240 OleError(CLASS_E_NOTLICENSED);
241 {$ENDIF}
242 Result := FPageHeader;
243 end;
244
245 function TStToHTML.Get_Stream: OleVariant;
246 begin
247 {$IFDEF LICENSE}
248 if (not FIsLicensed) or (not COMHasBeenLicensed) then
249 OleError(CLASS_E_NOTLICENSED);
250 {$ENDIF}
251 Result := StStreamToOleVariant(FSourceToHTML.OutputStream);
252 end;
253
254 function TStToHTML.Get_StringMarkers: IStStringList;
255 begin
256 {$IFDEF LICENSE}
257 if (not FIsLicensed) or (not COMHasBeenLicensed) then
258 OleError(CLASS_E_NOTLICENSED);
259 {$ENDIF}
260 Result := FStringMarkers;
261 end;
262
263 function TStToHTML.Get_WordDelimeters: WideString;
264 begin
265 {$IFDEF LICENSE}
266 if (not FIsLicensed) or (not COMHasBeenLicensed) then
267 OleError(CLASS_E_NOTLICENSED);
268 {$ENDIF}
269 Result := FSourceToHTML.WordDelimiters;
270 end;
271
272 { ********** TStSourceToHTML Properties *** (Set) **************************************** }
273 procedure TStToHTML.Set_CaseSensitve(Value: WordBool);
274 begin
275 {$IFDEF LICENSE}
276 if (not FIsLicensed) or (not COMHasBeenLicensed) then
277 OleError(CLASS_E_NOTLICENSED);
278 {$ENDIF}
279 FSourceToHTML.CaseSensitive := Value;
280 end;
281
282 procedure TStToHTML.Set_CommentMarkers(const Value: IStStringList);
283 var
284 MS : TStream;
285 begin
286 {$IFDEF LICENSE}
287 if (not FIsLicensed) or (not COMHasBeenLicensed) then
288 OleError(CLASS_E_NOTLICENSED);
289 {$ENDIF}
290 MS := nil;
291 try
292 MS := StOleVariantToStream(Value.Stream, True);
293 FSourceToHTML.CommentMarkers.LoadFromStream(MS);
294 finally
295 MS.Free;
296 end;
297 end;
298
299 procedure TStToHTML.Set_EmbeddedHTML(const Value: IStStringList);
300 var
301 MS : TStream;
302 begin
303 {$IFDEF LICENSE}
304 if (not FIsLicensed) or (not COMHasBeenLicensed) then
305 OleError(CLASS_E_NOTLICENSED);
306 {$ENDIF}
307 MS := nil;
308 try
309 MS := StOleVariantToStream(Value.Stream, True);
310 FSourceToHTML.EmbeddedHTML.LoadFromStream(MS);
311 finally
312 MS.Free;
313 end;
314 end;
315
316 procedure TStToHTML.Set_FixedLineLength(Value: Integer);
317 begin
318 {$IFDEF LICENSE}
319 if (not FIsLicensed) or (not COMHasBeenLicensed) then
320 OleError(CLASS_E_NOTLICENSED);
321 {$ENDIF}
322 FSourceToHTML.InFixedLineLength := Value;
323 end;
324
325 function TStToHTML.Get_Keywords: IStStringList;
326 begin
327 {$IFDEF LICENSE}
328 if (not FIsLicensed) or (not COMHasBeenLicensed) then
329 OleError(CLASS_E_NOTLICENSED);
330 {$ENDIF}
331 Result := FKeywords;
332 end;
333
334 procedure TStToHTML.Set_Keywords(const Value: IStStringList);
335 begin
336 {$IFDEF LICENSE}
337 if (not FIsLicensed) or (not COMHasBeenLicensed) then
338 OleError(CLASS_E_NOTLICENSED);
339 {$ENDIF}
340 FKeywords := Value;
341 end;
342
343 procedure TStToHTML.Set_LineTermChar(const Value: WideString);
344 begin
345 {$IFDEF LICENSE}
346 if (not FIsLicensed) or (not COMHasBeenLicensed) then
347 OleError(CLASS_E_NOTLICENSED);
348 {$ENDIF}
349 FSourceToHTML.InLineTermChar := Char(Value[1]);
350 end;
351
352 procedure TStToHTML.Set_LineTerminator(Value: TStLineTerminator);
353 begin
354 {$IFDEF LICENSE}
355 if (not FIsLicensed) or (not COMHasBeenLicensed) then
356 OleError(CLASS_E_NOTLICENSED);
357 {$ENDIF}
358 FSourceToHTML.InLineTerminator := StStrms.TStLineTerminator(Value);
359 end;
360
361 procedure TStToHTML.Set_PageFooter(const Value: IStStringList);
362 var
363 MS : TStream;
364 begin
365 {$IFDEF LICENSE}
366 if (not FIsLicensed) or (not COMHasBeenLicensed) then
367 OleError(CLASS_E_NOTLICENSED);
368 {$ENDIF}
369 MS := nil;
370 try
371 MS := StOleVariantToStream(Value.Stream, True);
372 FSourceToHTML.PageFooter.LoadFromStream(MS);
373 finally
374 MS.Free;
375 end;
376 end;
377
378 procedure TStToHTML.Set_PageHeader(const Value: IStStringList);
379 var
380 MS : TStream;
381 begin
382 {$IFDEF LICENSE}
383 if (not FIsLicensed) or (not COMHasBeenLicensed) then
384 OleError(CLASS_E_NOTLICENSED);
385 {$ENDIF}
386 MS := nil;
387 try
388 MS := StOleVariantToStream(Value.Stream, True);
389 FSourceToHTML.PageHeader.LoadFromStream(MS);
390 finally
391 MS.Free;
392 end;
393 end;
394
395 procedure TStToHTML.Set_Stream(Value: OleVariant);
396 begin
397 {$IFDEF LICENSE}
398 if (not FIsLicensed) or (not COMHasBeenLicensed) then
399 OleError(CLASS_E_NOTLICENSED);
400 {$ENDIF}
401 FSourceToHTML.InputStream.CopyFrom(StOleVariantToStream(Value, True), 0);
402 FSourceToHTML.InputStream.Position := 0;
403 end;
404
405 procedure TStToHTML.Set_StringMarkers(const Value: IStStringList);
406 var
407 MS : TStream;
408 begin
409 {$IFDEF LICENSE}
410 if (not FIsLicensed) or (not COMHasBeenLicensed) then
411 OleError(CLASS_E_NOTLICENSED);
412 {$ENDIF}
413 MS := nil;
414 try
415 MS := StOleVariantToStream(Value.Stream, True);
416 FSourceToHTML.StringMarkers.LoadFromStream(MS);
417 finally
418 MS.Free;
419 end;
420 end;
421
422 procedure TStToHTML.Set_WordDelimeters(const Value: WideString);
423 begin
424 {$IFDEF LICENSE}
425 if (not FIsLicensed) or (not COMHasBeenLicensed) then
426 OleError(CLASS_E_NOTLICENSED);
427 {$ENDIF}
428 FSourceToHTML.WordDelimiters := Value;
429 end;
430
431 { ********** TStSourceToHTML Methods ***************************************************** }
432 procedure TStToHTML.Clear;
433 begin
434 {$IFDEF LICENSE}
435 if (not FIsLicensed) or (not COMHasBeenLicensed) then
436 OleError(CLASS_E_NOTLICENSED);
437 {$ENDIF}
438 TMemoryStream(FSourceToHTML.InputStream).Clear;
439 end;
440
441 procedure TStToHTML.GenerateHTML;
442 begin
443 {$IFDEF LICENSE}
444 if (not FIsLicensed) or (not COMHasBeenLicensed) then
445 OleError(CLASS_E_NOTLICENSED);
446 {$ENDIF}
447 FSourceToHTML.GenerateHTML;
448 end;
449
450 procedure TStToHTML.LoadFromFile(const FileName: WideString);
451 begin
452 {$IFDEF LICENSE}
453 if (not FIsLicensed) or (not COMHasBeenLicensed) then
454 OleError(CLASS_E_NOTLICENSED);
455 {$ENDIF}
456 TMemoryStream(FSourceToHTML.InputStream).LoadFromFile(FileName);
457 end;
458
459 procedure TStToHTML.SaveToFile(const FileName: WideString);
460 begin
461 {$IFDEF LICENSE}
462 if (not FIsLicensed) or (not COMHasBeenLicensed) then
463 OleError(CLASS_E_NOTLICENSED);
464 {$ENDIF}
465 TMemoryStream(FSourceToHTML.OutputStream).SaveToFile(FileName);
466 end;
467
468 function TStToHTML.License(const Key: WideString): WordBool;
469 begin
470 {$IFDEF LICENSE}
471 Result := COMIsValidKey(Key);
472
473 { License the objects used in this class }
474 FKeywords.License(Key);
475 FCommentMarkers.License(Key);
476 FEmbeddedHTML.License(Key);
477 FPageFooter.License(Key);
478 FPageHeader.License(Key);
479 FStringMarkers.License(Key);
480
481 {$ELSE}
482 Result := True;
483 {$ENDIF}
484 FIsLicensed := Result;
485 end;
486
487 initialization
488 TAutoObjectFactory.Create(ComServer, TStToHTML, Class_StToHTML, ciMultiInstance, tmBoth);
489 end.

  ViewVC Help
Powered by ViewVC 1.1.20