Develop and Download Open Source Software

Browse CVS Repository

Contents of /regnessem/apidoc/index.sdoc

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


Revision 1.5 - (show annotations) (download)
Sun Oct 8 16:57:45 2006 UTC (17 years, 5 months ago) by rao
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +9 -0 lines
Add descriptions about file sessions and new ui services.

1 <?xml version='1.0' encoding="Shift_JIS" ?>
2
3 <doc xml:lang="ja">
4 <head>
5 <title>NSMSGS 0.5系 プラグイン仕様書</title>
6 </head>
7 <body>
8
9 <!-- ========================================================================= -->
10 <chapter title="本文書について">
11
12 本文書は Regnessem(正式名称 nsmsgs)のプラグインを作成しようとする人向けの文書です.
13 以下の要件についての一通りの知識を有する人を対象としています.
14 <ul class="data">
15 <li>Regnessemのインストール・利用</li>
16 <li>Regnessem用プラグインのインストール・利用</li>
17 <li>C/C++言語</li>
18 </ul>
19 </chapter>
20
21 <!-- ========================================================================= -->
22 <part title="Regnessemの構成">
23
24 <chapter title="Regnessemの基本構成">
25
26 <section title="モジュール構成">
27
28 Regnessemは,システムモジュールと呼ばれる本体(nsmsgs.exe)に,
29 UIモジュールとその他必要なモジュールを組み合わせて動作します.
30 システムモジュール以外の全てのモジュールはここでいう &quot;プラグイン&quot; として実現されています.
31 <a href="#tab:ModuleTypes"/>にモジュールの種類と機能を,
32 <a href="#fig:RegnessemStructure"/>にRegnessemの構成例を示します.
33
34 Regnessemを起動するためには,システムモジュールはもちろんですが,少なくとも1つのUIモジュール
35 が必要です.
36 プロトコルモジュールとアドインモジュールについては,複数の異なるモジュールを同時に利用することが可能です.
37
38 <div style="text-align:center;">
39 <table class="data" border="0" title="モジュールの種類と機能" id="tab:ModuleTypes">
40 <colgroup>
41 <col align="center"/>
42 </colgroup>
43 <colgroup>
44 <col align="left"/>
45 </colgroup>
46 <thead>
47 <tr>
48 <th>モジュールの種類</th>
49 <th>機能</th>
50 </tr>
51 </thead>
52 <tbody>
53 <tr>
54 <td>システムモジュール</td>
55 <td>基本的なサービスの提供と,イベントの通知を行います.</td>
56 </tr>
57 <tr>
58 <td>UIモジュール</td>
59 <td>ユーザインターフェイスを提供します.</td>
60 </tr>
61 <tr>
62 <td>プロトコルモジュール</td>
63 <td>IMを始め,様々な外部サービスとのインターフェイスを提供します.</td>
64 </tr>
65 <tr>
66 <td>アドインモジュール</td>
67 <td>その他任意の機能を提供します.</td>
68 </tr>
69 </tbody>
70 </table>
71 </div>
72
73 <figure src="img/RegnessemStructure" title="Regnessemの構成" id="fig:RegnessemStructure"/>
74 </section>
75
76 <section title="モジュール名" id="sec:ModuleName">
77
78 モジュールの種類は<b>モジュール名</b>によって識別されます.
79 それ故,モジュールの作者は,
80 作成したモジュールにどのようなモジュール名をつけるかに気を配らなくてはなりません.
81
82 システムモジュールは,
83 モジュールが備える <a href="#api:plugin:GetPluginInfo">GetPluginInfo</a>関数を使って
84 モジュール名を確認します.
85 同一のモジュール名を持つ複数のモジュールがあった場合,最初に発見されたモジュールのみが利用され,
86 そのほかのモジュールは利用されません.
87
88 <a href="#tab:ModuleNames"/>にモジュールの種類とモジュール名の規約を示します.
89
90 <div style="text-align:center;">
91 <table class="data" id="tab:ModuleNames" title="モジュールの種類とモジュール名">
92 <colgroup>
93 <col align="center"/>
94 </colgroup>
95 <colgroup>
96 <col align="left"/>
97 </colgroup>
98 <thead>
99 <tr>
100 <th>モジュールの種類</th>
101 <th>モジュール名</th>
102 </tr>
103 </thead>
104 <tbody>
105 <tr>
106 <td>システムモジュール</td>
107 <td> &quot;System&quot;</td>
108 </tr>
109 <tr>
110 <td>UIモジュール</td>
111 <td>&quot;UI&quot;</td>
112 </tr>
113 <tr>
114 <td>プロトコルモジュール</td>
115 <td>&quot;Protocol/***&quot; (*** の部分は任意)</td>
116 </tr>
117 <tr>
118 <td>アドインモジュール</td>
119 <td>&quot;AddIn/***&quot; (*** の部分は任意)</td>
120 </tr>
121 </tbody>
122 </table>
123 </div>
124 </section>
125
126 <section title="モジュール間通信">
127
128 各モジュールは<b> サービス</b><b> イベント</b>を用いて通信します.
129 サービスは各モジュールの機能を他のモジュールに提供するもので,
130 イベントはモジュール内で発生した事象を他のモジュールに通知するものです.
131 各モジュールは,イベントに対応した処理を登録することで,
132 他のモジュールの動作に応じて動作することが可能になります.
133 </section>
134
135 <section title="サービス名とイベント名">
136
137 全てのサービスとイベントはそれぞれ固有の名前によって管理されます.
138 それぞれのモジュールが提供するサービスとイベントの名前が同じにならないように,
139 サービス名とイベント名にはモジュール名を冠します.
140 <a href="#tab:ServiceNameExample"/>にモジュールとサービス名の例を示します.
141
142 <div style="text-align:center;">
143 <table class="data" id="tab:ServiceNameExample" title="サービス名とイベント名の例">
144 <colgroup>
145 <col align="center"/>
146 </colgroup>
147 <colgroup>
148 <col align="left"/>
149 </colgroup>
150 <thead>
151 <tr>
152 <th>モジュール</th>
153 <th>サービス名の例</th>
154 </tr>
155 </thead>
156 <tbody>
157 <tr>
158 <td>システムモジュール</td>
159 <td> &quot;System/GetPluginInfo&quot;&quot;System/Connection/Create&quot; </td>
160 </tr>
161 <tr>
162 <td>UIモジュール</td>
163 <td>&quot;UI/Notify&quot;&quot;UI/MessageBox&quot;</td>
164 </tr>
165 </tbody>
166 </table>
167 </div>
168 </section>
169
170 <section title="システム関数">
171
172 モジュール間通信はシステムモジュールが媒介することで実現されています.
173 すなわち,サービスとイベント処理はシステムモジュールに登録され,
174 他のモジュールの提供するサービスの実行や,他のモジュールへのイベント通知はシステムモジュールに依頼します.
175 このために<a href="#tab:SystemMethods"/>に示す関数がシステムモジュールから提供されています.
176 これらのシステム関数を用いたサービスとイベントの処理タイミングを
177 それぞれ<a href="#fig:SystemMethodsService"/><a href="#fig:SystemMethodsEvent"/>に示します.
178
179 <div style="text-align:center;">
180 <table class="data" id="tab:SystemMethods" title="システムモジュールの提供する関数">
181 <colgroup>
182 <col align="center"/>
183 </colgroup>
184 <colgroup>
185 <col align="left"/>
186 </colgroup>
187 <thead>
188 <tr>
189 <th>システム関数</th>
190 <th>機能</th>
191 </tr>
192 </thead>
193 <tbody>
194 <tr>
195 <td><a href="#api:sys:CreateService">CreateService</a></td>
196 <td>サービスを登録します</td>
197 </tr>
198 <tr>
199 <td><a href="#api:sys:GetService">GetService</a></td>
200 <td>サービス名からサービスのハンドルを得ます</td>
201 </tr>
202 <tr>
203 <td><a href="#api:sys:CallService">CallService</a></td>
204 <td>サービスを呼び出します</td>
205 </tr>
206 <tr>
207 <td><a href="#api:sys:CreateEvent">CreateEvent</a></td>
208 <td>イベントを登録します</td>
209 </tr>
210 <tr>
211 <td><a href="#api:sys:GetEvent">GetEvent</a></td>
212 <td>イベント名からイベントのハンドルを得ます</td>
213 </tr>
214 <tr>
215 <td><a href="#api:sys:NotifyEvent">NotifyEvent</a></td>
216 <td>イベントを通知します</td>
217 </tr>
218 <tr>
219 <td><a href="#api:sys:HookEvent">HookEvent</a></td>
220 <td>イベント処理を登録します</td>
221 </tr>
222 <tr>
223 <td><a href="#api:sys:UnhookEvent">UnhookEvent</a></td>
224 <td>イベント処理の登録を解除します</td>
225 </tr>
226 </tbody>
227 </table>
228 </div>
229
230 <figure src="img/SystemMethodsService" title="サービスの処理" id="fig:SystemMethodsService"/>
231
232 <figure src="img/SystemMethodsEvent" title="イベント周りの処理" id="fig:SystemMethodsEvent"/>
233
234 </section>
235
236 </chapter>
237
238 <!-- ========================================================================= -->
239 <chapter title="プラグインの基本構成">
240
241 <section title="基本事項">
242
243 <ul class="data">
244 <li> Regnessemプラグインは Win32 DLL です.</li>
245 <li> Regnessemプラグインはシステムモジュール以外の3種類のモジュールのいずれかでなければなりません.</li>
246 </ul>
247 </section>
248
249 <section title="プラグインのファイル構成">
250
251 プラグインはシステムモジュール(nsmsgs.exe)のあるフォルダ直下の
252 &quot;Plugins&quot; フォルダ直下に置きます.
253 それより下位のフォルダについては検索されません.
254
255 設定ファイルなど,プラグインが参照するファイルについては,他のプラグインとの競合をさけるために,
256 DLLと同名の下位フォルダを作成して,その中に入れて下さい.
257
258 例として foo.dll という名前のプラグインの配置を<a href="#fig:PluginStructure"/>に示します.
259
260 <figure src="img/PluginStructure" title="プラグインとその設定ファイルの場所" id="fig:PluginStructure"/>
261
262 </section>
263
264 <section title="プラグインの実装">
265
266 プラグインDLLは<a href="#tab:PluginExports"/>に示す3つの関数をエクスポートする必要があります.
267
268 <div style="text-align:center;">
269 <table class="wide" id ="tab:PluginExports" title="プラグインがエクスポートする関数">
270 <colgroup>
271 <col align="center"/>
272 </colgroup>
273 <colgroup>
274 <col align="left"/>
275 </colgroup>
276 <thead>
277 <tr>
278 <th>関数名</th>
279 <th>機能</th>
280 </tr>
281 </thead>
282 <tbody>
283 <tr>
284 <td><a href="#api:plugin:GetPluginInfo">GetPluginInfo</a></td>
285 <td>システムモジュールがプラグインの情報を取得するために利用します.</td>
286 </tr>
287 <tr>
288 <td><a href="#api:plugin:Initialize">Initialize</a></td>
289 <td>プラグインが読み込まれた時,最初に一度だけ,プラグインを初期化するために呼ばれます.</td>
290 </tr>
291 <tr>
292 <td><a href="#api:plugin:Terminate">Terminate</a></td>
293 <td>プラグインを破棄する直前に一度だけ呼ばれます.</td>
294 </tr>
295 </tbody>
296 </table>
297 </div>
298
299 </section>
300
301 <section title="Initialize関数の実装">
302
303 システムモジュールから呼び出されることが保証されている関数は先の3つだけなので,
304 プラグインの動作を考えた場合,特にInitialize関数における処理は重要です.
305 一般に,Initialize関数では以下のような作業を行います.
306
307 <ul class="data">
308 <li>システム関数へのポインタが Initialize関数の引数として渡されますので,
309 後で利用するためにこれを保持します.</li>
310 <li>このプラグインが提供するサービスの登録(<a href="#api:sys:CreateService">CreateService</a>)や
311 イベントの登録(<a href="#api:sys:CreateEvent">CreateEvent</a>)を行います.</li>
312 <li>システムモジュールが提供するイベントに限り,
313 イベント処理を登録(<a href="#api:sys:HookEvent">HookEvent</a>)することができます.</li>
314 </ul>
315
316 また,Initialize関数ですべきでない作業には以下のようなものがあります.
317
318 <ul class="data">
319 <li>システムモジュール以外のモジュールが提供するイベント処理の登録(HookEvent)は
320 この関数内で行うべきではありません.
321 なぜなら,初期化の順番によっては,
322 処理を登録しようと思うイベントそのものがまだ登録されていない可能性があるからです.</li>
323 </ul>
324
325 </section>
326
327 </chapter>
328
329 </part>
330
331 <!-- ========================================================================= -->
332 <part title="標準モジュールの機能">
333
334 <chapter title="nsmsgs.exe:システムモジュール">
335
336 <section title="機能概要">
337
338 nsmsgs.exe は主に以下の機能を実現します.
339 <ul class="data">
340 <li> サービスとイベントの管理</li>
341 <li> プラグインの管理</li>
342 <li> <b> コネクション</b><b> セッション</b>の管理</li>
343 </ul>
344
345 このうち,サービスとイベントの管理は<a href="#tab:SystemMethods"/>に示したシステム関数によって行われ,
346 プラグインの管理およびコネクションとセッションの管理はサービスによって行われます.
347 </section>
348
349 <section title="プラグインの管理">
350
351 システムモジュールは,起動時に規定のフォルダに含まれるプラグインを検索し,読み込みます.
352 その際,各プラグインの <a href="#api:plugin:GetPluginInfo">GetPluginInfo</a>関数を実行し,
353 APIバージョンとモジュール名を調べ,
354 システムモジュールがサポートしていないAPIバージョンや,不正なモジュール名の場合には読み込みを中止します.
355
356 読み込まれたプラグインについては,<a href="#api:plugin:Initialize">Initialize</a>関数が実行され,
357 初期化が行われます.
358 全てのプラグインの初期化が終了したところで,モジュールの読み込み終了イベントが通知されます.
359 また,システムモジュール終了時には,読み込まれている全てのプラグインの
360 <a href="#api:plugin:Terminate">Terminate</a>関数を実行します.
361 </section>
362
363 <section title="コネクションの管理">
364
365 インスタント・メッセンジャー・クライアントの実現を容易にするために,
366 システムモジュールにはコネクションとセッションの管理機能が含まれています.
367
368 コネクションはインスタント・メッセンジャー・クライアントで言うところのメンバリストを管理する単位です.
369 プラグインは同時に複数のコネクションを生成することができます.
370 1つのコネクションにつき,<a href="#tab:MemberListKind"/>の4種類のメンバリストが管理されます.
371
372 <div style="text-align:center;">
373 <table class="wide" id="tab:MemberListKind" title="メンバリストの種類">
374 <colgroup>
375 <col align="center" width="30%"/>
376 </colgroup>
377 <colgroup>
378 <col align="left" width="50%"/>
379 </colgroup>
380 <thead>
381 <tr>
382 <th>種類</th>
383 <th>機能</th>
384 </tr>
385 </thead>
386 <tbody>
387 <tr>
388 <td>コンタクトリスト</td>
389 <td>通常のメンバのリストです</td>
390 </tr>
391 <tr>
392 <td>対向リスト</td>
393 <td>コネクションを所有しているユーザ自身をコンタクトリストに含めているメンバのリスト</td>
394 </tr>
395 <tr>
396 <td>禁止リスト</td>
397 <td>明示的に禁止しているメンバのリスト</td>
398 </tr>
399 <tr>
400 <td>許可リスト</td>
401 <td>明示的に許可しているメンバのリスト</td>
402 </tr>
403 </tbody>
404 </table>
405 </div>
406
407 </section>
408
409 <section title="セッションの管理">
410
411 セッションはインスタント・メッセンジャー・クライアントで言うところの会話を管理する単位です.
412 セッションはコネクションに属しており,1つのコネクションが複数のセッションを有することができます.
413
414 </section>
415
416 <section title="ファイル転送セッションの管理">
417
418 ファイル転送セッションはセッションに属しており,
419 1つのセッションが複数のファイル転送セッションを有することができます.
420
421 </section>
422
423 </chapter>
424
425 <!-- ====================================================================== -->
426 <chapter title="SimpleUI.dll:UIモジュール">
427
428 <section title="機能概要">
429
430 ユーザとのインターフェイスを受け持つモジュールで,主に以下の機能を実現します.
431
432 <ul class="data">
433 <li>コネクションとセッションの監視</li>
434 <li>ユーザ操作のモジュールへの伝達</li>
435 </ul>
436 </section>
437
438 <section title="コネクションとセッションの監視">
439
440 システムモジュールのコネクションとセッション管理に関するイベント処理を登録し,
441 コネクションやセッションに変化がある場合にこれをUIに反映します.
442 </section>
443
444 <section title="ユーザ操作のモジュールへの伝達">
445
446 ユーザの操作に応じて,対応するサービスを呼び出します.
447
448 Regnessem α9以前では,
449 予め決められた
450 <a href="#sec:Service:Protocol">プロトコルが提供するサービス</a>しかサポートされませんでしたが,
451 Regnessem α10以降では
452 <a href="#sec:SimpleUI:UIService">UIサービス</a>をサポートします.
453 </section>
454
455 <section title="UIサービス" id="sec:SimpleUI:UIService">
456
457 UIサービスは Regnessem α10 で拡張された機能です.
458 UIサービスと呼ばれる特定の種類のサービスを登録することにより,
459 プロトコルモジュールやアドインモジュールが任意の機能をユーザに提供することができます.
460
461 UIサービスには<a href="#tab:UIService"/>のような種類があります.
462
463 <div style="text-align:center;">
464 <table class="wide" title="UIサービスの種類" id="tab:UIService">
465 <colgroup>
466 <col align="left"/>
467 </colgroup>
468 <colgroup>
469 <col align="left"/>
470 </colgroup>
471 <thead>
472 <tr>
473 <th>サービス名</th>
474 <th>機能</th>
475 </tr>
476 </thead>
477 <tbody>
478 <tr>
479 <td>
480 <a href="#svc:Protocol:Connection:UIService:Main">
481 Protocol/.../UIService/Main/...
482 </a>
483 </td>
484 <td>
485 当該プロトコルの機能メニューから呼び出せる機能の追加
486 </td>
487 </tr>
488 <tr>
489 <td>
490 <a href="#svc:Protocol:Connection:UIService:Member">
491 Protocol/.../UIService/Member/...
492 </a>
493 </td>
494 <td>
495 当該プロトコルのメンバリスト中のメンバを右クリックしたときのポップアップメニューから
496 呼び出せる機能の追加
497 </td>
498 </tr>
499 <tr>
500 <td>
501 <a href="#svc:Protocol:Connection:UIService:Group">
502 Protocol/.../UIService/Group/...
503 </a>
504 </td>
505 <td>
506 当該プロトコルのメンバリスト中のグループを右クリックしたときのポップアップメニューから
507 呼び出せる機能の追加
508 </td>
509 </tr>
510 <tr>
511 <td>
512 <a href="#svc:AddIn:UIService:Main">
513 AddIn/.../UIService/Main/...
514 </a>
515 </td>
516 <td>
517 メインウィンドウの機能メニューから呼び出せる機能の追加
518 </td>
519 </tr>
520 <tr>
521 <td>
522 <a href="#svc:AddIn:UIService:Member">
523 AddIn/.../UIService/Member/...
524 </a>
525 </td>
526 <td>
527 メンバリスト中のメンバを右クリックしたときのポップアップメニューから呼び出せる機能の追加.
528 プロトコルに依らず全てのメンバリストに追加されます.
529 </td>
530 </tr>
531 <tr>
532 <td>
533 <a href="#svc:AddIn:UIService:Group">
534 AddIn/.../UIService/Group/...
535 </a>
536 </td>
537 <td>
538 メンバリスト中のグループを右クリックしたときのポップアップメニューから呼び出せる機能の追加.
539 プロトコルに依らず全てのメンバリストに追加されます.
540 </td>
541 </tr>
542 <tr>
543 <td>
544 <a href="#svc:AddIn:UIService:Tab">
545 AddIn/.../UIService/Tab/...
546 </a>
547 </td>
548 <td>
549 メインウィンドウのタブを右クリックした時のポップアップメニューから呼び出せる機能の追加
550 </td>
551 </tr>
552 </tbody>
553 </table>
554 </div>
555
556 </section>
557 </chapter>
558
559 <!-- ====================================================================== -->
560 <chapter title="FileIO.dll:ファイル入出力モジュール">
561
562 <section title="機能概要">
563
564 他のモジュールに対してファイル入出力機能を提供します.
565 </section>
566
567 <section title="ファイル入出力サービス" id="sec:FileIO:Service">
568
569 ファイル入出力サービスは,FileIO.dllによって提供されるサービスで,
570 主にファイル送受信のために用いられます.
571
572 ファイル入出力サービスには<a href="#tab:FileIOService"/>のような種類があります.
573
574 <div style="text-align:center;">
575 <table class="wide" title="ファイル入出力サービスの種類" id="tab:FileIOService">
576 <colgroup>
577 <col align="left"/>
578 </colgroup>
579 <colgroup>
580 <col align="left"/>
581 </colgroup>
582 <thead>
583 <tr>
584 <th>サービス名</th>
585 <th>機能</th>
586 </tr>
587 </thead>
588 <tbody>
589 <tr>
590 <td>
591 <a href="#svc:AddIn:FileIO:Open">
592 AddIn/FileIO/Open
593 </a>
594 </td>
595 <td>
596 既存のファイルを読み込みのために開きます.
597 </td>
598 </tr>
599 <tr>
600 <td>
601 <a href="#svc:AddIn:FileIO:Create">
602 AddIn/FileIO/Create
603 </a>
604 </td>
605 <td>
606 描き込み用に新規ファイルを作成します.
607 </td>
608 </tr>
609 <tr>
610 <td>
611 <a href="#svc:AddIn:FileIO:Read">
612 AddIn/FileIO/Read
613 </a>
614 </td>
615 <td>
616 読み込み用に開いたファイルからデータを取得します.
617 </td>
618 </tr>
619 <tr>
620 <td>
621 <a href="#svc:AddIn:FileIO:Append">
622 AddIn/FileIO/Append
623 </a>
624 </td>
625 <td>
626 書き込み用に開いたファイルにデータを追加します.
627 </td>
628 </tr>
629 <tr>
630 <td>
631 <a href="#svc:AddIn:FileIO:Close">
632 AddIn/FileIO/Close
633 </a>
634 </td>
635 <td>
636 ファイルを閉じます.
637 </td>
638 </tr>
639 <tr>
640 <td>
641 <a href="#svc:AddIn:FileIO:GetInfo">
642 AddIn/FileIO/GetInfo
643 </a>
644 </td>
645 <td>
646 ファイルの情報を取得します.
647 </td>
648 </tr>
649 </tbody>
650 </table>
651 </div>
652
653 </section>
654 </chapter>
655
656 <!-- ====================================================================== -->
657 <chapter title="StrRsc.dll:文字列リソースモジュール">
658
659 <section title="機能概要">
660 ロケール(地域)に応じた文字列を取得します.
661 </section>
662
663 <section title="文字列リソースファイル" id="sec:StrRsc:ResouceFile">
664 StrRsc.dllは,各プラグインフォルダの直下に置かれた文字列リソースファイルからロケール文字列を取得します.
665 文字列リソースファイルは<a href="#prg:StrRscFile"/>のようなフォーマットで記述します.
666 具体例はSimpleUI.dll等に付属しているものを参考にしてください.
667
668 <program id="prg:StrRscFile">
669 [SectionName1]
670 MessageTag1=ResourceString1
671 MessageTag2=ResourceString2
672 [SectionName2]
673 ・・・
674 </program>
675
676 </section>
677
678 <section title="文字列リソースサービス" id="sec:StrRsc:Service">
679
680 文字列リソース管理サービスは,StrRsc.dllによって提供されるサービスで,
681 ロケールに応じた文字列リソースを取得するために利用します.
682
683 文字列リソース管理サービスには<a href="#tab:StrRscService"/>のようなものがあります.
684
685 <div style="text-align:center;">
686 <table class="wide" title="文字列リソース管理サービスの種類" id="tab:StrRscService">
687 <colgroup>
688 <col align="left"/>
689 </colgroup>
690 <colgroup>
691 <col align="left"/>
692 </colgroup>
693 <thead>
694 <tr>
695 <th>サービス名</th>
696 <th>機能</th>
697 </tr>
698 </thead>
699 <tbody>
700 <tr>
701 <td>
702 <a href="#svc:AddIn:StrRsc:GetLocalStr">
703 AddIn/StrRsc/GetLocalStr
704 </a>
705 </td>
706 <td>
707 ロケールに応じた文字列を取得します.
708 </td>
709 </tr>
710 </tbody>
711 </table>
712 </div>
713
714 </section>
715 </chapter>
716
717 <!-- ====================================================================== -->
718 <chapter title="ClientSocket.dll:クライアントソケットモジュール">
719
720 <section title="機能概要">
721 ソケット(クライアント側)接続を提供するサービスモジュールです.
722 特に意識することなく,SOCKS4/SOCKS5/HTTPプロキシを利用した接続が可能になります.
723 </section>
724
725 <section title="クライアントソケットサービス" id="sec:ClientSocket:Service">
726
727 クライアントソケットサービスは,ClientSocket.dllによって提供されるサービスで,
728 ソケット通信によるネットワーク接続をサポートします.
729
730 クライアントソケットサービスには<a href="#tab:ClientSocketService"/>のようなものがあります.
731
732 <div style="text-align:center;">
733 <table class="wide" title="クライアントソケットサービスの種類" id="tab:ClientSocketService">
734 <colgroup>
735 <col align="left"/>
736 </colgroup>
737 <colgroup>
738 <col align="left"/>
739 </colgroup>
740 <thead>
741 <tr>
742 <th>サービス名</th>
743 <th>機能</th>
744 </tr>
745 </thead>
746 <tbody>
747 <tr>
748 <td>
749 <a href="#svc:AddIn:ClientSocket:Create">
750 AdddIn/ClientSocket/Create
751 </a>
752 </td>
753 <td>
754 ソケットを作成します.
755 </td>
756 </tr>
757 <tr>
758 <td>
759 <a href="#svc:AddIn:ClientSocket:Delete">
760 AdddIn/ClientSocket/Delete
761 </a>
762 </td>
763 <td>
764 ソケットを削除します.
765 </td>
766 </tr>
767 <tr>
768 <td>
769 <a href="#svc:AddIn:ClientSocket:Open">
770 AdddIn/ClientSocket/Open
771 </a>
772 </td>
773 <td>
774 ソケットを開きます(=接続).
775 </td>
776 </tr>
777 <tr>
778 <td>
779 <a href="#svc:AddIn:ClientSocket:Close">
780 AdddIn/ClientSocket/Close
781 </a>
782 </td>
783 <td>
784 ソケットを閉じます(=切断).
785 </td>
786 </tr>
787 <tr>
788 <td>
789 <a href="#svc:AddIn:ClientSocket:GetInfo">
790 AdddIn/ClientSocket/GetInfo
791 </a>
792 </td>
793 <td>
794 ソケットから情報を取得します.
795 </td>
796 </tr>
797 <tr>
798 <td>
799 <a href="#svc:AddIn:ClientSocket:SetInfo">
800 AdddIn/ClientSocket/SetInfo
801 </a>
802 </td>
803 <td>
804 ソケットの情報を設定します.
805 </td>
806 </tr>
807 <tr>
808 <td>
809 <a href="#svc:AddIn:ClientSocket:Receive">
810 AdddIn/ClientSocket/Receive
811 </a>
812 </td>
813 <td>
814 データを受信します.
815 </td>
816 </tr>
817 <tr>
818 <td>
819 <a href="#svc:AddIn:ClientSocket:Send">
820 AdddIn/ClientSocket/Send
821 </a>
822 </td>
823 <td>
824 データを送信します.
825 </td>
826 </tr>
827 <tr>
828 <td>
829 <a href="#svc:AddIn:ClientSocket:ShowOptionDialog">
830 AdddIn/ClientSocket/ShowOptionDialog
831 </a>
832 </td>
833 <td>
834 オプションダイアログを表示します.
835 </td>
836 </tr>
837 </tbody>
838 </table>
839 </div>
840
841 </section>
842 </chapter>
843
844 </part>
845 <!-- ====================================================================== -->
846 <part title="APIリファレンス">
847
848 <chapter title="システム関数:サービスの管理" src="api/system_service.sdoc"/>
849 <chapter title="システム関数:イベントの管理" src="api/system_event.sdoc"/>
850 <chapter title="プラグインエクスポート関数" src="api/plugin_export.sdoc"/>
851
852 </part>
853
854 <!-- ====================================================================== -->
855 <part title="サービス">
856
857 <chapter title="モジュール共通" src="service/common.sdoc"/>
858 <chapter title="システムモジュール:プラグイン管理" src="service/system_plugin.sdoc"/>
859 <chapter title="システムモジュール:コネクション管理" src="service/system_connection.sdoc"/>
860 <chapter title="システムモジュール:セッション管理" src="service/system_session.sdoc"/>
861 <chapter title="システムモジュール:ファイル転送セッション管理" src="service/system_filesession.sdoc"/>
862 <chapter title="システムモジュール:UIサービス管理" src="service/system_uiservice.sdoc"/>
863 <chapter title="システムモジュール:その他" src="service/system_other.sdoc"/>
864 <chapter title="プロトコルモジュール" src="service/protocol.sdoc" id="sec:Service:Protocol"/>
865 <chapter title="アドインモジュール" src="service/addin.sdoc"/>
866 <chapter title="UIモジュール" src="service/ui.sdoc"/>
867 <chapter title="FileIOモジュール" src="service/fileio.sdoc"/>
868 <chapter title="StrRscモジュール" src="service/strrsc.sdoc"/>
869 <chapter title="ClientSocketモジュール" src="service/csock.sdoc"/>
870
871 </part>
872
873 <!-- ====================================================================== -->
874 <part title="イベント">
875
876 <chapter title="システムモジュール:全般" src="event/system.sdoc"/>
877 <chapter title="システムモジュール:コネクション関係" src="event/system_connection.sdoc"/>
878 <chapter title="システムモジュール:セッション関係" src="event/system_session.sdoc"/>
879 <chapter title="システムモジュール:ファイル転送セッション関係" src="event/system_filesession.sdoc"/>
880
881 </part>
882
883 <!-- ====================================================================== -->
884 <part title="その他の定義">
885
886 <chapter title="構造体" src="types/struct.sdoc"/>
887 <chapter title="関数型" src="types/func.sdoc"/>
888
889 </part>
890
891 </body>
892 </doc>

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