in BusTools/GpioTestTool/main.cpp [435:482]
int __cdecl wmain (_In_ int argc, _In_reads_(argc) wchar_t *argv[])
{
enum MainReturnValue { Success, Failure };
if (argc < 2) {
fwprintf(
stderr,
L"Missing required command line parameter PinNumber\n\n");
PrintUsage(argv[0]);
return Success;
}
PCWSTR arg = argv[1];
if (!_wcsicmp(arg, L"-h") || !_wcsicmp(arg, L"/h") ||
!_wcsicmp(arg, L"-?") || !_wcsicmp(arg, L"/?")) {
PrintUsage(argv[0]);
return Success;
}
RoInitializeWrapper roInit(RO_INIT_MULTITHREADED);
try {
if (!_wcsicmp(arg, L"-list") || !_wcsicmp(arg, L"/list")) {
ListPins();
return Success;
} else {
std::wistringstream is(arg);
INT32 pinNumber;
is >> pinNumber;
if (!is) {
fwprintf(
stderr,
L"Expecting integer: %s\nType %s /? for usage.\n",
arg,
argv[0]);
return Failure;
}
auto pin = MakePin(pinNumber);
wprintf(L"Type 'help' for a list of commands\n");
ShowPrompt(pin.Get());
return Success;
}
} catch (const wexception& ex) {
fwprintf(stderr, L"Error: %s\n", ex.wwhat());
return Failure;
}
}