Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/nsmsgs/src/UNsmSystem.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 119 - (show annotations) (download) (as text)
Fri Oct 8 15:41:45 2010 UTC (13 years, 7 months ago) by kamoya
File MIME type: text/x-chdr
File size: 14088 byte(s)
avoid ARRAYSIZE macro
1 #ifndef UNSM_SYSTEM_H
2 #define UNSM_SYSTEM_H
3
4 #include "UNsmTypes.h"
5 #include "UNsmConnection.h"
6 #include "UNsmSession.h"
7 #include "UNsmPlugin.h"
8 #include "UNsmFileSession.h"
9 #include "UFrmNsmMainDebug.h"
10
11 namespace Regnessem
12 {
13 namespace System
14 {
15 class Service;
16
17 /* NSM SYSTEM モジュール */
18 // MSN7 表示メッセージ対応済み
19 // MSN7 表示アイコンにも仮対応
20 class NsmSystem
21 {
22 friend class Service;
23
24 private:
25 HNsmEvent HModulesLoaded;
26 HNsmEvent HConnectionConnect;
27 HNsmEvent HConnectionDisconnect;
28 HNsmEvent HConnectionInfoChange;
29 HNsmEvent HConnectionMembersAdd;
30 HNsmEvent HConnectionMembersRemove;
31 HNsmEvent HConnectionMembersInfoChange;
32 HNsmEvent HConnectionMembersInfoChanging;
33 HNsmEvent HConnectionGroupsAdd;
34 HNsmEvent HConnectionGroupsRemove;
35 HNsmEvent HConnectionGroupsInfoChange;
36 HNsmEvent HSessionOpen;
37 HNsmEvent HSessionClose;
38 HNsmEvent HSessionInfoChange;
39 HNsmEvent HSessionMembersAdd;
40 HNsmEvent HSessionMembersRemove;
41 HNsmEvent HSessionMembersInfoChange;
42 HNsmEvent HSessionSendMessage;
43 HNsmEvent HSessionReceiveMessage;
44 HNsmEvent HFileSessionOpen;
45 HNsmEvent HFileSessionClose;
46 HNsmEvent HFileSessionInfoChange;
47
48 void DoConnectionChange();
49 void DoSessionChange();
50 void DoFileSessionChange();
51 void DoModuleChange();
52 public:
53 NsmThreadConnectionList Connections;
54 NsmThreadSessionList Sessions;
55 NsmThreadFileSessionList FileSessions;
56 NsmPluginList Plugins;
57 //---
58 void (NsmMainDebug::*OnConnectionChange)() const;
59 void (NsmMainDebug::*OnSessionChange)() const;
60 void (NsmMainDebug::*OnModuleChange)() const;
61 void (*OnFileSessionChange)(void*); //TODO:未実装
62
63 //---
64 int Initialize();
65 int Terminate();
66 void CloseRelatedSessions(const NsmConnection* connection);
67 void CloseAllSession();
68 void CloseRelatedFileSessions(const NsmSession* session);
69 void CloseAllFileSession();
70 void DisconnectAll();
71
72 void SearchPlugin(const tstring &path);
73 };
74 extern NsmSystem g_NsmSystem;
75
76 class Service
77 {
78 private:
79 static void DoEnumService(const tstring &requiredService, const TEnumUIServiceInfo* pin);
80 static LONG_PTR DoEnumConnectionUIService(const tstring &wParam, LPARAM lParam, LPCTSTR main);
81 static LONG_PTR DoEnumAddInUIService(WPARAM /* wParam */, LPARAM lParam, LPCTSTR main);
82 public:
83
84 // -----------------------------------------------------------------------------
85
86 // wParam : 0
87 // lParam : 0
88 // Return : 0
89 static LONG_PTR __stdcall DoExit(WPARAM /* wParam */, LPARAM /* lParam */);
90
91 // wParam : LPSTR
92 // lParam : 0
93 // Return : 0
94 static LONG_PTR __stdcall DoDebugPrint(WPARAM wParam, LPARAM /* lParam */);
95
96 // wParam : TEnumProtocolCallback
97 // lParam : 任意データ
98 // Return : 0
99 static LONG_PTR __stdcall DoEnumProtocols(WPARAM wParam, LPARAM lParam);
100
101 // wParam : TEnumModuleCallback
102 // lParam : 任意データ
103 // Return : 0
104 static LONG_PTR __stdcall DoEnumModules(WPARAM wParam, LPARAM lParam);
105
106 // wParam : LPPLUGININFO
107 // lParam : 0
108 // Return : 実際に lpBuffer に書き込んだ文字数
109 static LONG_PTR __stdcall DoGetPluginInfo(WPARAM wParam, LPARAM /* lParam */);
110
111 // Connection ------------------------------------------------------------------
112
113 // wParam : LPSTR プロトコル名
114 // lParam : LPSTR 作成するコネクションのキャプション
115 // Return : 成功したら HNsmConnection 失敗したら 0 を返す
116 static LONG_PTR __stdcall DoCreateConnection(WPARAM wParam, LPARAM lParam);
117
118 // wParam : 対象 HNsmConnection
119 // lParam : 0
120 // Return : 成功したら -1 以外を返す
121 static LONG_PTR __stdcall DoDeleteConnection(WPARAM wParam, LPARAM /* lParam */);
122
123 // wParam : 対象 HNsmConnection
124 // lParam : PNsmConnectionInfo
125 // Return : 実際に書き込んだバッファサイズ
126 static LONG_PTR __stdcall DoGetConnectionInfo(WPARAM wParam, LPARAM lParam);
127
128 // wParam : 対象 HNsmConnection
129 // lParam : PNsmConnectionInfo
130 // Return : 成功したら 0 以外を返す
131 static LONG_PTR __stdcall DoSetConnectionInfo(WPARAM wParam, LPARAM lParam);
132
133 // wParam : TEnumConnectionCallback コールバック関数へのポインタ
134 // lParam : コールバック関数に渡す任意データ
135 // Return : 0
136 static LONG_PTR __stdcall DoEnumConnections(WPARAM wParam, LPARAM lParam);
137
138 // -----------------------------------------------------------------------------
139
140 // wParam : 対象 HNsmConnection
141 // lParam : PAddMemberInfo
142 // Return : 成功したら 0 以外を返す
143 static LONG_PTR __stdcall DoAddMember(WPARAM wParam, LPARAM lParam);
144
145 // wParam : 対象 HNsmConnection
146 // lParam : PRemoveMemberInfo
147 // Return : 成功したら 0 以外を返す
148 static LONG_PTR __stdcall DoRemoveMember(WPARAM wParam, LPARAM lParam);
149
150 // wParam : 対象 HNsmConnection
151 // lParam : PNsmMemberInfo
152 // Return : 成功したら 0 以外を返す
153 static LONG_PTR __stdcall DoSetMemberInfo(WPARAM wParam, LPARAM lParam);
154
155 // wParam : 対象 HNsmConnection
156 // lParam : PNsmMemberInfo
157 // Return : 実際に lpBuffer に書き込んだサイズ
158 static LONG_PTR __stdcall DoGetMemberInfo(WPARAM wParam, LPARAM lParam);
159
160 // wParam : 対象 HNsmConnection
161 // lParam : PEnumMemberInfo
162 // Return : 0
163 static LONG_PTR __stdcall DoEnumMembers(WPARAM wParam, LPARAM lParam);
164
165 static LONG_PTR __stdcall DoBeginUpdate(WPARAM /* wParam */, LPARAM /* lParam */);
166
167 static LONG_PTR __stdcall DoEndUpdate(WPARAM /* wParam */, LPARAM /* lParam */);
168
169 // Group -----------------------------------------------------------------------
170
171 // wParam : ConnectionID
172 // lParam : GroupID
173 // Return : 成功したら 0 以外を返す
174 static LONG_PTR __stdcall DoAddGroup(WPARAM wParam, LPARAM lParam);
175
176 // wParam : ConnectionID
177 // lParam : GroupID
178 // Return : 失敗したら 0 成功したら 1
179 static LONG_PTR __stdcall DoRemoveGroup(WPARAM wParam, LPARAM lParam);
180
181 // wParam : HConnection
182 // lParam : PNsmGroupInfo
183 // Return : 失敗したら 0 成功したら 1
184 static LONG_PTR __stdcall DoSetGroupInfo(WPARAM wParam, LPARAM lParam);
185
186 // wParam : ConnectionID
187 // lParam : PNsmGroupInfo
188 // Return : 設定したバイト数
189 static LONG_PTR __stdcall DoGetGroupInfo(WPARAM wParam, LPARAM lParam);
190
191 // wParam : HNsmConnection
192 // lParam : PEnumGroupInfo
193 // Return : 0
194 static LONG_PTR __stdcall DoEnumGroups(WPARAM wParam, LPARAM lParam);
195
196 // wParam : 親HNsmConnection
197 // lParam : 0
198 // Return : 0
199 static LONG_PTR __stdcall DoBeginGroupsUpdate(WPARAM /* wParam */, LPARAM /* lParam */);
200
201 // wParam : 親HNsmConnection
202 // lParam : 0
203 // Return : 0
204 static LONG_PTR __stdcall DoEndGroupsUpdate(WPARAM /* wParam */, LPARAM /* lParam */);
205
206 // Session ---------------------------------------------------------------------
207
208 // wParam : 親HNsmConnection
209 // lParam : 0
210 // Return : 成功したら HNsmSession 、失敗したら 0
211 static LONG_PTR __stdcall DoCreateSession(WPARAM wParam, LPARAM lParam);
212
213 // wParam : 削除する HNsmSession
214 // lParam : 0
215 // Return : 成功すれば -1 以外の数値
216 static LONG_PTR __stdcall DoDeleteSession(WPARAM wParam, LPARAM /* lParam */);
217
218 // wParam : 対象 HNsmSession
219 // lParam : PSessionInfo
220 // Return : 実際に lpBuffer に格納した情報のサイズ
221 static LONG_PTR __stdcall DoGetSessionInfo(WPARAM wParam, LPARAM lParam);
222
223 // wParam : 対象 HNsmSession
224 // lParam : PSessionInfo
225 // Return : 成功したら 0 以外を返す
226 static LONG_PTR __stdcall DoSetSessionInfo(WPARAM wParam, LPARAM lParam);
227
228 // wParam : コールバック関数へのポインタ
229 // lParam : コールバック関数に渡す任意データ
230 // Return : 0
231 static LONG_PTR __stdcall DoEnumSessions(WPARAM wParam, LPARAM lParam);
232
233 // wParam : セッション識別子
234 // lParam : PChar メンバのアカウント
235 // Return : 成功したら 0 以外を返す
236 static LONG_PTR __stdcall DoAddSessionMember(WPARAM wParam, LPARAM lParam);
237
238 // wParam : セッション識別子
239 // lParam : PChar メンバのアカウント
240 // Return : 成功したら 0 以外を返す
241 static LONG_PTR __stdcall DoRemoveSessionMember(WPARAM wParam, LPARAM lParam);
242
243 // wParam : SessionID
244 // lParam : PMemberInfo
245 // Return : 成功すれば 0 以外を返す
246 static LONG_PTR __stdcall DoSetSessionMemberInfo(WPARAM wParam, LPARAM lParam);
247
248 // wParam : SessionID
249 // lParam : PMemberInfo
250 // Return : 成功すれば 0 以外を返す
251 static LONG_PTR __stdcall DoGetSessionMemberInfo(WPARAM wParam, LPARAM lParam);
252
253 static LONG_PTR __stdcall DoBeginSessionMembersUpdate(WPARAM /* wParam */, LPARAM /* lParam */);
254
255 static LONG_PTR __stdcall DoEndSessionMembersUpdate(WPARAM /* wParam */, LPARAM /* lParam */);
256
257 static LONG_PTR __stdcall DoEnumSessionMembers(WPARAM wParam, LPARAM lParam);
258
259 // wParam : SessionID
260 // lParam : LPMESSAGEINFO
261 // Return : 成功すれば 0 以外を返す
262 static LONG_PTR __stdcall DoSendMessage(WPARAM wParam, LPARAM lParam);
263
264 // wParam : SessionID
265 // lParam : LPMESSAGEINFO
266 // Return : 成功すれば 0 以外を返す
267 static LONG_PTR __stdcall DoReceiveMessage(WPARAM wParam, LPARAM lParam);
268
269 // FileSession --------------------------------------------------------
270
271 // wParam : 親HNsmSession
272 // lParam : 0
273 // Return : 成功したら HNsmFileSession 、失敗したら 0
274 static LONG_PTR __stdcall DoCreateFileSession(WPARAM wParam, LPARAM lParam);
275
276 // wParam : 削除する HNsmFileSession
277 // lParam : 0
278 // Return : 成功すれば -1 以外の数値
279 static LONG_PTR __stdcall DoDeleteFileSession(WPARAM wParam, LPARAM lParam);
280
281 // wParam : 対象 HNsmFileSession
282 // lParam : PFileSessionInfo
283 // Return : 実際に lpBuffer に格納した情報のサイズ
284 static LONG_PTR __stdcall DoGetFileSessionInfo(WPARAM wParam, LPARAM lParam);
285
286 // wParam : 対象 HNsmFileSession
287 // lParam : PFileSessionInfo
288 // Return : 成功したら 0 以外を返す
289 static LONG_PTR __stdcall DoSetFileSessionInfo(WPARAM wParam, LPARAM lParam);
290
291 // wParam : コールバック関数へのポインタ
292 // lParam : コールバック関数に渡す任意データ
293 // Return : 0
294 static LONG_PTR __stdcall DoEnumFileSessions(WPARAM wParam, LPARAM lParam);
295
296 // UIService --------------------------------------------------------
297
298 // SYSTEM_CONNECTION_UISERVICE_MAIN_ENUM
299 // wParam : ConnectionID
300 // lParam : PEnumUIServiceInfo
301 // Return : 0
302 static LONG_PTR __stdcall DoEnumConnectionUIServiceMain(WPARAM wParam, LPARAM lParam);
303
304 // SYSTEM_CONNECTION_UISERVICE_MEMBER_ENUM
305 // wParam : ConnectionID
306 // lParam : PEnumUIServiceInfo
307 // Return : 0
308 static LONG_PTR __stdcall DoEnumConnectionUIServiceMember(WPARAM wParam, LPARAM lParam);
309
310 // SYSTEM_CONNECTION_UISERVICE_GROUP_ENUM
311 // wParam : ConnectionID
312 // lParam : PEnumUIServiceInfo
313 // Return : 0
314 static LONG_PTR __stdcall DoEnumConnectionUIServiceGroup(WPARAM wParam, LPARAM lParam);
315
316 // SYSTEM_SESSION_UISERVICE_MAIN_ENUM
317 // wParam : HNsmSession
318 // lParam : PEnumUIServiceInfo
319 // Return : 0
320 static LONG_PTR __stdcall DoEnumSessionUIServiceMain(WPARAM wParam, LPARAM lParam);
321
322 // SYSTEM_SESSION_UISERVICE_MEMBER_ENUM
323 // wParam : HNsmSession
324 // lParam : PEnumUIServiceInfo
325 // Return : 0
326 static LONG_PTR __stdcall DoEnumSessionUIServiceMember(WPARAM wParam, LPARAM lParam);
327
328 // SYSTEM_FILESESSION_UISERVICE_MAIN_ENUM
329 // wParam : HNsmFileSession
330 // lParam : PEnumUIServiceInfo
331 // Return : 0
332 static LONG_PTR __stdcall DoEnumFileSessionUIServiceMain(WPARAM wParam, LPARAM lParam);
333
334 //--------------------------------------------------------
335
336 // SYSTEM_ADDIN_UISERVICE_MAIN_ENUM
337 // wParam : 0
338 // lParam : PEnumUIServiceInfo
339 // Return : 0
340 static LONG_PTR __stdcall DoEnumAddInUIServiceMain(WPARAM wParam, LPARAM lParam);
341
342 // SYSTEM_ADDIN_UISERVICE_MEMBER_ENUM
343 // wParam : 0
344 // lParam : PEnumUIServiceInfo
345 // Return : 0
346 static LONG_PTR __stdcall DoEnumAddInUIServiceMember(WPARAM wParam, LPARAM lParam);
347
348 // SYSTEM_ADDIN_UISERVICE_GROUP_ENUM
349 // wParam : 0
350 // lParam : PEnumUIServiceInfo
351 // Return : 0
352 static LONG_PTR __stdcall DoEnumAddInUIServiceGroup(WPARAM wParam, LPARAM lParam);
353
354 // SYSTEM_ADDIN_UISERVICE_TAB_ENUM
355 // wParam : 0
356 // lParam : PEnumUIServiceInfo
357 // Return : 0
358 static LONG_PTR __stdcall DoEnumAddInUIServiceTab(WPARAM wParam, LPARAM lParam);
359
360 // SYSTEM_ADDIN_UISERVICE_SESSION_MAIN_ENUM
361 // wParam : 0
362 // lParam : PEnumUIServiceInfo
363 // Return : 0
364 static LONG_PTR __stdcall DoEnumAddInUIServiceSessionMain(WPARAM wParam, LPARAM lParam);
365
366 // SYSTEM_ADDIN_UISERVICE_SESSION_MEMBER_ENUM
367 // wParam : 0
368 // lParam : PEnumUIServiceInfo
369 // Return : 0
370 static LONG_PTR __stdcall DoEnumAddInUIServiceSessionMember(WPARAM wParam, LPARAM lParam);
371
372 // SYSTEM_ADDIN_UISERVICE_FILESESSION_MAIN_ENUM
373 // wParam : 0
374 // lParam : PEnumUIServiceInfo
375 // Return : 0
376 static LONG_PTR __stdcall DoEnumAddInUIServiceFileSessionMain(WPARAM wParam, LPARAM lParam);
377
378 //--------------------------------------------------------
379 // UFrmNsmMainから移動
380 //--------------------------------------------------------
381
382 // NMS_SYSTEM_MODULES_REINITIALIZE(ヘッダ未定義)処理関数
383 // プラグインの再読み込みだから無くてもいいかな。
384 // 仕様自体が動的読み込みするようにできてないし。
385 static LONG_PTR __stdcall DoReInitializePlugins(WPARAM /* wParam */, LPARAM /* lParam */);
386
387 // NMS_SYSTEM_RESTART(ヘッダ未定義)処理関数
388 // こっちは再起動関数。
389 // 独自拡張だし切ってもいいと思う。
390 static LONG_PTR __stdcall DoRestart(WPARAM /* wParam */, LPARAM /* lParam */);
391 };
392 }
393 }
394 #endif

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