|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 2000
//
// File: parserutil.h
//
// Contents: Helpful functions for manipulating and validating
// generic command line arguments
//
// History: 07-Sep-2000 JeffJon Created
//
//
//--------------------------------------------------------------------------
#ifndef _PARSERUTIL_H_
#define _PARSERUTIL_H_
//
// Common switches
//
typedef enum COMMON_COMMAND_ENUM { eCommUnicodeAll, eCommUnicodeInput, eCommUnicodeOutput,
#ifdef DBG
eCommDebug, #endif
eCommHelp, eCommServer, eCommDomain, eCommUserName, eCommPassword, eCommQuiet, eCommLast = eCommQuiet };
#define UNICODE_COMMANDS \
0,(LPWSTR)c_sz_arg1_com_unicode, \ 0,NULL, \ ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, \ (CMD_TYPE)FALSE, \ 0, NULL, \ \ 0,(LPWSTR)c_sz_arg1_com_unicodeinput, \ 0,NULL, \ ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, \ (CMD_TYPE)FALSE, \ 0, NULL, \ \ 0,(LPWSTR)c_sz_arg1_com_unicodeoutput, \ 0,NULL, \ ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, \ (CMD_TYPE)FALSE, \ 0, NULL,
#ifdef DBG
#define DEBUG_COMMAND \
0,(LPWSTR)c_sz_arg1_com_debug, \ ID_ARG2_NULL,NULL, \ ARG_TYPE_DEBUG, ARG_FLAG_OPTIONAL|ARG_FLAG_HIDDEN, \ (CMD_TYPE)0, \ 0, NULL, #else
#define DEBUG_COMMAND
#endif
#define COMMON_COMMANDS \
\ UNICODE_COMMANDS \ \ DEBUG_COMMAND \ \ 0,(LPWSTR)c_sz_arg1_com_help, \ 0,(LPWSTR)c_sz_arg2_com_help, \ ARG_TYPE_HELP, ARG_FLAG_OPTIONAL, \ (CMD_TYPE)FALSE, \ 0, NULL, \ \ 0,(LPWSTR)c_sz_arg1_com_server, \ 0,(LPWSTR)c_sz_arg2_com_server, \ ARG_TYPE_STR, ARG_FLAG_OPTIONAL, \ NULL, \ 0, NULL, \ \ 0,(LPWSTR)c_sz_arg1_com_domain, \ 0,(LPWSTR)c_sz_arg2_com_domain, \ ARG_TYPE_STR, ARG_FLAG_OPTIONAL, \ NULL, \ 0, NULL, \ \ 0,(LPWSTR)c_sz_arg1_com_username, \ 0,(LPWSTR)c_sz_arg2_com_username, \ ARG_TYPE_STR, ARG_FLAG_OPTIONAL, \ NULL, \ 0, NULL, \ \ 0,(LPWSTR)c_sz_arg1_com_password, \ 0,(LPWSTR)c_sz_arg2_com_password, \ ARG_TYPE_PASSWORD, ARG_FLAG_OPTIONAL, \ (CMD_TYPE)_T(""), \ 0, ValidateAdminPassword, \ \ 0,(LPWSTR)c_sz_arg1_com_quiet, \ ID_ARG2_NULL,NULL, \ ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, \ (CMD_TYPE)_T(""), \ 0, NULL,
HRESULT MergeArgCommand(PARG_RECORD pCommand1, PARG_RECORD pCommand2, PARG_RECORD *ppOutCommand);
DWORD GetPasswdStr(LPTSTR buf, DWORD buflen, PDWORD len); DWORD ValidateAdminPassword(PVOID pArg); DWORD ValidateUserPassword(PVOID pArg); DWORD ValidateYesNo(PVOID pArg); DWORD ValidateGroupScope(PVOID pArg); DWORD ValidateNever(PVOID pArg);
//+--------------------------------------------------------------------------
//
// Function: ParseNullSeparatedString
//
// Synopsis: Parses a '\0' separated list that ends in "\0\0" into a string
// array
//
// Arguments: [psz - IN] : '\0' separated string to be parsed
// [pszArr - OUT] : the array to receive the parsed strings
// [pnArrEntries - OUT] : the number of strings parsed from the list
//
// Returns:
//
// History: 18-Sep-2000 JeffJon Created
//
//---------------------------------------------------------------------------
void ParseNullSeparatedString(PTSTR psz, PTSTR** ppszArr, UINT* pnArrEntries);
//+--------------------------------------------------------------------------
//
// Function: ParseSemicolonSeparatedString
//
// Synopsis: Parses a ';' separated list
//
// Arguments: [psz - IN] : ';' separated string to be parsed
// [pszArr - OUT] : the array to receive the parsed strings
// [pnArrEntries - OUT] : the number of strings parsed from the list
//
// Returns:
//
// History: 14-Apr-2001 JeffJon Created
//
//---------------------------------------------------------------------------
void ParseSemicolonSeparatedString(PTSTR psz, PTSTR** ppszArr, UINT* pnArrEntries);
#endif // _PARSERUTIL_H_
|