void CommandUnignore::LoadArgs(Arguments& args, CommandModeType mode) { wstring object, target; if (mode != CommandModeType::Execute) throw WException(ERROR_INVALID_PARAMETER, L"Error, install/uninstall mode isn't supported for this command"); if (!args.GetNext(object)) throw WException(ERROR_INVALID_PARAMETER, L"Error, mismatched argument #1 for command 'unignore'"); if (object == L"pid") { m_targetType = ETargetIdType::ProcId; if (!args.GetNext(target)) throw WException(ERROR_INVALID_PARAMETER, L"Error, mismatched argument #2 for command 'unignore'"); m_targetProcId = _wtol(target.c_str()); if (!m_targetProcId) throw WException(ERROR_INVALID_PARAMETER, L"Error, invalid target ruleid for command 'unignore'"); } else if (object == L"all") { m_targetType = ETargetIdType::All; } else { m_targetType = ETargetIdType::RuleId; m_targetId = _wtoll(object.c_str()); if (!m_targetId) throw WException(ERROR_INVALID_PARAMETER, L"Error, invalid target ruleid for command 'unignore'"); } }
Connection::Connection(Arguments& args) : m_context(nullptr) { wstring arg; if (!args.Probe(arg)) return; do { if (arg == L"/gate") { args.SwitchToNext(); if (!args.GetNext(m_deviceName)) throw WException(ERROR_INVALID_PARAMETER, L"Error, mismatched argument for command 'gate'"); if (m_deviceName.compare(0, 1, L"\\") != 0) m_deviceName.insert(0, L"\\\\.\\"); } else { break; } } while (args.Probe(arg)); }
void CommandIgnore::LoadArgs(Arguments& args, CommandModeType mode) { wstring object, target; if (!args.GetNext(object)) throw WException(ERROR_INVALID_PARAMETER, L"Error, mismatched argument #1 for command 'ignore'"); if (object == L"image") { m_procType = EProcTypes::TypeImage; } else if (object == L"pid") { if (!CommandModeType::Execute) throw WException(ERROR_INVALID_PARAMETER, L"Error, target 'pid' isn't allowed"); m_procType = EProcTypes::TypeProcessId; } else { throw WException(ERROR_INVALID_PARAMETER, L"Error, invalid object type in command 'ignore'"); } m_inheritType = LoadInheritOption(args, HidPsInheritTypes::WithoutInherit); m_applyByDefault = false; if (m_procType == EProcTypes::TypeImage && mode == CommandModeType::Execute) m_applyByDefault = LoadApplyOption(args, m_applyByDefault); if (!args.GetNext(target)) throw WException(ERROR_INVALID_PARAMETER, L"Error, mismatched argument #2 for command 'ignore'"); if (m_procType == EProcTypes::TypeImage) { m_targetImage = target; } else { m_targetProcId = _wtol(target.c_str()); if (!m_targetProcId) throw WException(ERROR_INVALID_PARAMETER, L"Error, invalid target pid for command 'ignore'"); } }