Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/ExternalBoardItem.pas

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


Revision 1.2.2.1 - (show annotations) (download) (as text)
Mon Apr 19 22:46:48 2004 UTC (20 years ago) by yoffy
Branch: stable
Changes since 1.2: +0 -0 lines
File MIME type: text/x-pascal
・ハ゛タ 47 相当にマージ。

1 unit ExternalBoardItem;
2
3 interface
4
5 uses
6 Windows, Classes, SysUtils,
7 IdComponent,
8 ExternalBoardPlugInMain;
9
10 type
11 // TBoardItem ???????????h┃絎?鐚??緇? ID
12 TBoardItemProperty = (
13 bipContext, // : DWORD // ???宴??┃絎???????????/span>
14 bipItems, // : TThreadItem // ?帥??????????????鴻??????
15 bipNo, // : Integer // ???/span>
16 bipTitle, // : string // ?帥?帥?ゃ????/span>
17 bipRoundDate, // : TDateTime // ?帥????緇??????ユ??鐚?綏≦???ユ??鐚?
18 bipLastModified, // : TDateTime // ?帥???贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
19 bipLastGetTime, // : TDateTime // ?鴻???????障?????鴻??????筝?荀с????緇????贋?違?????ユ??鐚??泣?若???贋?ユ???紙?吾??莨若?炊????戎??????鐚?
20 bipRound, // : Boolean // 綏≦??篋?膣?
21 bipRoundName, // : string // 綏≦????
22 bipIsLogFile, // : Boolean // ???医?????????/span>
23 bipUnRead, // : Integer // ?鴻???????????/span>
24 bipURL, // : string // ?帥?????????吟?ц;腓冴??????? URL
25 bipFilePath // : string // ?????帥??篆?絖???????????????/span>
26 );
27
28 // *************************************************************************
29 // TBoardItem ????????????
30 // *************************************************************************
31 TBoardItemCreate = procedure(
32 inInstance : DWORD
33 ); stdcall;
34
35 // *************************************************************************
36 // TBoardItem ???贋???????
37 // *************************************************************************
38 TBoardItemDispose = procedure(
39 inInstance : DWORD
40 ); stdcall;
41
42 // *************************************************************************
43 // ?????潟???若??????腓冴??????
44 // *************************************************************************
45 TBoardItemOnDownload = function(
46 inInstance : DWORD // ?ゃ?潟?鴻?帥?潟??/span>
47 ) : TDownloadState; stdcall; // ?????潟???若????????????????????
48
49 // *************************************************************************
50 // ?鴻?????????腓?/span>
51 // *************************************************************************
52 TBoardItemOnCreateThread = function(
53 inInstance : DWORD; // ThreadItem ???ゃ?潟?鴻?帥?潟??/span>
54 inSubject : PChar; // ?鴻???帥??/span>
55 inName : PChar; // ????(??潟????
56 inMail : PChar; // ?<?若???≪??????/span>
57 inMessage : PChar // ????
58 ) : TDownloadState; stdcall; // ?吾??莨若?帥??????????????????
59
60 // *************************************************************************
61 // ???鴻???????宴??菴???/span>
62 // *************************************************************************
63 TBoardItemEnumThreadCallBack = function(
64 inInstance : DWORD; // TBoardItem ???ゃ?潟?鴻?帥?潟??/span>
65 inURL : PChar; // ?鴻??????? URL
66 inTitle : PChar; // ?鴻???帥??/span>
67 inCount : DWORD // ???鴻????/span>
68 ) : Boolean; stdcall; // ??????膓????????? True
69
70 // *************************************************************************
71 // ?????帥??????????????鴻????????
72 // *************************************************************************
73 TBoardItemOnEnumThread = procedure(
74 inInstance : DWORD; // ?ゃ?潟?鴻?帥?潟??/span>
75 inCallBack : TBoardItemEnumThreadCallBack // 菴??眼???鴻???潟?若????????/span>
76 ); stdcall;
77
78 // *************************************************************************
79 // ???<?ゃ?????????鴻??????? URL ??荀?羆???????
80 // *************************************************************************
81 TBoardItemOnFileName2ThreadURL = function(
82 inInstance : DWORD; // ?ゃ?潟?鴻?帥?潟??/span>
83 inFileName : PChar // ???????????<?ゃ????
84 ) : PChar; stdcall;
85
86 implementation
87
88 uses ExternalBoardManager, GikoSystem, BoardGroup;
89
90 // *************************************************************************
91 // TBoardItem ?????鴻???????????c????緇?????
92 // *************************************************************************
93 function BoardItemGetLong(
94 instance : DWORD;
95 propertyID : TBoardItemProperty
96 ) : DWORD; stdcall;
97 var
98 boardItem : TBoard;
99 begin
100
101 boardItem := TBoard( instance );
102 case propertyID of
103 bipContext: // : DWORD // ???宴??┃絎???????????/span>
104 Result := boardItem.Context;
105 bipNo: // : Integer // ???/span>
106 Result := boardItem.No;
107 bipTitle: // : string // ?鴻???????帥?ゃ????/span>
108 Result := DWORD( CreateResultString( boardItem.Title ) );
109 bipRound: // : Boolean // 綏≦????????/span>
110 Result := DWORD( boardItem.Round );
111 bipRoundName: // : string // 綏≦????
112 Result := DWORD( CreateResultString( boardItem.RoundName ) );
113 bipIsLogFile: // : Boolean // ???医?????????/span>
114 Result := DWORD( boardItem.IsLogFile );
115 bipUnRead: // : Integer // ?鴻???????????/span>
116 Result := DWORD( boardItem.UnRead );
117 bipURL: // : string // ?鴻???????????????吟?ц;腓冴??????? URL
118 Result := DWORD( CreateResultString( boardItem.URL ) );
119 bipFilePath: // ?????鴻????篆?絖???????????????/span>
120 Result := DWORD( CreateResultString( boardItem.FilePath ) );
121 else
122 Result := 0;
123 end;
124 end;
125
126 // *************************************************************************
127 // TBoardItem ?????鴻???????????c??荐??????
128 // *************************************************************************
129 procedure BoardItemSetLong(
130 instance : DWORD;
131 propertyID : TBoardItemProperty;
132 param : DWORD
133 ); stdcall;
134 var
135 boardItem : TBoard;
136 begin
137
138 boardItem := TBoard( instance );
139 case propertyID of
140 bipContext: // : DWORD // ???宴??┃絎???????????/span>
141 boardItem.Context := param;
142 bipNo: // : Integer // ???/span>
143 boardItem.No := param;
144 bipTitle: // : string // ?鴻???????帥?ゃ????/span>
145 boardItem.Title := string( PChar( param ) );
146 bipRound: // : Boolean // 綏≦????????/span>
147 boardItem.Round := Boolean( param );
148 bipRoundName: // : string // 綏≦????
149 boardItem.RoundName := string( PChar( param ) );
150 bipIsLogFile: // : Boolean // ???医?????????/span>
151 boardItem.IsLogFile := Boolean( param );
152 bipUnRead: // : Integer // ?鴻???????????/span>
153 boardItem.UnRead := Integer( param );
154 bipURL: // : string // ?鴻???????????????吟?ц;腓冴??????? URL
155 boardItem.URL := string( PChar( param ) );
156 bipFilePath: // : string // ?????鴻????篆?絖???????????????/span>
157 boardItem.FilePath := string( PChar( param ) );
158 end;
159
160 end;
161
162 // *************************************************************************
163 // TBoardItem ?????鴻???????????c????緇?????
164 // *************************************************************************
165 function BoardItemGetDouble(
166 instance : DWORD;
167 propertyID : TBoardItemProperty
168 ) : Double; stdcall;
169 var
170 boardItem : TBoard;
171 begin
172
173 boardItem := TBoard( instance );
174 case propertyID of
175 bipRoundDate: // : TDateTime // ?鴻??????????緇??????ユ??鐚?綏≦???ユ??鐚?
176 Result := boardItem.RoundDate;
177 bipLastModified: // : TDateTime // ?鴻?????????贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
178 Result := boardItem.LastModified;
179 bipLastGetTime: // : TDateTime // ?鴻???????障?????鴻??????筝?荀с????緇????贋?違?????ユ??鐚??泣?若???贋?ユ???紙?吾??莨若?炊????戎??????鐚?
180 Result := boardItem.LastGetTime;
181 else
182 Result := 0;
183 end;
184
185 end;
186
187 // *************************************************************************
188 // TBoardItem ?????鴻???????????c??荐??????
189 // *************************************************************************
190 procedure BoardItemSetDouble(
191 instance : DWORD;
192 propertyID : TBoardItemProperty;
193 param : Double
194 ); stdcall;
195 var
196 boardItem : TBoard;
197 begin
198
199 boardItem := TBoard( instance );
200 case propertyID of
201 bipRoundDate: // : TDateTime // ?鴻??????????緇??????ユ??鐚?綏≦???ユ??鐚?
202 boardItem.RoundDate := param;
203 bipLastModified: // : TDateTime // ?鴻?????????贋?違???????????ユ??鐚??泣?若???贋?ユ??鐚?
204 boardItem.LastModified := param;
205 bipLastGetTime: // : TDateTime // ?鴻???????障?????鴻??????筝?荀с????緇????贋?違?????ユ??鐚??泣?若???贋?ユ???紙?吾??莨若?炊????戎??????鐚?
206 boardItem.LastGetTime := param;
207 end;
208
209 end;
210
211 // *************************************************************************
212 // TBoardItem ?????鴻????????????? TThreadItem ?????鴻????緇?????
213 // *************************************************************************
214 function BoardItemGetItems(
215 instance : DWORD;
216 index : Integer
217 ) : DWORD; stdcall;
218 var
219 boardItem : TBoard;
220 begin
221
222 boardItem := TBoard( instance );
223 Result := DWORD( boardItem.Items[ index ] );
224
225 end;
226
227 // *************************************************************************
228 // ?帥???????潟???若?????画?????
229 // *************************************************************************
230 procedure BoardItemWork(
231 inInstance : DWORD; // ?????鴻???ゃ?潟?鴻?帥?潟??/span>
232 inWorkCount : Integer // ?上?????我??倶?(?????潟??)
233 ); stdcall;
234 begin
235
236 if Assigned( OnWork ) then
237 OnWork( TObject( inInstance ), wmRead, inWorkCount );
238
239 end;
240
241 // *************************************************************************
242 // ?帥???????潟???若????紮??障?c??
243 // *************************************************************************
244 procedure BoardItemWorkBegin(
245 inInstance : DWORD; // ?????鴻???ゃ?潟?鴻?帥?潟??/span>
246 inWorkCountMax : Integer // ??篆<????????腓冴???????潟??
247 ); stdcall;
248 begin
249
250 if Assigned( OnWorkBegin ) then
251 OnWorkBegin( TObject( inInstance ), wmRead, inWorkCountMax );
252
253 end;
254
255 // *************************************************************************
256 // ?帥???????潟???若????腟???c??
257 // *************************************************************************
258 procedure BoardItemWorkEnd(
259 inInstance : DWORD // ?????鴻???ゃ?潟?鴻?帥?潟??/span>
260 ); stdcall;
261 begin
262
263 if Assigned( OnWorkEnd ) then
264 OnWorkEnd( TObject( inInstance ), wmRead );
265
266 end;
267
268 // *************************************************************************
269 // ?帥??篆????????鴻???荀с?????????????????違?????????算??????
270 // *************************************************************************
271 procedure BoardItemEnumThread(
272 inInstance : DWORD;
273 inCallBack : TBoardItemEnumThreadCallBack;
274 inSubjectText : PChar
275 ); stdcall;
276 var
277 board : TBoard;
278 subject : TStringList;
279 i : Integer;
280 rec : TSubjectRec;
281 isContinue : Boolean;
282 begin
283
284 {$IFDEF DEBUG}
285 Writeln('ExternalBoardManager.BoardItemEnumThread');
286 {$ENDIF}
287 try
288 board := TBoard( inInstance );
289 subject := TStringList.Create;
290 try
291 subject.Text := inSubjectText;
292
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
297 Continue;
298
299 isContinue := inCallBack(
300 inInstance,
301 PChar( board.BoardPlugIn.FileName2ThreadURL( DWORD( board ), rec.FFileName ) ),
302 PChar( rec.FTitle ),
303 DWORD( rec.FCount ) );
304
305 if ( not isContinue ) then
306 Break;
307 end;
308 finally
309 subject.Free;
310 end;
311 except
312 end;
313
314 end;
315
316 exports
317 BoardItemGetLong,
318 BoardItemSetLong,
319 BoardItemGetDouble,
320 BoardItemSetDouble,
321 BoardItemGetItems,
322 BoardItemEnumThread,
323 BoardItemWork,
324 BoardItemWorkBegin,
325 BoardItemWorkEnd;
326
327 end.
328

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