Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/ExternalThreadItem.pas

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


Revision 1.11 - (hide annotations) (download) (as text)
Sun Dec 7 06:36:39 2003 UTC (20 years, 4 months ago) by h677
Branch: MAIN
CVS Tags: b47, b44, b46
Branch point for: BRANCH_TORA, stable
Changes since 1.10: +2 -2 lines
File MIME type: text/x-pascal
スキンに渡すsizeをthreadのサイズに変更

1 yoffy 1.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 yoffy 1.2 // ?吾??莨若?帥????腓?/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 yoffy 1.1 // ???合?? n ??????? html ??荀?羆?
70     // *************************************************************************
71     TThreadItemOnGetRes = function(
72     inInstance : DWORD; // ?ゃ?潟?鴻?帥?潟??/span>
73     inNo : DWORD // 茵?ず???????合???/span>
74     ) : PChar; stdcall; // 茵?ず???? HTML
75    
76     // *************************************************************************
77 h677 1.9 // ???合?? n ??????? Dat ??荀?羆?
78     // *************************************************************************
79     TThreadItemOnGetDat = function(
80     inInstance : DWORD; // ?ゃ?潟?鴻?帥?潟??/span>
81     inNo : DWORD // 茵?ず???????合???/span>
82     ) : PChar; stdcall; // 鐚??<????????綵√???at
83    
84     // *************************************************************************
85 yoffy 1.1 // ?鴻?????????????? 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 yoffy 1.2 // *************************************************************************
101     // ??? ThreadItem ??絮??????帥? URL ??荀?羆?
102     // *************************************************************************
103     TThreadItemOnGetBoardURL = function(
104     inInstance : DWORD // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
105     ) : PChar; stdcall; // ?帥? URL
106 yoffy 1.1
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;
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     tipIsLogFile: // : Boolean // ???医?????????/span>
211     threadItem.IsLogFile := Boolean( param );
212     tipKokomade: // : Integer // ?潟?潟?障?ц????????/span>
213     threadItem.Kokomade := param;
214     tipNewReceive: // : Integer // ?潟?潟?????域???篆?/span>
215     threadItem.NewReceive := param;
216     tipNewArrival: // : Boolean // ?亥??
217     threadItem.NewArrival := Boolean( param );
218     tipUnRead: // : Boolean // ?????????/span>
219     threadItem.UnRead := Boolean( param );
220     tipScrollTop: // : Integer // ?鴻?????若???臀?/span>
221     threadItem.ScrollTop := param;
222     tipDownloadHost: // : string // 篁??????鴻?????????翫???????鴻??
223     threadItem.DownloadHost := string( PChar( param ) );
224     tipAgeSage: // : TThreadAgeSage // ?≪?ゃ?????????筝???
225     threadItem.AgeSage := TGikoAgeSage( param );
226     tipURL: // : string // ?鴻???????????????吟?ц;腓冴??????? URL
227     threadItem.URL := string( PChar( param ) );
228     tipFilePath: // : string // ?????鴻????篆?絖???????????????/span>
229     threadItem.FilePath := string( PChar( param ) );
230     end;
231    
232     end;
233    
234     // *************************************************************************
235     // TThreadItem ?????鴻???????????c????緇?????
236     // *************************************************************************
237     function ThreadItemGetDouble(
238     instance : DWORD;
239     propertyID : TThreadItemProperty
240     ) : Double; stdcall;
241     var
242     threadItem : TThreadItem;
243     begin
244    
245     threadItem := TThreadItem( instance );
246     case propertyID of
247     tipRoundDate: // : TDateTime // ?鴻??????????緇??????ユ??鐚?綏≦???ユ??鐚?
248     Result := threadItem.RoundDate;
249     tipLastModified: // : TDateTime // ?鴻?????????贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
250     Result := threadItem.LastModified;
251     else
252     Result := 0;
253     end;
254    
255     end;
256    
257     // *************************************************************************
258     // TThreadItem ?????鴻???????????c??荐??????
259     // *************************************************************************
260     procedure ThreadItemSetDouble(
261     instance : DWORD;
262     propertyID : TThreadItemProperty;
263     param : Double
264     ); stdcall;
265     var
266     threadItem : TThreadItem;
267     begin
268    
269     threadItem := TThreadItem( instance );
270     case propertyID of
271     tipRoundDate: // : TDateTime // ?鴻??????????緇??????ユ??鐚?綏≦???ユ??鐚?
272     threadItem.RoundDate := param;
273     tipLastModified: // : TDateTime // ?鴻?????????贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
274     threadItem.LastModified := param;
275     end;
276    
277     end;
278    
279     // *************************************************************************
280     // TThreadItem ?????鴻????????<????????? dat 綵√? 1 茵??? HTML ?????????
281     // *************************************************************************
282     function ThreadItemDat2HTML(
283     inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
284     inDatRes : PChar; // ????<>?<?若??lt;>?ヤ?ID<>????<> ?ф??????????????鴻??
285     inResNo : DWORD; // ???合???/span>
286     inIsNew : Boolean // ?亥?????鴻???? True
287     ) : PChar; stdcall; // ?翫就?????? HTML
288     var
289     threadItem : TThreadItem;
290     res : TResRec;
291     no : string;
292     begin
293    
294     threadItem := TThreadItem( inInstance );
295     // 綣??違????茹?/span>
296     res := GikoSys.DivideStrLine( string( inDatRes ) );
297 h677 1.6 if AnsiCompareStr( string( inDatRes ) , '' ) <> 0 then begin
298     res.FBody := GikoSys.AddAnchorTag( res.FBody );
299 h677 1.10 res.FBody := GikoSys.ConvRes( res.FBody, threadItem.ParentBoard.BBSID, ChangeFileExt( threadItem.FileName, '' ), 'bbs', 'key', 'st', 'to', 'nofirst', 'true');
300 h677 1.8
301 h677 1.6 no := IntToStr( inResNo );
302 yoffy 1.1
303 h677 1.6 try
304     if GikoSys.Setting.UseSkin then begin
305     // ?鴻????/span>
306     if inIsNew then
307     Result := CreateResultString( GikoSys.SkinedRes(
308     GikoSys.LoadFromSkin(
309 h677 1.11 GikoSys.Setting.GetSkinNewResFileName, threadItem, threadItem.Size
310 h677 1.6 ), res, no
311     ) )
312     else
313     Result := CreateResultString( GikoSys.SkinedRes(
314     GikoSys.LoadFromSkin(
315 h677 1.11 GikoSys.Setting.GetSkinResFileName, threadItem, threadItem.Size
316 h677 1.6 ), res, no
317     ) );
318     end else if GikoSys.Setting.UseCSS then begin
319     // CSS
320     if res.FName = '' then
321     res.FName := '&nbsp;';
322     if res.FMailTo = '' then
323     Result := CreateResultString( '<a name="' + no + '"></a>'
324     + '<div class="header"><span class="no"><a href="menu:' + No + '">' + no + '</a></span> '
325     + '<span class="name_label">????鐚?</span> '
326     + '<span class="name"><b>' + res.FName + '</b></span> '
327     + '<span class="date_label">??腮炊?ワ?</span> '
328     + '<span class="date">' + res.FDateTime+ '</span></div>'
329     + '<div class="mes">' + res.FBody + ' </div>' )
330     else if GikoSys.Setting.ShowMail then
331     Result := CreateResultString( '<a name="' + no + '"></a>'
332     + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
333     + '<span class="name_label"> ????鐚? </span>'
334     + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
335     + '<b>' + res.FName + '</b></a><span class="mail"> [' + res.FMailTo + ']</span>'
336     + '<span class="date_label"> ??腮炊?ワ?</span>'
337     + '<span class="date"> ' + res.FDateTime+ '</span></div>'
338     + '<div class="mes">' + res.FBody + ' </div>' )
339     else
340     Result := CreateResultString( '<a name="' + no + '"></a>'
341     + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
342     + '<span class="name_label"> ????鐚? </span>'
343     + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
344     + '<b>' + res.FName + '</b></a>'
345     + '<span class="date_label"> ??腮炊?ワ?</span>'
346     + '<span class="date"> ' + res.FDateTime+ '</span></div>'
347     + '<div class="mes">' + res.FBody + ' </div>' );
348     end else begin
349     // ??????????
350     if res.FMailTo = '' then
351     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>' )
352     else if GikoSys.Setting.ShowMail then
353     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>' )
354     else
355     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>' );
356     end;
357     except
358     Result := nil;
359     end;
360     end else begin
361     Result := nil;
362     end;
363 yoffy 1.1
364     end;
365    
366     // *************************************************************************
367     // TThreadItem ?????鴻???????鴻??????????????????緇?????
368     // *************************************************************************
369     function ThreadItemGetHeader(
370     inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
371     inOptionalHeader : PChar // 菴遵??????????
372     ) : PChar; stdcall; // ?翫就?????? HTML
373     var
374     threadItem : TThreadItem;
375     skinHeader : string;
376     optionalHeader : string;
377     begin
378    
379     {$IFDEF DEBUG}
380     Writeln('ExternalBoardManager.ThreadItemGetHeader');
381     {$ENDIF}
382     threadItem := TThreadItem( inInstance );
383     optionalHeader := string( inOptionalHeader );
384    
385     try
386     if GikoSys.Setting.UseSkin then begin
387     // ?鴻????/span>
388     skinHeader := GikoSys.LoadFromSkin( GikoSys.Setting.GetSkinHeaderFileName, threadItem, threadItem.SizeByte );
389     if Length( optionalHeader ) > 0 then
390     skinHeader :=
391 yoffy 1.3 StringReplace( skinHeader, '</head>', optionalHeader + '</head><a name="top"></a>', [] );
392 yoffy 1.1 end else if GikoSys.Setting.UseCSS then begin
393     // CSS
394     skinHeader :=
395     '<html><head>' +
396     '<title>' + threadItem.Title + '</title>' +
397     '<link rel="stylesheet" href="'+ GikoSys.Setting.GetStyleSheetDir + GikoSys.Setting.CSSFileName +'" type="text/css">' +
398     optionalHeader +
399     '</head>' +
400     '<body>' +
401 yoffy 1.3 '<a name="top"></a>' +
402 yoffy 1.1 '<div class="title">' + threadItem.Title + '</div>';
403     end else begin
404     // ??????????
405     skinHeader :=
406     '<html><head>' +
407     '<title>' + threadItem.Title + '</title>' +
408     optionalHeader +
409     '</head>' +
410 yoffy 1.3 '<body TEXT="#000000" BGCOLOR="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">' +
411     '<a name="top"></a>' +
412     '<font size=+1 color="#FF0000">' + threadItem.Title + '</font>' +
413     '<dl>';
414 yoffy 1.1 end;
415     except
416     end;
417    
418     Result := CreateResultString( skinHeader );
419    
420     end;
421    
422     // *************************************************************************
423     // TThreadItem ?????鴻???????鴻?????????????帥????緇?????
424     // *************************************************************************
425     function ThreadItemGetFooter(
426     inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
427     inOptionalFooter : PChar // 菴遵??????????/span>
428     ) : PChar; stdcall; // ?翫就?????? HTML
429     var
430     threadItem : TThreadItem;
431     skinFooter : string;
432     optionalFooter : string;
433     begin
434    
435     {$IFDEF DEBUG}
436     Writeln('ExternalBoardManager.ThreadItemGetFooter');
437     {$ENDIF}
438     threadItem := TThreadItem( inInstance );
439     optionalFooter := string( inOptionalFooter );
440    
441     try
442     if GikoSys.Setting.UseSkin then begin
443 yoffy 1.3 // ?鴻????/span>
444 yoffy 1.1 skinFooter := GikoSys.LoadFromSkin( GikoSys.Setting.GetSkinFooterFileName, threadItem, threadItem.SizeByte );
445     if Length( optionalFooter ) > 0 then
446     skinFooter :=
447     StringReplace( skinFooter, '</body>', optionalFooter + '</body>', [] );
448 yoffy 1.3 end else if GikoSys.Setting.UseCSS then begin
449     // CSS
450     skinFooter :=
451     optionalFooter +
452     '</body></html>' +
453     '<a name="last"></a>' +
454     '</body></html>';
455 yoffy 1.1 end else begin
456 yoffy 1.3 // ??????????
457     skinFooter :=
458     '</dl>' +
459     optionalFooter +
460     '</body></html>' +
461     '<a name="last"></a>' +
462     '</body></html>';
463 yoffy 1.1 end;
464     except
465     end;
466    
467     Result := CreateResultString( skinFooter );
468    
469     end;
470    
471     // *************************************************************************
472     // ?鴻?????????????潟???若?????画?????
473     // *************************************************************************
474     procedure ThreadItemWork(
475     inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
476     inWorkCount : Integer // ?上?????我??倶?(?????潟??)
477     ); stdcall;
478     begin
479    
480     if Assigned( OnWork ) then
481     OnWork( TObject( inInstance ), wmRead, inWorkCount );
482    
483     end;
484    
485     // *************************************************************************
486     // ?鴻?????????????潟???若????紮??障?c??
487     // *************************************************************************
488     procedure ThreadItemWorkBegin(
489     inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
490     inWorkCountMax : Integer // ??篆<????????腓冴???????潟??
491     ); stdcall;
492     begin
493    
494     if Assigned( OnWorkBegin ) then
495     OnWorkBegin( TObject( inInstance ), wmRead, inWorkCountMax );
496    
497     end;
498    
499     // *************************************************************************
500     // ?鴻?????????????潟???若????腟???c??
501     // *************************************************************************
502     procedure ThreadItemWorkEnd(
503     inInstance : DWORD // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
504     ); stdcall;
505     begin
506    
507     if Assigned( OnWorkEnd ) then
508     OnWorkEnd( TObject( inInstance ), wmRead );
509    
510     end;
511    
512     exports
513     ThreadItemGetLong,
514     ThreadItemSetLong,
515     ThreadItemGetDouble,
516     ThreadItemSetDouble,
517     ThreadItemDat2HTML,
518     ThreadItemGetHeader,
519     ThreadItemGetFooter,
520     ThreadItemWork,
521     ThreadItemWorkBegin,
522     ThreadItemWorkEnd;
523    
524     end.
525    

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