/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS net command * FILE: base/applications/network/net/cmdHelpMsg.c * PURPOSE: * * PROGRAMMERS: Aleksandar Andrejevic */ #include "net.h" #include INT cmdHelpMsg(INT argc, WCHAR **argv) { WCHAR szBuffer[MAX_PATH]; HMODULE hMsgDll = NULL; INT i; LONG errNum; PWSTR endptr; PWSTR pBuffer; PWSTR pInserts[10] = {L"***", L"***", L"***", L"***", L"***", L"***", L"***", L"***", L"***", NULL}; if (argc < 3) { ConResPuts(StdOut, IDS_GENERIC_SYNTAX); ConResPuts(StdOut, IDS_HELPMSG_SYNTAX); return 1; } for (i = 2; i < argc; i++) { if (_wcsicmp(argv[i], L"/help") == 0) { ConResPuts(StdOut, IDS_GENERIC_SYNTAX); ConResPuts(StdOut, IDS_HELPMSG_SYNTAX); ConResPuts(StdOut, IDS_HELPMSG_HELP_1); ConResPuts(StdOut, IDS_HELPMSG_HELP_2); return 1; } } errNum = wcstol(argv[2], &endptr, 10); if (*endptr != 0) { ConResPuts(StdOut, IDS_GENERIC_SYNTAX); ConResPuts(StdOut, IDS_HELPMSG_SYNTAX); return 1; } if (errNum >= MIN_LANMAN_MESSAGE_ID && errNum <= MAX_LANMAN_MESSAGE_ID) { /* Load netmsg.dll */ GetSystemDirectoryW(szBuffer, ARRAYSIZE(szBuffer)); wcscat(szBuffer, L"\\netmsg.dll"); hMsgDll = LoadLibrary(szBuffer); if (hMsgDll == NULL) { ConPrintf(StdOut, L"Failed to load netmsg.dll\n"); return 0; } FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ARGUMENT_ARRAY, hMsgDll, errNum, LANG_USER_DEFAULT, (LPWSTR)&pBuffer, 0, (va_list *)pInserts); if (pBuffer) { ConPrintf(StdOut, L"\n%s\n", pBuffer); LocalFree(pBuffer); } else { PrintErrorMessage(3871); } FreeLibrary(hMsgDll); } else { /* Retrieve the message string without appending extra newlines */ FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY, NULL, errNum, LANG_USER_DEFAULT, (LPWSTR)&pBuffer, 0, (va_list *)pInserts); if (pBuffer) { ConPrintf(StdOut, L"\n%s\n", pBuffer); LocalFree(pBuffer); } else { PrintErrorMessage(3871); } } return 0; } /* EOF */