Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/ExternalThreadItem.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.20 - (show annotations) (download) (as text)
Sat Dec 10 11:01:53 2005 UTC (18 years, 4 months ago) by h677
Branch: MAIN
CVS Tags: v1_51_1_639, v1_51_0_626, b51, v1_52_0_646, v1_52_0_644, v1_52_0_643, v1_51_0_634, v1_51_0_635, v1_51_0_636, v1_51_0_637, v1_51_0_632, v1_51_0_633, v1_51_0_638, v1_52_0_645, v1_52_0_642, v1_51_1_640, v1_51_0_630, v1_51_0_631, v1_51_0_628, root-of-Bb51, v1_51_0_629, v1_51_0_627, v1_51_1_641
Branch point for: Bb51
Changes since 1.19: +1 -1 lines
File MIME type: text/x-pascal
リファクタリング中

1 unit ExternalThreadItem;
2
3 interface
4
5 uses
6 Windows, Classes, SysUtils,
7 IdComponent,
8 ExternalBoardPlugInMain;
9
10 type
11 // TThreadItem ???????????h┃絎?鐚??緇? ID
12 TThreadItemProperty = (
13 tipContext, // : DWORD // ???宴??┃絎???????????/span>
14 tipNo, // : Integer // ???/span>
15 tipFileName, // : string // ?鴻?????????<?ゃ????
16 tipTitle, // : string // ?鴻???????帥?ゃ????/span>
17 tipRoundDate, // : TDateTime // ?鴻??????????緇??????ユ??鐚?綏≦???ユ??鐚?
18 tipLastModified, // : TDateTime // ?鴻?????????贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
19 tipCount, // : Integer // ?鴻???????????潟??鐚????若?????
20 tipAllResCount, // : Integer // ?鴻???????????潟??鐚??泣?若??鐚?
21 tipNewResCount, // : Integer // ?鴻???????亥????/span>
22 tipSize, // : Integer // ?鴻???????泣?ゃ??/span>
23 tipRound, // : Boolean // 綏≦????????/span>
24 tipRoundName, // : string // 綏≦????
25 tipIsLogFile, // : Boolean // ???医?????????/span>
26 tipKokomade, // : Integer // ?潟?潟?障?ц????????/span>
27 tipNewReceive, // : Integer // ?潟?潟?????域???篆?/span>
28 tipNewArrival, // : Boolean // ?亥??
29 tipUnRead, // : Boolean // ?????????/span>
30 tipScrollTop, // : Integer // ?鴻?????若???臀?/span>
31 tipDownloadHost, // : string // 篁??????鴻?????????翫???????鴻??
32 tipAgeSage, // : TThreadAgeSage // ?≪?ゃ?????????筝???
33 tipURL, // : string // ?鴻???????????????吟?ц;腓冴??????? URL
34 tipFilePath // : string // ?????鴻????篆?絖???????????????/span>
35 );
36
37 // *************************************************************************
38 // TThreadItem ????????????
39 // *************************************************************************
40 TThreadItemCreate = procedure(
41 inInstance : DWORD
42 ); stdcall;
43
44 // *************************************************************************
45 // TThreadItem ???贋???????
46 // *************************************************************************
47 TThreadItemDispose = procedure(
48 inInstance : DWORD
49 ); stdcall;
50
51 // *************************************************************************
52 // ?????潟???若??????腓?/span>
53 // *************************************************************************
54 TThreadItemOnDownload = function(
55 inInstance : DWORD // ?ゃ?潟?鴻?帥?潟??/span>
56 ) : TDownloadState; stdcall; // ?????潟???若????????????????????
57
58 // *************************************************************************
59 // ?吾??莨若?帥????腓?/span>
60 // *************************************************************************
61 TThreadItemOnWrite = function(
62 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
63 inName : PChar; // ????(??潟????
64 inMail : PChar; // ?<?若???≪??????/span>
65 inMessage : PChar // ????
66 ) : TDownloadState; stdcall; // ?吾??莨若?帥??????????????????
67
68 // *************************************************************************
69 // ???合?? n ??????? html ??荀?羆?
70 // *************************************************************************
71 TThreadItemOnGetRes = function(
72 inInstance : DWORD; // ?ゃ?潟?鴻?帥?潟??/span>
73 inNo : DWORD // 茵?ず???????合???/span>
74 ) : PChar; stdcall; // 茵?ず???? HTML
75
76 // *************************************************************************
77 // ???合?? n ??????? Dat ??荀?羆?
78 // *************************************************************************
79 TThreadItemOnGetDat = function(
80 inInstance : DWORD; // ?ゃ?潟?鴻?帥?潟??/span>
81 inNo : DWORD // 茵?ず???????合???/span>
82 ) : PChar; stdcall; // 鐚??<????????綵√???at
83
84 // *************************************************************************
85 // ?鴻?????????????? html ??荀?羆?
86 // *************************************************************************
87 TThreadItemOnGetHeader = function(
88 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
89 inOptionalHeader : PChar // 菴遵??????????
90 ) : PChar; stdcall; // ?翫就?????? HTML
91
92 // *************************************************************************
93 // ?鴻????????????? html ??荀?羆?
94 // *************************************************************************
95 TThreadItemOnGetFooter = function(
96 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
97 inOptionalFooter : PChar // 菴遵??????????/span>
98 ) : PChar; stdcall; // ?翫就?????? HTML
99
100 // *************************************************************************
101 // ??? ThreadItem ??絮??????帥? URL ??荀?羆?
102 // *************************************************************************
103 TThreadItemOnGetBoardURL = function(
104 inInstance : DWORD // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
105 ) : PChar; stdcall; // ?帥? URL
106
107 function ThreadItemDat2HTML(
108 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
109 inDatRes : PChar; // ????<>?<?若??lt;>?ヤ?ID<>????<> ?ф??????????????鴻??
110 inResNo : DWORD; // ???合???/span>
111 inIsNew : Boolean // ?亥?????鴻???? True
112 ) : PChar; stdcall; // ?翫就?????? HTML
113
114 implementation
115
116 uses ExternalBoardManager, GikoSystem, BoardGroup, HTMLCreate, MojuUtils;
117
118 // *************************************************************************
119 // TThreadItem ?????鴻???????????c????緇?????
120 // *************************************************************************
121 function ThreadItemGetLong(
122 instance : DWORD;
123 propertyID : TThreadItemProperty
124 ) : DWORD; stdcall;
125 var
126 threadItem : TThreadItem;
127 begin
128
129 threadItem := TThreadItem( instance );
130 case propertyID of
131 tipContext: // : DWORD // ???宴??┃絎???????????/span>
132 Result := threadItem.Context;
133 tipNo: // : Integer // ???/span>
134 Result := threadItem.No;
135 tipFileName: // : string // ?鴻?????????<?ゃ????
136 Result := DWORD( CreateResultString( threadItem.FileName ) );
137 tipTitle: // : string // ?鴻???????帥?ゃ????/span>
138 Result := DWORD( CreateResultString( threadItem.Title ) );
139 tipCount: // : Integer // ?鴻???????????潟??鐚????若?????
140 Result := threadItem.Count;
141 tipAllResCount: // : Integer // ?鴻???????????潟??鐚??泣?若??鐚?
142 Result := threadItem.AllResCount;
143 tipNewResCount: // : Integer // ?鴻???????亥????/span>
144 Result := threadItem.NewResCount;
145 tipSize: // : Integer // ?鴻???????泣?ゃ??/span>
146 Result := threadItem.Size;
147 tipRound: // : Boolean // 綏≦????????/span>
148 Result := DWORD( threadItem.Round );
149 tipRoundName: // : string // 綏≦????
150 Result := DWORD( CreateResultString( threadItem.RoundName ) );
151 tipIsLogFile: // : Boolean // ???医?????????/span>
152 Result := DWORD( threadItem.IsLogFile );
153 tipKokomade: // : Integer // ?潟?潟?障?ц????????/span>
154 Result := threadItem.Kokomade;
155 tipNewReceive: // : Integer // ?潟?潟?????域???篆?/span>
156 Result := threadItem.NewReceive;
157 tipNewArrival: // : Boolean // ?亥??
158 Result := DWORD( threadItem.NewArrival );
159 tipUnRead: // : Boolean // ?????????/span>
160 Result := DWORD( threadItem.UnRead );
161 tipScrollTop: // : Integer // ?鴻?????若???臀?/span>
162 Result := threadItem.ScrollTop;
163 tipDownloadHost: // : string // 篁??????鴻?????????翫???????鴻??
164 Result := DWORD( CreateResultString( threadItem.DownloadHost ) );
165 tipAgeSage: // : TThreadAgeSage // ?≪?ゃ?????????筝???
166 Result := DWORD( threadItem.AgeSage );
167 tipURL: // : string // ?鴻???????????????吟?ц;腓冴??????? URL
168 Result := DWORD( CreateResultString( threadItem.URL ) );
169 tipFilePath: // ?????鴻????篆?絖???????????????/span>
170 Result := DWORD( CreateResultString( threadItem.FilePath ) );
171 else
172 Result := 0;
173 end;
174 end;
175
176 // *************************************************************************
177 // TThreadItem ?????鴻???????????c??荐??????
178 // *************************************************************************
179 procedure ThreadItemSetLong(
180 instance : DWORD;
181 propertyID : TThreadItemProperty;
182 param : DWORD
183 ); stdcall;
184 var
185 threadItem : TThreadItem;
186 begin
187
188 threadItem := TThreadItem( instance );
189 case propertyID of
190 tipContext: // : DWORD // ???宴??┃絎???????????/span>
191 threadItem.Context := param;
192 tipNo: // : Integer // ???/span>
193 threadItem.No := param;
194 tipFileName: // : string // ?鴻?????????<?ゃ????
195 threadItem.FileName := string( PChar( param ) );
196 tipTitle: // : string // ?鴻???????帥?ゃ????/span>
197 threadItem.Title := string( PChar( param ) );
198 tipCount: // : Integer // ?鴻???????????潟??鐚????若?????
199 threadItem.Count := param;
200 tipAllResCount: // : Integer // ?鴻???????????潟??鐚??泣?若??鐚?
201 threadItem.AllResCount := param;
202 tipNewResCount: // : Integer // ?鴻???????亥????/span>
203 threadItem.NewResCount := param;
204 tipSize: // : Integer // ?鴻???????泣?ゃ??/span>
205 threadItem.Size := param;
206 tipRound: // : Boolean // 綏≦????????/span>
207 threadItem.Round := Boolean( param );
208 tipRoundName: // : string // 綏≦????
209 //threadItem.RoundName := string( PChar( param ) );
210 threadItem.RoundName := PChar( param );
211 tipIsLogFile: // : Boolean // ???医?????????/span>
212 threadItem.IsLogFile := Boolean( param );
213 tipKokomade: // : Integer // ?潟?潟?障?ц????????/span>
214 threadItem.Kokomade := param;
215 tipNewReceive: // : Integer // ?潟?潟?????域???篆?/span>
216 threadItem.NewReceive := param;
217 tipNewArrival: // : Boolean // ?亥??
218 threadItem.NewArrival := Boolean( param );
219 tipUnRead: // : Boolean // ?????????/span>
220 threadItem.UnRead := Boolean( param );
221 tipScrollTop: // : Integer // ?鴻?????若???臀?/span>
222 threadItem.ScrollTop := param;
223 tipDownloadHost: // : string // 篁??????鴻?????????翫???????鴻??
224 threadItem.DownloadHost := string( PChar( param ) );
225 tipAgeSage: // : TThreadAgeSage // ?≪?ゃ?????????筝???
226 threadItem.AgeSage := TGikoAgeSage( param );
227 tipURL: // : string // ?鴻???????????????吟?ц;腓冴??????? URL
228 threadItem.URL := string( PChar( param ) );
229 //tipFilePath: // : string // ?????鴻????篆?絖???????????????/span>
230 // threadItem.FilePath := string( PChar( param ) );
231 end;
232
233 end;
234
235 // *************************************************************************
236 // TThreadItem ?????鴻???????????c????緇?????
237 // *************************************************************************
238 function ThreadItemGetDouble(
239 instance : DWORD;
240 propertyID : TThreadItemProperty
241 ) : Double; stdcall;
242 var
243 threadItem : TThreadItem;
244 begin
245
246 threadItem := TThreadItem( instance );
247 case propertyID of
248 tipRoundDate: // : TDateTime // ?鴻??????????緇??????ユ??鐚?綏≦???ユ??鐚?
249 Result := threadItem.RoundDate;
250 tipLastModified: // : TDateTime // ?鴻?????????贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
251 Result := threadItem.LastModified;
252 else
253 Result := 0;
254 end;
255
256 end;
257
258 // *************************************************************************
259 // TThreadItem ?????鴻???????????c??荐??????
260 // *************************************************************************
261 procedure ThreadItemSetDouble(
262 instance : DWORD;
263 propertyID : TThreadItemProperty;
264 param : Double
265 ); stdcall;
266 var
267 threadItem : TThreadItem;
268 begin
269
270 threadItem := TThreadItem( instance );
271 case propertyID of
272 tipRoundDate: // : TDateTime // ?鴻??????????緇??????ユ??鐚?綏≦???ユ??鐚?
273 threadItem.RoundDate := param;
274 tipLastModified: // : TDateTime // ?鴻?????????贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
275 threadItem.LastModified := param;
276 end;
277
278 end;
279
280 // *************************************************************************
281 // TThreadItem ?????鴻????????<????????? dat 綵√? 1 茵??? HTML ?????????
282 // *************************************************************************
283 function ThreadItemDat2HTML(
284 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
285 inDatRes : PChar; // ????<>?<?若??lt;>?ヤ?ID<>????<> ?ф??????????????鴻??
286 inResNo : DWORD; // ???合???/span>
287 inIsNew : Boolean // ?亥?????鴻???? True
288 ) : PChar; stdcall; // ?翫就?????? HTML
289 var
290 threadItem : TThreadItem;
291 res : TResRec;
292 no : string;
293 resLink : TResLinkRec;
294 begin
295
296 threadItem := TThreadItem( inInstance );
297 // 綣??違????茹?/span>
298 THTMLCreate.DivideStrLine( string( inDatRes ) , @res);
299 if AnsiCompareStr( string( inDatRes ) , '' ) <> 0 then begin
300 res.FBody := THTMLCreate.DeleteLink(res.FBody);
301 resLink.FBbs := threadItem.ParentBoard.BBSID;
302 resLink.FKey := ChangeFileExt( threadItem.FileName, '' );
303 HTMLCreater.AddAnchorTag( @res );
304 HTMLCreater.ConvRes( @res, @resLink );
305
306 no := IntToStr( inResNo );
307
308 try
309 if GikoSys.Setting.UseSkin then begin
310 // ?鴻????/span>
311 if inIsNew then
312 Result := CreateResultString( HTMLCreater.SkinedRes(
313 HTMLCreater.LoadFromSkin(
314 GikoSys.Setting.GetSkinNewResFileName, threadItem, threadItem.Size
315 ), @res, no
316 ) )
317 else
318 Result := CreateResultString( HTMLCreater.SkinedRes(
319 HTMLCreater.LoadFromSkin(
320 GikoSys.Setting.GetSkinResFileName, threadItem, threadItem.Size
321 ), @res, no
322 ) );
323 end else if GikoSys.Setting.UseCSS then begin
324 // CSS
325 if res.FName = '' then
326 res.FName := '&nbsp;';
327 if res.FMailTo = '' then
328 Result := CreateResultString( '<a name="' + no + '"></a>'
329 + '<div class="header"><span class="no"><a href="menu:' + No + '">' + no + '</a></span> '
330 + '<span class="name_label">????鐚?</span> '
331 + '<span class="name"><b>' + res.FName + '</b></span> '
332 + '<span class="date_label">??腮炊?ワ?</span> '
333 + '<span class="date">' + res.FDateTime+ '</span></div>'
334 + '<div class="mes">' + res.FBody + ' </div>' )
335 else if GikoSys.Setting.ShowMail then
336 Result := CreateResultString( '<a name="' + no + '"></a>'
337 + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
338 + '<span class="name_label"> ????鐚? </span>'
339 + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
340 + '<b>' + res.FName + '</b></a><span class="mail"> [' + res.FMailTo + ']</span>'
341 + '<span class="date_label"> ??腮炊?ワ?</span>'
342 + '<span class="date"> ' + res.FDateTime+ '</span></div>'
343 + '<div class="mes">' + res.FBody + ' </div>' )
344 else
345 Result := CreateResultString( '<a name="' + no + '"></a>'
346 + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
347 + '<span class="name_label"> ????鐚? </span>'
348 + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
349 + '<b>' + res.FName + '</b></a>'
350 + '<span class="date_label"> ??腮炊?ワ?</span>'
351 + '<span class="date"> ' + res.FDateTime+ '</span></div>'
352 + '<div class="mes">' + res.FBody + ' </div>' );
353 end else begin
354 // ??????????
355 if res.FMailTo = '' then
356 Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> ????鐚?<font color="forestgreen"><b> ' + res.FName + ' </b></font> ??腮炊?ワ? ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' )
357 else if GikoSys.Setting.ShowMail then
358 Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> ????鐚?<a href="mailto:' + res.FMailTo + '"><b> ' + res.FName + ' </B></a> [' + res.FMailTo + '] ??腮炊?ワ? ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' )
359 else
360 Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> ????鐚?<a href="mailto:' + res.FMailTo + '"><b> ' + res.FName + ' </B></a> ??腮炊?ワ? ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' );
361 end;
362 except
363 Result := nil;
364 end;
365 end else begin
366 Result := nil;
367 end;
368
369 end;
370
371 // *************************************************************************
372 // TThreadItem ?????鴻???????鴻??????????????????緇?????
373 // *************************************************************************
374 function ThreadItemGetHeader(
375 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
376 inOptionalHeader : PChar // 菴遵??????????
377 ) : PChar; stdcall; // ?翫就?????? HTML
378 var
379 threadItem : TThreadItem;
380 skinHeader : string;
381 optionalHeader : string;
382 begin
383
384 {$IFDEF DEBUG}
385 Writeln('ExternalBoardManager.ThreadItemGetHeader');
386 {$ENDIF}
387 threadItem := TThreadItem( inInstance );
388 optionalHeader := string( inOptionalHeader );
389
390 try
391 if GikoSys.Setting.UseSkin then begin
392 // ?鴻????/span>
393 skinHeader := HTMLCreater.LoadFromSkin( GikoSys.Setting.GetSkinHeaderFileName, threadItem, threadItem.Size );
394 if Length( optionalHeader ) > 0 then
395 skinHeader :=
396 StringReplace( skinHeader, '</head>', optionalHeader + '</head><a name="top"></a>', [] );
397 end else if GikoSys.Setting.UseCSS then begin
398 // CSS
399 skinHeader :=
400 '<html><head>' +
401 '<title>' + threadItem.Title + '</title>' +
402 '<link rel="stylesheet" href="'+ GikoSys.Setting.GetStyleSheetDir + GikoSys.Setting.CSSFileName +'" type="text/css">' +
403 optionalHeader +
404 '</head>' +
405 '<body>' +
406 '<a name="top"></a>' +
407 '<div class="title">' + threadItem.Title + '</div>';
408 end else begin
409 // ??????????
410 skinHeader :=
411 '<html><head>' +
412 '<title>' + threadItem.Title + '</title>' +
413 optionalHeader +
414 '</head>' +
415 '<body TEXT="#000000" BGCOLOR="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">' +
416 '<a name="top"></a>' +
417 '<font size=+1 color="#FF0000">' + threadItem.Title + '</font>' +
418 '<dl>';
419 end;
420 except
421 end;
422
423 Result := CreateResultString( skinHeader );
424
425 end;
426
427 // *************************************************************************
428 // TThreadItem ?????鴻???????鴻?????????????帥????緇?????
429 // *************************************************************************
430 function ThreadItemGetFooter(
431 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
432 inOptionalFooter : PChar // 菴遵??????????/span>
433 ) : PChar; stdcall; // ?翫就?????? HTML
434 var
435 threadItem : TThreadItem;
436 skinFooter : string;
437 optionalFooter : string;
438 begin
439
440 {$IFDEF DEBUG}
441 Writeln('ExternalBoardManager.ThreadItemGetFooter');
442 {$ENDIF}
443 threadItem := TThreadItem( inInstance );
444 optionalFooter := string( inOptionalFooter );
445
446 try
447 if GikoSys.Setting.UseSkin then begin
448 // ?鴻????/span>
449 skinFooter := HTMLCreater.LoadFromSkin( GikoSys.Setting.GetSkinFooterFileName, threadItem, threadItem.Size );
450 if Length( optionalFooter ) > 0 then
451 skinFooter :=
452 StringReplace( skinFooter, '</body>', optionalFooter + '</body>', [] );
453 end else if GikoSys.Setting.UseCSS then begin
454 // CSS
455 skinFooter :=
456 optionalFooter +
457 '</body></html>' +
458 '<a name="last"></a>' +
459 '</body></html>';
460 end else begin
461 // ??????????
462 skinFooter :=
463 '</dl>' +
464 optionalFooter +
465 '</body></html>' +
466 '<a name="last"></a>' +
467 '</body></html>';
468 end;
469 except
470 end;
471
472 Result := CreateResultString( skinFooter );
473
474 end;
475
476 // *************************************************************************
477 // ?鴻?????????????潟???若?????画?????
478 // *************************************************************************
479 procedure ThreadItemWork(
480 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
481 inWorkCount : Integer // ?上?????我??倶?(?????潟??)
482 ); stdcall;
483 begin
484
485 if Assigned( OnWork ) then
486 OnWork( TObject( inInstance ), wmRead, inWorkCount );
487
488 end;
489
490 // *************************************************************************
491 // ?鴻?????????????潟???若????紮??障?c??
492 // *************************************************************************
493 procedure ThreadItemWorkBegin(
494 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
495 inWorkCountMax : Integer // ??篆<????????腓冴???????潟??
496 ); stdcall;
497 begin
498
499 if Assigned( OnWorkBegin ) then
500 OnWorkBegin( TObject( inInstance ), wmRead, inWorkCountMax );
501
502 end;
503
504 // *************************************************************************
505 // ?鴻?????????????潟???若????腟???c??
506 // *************************************************************************
507 procedure ThreadItemWorkEnd(
508 inInstance : DWORD // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
509 ); stdcall;
510 begin
511
512 if Assigned( OnWorkEnd ) then
513 OnWorkEnd( TObject( inInstance ), wmRead );
514
515 end;
516
517 exports
518 ThreadItemGetLong,
519 ThreadItemSetLong,
520 ThreadItemGetDouble,
521 ThreadItemSetDouble,
522 ThreadItemDat2HTML,
523 ThreadItemGetHeader,
524 ThreadItemGetFooter,
525 ThreadItemWork,
526 ThreadItemWorkBegin,
527 ThreadItemWorkEnd;
528
529 end.
530

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26