構造体

TNsmPluginInitInfo

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

typedef struct TNsmPluginInitInfo
{
    int cbSize;
    TCreateServiceProc CreateNsmService;
    TGetServiceProc GetService;
    TCallServiceProc CallService;
    TCreateEventProc CreateNsmEvent;
    TGetEventProc GetEvent;
    TNotifyEventProc NotifyEvent;
    THookEventProc HookEvent;
    TUnhookEventProc UnhookEvent;
} TNsmPluginInitInfo, *PNsmPluginInitInfo;

TNsmPluginInfo

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

typedef struct TNsmPluginInfo {
    int cbSize;
    LPCSTR lpModuleName;
    int nInfoNo;
    LPSTR lpBuffer;
    int nBufferSize;
} 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;
    LPCSTR lpAccount;
    LPCSTR lpPassword;
    int nStatus;
} 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;
    LPARAM nData;
} 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;
    LPARAM nData;
} TEnumGroupInfo, *PEnumGroupInfo;
cbSize
構造体の大きさ(bytes)
nFlags
検索条件
定義済定数 意味
0 なし 全てのグループを列挙
lpCallBackProc
コールバック関数
nData
コールバック関数に渡される任意データ

TNsmInfo

typedef struct TNsmInfo {
    int nType;
    LPVOID lpBuffer;
    int nBufferSize;
} TNsmInfo, *PNsmInfo;
nType
情報の型
定義済定数 意味
0 NMIT_STRING 文字列(多くの場合Windows-31J)
1 NMIT_WIDESTRING ワイド文字列
2 NMIT_INTEGER 符号付き32bit整数値
3 NMIT_BOOL 真偽値(unsigned char:0以外のとき真)
4 NMIT_INT64 符号付き64bit整数値
lpBuffer
情報を格納するバッファ
nBufferSize
バッファのサイズ

TNsmMemberInfo

typedef struct TNsmMemberInfo {
    int cbSize;
    int nListKind;
    LPCSTR lpAccount;
    int nInfoKey;
    PNsmInfo lpInfo;
    int nFlags;
} 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, *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;
    LPCSTR lpAccount;
} 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, *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, *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構造体へのポインタ

TNsmFileSessionInfo

typedef struct TNsmFileSessionInfo {
    int cbSize;
    int nInfoKey;
    PNsmInfo lpInfo;
} TNsmFileSessionInfo, *PNsmSessionInfo;
cbSize
構造体の大きさ(bytes)
nInfoKey
設定or取得したい情報のキー
定義済定数 情報の型 情報
1000 NMFI_SESSION NMIT_INTEGER 親セッションのハンドル
1001 NMFI_PROTOCOL NMIT_STRING プロトコル
1002 NMFI_FILENAME NMIT_STRING ファイル名
1003 NMFI_FILESIZE NMIT_INT64 ファイルサイズ
1004 NMFI_CURRENTSIZE NMIT_INT64 転送済みファイルサイズ
1005 NMFI_ISSENDER NMIT_BOOL 送信者であるかどうか
1006 NMFI_STATUS NMIT_INTEGER ステータス
定義済定数 意味
0 NMFT_OPENNING 接続試行中
1 NMFT_INVITED 招待され承諾待ち中
2 NMFT_INVITING 招待し承諾待ち中
3 NMFT_ACCEPTED 承諾した/された
4 NMFT_CANCELED キャンセルした/された
5 NMFT_NEGOTIATING 転送準備中
6 NMFT_RECEIVING 受信中
7 NMFT_SENDING 送信中
8 NMFT_TRANSFER_SUCCESS 転送終了
9 NMFT_TRANSFER_FAILED 転送失敗
lpInfo
情報を格納するTNsmInfo構造体へのポインタ

TMessageBoxInfo

typedef struct TMessageBoxInfo {
    int cbSize;
    HWND hWnd;
    LPCWSTR lpText;
    LPCWSTR lpCaption;
    unsigned int uType;
} 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;
    LPARAM nData;
} 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;
    LPCSTR lpToAccount;
} TOpenSessionInfo, *POpenSessionInfo;
cbSize
構造体の大きさ(bytes)
lpToAccount
セッションを開く相手のアカウント

TTextAttributeInfo

typedef struct TTextAttributeInfo {
    int cbSize;
    LPCWSTR lpFontName;
    int nCharSet;
    int nFontSize;
    int nFontColor;
    int nBgColor;
    int nStyles;
} 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;
    LPCSTR lpFrom;
    LPCWSTR lpBody;
    PTextAttributeInfo lpTextAttribute;
    int nFlags;
} TMessageInfo, *PMessageInfo;
cbSize
構造体の大きさ(bytes)
lpFrom
差出人アカウント(送信の場合はNULLでも良い)
lpBody
メッセージ本文
lpTextAttribute
文字属性。TTextAttributeInfo構造体へのポインタ
nFlags
予約

TUserStatusInfo

typedef struct TUserStatusInfo {
    int cbSize;
    int nStatus;
    LPCWSTR lpStatusStr;
    int nBusyness;
} 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, *PUserNameInfo;
cbSize
構造体の大きさ(bytes)
lpName
ユーザの表示名

TGroupNameInfo

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

TMemberGroupInfo

typedef struct TMemberGroupInfo {
    int cbSize;
    LPCSTR lpAccount;
    int nGroupId;
} TMemberGroupInfo, *PMemberGroupInfo;
cbSize
構造体の大きさ(bytes)
lpAccount
対象メンバのアカウント
nGroupId
グループID

TEnumUIServiceInfo

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

TNsmUIServiceInfo

typedef struct TNsmUIServiceInfo {
    int cbSize;
    int nInfoKey;
    int nGroupId;
    LPCSTR lpAccount;
    PNsmInfo lpInfo;
    int nFlags;
} 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
予約

NsmFileIOData

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

NsmFileIOInfo

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

NsmStrRsc

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

NsmClientSocketInitInfo

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

NsmClientSocketInfo

typedef struct NsmClientSocketInfo {
    int cbSize;
    int nInfoKey;
    PNsmInfo lpInfo;
} NsmClientSocketInfo, *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 プロキシの種類(読取専用)
定義済定数 情報
0 NMSOCK_PROXY_NONE プロキシ無し
1 NMSOCK_PROXY_HTTP HTTP
2 NMSOCK_PROXY_SOCKS4 SOCKS4
3 NMSOCK_PROXY_SOCKS5 SOCKS5
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 受信サイズ(読取専用)
lpInfo
情報を格納するTNsmInfo構造体へのポインタ

NsmClientSocketData

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