15#define HUGE_HELP_BUFFER_SIZE 2048
16#define SMALL_HELP_BUFFER_SIZE 160
17#define TINY_HELP_BUFFER_SIZE 80
53 wcscat(pszBuffer, pContext->pszContextName);
57 wcscpy(pszBuffer, pContext->pszContextName);
90 pCommand = pGroup->pCommandListHead;
91 while (pCommand !=
NULL)
97 pCommand = pCommand->
pNext;
121 DWORD dwCount = 0, dwIndex;
124 DPRINT(
"PrintContext()\n");
132 pCommand = pContext->pCommandListHead;
133 while (pCommand !=
NULL)
136 pCommand = pCommand->
pNext;
140 pGroup = pContext->pGroupListHead;
141 while (pGroup !=
NULL)
144 pGroup = pGroup->
pNext;
149 while (pSubContext !=
NULL)
152 pSubContext = pSubContext->
pNext;
156 if (pHelpArray ==
NULL)
162 pCommand = pContext->pCommandListHead;
163 while (pCommand !=
NULL)
170 pCommand = pCommand->
pNext;
174 pGroup = pContext->pGroupListHead;
175 while (pGroup !=
NULL)
182 pGroup = pGroup->
pNext;
187 while (pSubContext !=
NULL)
193 pSubContext = pSubContext->
pNext;
198 for (dwIndex = 0; dwIndex < dwCount; dwIndex++)
200 switch (pHelpArray[dwIndex].
Type)
211 ConPrintf(
StdOut,
L"%-15s - Changes to the \"%s\" context.\n", pHelpArray[dwIndex].pszCommand, szBuffer);
237 DWORD dwCount, dwIndex;
239 if (pContext->pSubContextHead ==
NULL)
244 while (pSubContext !=
NULL)
247 pSubContext = pSubContext->
pNext;
251 if (pSubContextArray ==
NULL)
256 while (pSubContext !=
NULL)
258 pSubContextArray[dwIndex] = pSubContext;
260 pSubContext = pSubContext->
pNext;
266 for (dwIndex = 0; dwIndex < dwCount; dwIndex++)
285 DPRINT(
"PrintCommandHelp(%p %p %p)\n", pContext, pGroup, pCommand);
288 if (pszCommandBuffer ==
NULL)
291 wcscpy(pszCommandBuffer, pCommand->pwszCmdToken);
294 wcscat(pszCommandBuffer,
L" ");
295 wcscat(pszCommandBuffer, pGroup->pwszCmdGroupToken);
304 pCommand->dwCmdHlpToken,
327 pGroup = pContext->pGroupListHead;
328 while (pGroup !=
NULL)
335 pGroup = pGroup->
pNext;
PCONTEXT_ENTRY pRootContext
PCONTEXT_ENTRY pCurrentContext
static VOID PrintShortGroupCommands(_In_ PCONTEXT_ENTRY pContext, _In_ PCOMMAND_GROUP pGroup)
VOID PrintCommandHelp(_In_ PCONTEXT_ENTRY pContext, _In_ PCOMMAND_GROUP pGroup, _In_ PCOMMAND_ENTRY pCommand)
static int HelpCompare(_In_ const void *p1, _In_ const void *p2)
static VOID PrintSubcontexts(_In_ PCONTEXT_ENTRY pContext)
static VOID PrintCurrentContextHeader(_In_ PCONTEXT_ENTRY pContext)
struct HELP_ENTRY * PHELP_ENTRY
enum HELP_TYPE * PHELP_TYPE
static VOID GetContextFullName(_In_ PCONTEXT_ENTRY pContext, _Inout_ LPWSTR pszBuffer, _In_ DWORD cchLength)
static int SubContextCompare(_In_ const void *p1, _In_ const void *p2)
#define SMALL_HELP_BUFFER_SIZE
static VOID PrintContext(_In_ PCONTEXT_ENTRY pContext)
#define TINY_HELP_BUFFER_SIZE
VOID PrintGroupHelp(_In_ PCONTEXT_ENTRY pContext, _In_ LPWSTR pszGroupName, _In_ BOOL bRecurse)
VOID PrintContextHelp(_In_ PCONTEXT_ENTRY pContext)
#define IDS_CONTEXT_COMMANDS
#define IDS_THIS_COMMANDS
#define IDS_SUBCONTEXT_HEADER
void ConPuts(FILE *fp, LPCWSTR psz)
void ConPrintf(FILE *fp, LPCWSTR psz,...)
void ConResPrintf(FILE *fp, UINT nID,...)
#define HeapFree(x, y, z)
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
_ACRTIMP void __cdecl qsort(void *, size_t, size_t, int(__cdecl *)(const void *, const void *))
INT ConResMsgPrintfExV(IN PCON_STREAM Stream, IN HINSTANCE hInstance OPTIONAL, IN DWORD dwFlags, IN UINT uID, IN LANGID LanguageId, IN va_list *Arguments OPTIONAL)
union HELP_ENTRY::@19 Pointer
PCONTEXT_ENTRY pSubContext
DWORD dwShortCmdHelpToken
struct _COMMAND_ENTRY * pNext
struct _COMMAND_GROUP * pNext
DWORD dwShortCmdHelpToken
struct _CONTEXT_ENTRY * pSubContextHead
struct _CONTEXT_ENTRY * pNext
#define LANG_USER_DEFAULT
#define FORMAT_MESSAGE_ARGUMENT_ARRAY