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 //
\83X
\83\8c\97§
\82Ä
\82ð
\8ew
\8e¦
51 // *************************************************************************
52 TBoardItemOnCreateThread = function(
53 inInstance : DWORD; // ThreadItem
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
54 inSubject : PChar; //
\83X
\83\8c\83^
\83C
55 inName : PChar; //
\96¼
\91O(
\83n
\83\93\83h
\83\8b)
56 inMail : PChar; //
\83\81\81[
\83\8b\83A
\83h
\83\8c\83X
57 inMessage : PChar //
\96{
\95¶
58 ) : TDownloadState; stdcall; //
\8f\91\82«
\8d\9e\82Ý
\82ª
\90¬
\8c÷
\82µ
\82½
\82©
\82Ç
\82¤
\82©
60 // *************************************************************************
61 //
\8ae
\83X
\83\8c\82Ì
\8fî
\95ñ
\82ð
\95Ô
\8bp
62 // *************************************************************************
63 TBoardItemEnumThreadCallBack = function(
64 inInstance : DWORD; // TBoardItem
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
65 inURL : PChar; //
\83X
\83\8c\83b
\83h
\82Ì URL
66 inTitle : PChar; //
\83X
\83\8c\83^
\83C
67 inCount : DWORD //
\83\8c\83X
\82Ì
\90\94
68 ) : Boolean; stdcall; //
\97ñ
\8b\93\82ð
\91±
\82¯
\82é
\82È
\82ç True
70 // *************************************************************************
71 //
\82±
\82Ì
\94Â
\82É
\95Û
\97L
\82µ
\82Ä
\82¢
\82é
\83X
\83\8c\82ð
\97ñ
\8b\93
72 // *************************************************************************
73 TBoardItemOnEnumThread = procedure(
74 inInstance : DWORD; //
\83C
\83\93\83X
\83^
\83\93\83X
75 inCallBack : TBoardItemEnumThreadCallBack //
\95Ô
\8bp
\82·
\82×
\82«
\83R
\81[
\83\8b\83o
\83b
\83N
78 // *************************************************************************
79 //
\83t
\83@
\83C
\83\8b\96¼
\82©
\82ç
\83X
\83\8c\83b
\83h
\82Ì URL
\82ð
\97v
\8b\81\82³
\82ê
\82½
80 // *************************************************************************
81 TBoardItemOnFileName2ThreadURL = function(
82 inInstance : DWORD; //
\83C
\83\93\83X
\83^
\83\93\83X
83 inFileName : PChar //
\8c³
\82É
\82È
\82é
\83t
\83@
\83C
\83\8b\96¼
88 uses ExternalBoardManager, GikoSystem, BoardGroup;
90 // *************************************************************************
91 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\8eæ
\93¾
\82·
\82é
92 // *************************************************************************
93 function BoardItemGetLong(
95 propertyID : TBoardItemProperty
101 boardItem := TBoard( instance );
103 bipContext: // : DWORD //
\8e©
\97R
\82É
\90Ý
\92è
\82µ
\82Ä
\82¢
\82¢
\92l
104 Result := boardItem.Context;
105 bipNo: // : Integer //
\94Ô
\8d\86
106 Result := boardItem.No;
107 bipTitle: // : string //
\83X
\83\8c\83b
\83h
\83^
\83C
\83g
\83\8b
108 Result := DWORD( CreateResultString( boardItem.Title ) );
109 bipRound: // : Boolean //
\8f\84\89ñ
\83t
\83\89\83O
110 Result := DWORD( boardItem.Round );
111 bipRoundName: // : string //
\8f\84\89ñ
\96¼
112 Result := DWORD( CreateResultString( boardItem.RoundName ) );
113 bipIsLogFile: // : Boolean //
\83\8d\83O
\91¶
\8dÝ
\83t
\83\89\83O
114 Result := DWORD( boardItem.IsLogFile );
115 bipUnRead: // : Integer //
\83X
\83\8c\83b
\83h
\96¢
\93Ç
\90\94
116 Result := DWORD( boardItem.UnRead );
117 bipURL: // : string //
\83X
\83\8c\83b
\83h
\82ð
\83u
\83\89\83E
\83U
\82Å
\95\
\8e¦
\82·
\82é
\8dÛ
\82Ì URL
118 Result := DWORD( CreateResultString( boardItem.URL ) );
119 bipFilePath: //
\82±
\82Ì
\83X
\83\8c\82ª
\95Û
\91¶
\82³
\82ê
\82Ä
\82¢
\82é
\83p
\83X
120 Result := DWORD( CreateResultString( boardItem.FilePath ) );
126 // *************************************************************************
127 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\90Ý
\92è
\82·
\82é
128 // *************************************************************************
129 procedure BoardItemSetLong(
131 propertyID : TBoardItemProperty;
138 boardItem := TBoard( instance );
140 bipContext: // : DWORD //
\8e©
\97R
\82É
\90Ý
\92è
\82µ
\82Ä
\82¢
\82¢
\92l
141 boardItem.Context := param;
142 bipNo: // : Integer //
\94Ô
\8d\86
143 boardItem.No := param;
144 bipTitle: // : string //
\83X
\83\8c\83b
\83h
\83^
\83C
\83g
\83\8b
145 boardItem.Title := string( PChar( param ) );
146 bipRound: // : Boolean //
\8f\84\89ñ
\83t
\83\89\83O
147 boardItem.Round := Boolean( param );
148 bipRoundName: // : string //
\8f\84\89ñ
\96¼
149 boardItem.RoundName := string( PChar( param ) );
150 bipIsLogFile: // : Boolean //
\83\8d\83O
\91¶
\8dÝ
\83t
\83\89\83O
151 boardItem.IsLogFile := Boolean( param );
152 bipUnRead: // : Integer //
\83X
\83\8c\83b
\83h
\96¢
\93Ç
\90\94
153 boardItem.UnRead := Integer( param );
154 bipURL: // : string //
\83X
\83\8c\83b
\83h
\82ð
\83u
\83\89\83E
\83U
\82Å
\95\
\8e¦
\82·
\82é
\8dÛ
\82Ì URL
155 boardItem.URL := string( PChar( param ) );
156 bipFilePath: // : string //
\82±
\82Ì
\83X
\83\8c\82ª
\95Û
\91¶
\82³
\82ê
\82Ä
\82¢
\82é
\83p
\83X
157 boardItem.FilePath := string( PChar( param ) );
162 // *************************************************************************
163 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\8eæ
\93¾
\82·
\82é
164 // *************************************************************************
165 function BoardItemGetDouble(
167 propertyID : TBoardItemProperty
173 boardItem := TBoard( instance );
175 bipRoundDate: // : TDateTime //
\83X
\83\8c\83b
\83h
\82ð
\8eæ
\93¾
\82µ
\82½
\93ú
\8e\9e\81i
\8f\84\89ñ
\93ú
\8e\9e\81j
176 Result := boardItem.RoundDate;
177 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
178 Result := boardItem.LastModified;
179 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
180 Result := boardItem.LastGetTime;
187 // *************************************************************************
188 // TBoardItem
\83N
\83\89\83X
\82Ì
\83v
\83\8d\83p
\83e
\83B
\82ð
\90Ý
\92è
\82·
\82é
189 // *************************************************************************
190 procedure BoardItemSetDouble(
192 propertyID : TBoardItemProperty;
199 boardItem := TBoard( instance );
201 bipRoundDate: // : TDateTime //
\83X
\83\8c\83b
\83h
\82ð
\8eæ
\93¾
\82µ
\82½
\93ú
\8e\9e\81i
\8f\84\89ñ
\93ú
\8e\9e\81j
202 boardItem.RoundDate := param;
203 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
204 boardItem.LastModified := param;
205 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
206 boardItem.LastGetTime := param;
211 // *************************************************************************
212 // TBoardItem
\83N
\83\89\83X
\82É
\8cq
\82ª
\82ê
\82Ä
\82¢
\82é TThreadItem
\83N
\83\89\83X
\82ð
\8eæ
\93¾
\82·
\82é
213 // *************************************************************************
214 function BoardItemGetItems(
222 boardItem := TBoard( instance );
223 Result := DWORD( boardItem.Items[ index ] );
227 // *************************************************************************
228 //
\94Â
\82Ì
\83_
\83E
\83\93\83\8d\81[
\83h
\82ª
\90i
\8ds
\82µ
\82½
229 // *************************************************************************
230 procedure BoardItemWork(
231 inInstance : DWORD; //
\83N
\83\89\83X
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
232 inWorkCount : Integer //
\8c»
\8dÝ
\82Ì
\90i
\95à
\8fó
\8bµ(
\83J
\83E
\83\93\83g)
236 if Assigned( OnWork ) then
237 OnWork( TObject( inInstance ), wmRead, inWorkCount );
241 // *************************************************************************
242 //
\94Â
\82Ì
\83_
\83E
\83\93\83\8d\81[
\83h
\82ª
\8en
\82Ü
\82Á
\82½
243 // *************************************************************************
244 procedure BoardItemWorkBegin(
245 inInstance : DWORD; //
\83N
\83\89\83X
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
246 inWorkCountMax : Integer //
\92Ê
\90M
\82Ì
\8fI
\82í
\82è
\82ð
\8e¦
\82·
\83J
\83E
\83\93\83g
250 if Assigned( OnWorkBegin ) then
251 OnWorkBegin( TObject( inInstance ), wmRead, inWorkCountMax );
255 // *************************************************************************
256 //
\94Â
\82Ì
\83_
\83E
\83\93\83\8d\81[
\83h
\82ª
\8fI
\82í
\82Á
\82½
257 // *************************************************************************
258 procedure BoardItemWorkEnd(
259 inInstance : DWORD //
\83N
\83\89\83X
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
263 if Assigned( OnWorkEnd ) then
264 OnWorkEnd( TObject( inInstance ), wmRead );
268 // *************************************************************************
269 //
\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½
270 // *************************************************************************
271 procedure BoardItemEnumThread(
273 inCallBack : TBoardItemEnumThreadCallBack;
274 inSubjectText : PChar
278 subject : TStringList;
281 isContinue : Boolean;
285 Writeln('ExternalBoardManager.BoardItemEnumThread');
288 board := TBoard( inInstance );
289 subject := TStringList.Create;
291 subject.Text := inSubjectText;
293 for i := 0 to subject.Count - 1 do begin
294 rec := GikoSys.DivideSubject( subject[i] );
295 rec.FFileName := Trim(rec.FFileName);
296 if (rec.FTitle = '') and (rec.FCount = 0) then
299 isContinue := inCallBack(
301 PChar( board.BoardPlugIn.FileName2ThreadURL( DWORD( board ), rec.FFileName ) ),
303 DWORD( rec.FCount ) );
305 if ( not isContinue ) then