プロトコルモジュール

Protocol/%proto%/Connection/Connect

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに新しいコネクション作成(IMサービスへのログイン)を要求します.このサービスが呼ばれたプロトコルモジュールは,システムモジュールのSystem/Connection/Createサービスを呼び出して実際にコネクションを作成するか,コネクションを作成できない場合は0を返します.

引数
wParam
IMサービスへのログインに必要な情報を含むTLoginInfo構造体へのポインタ.
lParam
0
戻り値
成功すればSystem/Connection/Createサービスが返すコネクションハンドル(HNsmConnection)を返します.失敗した場合は0を返します.

Protocol/%proto%/Connection/Disconnect

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに既存のコネクションの削除(IMサービスへからのログアウト)を要求します.このサービスが呼ばれたプロトコルモジュールは,システムモジュールのSystem/Connection/Deleteサービスを呼び出して既存のコネクションを削除します.

引数
wParam
切断したいコネクションのハンドル(HNsmConnection).
lParam
0
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/ChangeUserStatus

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに,既存のコネクションのユーザの状態を変更することを要求します.このサービスが呼ばれると,プロトコルモジュールはIMサーバに状態変更の要求を送信しますが,レスポンスを待つ必要はありません.実際にユーザの状態が変更されたときは,System/Connection/SetInfoサービスを呼んで情報を更新します.

引数
wParam
ユーザ状態を変更したいコネクションのハンドル(HNsmConnection).
lParam
TUserStatusInfo構造体へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/ChangeUserName

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに,既存のコネクションのユーザの表示名を変更することを要求します.このサービスが呼ばれると,プロトコルモジュールはIMサーバに表示名変更の要求を送信しますが,レスポンスを待つ必要はありません.実際にユーザの表示名が変更されたときは,System/Connection/SetInfoサービスを呼んで情報を更新します.

引数
wParam
ユーザ名を変更したいコネクションのハンドル(HNsmConnection).
lParam
TUserNameInfo構造体へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/AddMember

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに対して,既存のコネクションのメンバリストに新しいメンバを追加することを要求します.

引数
wParam
メンバを追加したいコネクションのハンドル(HNsmConnection).
lParam
TAddMemberInfo構造体へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/RemoveMember

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに,既存のコネクションのメンバリストから既存のメンバを削除することを要求します.

引数
wParam
削除したいメンバが所属するコネクションのハンドル(HNsmConnection).
lParam
TRemoveMemberInfo構造体へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/ChangeMemberGroup

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに,既存のコネクションのメンバが所属しているグループを変更することを要求します.

引数
wParam
グループを変更したいメンバが所属するコネクションのハンドル(HNsmConnection).
lParam
TMemberGroupInfo構造体へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/AddGroup

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに,既存のコネクションのメンバリストに新しいグループを追加することを要求します.

引数
wParam
グループを追加したいコネクションのハンドル(HNsmConnection).
lParam
追加したいグループの表示名を表すヌルで終わる文字列へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/RemoveGroup

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに,既存のコネクションのメンバリストから既存のグループを削除することを要求します.

引数
wParam
削除したいグループを含むコネクションのハンドル(HNsmConnection).
lParam
削除したいグループのグループID.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/ChangeGroupName

(%proto%にはプロトコル名が入ります)

当該プロトコルモジュールに,既存のコネクションのメンバリストに存在するグループの表示名を変更することを要求します.

引数
wParam
グループ名を変更したいコネクションのハンドル(HNsmConnection).
lParam
TGroupNameInfo構造体へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/OpenMail

(%proto%にはプロトコル名が入ります)

メールを開きます.通常,このサービスはUIモジュールから利用されます.

引数
wParam
コネクションハンドル(HNsmConnection).
lParam
0
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/UIService/Main/%svc%

(%proto%にはプロトコル名が,%svc%には任意のサービス名が入ります)

コネクションの固有の機能を実現するUIサービスを追加します.

引数
wParam
コネクションのハンドル(HNsmConnection).
lParam
TNsmUIServiceInfo構造体へのポインタ
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/UIService/Member/%svc%

(%proto%にはプロトコル名が,%svc%には任意のサービス名が入ります)

コネクションのメンバの操作を行うUIサービスを追加します.

引数
wParam
コネクションのハンドル(HNsmConnection).
lParam
TNsmUIServiceInfo構造体へのポインタ
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Connection/UIService/Group/%svc%

(%proto%にはプロトコル名が,%svc%には任意のサービス名が入ります.)

コネクションのメンバの操作を行うUIサービスを追加します.

引数
wParam
コネクションのハンドル(HNsmConnection).
lParam
TNsmUIServiceInfo構造体へのポインタ
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Session/Open

(%proto%にはプロトコル名が入ります)

引数
wParam
セッションを開きたいコネクションのハンドル(HNsmConnection).
lParam
TOpenSessionInfo構造体へのポインタ.
戻り値
成功すればセッションハンドル(HNsmSession)を返す.失敗した場合は0を返す.

Protocol/%proto%/Session/Close

(%proto%にはプロトコル名が入ります)

引数
wParam
閉じたいセッションのハンドル(HNsmSession).
lParam
0
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Session/InviteMember

(%proto%にはプロトコル名が入ります)

引数
wParam
メンバを招待するセッションのハンドル(HNsmSession).
lParam
招待したいメンバのアカウントを表す文字列へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Session/SendMessage

(%proto%にはプロトコル名が入ります)

引数
wParam
メッセージを送信するセッションのハンドル(HNsmSession).
lParam
TMessageInfo構造体へのポインタ.
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Session/BeginTyping

(%proto%にはプロトコル名が入ります)

ユーザが入力中になった場合に実行されるサービスです.通常は,UIモジュールから利用されます.

引数
wParam
セッションのハンドル(HNsmSession).
lParam
0
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Session/EndTyping

(%proto%にはプロトコル名が入ります)

ユーザが入力を停止した場合に実行されるサービスです.通常は,UIモジュールから利用されます.

引数
wParam
セッションのハンドル(HNsmSession).
lParam
0
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Session/UIService/Main/%svc%

(%proto%にはプロトコル名が,%svc%には任意のサービス名が入ります)

プロトコル固有の機能をセッションに実現するUIサービスを追加します.

引数
wParam
セッションのハンドル(HNsmSession).
lParam
TNsmUIServiceInfo構造体へのポインタ
戻り値
成功すれば0以外を返す.

Protocol/%proto%/Session/UIService/Member/%svc%

(%proto%にはプロトコル名が,%svc%には任意のサービス名が入ります)

セッションのメンバの操作を行うUIサービスを追加します.

引数
wParam
セッションのハンドル(HNsmSession).
lParam
TNsmUIServiceInfo構造体へのポインタ
戻り値
成功すれば0以外を返す.

Protocol/%proto%/FileSession/UIService/Main/%svc%

(%proto%にはプロトコル名が,%svc%には任意のサービス名が入ります)

プロトコル固有の機能をファイル転送セッションに実現するUIサービスを追加します.

引数
wParam
ファイル転送セッションのハンドル(HNsmFileSession).
lParam
TNsmUIServiceInfo構造体へのポインタ
戻り値
成功すれば0以外を返す.