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.22 - (hide annotations) (download) (as text)
Mon Jul 2 15:01:47 2007 UTC (16 years, 9 months ago) by h677
Branch: MAIN
CVS Tags: v1_59_0_771, v1_59_0_770, v1_59_0_773, v1_59_0_772, v1_59_0_775, v1_59_0_774, v1_59_0_777, v1_59_0_776, v1_56_0_715, v1_59_0_778, v1_63_1_819, v1_57_0_737, v1_62_0_812, v1_57_0_735, v1_57_0_734, v1_57_0_733, v1_57_0_732, v1_57_0_731, v1_57_0_730, v1_57_0_739, v1_57_0_738, v1_59_1_765, v1_60_0_788, v1_60_0_789, v1_58_0_748, v1_58_0_745, v1_60_0_781, v1_60_0_782, v1_58_0_746, v1_60_0_784, v1_60_0_786, v1_60_0_787, v1_59_0_767, v1_59_1_778, v1_57_0_723, v1_59_0_768, v1_59_0_769, v1_57_0_725, v1_57_0_726, v1_57_0_727, v1_57_0_720, v1_57_0_722, v1_57_1_744, v1_57_0_728, v1_57_0_729, v1_57_0_736, v1_58_0_752, v1_58_0_750, v1_58_0_751, v1_58_0_756, v1_58_0_757, v1_58_0_754, v1_58_0_755, v1_58_0_759, v1_57_0_719, v1_57_0_718, v1_56_0_716, v1_56_1_717, v1_56_1_716, v1_61_0_796, v1_61_0_797, v1_61_0_795, v1_61_0_798, v1_61_0_799, v1_56_2_724, v1_56_2_722, v1_63_0_818, v1_63_0_817, v1_63_0_816, v1_63_0_815, v1_62_0_805, v1_62_0_804, v1_62_0_807, v1_62_0_806, v1_62_0_803, v1_62_0_802, v1_62_0_809, v1_56_0_721, v1_60_0_780, v1_60_0_779, v1_62_0_810, v1_62_0_811, v1_58_0_747, v1_60_0_783, v1_59_2_785, v1_60_1_793, v1_58_0_763, v1_58_0_762, v1_58_0_761, v1_58_0_760, v1_62_1_813, v1_57_2_749, v1_57_0_742, v1_57_0_743, v1_57_0_740, v1_57_0_741, v1_57_0_744, v1_61_0_800, v1_60_0_793, v1_60_0_792, v1_60_0_791, v1_60_0_790, v1_60_2_794, v1_61_1_801, HEAD
Branch point for: Bb57, Bb56, Bb62, Bb63, Bb60, Bb61, Bb59, Bb58
Changes since 1.21: +4 -4 lines
File MIME type: text/x-pascal
ファイルパス関連の整理中

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

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