構造体

TNsmPluginInitInfo

Initialize関数で利用され,システム関数のポインタをプラグインに渡すために利用されます.

typedef struct _TNsmPluginInitInfo {
    Integer cbSize;
    TCreateServiceProc CreateService;
    TGetServiceProc GetService;
    TCallServiceProc CallService;
    TCreateEventProc CreateEvent;
    TGetEventProc GetEvent;
    TNotifyEventProc NotifyEvent;
    THookEventProc HookEvent;
    TUnhookEventProc UnhookEvent;
} TNsmPluginInitInfo;
typedef TNsmPluginInitInfo *PNsmPluginInitInfo;

TNsmPluginInfo

System/GetPluginInfoサービスで利用されます.

typedef struct _TNsmPluginInfo {
    int cbSize;
    LPCTSTR lpModuleName;
    int nInfoNo;
    LPTSTR lpBuffer;
    int nBufferSize;
} TNsmPluginInfo;
typedef TNsmPluginInfo *PNsmPluginInfo;
cbSize
構造体の大きさ(bytes)
lpModuleName
情報を取得したいプラグインのモジュール名
nInfoNo
取得する情報番号
nInfoNo (定義済定数) 意味
0 NMPI_APIVER プラグインAPIのバージョン(現行="2.3")
1 NMPI_MODULENAME モジュール名
2 NMPI_TITLE プラグインの名前(任意)
3 NMPI_DESCRIPTION プラグインの簡単な説明(任意)
4 NMPI_AUTHOR 作者名(任意)
5 NMPI_COPYRIGHT 著作権表示(任意)
6 NMPI_PLUGINVER プラグインのバージョン(任意)
lpBuffer
プラグイン情報を表す文字列を格納するバッファ
nSize
バッファの大きさ(bytes)

TLogInInfo

typedef struct _TLogInInfo {
    int cbSize;
    LPCTSTR lpAccount;
    LPCTSTR lpPassword;
    int nStatus;
} TLogInInfo;
typedef TLogInInfo *PLogInInfo;
cbSize
構造体の大きさ(bytes)
lpAccount
アカウント
lpPassword
パスワード
nStatus
ユーザの初期状態
(定義済定数) 意味
0 NMST_OFFLINE オフライン
1 NMST_ONLINE オンライン
2 NMST_BUSY 取り込み中
3 NMST_IDLE アイドル
4 NMST_BERIGHTBACK 一時退席
5 NMST_AWAY 退席中
6 NMST_ONTHEPHONE 電話中
7 NMST_OUTTOLUNCH 昼休み
8 NMST_HIDDEN 不可視
1000 NMST_CUSTOM カスタム

TEnumMemberInfo

typedef struct _TEnumMemberInfo {
    int cbSize;
    int nListKind;
    int nFlags;
    TEnumMemberCallback lpCallBackProc;
    int nData;
} TEnumMemberInfo;
typedef TEnumMemberInfo *PEnumMemberInfo;
cbSize
構造体の大きさ(bytes)
nListKind
メンバリストの種類
(定義済定数) 意味
0 NMLK_FORWARDLIST コンタクトリスト
1 NMLK_REVERSELIST 対向リスト
2 NMLK_ALLOWLIST 許可リスト
3 NMLK_BLOCKLIST 禁止リスト
nFlags
検索条件
(定義済定数) 意味
0 なし リストに含まれる全てのメンバを列挙
lpCallBackProc
コールバック関数
nData
コールバック関数に渡される任意データ

TEnumGroupInfo

typedef struct _TEnumGroupInfo {
    int cbSize;
    int nFlags;
    TEnumGroupCallback lpCallBackProc;
    int nData;
} TEnumGroupInfo;
typedef TEnumGroupInfo *PEnumGroupInfo;
cbSize
構造体の大きさ(bytes)
nFlags
検索条件
(定義済定数) 意味
0 なし 全てのグループを列挙
lpCallBackProc
コールバック関数
nData
コールバック関数に渡される任意データ

TNsmInfo

typedef struct _TNsmInfo {
    int nType;
    LPBYTE lpBuffer;
    int nBufferSize;
} TNsmInfo;
typedef TNsmInfo *PNsmInfo;
nType
情報の型
(定義済定数) 意味
0 NMIT_STRING ShiftJISコード文字列
1 NMIT_WIDESTRING Unicode文字列
2 NMIT_INTEGER 符号付き32bit整数値
3 NMIT_BOOL 真偽値(unsigned char)
lpBuffer
情報を格納するバッファ
nBufferSize
バッファのサイズ

TNsmMemberInfo

typedef struct _TNsmMemberInfo {
    int cbSize;
    int nListKind;
    LPCTSTR lpAccount;
    int nInfoKey;
    PNsmInfo lpInfo;
    int nFlags;
} TNsmMemberInfo;
typedef TNsmMemberInfo *PNsmMemberInfo;
cbSize
構造体の大きさ(bytes)
nListKind
メンバリストの種類
(定義済定数) 意味
0 NMLK_FORWARDLIST コンタクトリスト
1 NMLK_REVERSELIST 対向リスト
2 NMLK_ALLOWLIST 許可リスト
3 NMLK_BLOCKLIST 禁止リスト
lpAccount
情報を設定or取得したいメンバのアカウント
nInfoKey
設定or取得したい情報のキー
(定義済定数) 情報の型 情報
1000 NMMI_ACCOUNT NMIT_STRING アカウント(読み出し専用)
1001 NMMI_NAME NMIT_WIDESTRING 表示名
1002 NMMI_STATUS NMIT_INTEGER 状態
意味
NMST_OFFLINE オフライン
NMST_ONLINE オンライン
NMST_BUSY 取り込み中
NMST_IDLE アイドル
NMST_BERIGHTBACK 一時退席
NMST_AWAY 退席中
NMST_ONTHEPHONE 電話中
NMST_OUTTOLUNCH 昼休み
NMST_HIDDEN 不可視
NMST_CUSTOM カスタム
1003 NMMI_STATUSSTRING NMIT_WIDESTRING 状態を表す文字列
1004 NMMI_BUSYNESS NMIT_INTEGER 忙しさ(0〜100)
1005 NMMI_GROUPID NMIT_INTEGER 所属するグループID
1006 NMMI_HINT NMIT_WIDESTRING ヒント文字列
1008 NMMI_TYPING NMIT_BOOL タイピング中か(真)そうでないか(偽)
lpInfo
情報を格納するTNsmInfo構造体へのポインタ
nFlags
オプション.これらのうち複数を指定することができる.
(定義済定数) 意味
2 NMIF_INITLIST リスト初期値設定フラグ
4 NMIF_NOCHANGEEVENT OnInfoChangeイベントを発生させない

TNsmGroupInfo

typedef struct _TNsmGroupInfo {
    int cbSize;
    int nGroupId;
    int nInfoKey;
    PNsmInfo lpInfo;
    int nFlags;
} TNsmGroupInfo;
typedef TNsmGroupInfo *PNsmGroupInfo;
cbSize
構造体の大きさ(bytes)
nGroupId
情報を設定or取得したいグループのID
nInfoKey
設定or取得したい情報のキー
(定義済定数) 情報の型 情報
1000 NMGI_ID NMIT_INTEGER グループID(読み出し専用)
1001 NMGI_NAME NMIT_WIDESTRING 表示名
1002 NMGI_EXPANDED NMIT_BOOL グループの展開状態
lpInfo
情報を格納するTNsmInfo構造体へのポインタ
nFlags
オプション.これらのうち複数を指定することができる.
(定義済定数) 意味
2 NMIF_INITLIST リスト初期値設定フラグ
4 NMIF_NOCHANGEEVENT OnInfoChangeイベントを発生させない

TAddMemberInfo

typedef struct _TAddMemberInfo {
    int cbSize;
    int nListKind;
    LPCTSTR lpAccount;
} TAddMemberInfo;
typedef TAddMemberInfo *PAddMemberInfo;
typedef TAddMemberInfo TRemoveMemberInfo;
typedef TAddMemberInfo *PRemoveMemberInfo;
cbSize
構造体の大きさ(bytes)
nListKind
メンバを追加するメンバリストの種類
(定義済定数) 意味
0 NMLK_FORWARDLIST コンタクトリスト
1 NMLK_REVERSELIST 対向リスト
2 NMLK_ALLOWLIST 許可リスト
3 NMLK_BLOCKLIST 禁止リスト
lpAccount
追加したいメンバのアカウント

TNsmConnectionInfo

typedef struct _TNsmConnectionInfo {
    int cbSize;
    int nInfoKey;
    PNsmInfo lpInfo;
} TNsmConnectionInfo;
typedef TNsmConnectionInfo *PNsmConnectionInfo;
cbSize
構造体の大きさ(bytes)
nInfoKey
設定or取得したい情報のキー
(定義済定数) 情報の型 情報
1000 NMCI_USER_ACCOUNT NMIT_STRING ユーザのアカウント(読み出し専用)
1001 NMCI_USER_NAME NMIT_WIDESTRING ユーザの表示名
1002 NMCI_USER_STATUS NMIT_INTEGER ユーザの状態
意味
NMST_OFFLINE オフライン
NMST_ONLINE オンライン
NMST_BUSY 取り込み中
NMST_IDLE アイドル
NMST_BERIGHTBACK 一時退席
NMST_AWAY 退席中
NMST_ONTHEPHONE 電話中
NMST_OUTTOLUNCH 昼休み
NMST_HIDDEN 不可視
NMST_CUSTOM カスタム
1003 NMCI_USER_STATUSSTRING NMIT_WIDESTRING ユーザの状態を表す文字列
1004 NMCI_USER_BUSYNESS NMIT_INTEGER ユーザの忙しさ(0〜100)
1007 NMCI_USER_MAILSTATUS NMIT_INTEGER ユーザの未読メイル数
2000 NMCI_PROTOCOL NMIT_STRING プロトコル名(読み出し専用)
2001 NMCI_CAPTION NMIT_WIDESTRING キャプション
2002 NMCI_STATUS NMIT_INTEGER 接続状態
(定義済定数) 意味
0 NMCS_DISCONNECTED 未接続
1 NMCS_CONNECTED 接続
2 NMCS_CONNECTING 接続中
3 NMCS_DISCONNECTING 切断中
lpInfo
情報を格納するTNsmInfo構造体へのポインタ

TNsmSessionInfo

typedef struct _TNsmSessionInfo {
    int cbSize;
    int nInfoKey;
    PNsmInfo lpInfo;
} TNsmSessionInfo;
typedef TNsmSessionInfo *PNsmSessionInfo;
cbSize
構造体の大きさ(bytes)
nInfoKey
設定or取得したい情報のキー
(定義済定数) 情報の型 情報
1000 NMSI_CAPTION NMIT_WIDESTRING キャプション
1001 NMSI_STATUS NMIT_INTEGER 接続状態
(定義済定数) 意味
0 NMCS_DISCONNECTED 未接続
1 NMCS_CONNECTED 接続
2 NMCS_CONNECTING 接続中
3 NMCS_DISCONNECTING 切断中
1002 NMSI_CONNECTION NMIT_INTEGER 親コネクションのハンドル
1003 NMSI_PROTOCOL NMIT_STRING プロトコル名(読み出し専用)
lpInfo
情報を格納するTNsmInfo構造体へのポインタ

TMessageBoxInfo

typedef struct _TMessageBoxInfo {
    int cbSize;
    HWND hWnd;
    LPCWSTR lpText;
    LPCWSTR lpCaption;
    DWORD uType;
} TMessageBoxInfo;
typedef TMessageBoxInfo *PMessageBoxInfo;
cbSize
構造体の大きさ(bytes)
hWnd
親ウィンドウのハンドル(0の場合は自動設定)
lpText
メッセージボックスに表示する文字列
lpCaption
メッセージボックスのタイトルバーに表示する文字列
uType
MBフラグ(MB_OK,MB_OKCANCEL,MB_YESNOなど)

TNotifyInfo

typedef struct _TNotifyInfo {
    int cbSize;
    LPCWSTR lpText;
    int nTimeToLive;
    int nIcon;
    LPCWSTR lpLinkTo;
    TNotifyClickCallback lpOnClick;
    int nData;
} TNotifyInfo;
typedef TNotifyInfo *PNotifyInfo;
cbSize
構造体の大きさ(bytes)
lpText
表示する文字列
nTimeToLive
有効表示時間(秒,0=ずっと表示,-1=デフォルト値)
nIcon
表示するアイコンの種類
(定義済定数) 意味
0 NMNI_EXCLAMATION 警告
1 NMNI_STOP エラー
2 NMNI_INFORMATION 情報
3 NMNI_QUESTION 問い合わせ
4 NMNI_MESSAGE メッセージ着信
5 NMNI_MAIL メール着信
6 NMNI_FILE ファイル着信
7 NMNI_CONNECT 接続
8 NMNI_DISCONNECT 切断
9 NMNI_ONLINE メンバオンライン
10 NMNI_OFFLINE メンバオフライン
11 NMNI_BUSY メンバビジー
lpLinkTo
クリックしたときに開くURL(省略できません.設定しない場合は長さ0の文字列を指定)
lpOnClick
クリックしたときに呼ばれるコールバック関数(省略できません)
nData
コールバック関数に渡す任意データ

TOpenSessionInfo

typedef struct _TOpenSessionInfo {
    int cbSize;
    LPCTSTR lpToAccount;
} TOpenSessionInfo;
typedef TOpenSessionInfo *POpenSessionInfo;
cbSize
構造体の大きさ(bytes)
lpToAccount
セッションを開く相手のアカウント

TTextAttributeInfo

typedef struct _TTextAttributeInfo {
    int cbSize;
    LPCWSTR lpFontName;
    int nCharSet;
    int nFontSize;
    int nFontColor;
    int nBgColor;
    int nStyles;
} TTextAttributeInfo;
typedef TTextAttributeInfo *PTextAttributeInfo;
cbSize
構造体の大きさ(bytes)
lpFontName
フォント名
nCharSet
キャラクタセット.wingdi.hに定義されているXXX_CHARSETの値で指定します.SHIFTJIS_CHARSET = 128
nFontSize
文字サイズ(ポイント)
nFontColor
文字色を0x000000(黒)〜0xFFFFFF(白)で指定
nBgColor
背景色を0x000000(黒)〜0xFFFFFF(白)で指定
nStyles
書式フラグ
(定義済定数) 意味
2 NMFS_BOLD 太字
4 NMFS_ITALIC 斜体
8 NMFS_UNDERLINE 下線
16 NMFS_STRIKEOUT 取消線

TMessageInfo

typedef struct _TMessageInfo {
    int cbSize;
    LPCTSTR lpFrom;
    LPCWSTR lpBody;
    PTextAttributeInfo lpTextAttribute;
    int nFlags;
} TMessageInfo;
typedef TMessageInfo *PMessageInfo;
cbSize
構造体の大きさ(bytes)
lpFrom
差出人アカウント(送信の場合はNULLでも良い)
lpBody
メッセージ本文
lpTextAttribute
文字属性.TTextAttributeInfo構造体へのポインタ
nFlags
予約

TUserStatusInfo

typedef struct _TUserStatusInfo {
    int cbSize;
    int nStatus;
    LPCWSTR lpStatusStr;
    int nBusyness;
} TUserStatusInfo;
typedef TUserStatusInfo *PUserStatusInfo;
cbSize
構造体の大きさ(bytes)
nStatus
状態
(定義済定数) 意味
0 NMST_OFFLINE オフライン
1 NMST_ONLINE オンライン
2 NMST_BUSY 取り込み中
3 NMST_IDLE アイドル
4 NMST_BERIGHTBACK 一時退席
5 NMST_AWAY 退席中
6 NMST_ONTHEPHONE 電話中
7 NMST_OUTTOLUNCH 昼休み
8 NMST_HIDDEN 不可視
1000 NMST_CUSTOM カスタム
lpStatusStr
状態を表す文字列(nStatusがNMST_CUSTOMの時のみ有効)
nBussyness
忙しさ(nStatusがNMST_CUSTOMの時のみ有効)

TUserNameInfo

typedef struct _TUserNameInfo {
    int cbSize;
    LPCWSTR lpName;
} TUserNameInfo;
typedef TUserNameInfo *PUserNameInfo;
cbSize
構造体の大きさ(bytes)
lpName
ユーザの表示名

TGroupNameInfo

typedef struct _TGroupNameInfo {
    int cbSize;
    int nGroupId;
    LPCWSTR lpName;
} TGroupNameInfo;
typedef TGroupNameInfo *PGroupNameInfo;
cbSize
構造体の大きさ(bytes)
nGroupId
グループID
lpName
グループの新しい名前

TMemberGroupInfo

typedef struct _TMemberGroupInfo {
    Integer cbSize;                      // 構造体のサイズ
    LPCTSTR lpAccount;                   // 対象メンバアカウント
    Integer nGroupId;                    // 新しいグループID
} TMemberGroupInfo;
typedef TMemberGroupInfo *PMemberGroupInfo;
cbSize
構造体の大きさ(bytes)
lpAccount
対象メンバのアカウント
nGroupId
グループID

TEnumUIServiceInfo

typedef struct  _TEnumUIServiceInfo {
    int cbSize;
    TEnumUIServiceCallback lpCallBackProc;
    int nData;
    int nFlags;
} TEnumUIServiceInfo;
typedef TEnumUIServiceInfo *PEnumUIServiceInfo;
cbSize
構造体の大きさ(bytes)
lpCallBackProc
TEnumUIServiceCallback関数へのポインタ
nData
コールバック関数に渡す任意データ
nFlags
予約

TNsmUIServiceInfo

typedef struct _TNsmUIServiceInfo {
    int cbSize;
    int nInfoKey;
    int nGroupId;
    LPCTSTR lpAccount;
    PNsmInfo lpInfo;
    int nFlags;
} TNsmUIServiceInfo;
typedef TNsmUIServiceInfo *PNsmUIServiceInfo;
cbSize
構造体の大きさ(bytes)
nInfoKey
UIサービスの呼び出し理由
(定義済定数) 意味
0 NMUI_GETCAPTION UIサービスメニューに表示する項目の取得
1 NMUI_ONCLICK UIサービスメニューが選択された
nGroupId
UIサービスメニュー適用対象グループID
lpAccount
UIサービスメニュー適用対象メンバアカウント.グループメニュー選択の場合はNULLが入ります.
lpInfo
nInfoKey = NMUI_GETCAPTIONの場合,lpBufferにメモリが確保されているので,ここにメニューに表示する項目名を格納する.
nFlags
予約

TNsmFileIOData

typedef struct _TNsmFileIOData {
    int cbSize;
    int nDataLen;
    LPBYTE lpData;
} TNsmFileIOData;
typedef TNsmFileIOData *PNsmFileIOData;
cbSize
構造体の大きさ(bytes)
nDataLen
バッファサイズ
lpData
データを読み込むバッファ(サービスを呼び出す前に確保しておいて下さい)

TNsmFileIOInfo

typedef struct _TNsmFileIOInfo {
    int cbSize;
    int nFileSize;
} TNsmFileIOInfo
typedef TNsmFileIOInfo *PNsmFileIOInfo;
cbSize
構造体の大きさ(bytes)
nFileSize
ファイルサイズ

TNsmStrRsc

typedef struct _TNsmStrRsc {
    int cbSize;
    LPCTSTR lpPluginName;
    LPCTSTR lpSectionName;
    LPCTSTR lpMessageTag;
    LPCTSTR lpDefaultStr;
    int nBufferSize;
    LPBYTE lpBuffer;
} TNsmStrRsc
typedef TNsmStrRsc *PNsmStrRsc;
cbSize
構造体の大きさ(bytes)
lpPluginName
プラグイン名.プラグインフォルダ下,ここで指定されたプラグイン名のフォルダ内から文字列リソースファイルが検索されます.
lpSectionName
セクション名.文字列リソースファイルの指定されたセクションから文字列を検索します.
lpMessageTag
文字列タグ.文字列リソースファイルから文字列タグに対応するロケール文字列を検索します.
lpDefaultStr
デフォルト文字列.文字列タグに対応するロケール文字列が見つからない場合,デフォルト文字列をバッファに設定します.
nBufferSize
バッファサイズ
lpBuffer
変換後の文字列を代入するバッファ(サービスを呼び出す前に確保しておいて下さい)

TNsmClientSocketInitInfo

typedef struct _TNsmClientSocketInitInfo {
    int cbSize;
    void *Data;
    TNsmSocketFunc lpOnConnect;
    TNsmSocketFunc lpOnConnecting;
    TNsmSocketFunc lpOnDisconnect;
    TNsmSocketFunc lpOnLookup;
    TNsmSocketFunc lpOnRead;
    TNsmSocketFunc lpOnWrite;
    TNsmSocketErrFunc lpOnError;
} TNsmClientSocketInitInfo;
typedef TNsmClientSocketInitInfo *PNsmClientSocketInitInfo;
cbSize
構造体の大きさ(bytes)
Data
コールバック関数に渡すデータを指定します.
lpOnConnect
TNsmSocketFunc型.ソケット接続完了時に呼び出されるコールバック関数を指定します.
lpOnConnecting
TNsmSocketFunc型.ソケット接続開始時に呼び出されるコールバック関数を指定します.
lpOnDisconnect
TNsmSocketFunc型.ソケット接続切断時に呼び出されるコールバック関数を指定します.
lpOnLookup
TNsmSocketFunc型.接続先ホストのlookup実行時に呼び出されるコールバック関数を指定します.
lpOnRead
TNsmSocketFunc型.ソケットに呼び出し可能なデータがある場合に呼び出されるコールバック関数を指定します.
lpOnWrite
TNsmSocketFunc型.ソケットに書き込みが必要な状態になった場合に呼び出されるコールバック関数を指定します.
lpOnError
TNsmSocketErrFunc型.ソケットにエラーが発生した場合に呼び出されるコールバック関数を指定します.

TNsmClientSocketInfo

typedef struct _TNsmClientSocketInfo {
    int cbSize;
    int nInfoKey;
    PNsmInfo lpInfo;
} TNsmClientSocketInfo;
typedef TNsmClientSocketInfo *PNsmClientSocketInfo;
cbSize
構造体の大きさ(bytes)
nInfoKey

設定or取得したい情報のキー

(定義済定数) 情報の型 情報
0 NMSOCK_INFO_HOST NMIT_STRING 接続先ホスト名
1 NMSOCK_INFO_ADDRESS NMIT_STRING 接続先アドレス
2 NMSOCK_INFO_PORT NMIT_INTEGER 接続先ポート番号
3 NMSOCK_INFO_PROXYTYPE NMIT_INTEGER プロキシの種類(読取専用)
4 NMSOCK_INFO_PROXYHOST NMIT_STRING プロキシホスト名(読取専用)
5 NMSOCK_INFO_PROXYADDRESS NMIT_STRING プロキシアドレス(読取専用)
6 NMSOCK_INFO_PROXYPORT NMIT_INTEGER プロキシポート番号(読取専用)
7 NMSOCK_INFO_PROXYACCOUNT NMIT_STRING プロキシアカウント(読取専用)
8 NMSOCK_INFO_PROXYPASSWORD NMIT_STRING プロキシパスワード(読取専用)
9 NMSOCK_INFO_REMOTEADDRESS NMIT_STRING リモートアドレス(読取専用)
10 NMSOCK_INFO_REMOTEPORT NMIT_INTEGER リモートポート(読取専用)
11 NMSOCK_INFO_LOCALADDRESS NMIT_STRING ローカルアドレス(読取専用)
12 NMSOCK_INFO_LOCALPORT NMIT_INTEGER ローカルポート(読取専用)
13 NMSOCK_INFO_RECEIVE_LENGTH NMIT_INTEGER 受信サイズ(読取専用)

NMSOCK_INFO_PROXYTYPEに設定される値

(定義済定数) 情報
0 NMSOCK_PROXY_NONE プロキシ無し
1 NMSOCK_PROXY_HTTP HTTPプロキシ
2 NMSOCK_PROXY_SOCKS4 SOCKS4プロキシ
3 NMSOCK_PROXY_SOCKS5 SOCKS5プロキシ
lpInfo
情報を格納するTNsmInfo構造体へのポインタ

TNsmClientSocketData

typedef struct _TNsmClientSocketData {
    int cbSize;
    int nLength;
    LPBYTE lpBuffer;
} TNsmClientSocketData;
typedef TNsmClientSocketData *PNsmClientSocketData;
cbSize
構造体の大きさ(bytes)
nLength
バッファサイズ
lpBuffer
読み書きするデータを納めるバッファ