CMD_ENTRY構造体はヘルパー コマンドを定義します。
構文
typedef struct _CMD_ENTRY {
LPCWSTR pwszCmdToken;
PFN_HANDLE_CMD pfnCmdHandler;
DWORD dwShortCmdHelpToken;
DWORD dwCmdHlpToken;
DWORD dwFlags;
PNS_OSVERSIONCHECK pOsVersionCheck;
} CMD_ENTRY, *PCMD_ENTRY;
メンバー
pwszCmdToken
コマンドのトークン (名前)。
pfnCmdHandler
コマンドを処理する関数。 詳細については、「 FN_HANDLE_CMD」を参照してください。
dwShortCmdHelpToken
短いヘルプ メッセージ。 これは、ヘルパー DLL のリソース ファイルからのメッセージ識別子です。
dwCmdHlpToken
コマンドの後にヘルプ トークン (HELP、/?, -?,、?) のみが続いている場合に表示するメッセージ。 これは、ヘルパー DLL のリソース ファイルからのメッセージ識別子です。
dwFlags
コマンドのフラグ。 詳細については、「 Netshell フラグ」を参照してください。
pOsVersionCheck
オペレーティング システムのバージョンチェック機能です。 これは、コマンドを呼び出す前または表示する前に、ローカル コンテキストまたはリモート コンテキストで実行されているオペレーティング システムでコマンドを実行できるかどうかを判断するために使用される関数です。 詳細については、「 NS_OSVERSIONCHECK」を参照してください。
注釈
次のように、 CMD_ENTRY 構造の作成を簡略化できるマクロを使用できます。
#define CREATE_CMD_ENTRY_EX(t,f,i) {CMD_##t, f, HLP_##t, HLP_##t##_EX, i, NULL}
#define CREATE_CMD_ENTRY_EX_VER(t,f,i,v) {CMD_##t, f, HLP_##t, HLP_##t##_EX, i, v}
#define CREATE_CMD_ENTRY(t,f) {CMD_##t, f, HLP_##t, HLP_##t##_EX, CMD_FLAG_PRIVATE, NULL}
これらのマクロを使用する場合は、ヘルパー DLL で次の定数を定義する必要があります。
これらのマクロの使用例を次に示します。
#define HLP_SAMPLE_ADD_BAR 1001
#define HLP_SAMPLE_ADD_BAR_EX 1002
#define HLP_SAMPLE_DELETE_BAR 1003
#define HLP_SAMPLE_DELETE_BAR_EX 1004
#define HLP_SAMPLE_SET_GLOBAL 1005
#define HLP_SAMPLE_SET_GLOBAL_EX 1006
#define HLP_SAMPLE_SET_BAR 1007
#define HLP_SAMPLE_SET_BAR_EX 1008
#define HLP_SAMPLE_SET_FILTER 1009
#define HLP_SAMPLE_SET_FILTER_EX 1010
#define HLP_SAMPLE_SHOW_GLOBAL 1011
#define HLP_SAMPLE_SHOW_GLOBAL_EX 1012
#define HLP_SAMPLE_SHOW_BAR 1013
#define HLP_SAMPLE_SHOW_BAR_EX 1014
#define HLP_SAMPLE_SHOW_FILTER 1015
#define HLP_SAMPLE_SHOW_FILTER_EX 1016
#define CMD_SAMPLE_ADD_BAR L"add_bar"
#define CMD_SAMPLE_DELETE_BAR L"delete_bar"
#define CMD_SAMPLE_SET_GLOBAL L"set_global"
#define CMD_SAMPLE_SET_BAR L"set_bar"
#define CMD_SAMPLE_SET_FILTER L"set_filter"
#define CMD_SAMPLE_SHOW_GLOBAL L"show_global"
#define CMD_SAMPLE_SHOW_BAR L"show_bar"
#define CMD_SAMPLE_SHOW_FILTER L"show_filter"
CMD_ENTRY g_SampleAddCmdTable[] =
{
CREATE_CMD_ENTRY(SAMPLE_ADD_BAR, HandleSampleAddBar),
};
CMD_ENTRY g_SampleDeleteCmdTable[] =
{
CREATE_CMD_ENTRY(SAMPLE_DELETE_BAR, HandleSampleDeleteBar),
};
CMD_ENTRY g_SampleSetCmdTable[] =
{
CREATE_CMD_ENTRY(SAMPLE_SET_GLOBAL, HandleSampleSetGlobal),
CREATE_CMD_ENTRY_EX(SAMPLE_SET_BAR, HandleSampleSetBar, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE) ),
CREATE_CMD_ENTRY_EX_VER(SAMPLE_SET_FILTER, HandleSampleSetFilter, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE), CheckRunningOnWindowsXP),
};
CMD_ENTRY g_SampleShowCmdTable[] =
{
CREATE_CMD_ENTRY(SAMPLE_SHOW_GLOBAL, HandleSampleShowGlobal),
CREATE_CMD_ENTRY_EX(SAMPLE_SHOW_BAR, HandleSampleShowBar, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE) ),
CREATE_CMD_ENTRY_EX_VER(SAMPLE_SHOW_FILTER, HandleSampleShowFilter, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE), CheckRunningOnWindowsXP),
};
要件
| 要件 | 値 |
|---|---|
| サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
| サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
| Header | netsh.h |