1 unit ExternalBoardItem;
6 Windows, Classes, SysUtils,
8 ExternalBoardPlugInMain;
11 // TBoardItem
\82Ì
\83v
\83\8d\83p
\83e
\83B
\90Ý
\92è
\81^
\8eæ
\93¾ ID
12 TBoardItemProperty = (
13 bipContext, // : DWORD //
\8e©
\97R
\82É
\90Ý
\92è
\82µ
\82Ä
\82¢
\82¢
\92l
14 bipItems, // : TThreadItem //
\94Â
\82É
\8cq
\82ª
\82ê
\82Ä
\82¢
\82é
\83X
\83\8c\83b
\83h
15 bipNo, // : Integer //
\94Ô
\8d\86
16 bipTitle, // : string //
\94Â
\83^
\83C
\83g
\83\8b
17 bipRoundDate, // : TDateTime //
\94Â
\82ð
\8eæ
\93¾
\82µ
\82½
\93ú
\8e\9e\81i
\8f\84\89ñ
\93ú
\8e\9e\81j
18 bipLastModified, // : TDateTime //
\94Â
\82ª
\8dX
\90V
\82³
\82ê
\82Ä
\82¢
\82é
\93ú
\8e\9e\81i
\83T
\81[
\83o
\91¤
\93ú
\8e\9e\81j
19 bipLastGetTime, // : TDateTime //
\83X
\83\8c\83b
\83h
\82Ü
\82½
\82Í
\83X
\83\8c\83b
\83h
\88ê
\97\97\82ð
\8dÅ
\8cã
\82É
\8dX
\90V
\82µ
\82½
\93ú
\8e\9e\81i
\83T
\81[
\83o
\91¤
\93ú
\8e\9e\81E
\8f\91\82«
\8d\9e\82Ý
\8e\9e\82É
\8eg
\97p
\82·
\82é
\81j
20 bipRound, // : Boolean //
\8f\84\89ñ
\97\
\96ñ
21 bipRoundName, // : string //
\8f\84\89ñ
\96¼
22 bipIsLogFile, // : Boolean //
\83\8d\83O
\91¶
\8dÝ
\83t
\83\89\83O
23 bipUnRead, // : Integer //
\83X
\83\8c\83b
\83h
\96¢
\93Ç
\90\94
24 bipURL, // : string //
\94Â
\82ð
\83u
\83\89\83E
\83U
\82Å
\95\
\8e¦
\82·
\82é
\8dÛ
\82Ì URL
25 bipFilePath // : string //
\82±
\82Ì
\94Â
\82ª
\95Û
\91¶
\82³
\82ê
\82Ä
\82¢
\82é
\83p
\83X
28 // *************************************************************************
29 // TBoardItem
\82ª
\90¶
\90¬
\82³
\82ê
\82½
30 // *************************************************************************
31 TBoardItemCreate = procedure(
35 // *************************************************************************
36 // TBoardItem
\82ª
\94j
\8aü
\82³
\82ê
\82½
37 // *************************************************************************
38 TBoardItemDispose = procedure(
42 // *************************************************************************
43 //
\83_
\83E
\83\93\83\8d\81[
\83h
\82ð
\8ew
\8e¦
\82³
\82ê
\82½
44 // *************************************************************************
45 TBoardItemOnDownload = function(
46 inInstance : DWORD //
\83C
\83\93\83X
\83^
\83\93\83X
47 ) : TDownloadState; stdcall; //
\83_
\83E
\83\93\83\8d\81[
\83h
\82ª
\90¬
\8c÷
\82µ
\82½
\82©
\82Ç
\82¤
\82©
49 // *************************************************************************
50 //
\8ae
\83X
\83\8c\82Ì
\8fî
\95ñ
\82ð
\95Ô
\8bp
51 // *************************************************************************
52 TBoardItemEnumThreadCallBack = function(
53 inInstance : DWORD; // TBoardItem
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
54 inURL : PChar; //
\83X
\83\8c\83b
\83h
\82Ì URL
55 inTitle : PChar; //
\83X
\83\8c\83^
\83C
56 inCount : DWORD //
\83\8c\83X
\82Ì
\90\94
57 ) : Boolean; stdcall; //
\97ñ
\8b\93\82ð
\91±
\82¯
\82é
\82È
\82ç True
59 // *************************************************************************
60 //
\82±
\82Ì
\94Â
\82É
\95Û
\97L
\82µ
\82Ä
\82¢
\82é
\83X
\83\8c\82ð
\97ñ
\8b\93
61 // *************************************************************************
62 TBoardItemOnEnumThread = procedure(
63 inInstance : DWORD; //
\83C
\83\93\83X
\83^
\83\93\83X
64 inCallBack : TBoardItemEnumThreadCallBack //
\95Ô
\8bp
\82·
\82×
\82«
\83R
\81[
\83\8b\83o
\83b
\83N
67 // *************************************************************************
68 //
\83t
\83@
\83C
\83\8b\96¼
\82©
\82ç
\83X
\83\8c\83b
\83h
\82Ì URL
\82ð
\97v
\8b\81\82³
\82ê
\82½
69 // *************************************************************************
70 TBoardItemOnFileName2ThreadURL = function(
71 inInstance : DWORD; //
\83C
\83\93\83X
\83^
\83\93\83X
72 inFileName : PChar //
\8c³
\82É
\82È
\82é
\83t
\83@
\83C
\83\8b\96¼
77 uses ExternalBoardManager, GikoSystem, BoardGroup;
79 // *************************************************************************
80 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\8eæ
\93¾
\82·
\82é
81 // *************************************************************************
82 function BoardItemGetLong(
84 propertyID : TBoardItemProperty
90 boardItem := TBoard( instance );
92 bipContext: // : DWORD //
\8e©
\97R
\82É
\90Ý
\92è
\82µ
\82Ä
\82¢
\82¢
\92l
93 Result := boardItem.Context;
94 bipNo: // : Integer //
\94Ô
\8d\86
95 Result := boardItem.No;
96 bipTitle: // : string //
\83X
\83\8c\83b
\83h
\83^
\83C
\83g
\83\8b
97 Result := DWORD( CreateResultString( boardItem.Title ) );
98 bipRound: // : Boolean //
\8f\84\89ñ
\83t
\83\89\83O
99 Result := DWORD( boardItem.Round );
100 bipRoundName: // : string //
\8f\84\89ñ
\96¼
101 Result := DWORD( CreateResultString( boardItem.RoundName ) );
102 bipIsLogFile: // : Boolean //
\83\8d\83O
\91¶
\8dÝ
\83t
\83\89\83O
103 Result := DWORD( boardItem.IsLogFile );
104 bipUnRead: // : Integer //
\83X
\83\8c\83b
\83h
\96¢
\93Ç
\90\94
105 Result := DWORD( boardItem.UnRead );
106 bipURL: // : string //
\83X
\83\8c\83b
\83h
\82ð
\83u
\83\89\83E
\83U
\82Å
\95\
\8e¦
\82·
\82é
\8dÛ
\82Ì URL
107 Result := DWORD( CreateResultString( boardItem.URL ) );
108 bipFilePath: //
\82±
\82Ì
\83X
\83\8c\82ª
\95Û
\91¶
\82³
\82ê
\82Ä
\82¢
\82é
\83p
\83X
109 Result := DWORD( CreateResultString( boardItem.FilePath ) );
115 // *************************************************************************
116 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\90Ý
\92è
\82·
\82é
117 // *************************************************************************
118 procedure BoardItemSetLong(
120 propertyID : TBoardItemProperty;
127 boardItem := TBoard( instance );
129 bipContext: // : DWORD //
\8e©
\97R
\82É
\90Ý
\92è
\82µ
\82Ä
\82¢
\82¢
\92l
130 boardItem.Context := param;
131 bipNo: // : Integer //
\94Ô
\8d\86
132 boardItem.No := param;
133 bipTitle: // : string //
\83X
\83\8c\83b
\83h
\83^
\83C
\83g
\83\8b
134 boardItem.Title := string( PChar( param ) );
135 bipRound: // : Boolean //
\8f\84\89ñ
\83t
\83\89\83O
136 boardItem.Round := Boolean( param );
137 bipRoundName: // : string //
\8f\84\89ñ
\96¼
138 boardItem.RoundName := string( PChar( param ) );
139 bipIsLogFile: // : Boolean //
\83\8d\83O
\91¶
\8dÝ
\83t
\83\89\83O
140 boardItem.IsLogFile := Boolean( param );
141 bipUnRead: // : Integer //
\83X
\83\8c\83b
\83h
\96¢
\93Ç
\90\94
142 boardItem.UnRead := Integer( param );
143 bipURL: // : string //
\83X
\83\8c\83b
\83h
\82ð
\83u
\83\89\83E
\83U
\82Å
\95\
\8e¦
\82·
\82é
\8dÛ
\82Ì URL
144 boardItem.URL := string( PChar( param ) );
145 bipFilePath: // : string //
\82±
\82Ì
\83X
\83\8c\82ª
\95Û
\91¶
\82³
\82ê
\82Ä
\82¢
\82é
\83p
\83X
146 boardItem.FilePath := string( PChar( param ) );
151 // *************************************************************************
152 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\8eæ
\93¾
\82·
\82é
153 // *************************************************************************
154 function BoardItemGetDouble(
156 propertyID : TBoardItemProperty
162 boardItem := TBoard( instance );
164 bipRoundDate: // : TDateTime //
\83X
\83\8c\83b
\83h
\82ð
\8eæ
\93¾
\82µ
\82½
\93ú
\8e\9e\81i
\8f\84\89ñ
\93ú
\8e\9e\81j
165 Result := boardItem.RoundDate;
166 bipLastModified: // : TDateTime //
\83X
\83\8c\83b
\83h
\82ª
\8dX
\90V
\82³
\82ê
\82Ä
\82¢
\82é
\93ú
\8e\9e\81i
\83T
\81[
\83o
\91¤
\93ú
\8e\9e\81j
167 Result := boardItem.LastModified;
168 bipLastGetTime: // : TDateTime //
\83X
\83\8c\83b
\83h
\82Ü
\82½
\82Í
\83X
\83\8c\83b
\83h
\88ê
\97\97\82ð
\8dÅ
\8cã
\82É
\8dX
\90V
\82µ
\82½
\93ú
\8e\9e\81i
\83T
\81[
\83o
\91¤
\93ú
\8e\9e\81E
\8f\91\82«
\8d\9e\82Ý
\8e\9e\82É
\8eg
\97p
\82·
\82é
\81j
169 Result := boardItem.LastGetTime;
176 // *************************************************************************
177 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\90Ý
\92è
\82·
\82é
178 // *************************************************************************
179 procedure BoardItemSetDouble(
181 propertyID : TBoardItemProperty;
188 boardItem := TBoard( instance );
190 bipRoundDate: // : TDateTime //
\83X
\83\8c\83b
\83h
\82ð
\8eæ
\93¾
\82µ
\82½
\93ú
\8e\9e\81i
\8f\84\89ñ
\93ú
\8e\9e\81j
191 boardItem.RoundDate := param;
192 bipLastModified: // : TDateTime //
\83X
\83\8c\83b
\83h
\82ª
\8dX
\90V
\82³
\82ê
\82Ä
\82¢
\82é
\93ú
\8e\9e\81i
\83T
\81[
\83o
\91¤
\93ú
\8e\9e\81j
193 boardItem.LastModified := param;
194 bipLastGetTime: // : TDateTime //
\83X
\83\8c\83b
\83h
\82Ü
\82½
\82Í
\83X
\83\8c\83b
\83h
\88ê
\97\97\82ð
\8dÅ
\8cã
\82É
\8dX
\90V
\82µ
\82½
\93ú
\8e\9e\81i
\83T
\81[
\83o
\91¤
\93ú
\8e\9e\81E
\8f\91\82«
\8d\9e\82Ý
\8e\9e\82É
\8eg
\97p
\82·
\82é
\81j
195 boardItem.LastGetTime := param;
200 // *************************************************************************
201 // TBoardItem
\83N
\83\89\83X
\82É
\8cq
\82ª
\82ê
\82Ä
\82¢
\82é TThreadItem
\83N
\83\89\83X
\82ð
\8eæ
\93¾
\82·
\82é
202 // *************************************************************************
203 function BoardItemGetItems(
211 boardItem := TBoard( instance );
212 Result := DWORD( boardItem.Items[ index ] );
216 // *************************************************************************
217 //
\94Â
\82Ì
\83_
\83E
\83\93\83\8d\81[
\83h
\82ª
\90i
\8ds
\82µ
\82½
218 // *************************************************************************
219 procedure BoardItemWork(
220 inInstance : DWORD; //
\83N
\83\89\83X
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
221 inWorkCount : Integer //
\8c»
\8dÝ
\82Ì
\90i
\95à
\8fó
\8bµ(
\83J
\83E
\83\93\83g)
225 if Assigned( OnWork ) then
226 OnWork( TObject( inInstance ), wmRead, inWorkCount );
230 // *************************************************************************
231 //
\94Â
\82Ì
\83_
\83E
\83\93\83\8d\81[
\83h
\82ª
\8en
\82Ü
\82Á
\82½
232 // *************************************************************************
233 procedure BoardItemWorkBegin(
234 inInstance : DWORD; //
\83N
\83\89\83X
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
235 inWorkCountMax : Integer //
\92Ê
\90M
\82Ì
\8fI
\82í
\82è
\82ð
\8e¦
\82·
\83J
\83E
\83\93\83g
239 if Assigned( OnWorkBegin ) then
240 OnWorkBegin( TObject( inInstance ), wmRead, inWorkCountMax );
244 // *************************************************************************
245 //
\94Â
\82Ì
\83_
\83E
\83\93\83\8d\81[
\83h
\82ª
\8fI
\82í
\82Á
\82½
246 // *************************************************************************
247 procedure BoardItemWorkEnd(
248 inInstance : DWORD //
\83N
\83\89\83X
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
252 if Assigned( OnWorkEnd ) then
253 OnWorkEnd( TObject( inInstance ), wmRead );
257 // *************************************************************************
258 //
\94Â
\82ª
\95Û
\97L
\82·
\82é
\83X
\83\8c\88ê
\97\97\82Ì
\97ñ
\8b\93\8f\88\97\9d\82ð
\83v
\83\8d\83O
\83\89\83\80\96{
\91Ì
\82É
\94C
\82³
\82ê
\82½
259 // *************************************************************************
260 procedure BoardItemEnumThread(
262 inCallBack : TBoardItemEnumThreadCallBack;
263 inSubjectText : PChar
267 subject : TStringList;
270 isContinue : Boolean;
274 Writeln('ExternalBoardManager.BoardItemEnumThread');
277 board := TBoard( inInstance );
278 subject := TStringList.Create;
280 subject.Text := inSubjectText;
282 for i := 0 to subject.Count - 1 do begin
283 rec := GikoSys.DivideSubject( subject[i] );
284 rec.FFileName := Trim(rec.FFileName);
285 if (rec.FTitle = '') and (rec.FCount = 0) then
288 isContinue := inCallBack(
290 PChar( board.BoardPlugIn.FileName2ThreadURL( DWORD( board ), rec.FFileName ) ),
292 DWORD( rec.FCount ) );
294 if ( not isContinue ) then