WindowsXP-SP1/inetsrv/iis/svcs/infocomm/dcomadm/admutil/main.hxx
2020-09-30 16:53:49 +02:00

192 lines
6.6 KiB
C++

#ifndef _ADMUTIL_MAIN_HXX_
#define _ADMUTIL_MAIN_HXX_
enum ADMUTIL_COMMANDS {
COMMAND_NONE,
COMMAND_SET_CUSTOM,
COMMAND_GET_CUSTOM,
COMMAND_DEL_CUSTOM,
COMMAND_SET_PIC,
COMMAND_GET_PIC,
COMMAND_DEL_PIC,
COMMAND_SET_EXPIRES,
COMMAND_GET_EXPIRES,
COMMAND_DEL_EXPIRES,
COMMAND_SET_ACCESS,
COMMAND_GET_ACCESS,
COMMAND_DEL_ACCESS,
COMMAND_SET_AUTH,
COMMAND_GET_AUTH,
COMMAND_DEL_AUTH,
COMMAND_GET_INSTANCES,
COMMAND_SET_BINARY,
COMMAND_GET_BINARY,
COMMAND_INVALID
};
typedef struct _TABLE_ENTRY {
DWORD dwID;
LPSTR pszString;
} TABLE_ENTRY;
TABLE_ENTRY CommandTable[] = {
{COMMAND_NONE, ""},
{COMMAND_SET_CUSTOM, "SETCUSTOM"},
{COMMAND_GET_CUSTOM, "GETCUSTOM"},
{COMMAND_DEL_CUSTOM, "DELCUSTOM"},
{COMMAND_SET_PIC, "SETPIC"},
{COMMAND_GET_PIC, "GETPIC"},
{COMMAND_DEL_PIC, "DELPIC"},
{COMMAND_SET_EXPIRES, "SETEXPIRES"},
{COMMAND_GET_EXPIRES, "GETEXPIRES"},
{COMMAND_DEL_EXPIRES, "DELEXPIRES"},
{COMMAND_SET_ACCESS, "SETACCESS"},
{COMMAND_GET_ACCESS, "GETACCESS"},
{COMMAND_DEL_ACCESS, "DELACCESS"},
{COMMAND_SET_AUTH, "SETAUTH"},
{COMMAND_GET_AUTH, "GETAUTH"},
{COMMAND_DEL_AUTH, "DELAUTH"},
{COMMAND_GET_INSTANCES, "GETINSTANCES"},
{COMMAND_SET_BINARY, "SETBIN"},
{COMMAND_GET_BINARY, "GETBIN"},
{COMMAND_INVALID, ""}
};
enum ADMUTIL_PARAMS {
PARAM_NONE,
PARAM_COMMAND,
PARAM_MACHINE,
PARAM_URL,
PARAM_DWORD,
PARAM_HEADER,
PARAM_PIC,
PARAM_INSTANCE,
PARAM_FILENAME,
PARAM_MID,
PARAM_ATTR,
PARAM_IF,
PARAM_INVALID
};
TABLE_ENTRY ParamTable[] = {
{PARAM_NONE, ""},
{PARAM_COMMAND, "C:"},
{PARAM_MACHINE, "S:"},
{PARAM_URL, "U:"},
{PARAM_DWORD, "D:"},
{PARAM_HEADER, "H:"},
{PARAM_PIC, "P:"},
{PARAM_INSTANCE, "I:"},
{PARAM_FILENAME, "F:"},
{PARAM_MID, "M:"},
{PARAM_ATTR, "A:"},
{PARAM_IF, "N:"},
{PARAM_INVALID, ""}
};
enum SYNTAX_ERRORS {
SYNTAX_NO_ERROR,
SYNTAX_INVALID_COMMAND,
SYNTAX_COMMAND_REQUIRED,
SYNTAX_LETTERS_IN_DWORD,
SYNTAX_DWORD_REQUIRED,
SYNTAX_DWORD_NOT_ALLOWED,
SYNTAX_INVALID_PARAM,
SYNTAX_EXTRA_PARAM,
SYNTAX_INSTANCE_REQUIRED,
SYNTAX_INSTANCE_NOT_ALLOWED,
SYNTAX_INVALID_HEADER,
SYNTAX_HEADER_REQUIRED,
SYNTAX_HEADER_NOT_ALLOWED,
SYNTAX_INVALID_PIC,
SYNTAX_PIC_REQUIRED,
SYNTAX_PIC_NOT_ALLOWED,
SYNTAX_URL_REQUIRED,
SYNTAX_URL_NOT_ALLOWED,
SYNTAX_NO_HEADERS,
SYNTAX_MISSING_PARAM_VALUE,
SYNTAX_BAD_MACHINE_NAME,
SYNTAX_BAD_FILENAME,
SYNTAX_MISSING_FILENAME,
SYNTAX_MISSING_ID
};
#define SYNTAX_NO_ERROR_MSG "Syntax correct."
#define SYNTAX_INVALID_COMMAND_MSG "The command %s is invalid."
#define SYNTAX_COMMAND_REQUIRED_MSG "A command is required."
#define SYNTAX_LETTERS_IN_DWORD_MSG "Letters are not allows in the DWORD value %s."
#define SYNTAX_DWORD_REQUIRED_MSG "A DWORD value is required."
#define SYNTAX_DWORD_NOT_ALLOWED_MSG "A DWORD value is not allowed for this command."
#define SYNTAX_INVALID_PARAM_MSG "An invalid parameter %s was specified."
#define SYNTAX_EXTRA_PARAM_MSG "An extra parameter %s was specified."
#define SYNTAX_INSTANCE_REQUIRED_MSG "An instance is required if a URL is specified."
#define SYNTAX_INSTANCE_NOT_ALLOWED_MSG "An instance is not allowed for this command."
#define SYNTAX_INVALID_HEADER_MSG "The header %s has invalid syntax."
#define SYNTAX_HEADER_REQUIRED_MSG "At least one header is required."
#define SYNTAX_HEADER_NOT_ALLOWED_MSG "No Header is allowed for this command."
#define SYNTAX_INVALID_PIC_MSG "The Pic %s has invalid syntax."
#define SYNTAX_PIC_REQUIRED_MSG "A Pic is required."
#define SYNTAX_PIC_NOT_ALLOWED_MSG "No Pic is allowed for this command."
#define SYNTAX_URL_REQUIRED_MSG "A URL is required."
#define SYNTAX_URL_NOT_ALLOWED_MSG "A URL is not allowed for this command."
#define SYNTAX_MISSING_PARAM_VALUE_MSG "The parameter %s requires a value."
#define SYNTAX_BAD_MACHINE_NAME_MSG "The server name is invalid."
#define SYNTAX_BAD_FILENAME_MSG "Can't access file %s"
#define SYNTAX_MISSING_FILENAME_MSG "Must specify a filename for this command"
#define SYNTAX_MISSING_ID_MSG "Must specify a metadata identifier for this command"
TABLE_ENTRY SyntaxTable[] = {
{SYNTAX_NO_ERROR, SYNTAX_NO_ERROR_MSG},
{SYNTAX_INVALID_COMMAND, SYNTAX_INVALID_COMMAND_MSG},
{SYNTAX_COMMAND_REQUIRED, SYNTAX_COMMAND_REQUIRED_MSG},
{SYNTAX_LETTERS_IN_DWORD, SYNTAX_LETTERS_IN_DWORD_MSG},
{SYNTAX_DWORD_REQUIRED, SYNTAX_DWORD_REQUIRED_MSG},
{SYNTAX_DWORD_NOT_ALLOWED, SYNTAX_DWORD_NOT_ALLOWED_MSG},
{SYNTAX_INVALID_PARAM, SYNTAX_INVALID_PARAM_MSG},
{SYNTAX_EXTRA_PARAM, SYNTAX_EXTRA_PARAM_MSG},
{SYNTAX_INSTANCE_REQUIRED, SYNTAX_INSTANCE_REQUIRED_MSG},
{SYNTAX_INSTANCE_NOT_ALLOWED, SYNTAX_INSTANCE_NOT_ALLOWED_MSG},
{SYNTAX_INVALID_HEADER, SYNTAX_INVALID_HEADER_MSG},
{SYNTAX_HEADER_REQUIRED, SYNTAX_HEADER_REQUIRED_MSG},
{SYNTAX_HEADER_NOT_ALLOWED, SYNTAX_HEADER_NOT_ALLOWED_MSG},
{SYNTAX_INVALID_PIC, SYNTAX_INVALID_PIC_MSG},
{SYNTAX_PIC_REQUIRED, SYNTAX_PIC_REQUIRED_MSG},
{SYNTAX_PIC_NOT_ALLOWED, SYNTAX_PIC_NOT_ALLOWED_MSG},
{SYNTAX_URL_REQUIRED, SYNTAX_URL_REQUIRED_MSG},
{SYNTAX_URL_NOT_ALLOWED, SYNTAX_URL_NOT_ALLOWED_MSG},
{SYNTAX_MISSING_PARAM_VALUE, SYNTAX_MISSING_PARAM_VALUE_MSG},
{SYNTAX_BAD_MACHINE_NAME, SYNTAX_BAD_MACHINE_NAME_MSG},
{SYNTAX_BAD_FILENAME, SYNTAX_BAD_FILENAME_MSG},
{SYNTAX_MISSING_FILENAME, SYNTAX_MISSING_FILENAME_MSG},
{SYNTAX_MISSING_ID, SYNTAX_MISSING_ID_MSG},
};
#define WWW_PATH "/LM/W3SVC/"
ADMUTIL_PARAMS
ArgToParam(LPSTR pszParam, LPSTR &rpszParamValue);
ADMUTIL_COMMANDS
CheckCommand(LPSTR pszCommand);
SYNTAX_ERRORS
CheckNumber(LPSTR pszParamValue);
SYNTAX_ERRORS
CheckHeaderSyntax(LPSTR pszParamValue);
VOID
PrintSyntaxError(SYNTAX_ERRORS seSyntax, LPSTR pszBadParam);
VOID
PrintUsage();
VOID
PrintResults(HRESULT hRes, LPSTR pszFailedAPI);
VOID
PrintUsage();
#endif