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);
91 pCommand = pGroup->pCommandListHead;
92 while (pCommand !=
NULL)
98 pCommand = pCommand->
pNext;
122 DWORD dwCount = 0, dwIndex;
125 DPRINT(
"PrintContext()\n");
133 pCommand = pContext->pCommandListHead;
134 while (pCommand !=
NULL)
137 pCommand = pCommand->
pNext;
141 pGroup = pContext->pGroupListHead;
142 while (pGroup !=
NULL)
145 pGroup = pGroup->
pNext;
150 while (pSubContext !=
NULL)
153 pSubContext = pSubContext->
pNext;
157 if (pHelpArray ==
NULL)
163 pCommand = pContext->pCommandListHead;
164 while (pCommand !=
NULL)
171 pCommand = pCommand->
pNext;
175 pGroup = pContext->pGroupListHead;
176 while (pGroup !=
NULL)
183 pGroup = pGroup->
pNext;
188 while (pSubContext !=
NULL)
194 pSubContext = pSubContext->
pNext;
199 for (dwIndex = 0; dwIndex < dwCount; dwIndex++)
201 switch (pHelpArray[dwIndex].
Type)
212 ConPrintf(
StdOut,
L"%-15s - Changes to the \"%s\" context.\n", pHelpArray[dwIndex].pszCommand, szBuffer);
238 DWORD dwCount, dwIndex;
240 if (pContext->pSubContextHead ==
NULL)
245 while (pSubContext !=
NULL)
248 pSubContext = pSubContext->
pNext;
252 if (pSubContextArray ==
NULL)
257 while (pSubContext !=
NULL)
259 pSubContextArray[dwIndex] = pSubContext;
261 pSubContext = pSubContext->
pNext;
267 for (dwIndex = 0; dwIndex < dwCount; dwIndex++)
286 DPRINT(
"PrintCommandHelp(%p %p %p)\n", pContext, pGroup, pCommand);
289 if (pszInBuffer ==
NULL)
293 if (pszOutBuffer ==
NULL)
297 if (pszCommandBuffer ==
NULL)
300 wcscpy(pszCommandBuffer, pCommand->pwszCmdToken);
303 wcscat(pszCommandBuffer,
L" ");
304 wcscat(pszCommandBuffer, pGroup->pwszCmdGroupToken);
324 if (pszCommandBuffer)
349 pGroup = pContext->pGroupListHead;
350 while (pGroup !=
NULL)
357 pGroup = pGroup->
pNext;
void ConPuts(FILE *fp, LPCWSTR psz)
void ConPrintf(FILE *fp, LPCWSTR psz,...)
void ConResPrintf(FILE *fp, UINT nID,...)
PCONTEXT_ENTRY pRootContext
PCONTEXT_ENTRY pCurrentContext
static VOID PrintShortGroupCommands(_In_ PCONTEXT_ENTRY pContext, _In_ PCOMMAND_GROUP pGroup)
#define HUGE_HELP_BUFFER_SIZE
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 __cdecl qsort(_Inout_updates_bytes_(_NumOfElements *_SizeOfElements) void *_Base, _In_ size_t _NumOfElements, _In_ size_t _SizeOfElements, _In_ int(__cdecl *_PtFuncCompare)(const void *, const void *))
#define HeapFree(x, y, z)
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
union HELP_ENTRY::@18 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 FORMAT_MESSAGE_FROM_STRING
#define FORMAT_MESSAGE_ARGUMENT_ARRAY