windows-nt/Source/XPSP1/NT/net/rras/netsh/shell/shell.h
2020-09-26 16:20:57 +08:00

167 lines
3.2 KiB
C

/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
routing\netsh\shell\shell.h
Abstract:
Include for shell.c
Revision History:
Anand Mahalingam 7/6/98 Created
--*/
extern HANDLE g_hModule;
extern WCHAR g_pwszContext[MAX_CMD_LEN];
extern BOOL g_bInteractive;
extern BOOL g_bDone;
extern HANDLE g_hLogFile;
extern LPWSTR g_pwszRouterName;
//
// The entry in the argument list.
//
typedef struct _ARG_ENTRY
{
LIST_ENTRY le;
LPWSTR pwszArg; // Argument String
}ARG_ENTRY, *PARG_ENTRY;
//
// Macro to free memory allocated for the argument list
//
#define FREE_ARG_LIST(ple) \
{ \
PLIST_ENTRY ple1 = ple->Flink, pleTmp; \
PARG_ENTRY pae; \
\
while (ple1 != ple) \
{ \
pae = CONTAINING_RECORD(ple1, ARG_ENTRY, le); \
if (pae->pwszArg) \
HeapFree(GetProcessHeap(), 0, pae->pwszArg); \
pleTmp = ple1->Flink; \
RemoveEntryList(ple1); \
HeapFree(GetProcessHeap(), 0, pae); \
ple1 = pleTmp; \
} \
HeapFree(GetProcessHeap(), 0, ple); \
}
//
// Function Prototypes
//
DWORD
WINAPI
ExecuteHandler(
IN HANDLE hModule,
IN CMD_ENTRY *pCmdEntry,
IN OUT LPWSTR *argv,
IN DWORD dwNumMatched,
IN DWORD dwArgCount,
IN DWORD dwFlags,
IN LPCVOID pvData,
IN LPCWSTR pwszGroupName,
OUT BOOL *pbDone);
DWORD
ParseCommand(
IN PLIST_ENTRY ple,
IN BOOL bAlias
);
DWORD
ParseCommandLine(
IN LPCWSTR pwszCmdLine,
OUT PLIST_ENTRY *pple
);
DWORD
ProcessCommand(
IN LPCWSTR pwszCmdLine,
OUT BOOL *pbDone
);
DWORD
LoadScriptFile(
IN LPCWSTR pwszFileName
);
DWORD
ConvertBufferToArgList(
PLIST_ENTRY *ppleHead,
LPCWSTR pwszBuffer
);
DWORD
ConvertArgListToBuffer(
IN PLIST_ENTRY pleHead,
OUT LPWSTR pwszBuffer
);
VOID
ConvertArgArrayToBuffer(
IN DWORD dwArgCount,
IN LPCWSTR *argv,
OUT LPWSTR *ppwszBuffer
);
BOOL
IsLocalCommand(
IN LPCWSTR pwszCmd,
IN DWORD dwSkipFlags
);
extern ULONG g_ulNumUbiqCmds;
extern ULONG g_ulNumShellCmds;
extern ULONG g_ulNumGroups;
extern CMD_GROUP_ENTRY g_ShellCmdGroups[];
extern CMD_ENTRY g_ShellCmds[];
extern CMD_ENTRY g_UbiqCmds[];
BOOL
IsImmediate(
IN DWORD dwCmdFlags,
IN DWORD dwRemainingArgs
);
DWORD
SetMachine(
LPCWSTR pwszNewRouter
);
DWORD
AppendString(
IN OUT LPWSTR *ppwszBuffer,
IN LPCWSTR pwszString
);
DWORD
WINAPI
UpdateNewContext(
IN OUT LPWSTR pwszBuffer,
IN LPCWSTR pwszNewToken,
IN DWORD dwArgs
);
HRESULT WINAPI
UpdateVersionInfoGlobals(LPCWSTR pwszMachine);
extern UINT g_CIMOSType;
extern UINT g_CIMOSProductSuite;
extern WCHAR g_CIMOSVersion[MAX_PATH];
extern WCHAR g_CIMOSBuildNumber[MAX_PATH];
extern WCHAR g_CIMServicePackMajorVersion[MAX_PATH];
extern WCHAR g_CIMServicePackMinorVersion[MAX_PATH];
extern UINT g_CIMProcessorArchitecture;
extern BOOL g_CIMAttempted;
extern BOOL g_CIMSucceeded;