/* Copyright 2017 - 2026 R. Thomas
* Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "LIEF/PE/resources/AcceleratorCodes.hpp"
#include "frozen.hpp"
namespace LIEF::PE {
const char* to_string(ACCELERATOR_CODES code) {
#define ENTRY(X) std::pair(ACCELERATOR_CODES::X, #X)
STRING_MAP enums2str{
ENTRY(LBUTTON),
ENTRY(RBUTTON),
ENTRY(CANCEL),
ENTRY(MBUTTON),
ENTRY(XBUTTON1_K),
ENTRY(XBUTTON2_K),
ENTRY(BACK),
ENTRY(TAB),
ENTRY(CLEAR),
ENTRY(RETURN),
ENTRY(SHIFT),
ENTRY(CONTROL),
ENTRY(MENU),
ENTRY(PAUSE),
ENTRY(CAPITAL),
ENTRY(KANA),
ENTRY(IME_ON),
ENTRY(JUNJA),
ENTRY(FINAL),
ENTRY(KANJI),
ENTRY(IME_OFF),
ENTRY(ESCAPE),
ENTRY(CONVERT),
ENTRY(NONCONVERT),
ENTRY(ACCEPT),
ENTRY(MODECHANGE),
ENTRY(SPACE),
ENTRY(PRIOR),
ENTRY(NEXT),
ENTRY(END),
ENTRY(HOME),
ENTRY(LEFT),
ENTRY(UP),
ENTRY(RIGHT),
ENTRY(DOWN),
ENTRY(SELECT),
ENTRY(PRINT),
ENTRY(EXECUTE),
ENTRY(SNAPSHOT),
ENTRY(INSERT),
ENTRY(DELETE_K),
ENTRY(HELP),
ENTRY(NUM_0),
ENTRY(NUM_1),
ENTRY(NUM_2),
ENTRY(NUM_3),
ENTRY(NUM_4),
ENTRY(NUM_5),
ENTRY(NUM_6),
ENTRY(NUM_7),
ENTRY(NUM_8),
ENTRY(NUM_9),
ENTRY(A),
ENTRY(B),
ENTRY(C),
ENTRY(D),
ENTRY(E),
ENTRY(F),
ENTRY(G),
ENTRY(H),
ENTRY(I),
ENTRY(J),
ENTRY(K),
ENTRY(L),
ENTRY(M),
ENTRY(N),
ENTRY(O),
ENTRY(P),
ENTRY(Q),
ENTRY(R),
ENTRY(S),
ENTRY(T),
ENTRY(U),
ENTRY(V),
ENTRY(W),
ENTRY(X),
ENTRY(Y),
ENTRY(Z),
ENTRY(LWIN),
ENTRY(RWIN),
ENTRY(APPS),
ENTRY(SLEEP),
ENTRY(NUMPAD0),
ENTRY(NUMPAD1),
ENTRY(NUMPAD2),
ENTRY(NUMPAD3),
ENTRY(NUMPAD4),
ENTRY(NUMPAD5),
ENTRY(NUMPAD6),
ENTRY(NUMPAD7),
ENTRY(NUMPAD8),
ENTRY(NUMPAD9),
ENTRY(MULTIPLY),
ENTRY(ADD),
ENTRY(SEPARATOR),
ENTRY(SUBTRACT),
ENTRY(DECIMAL),
ENTRY(DIVIDE),
ENTRY(F1),
ENTRY(F2),
ENTRY(F3),
ENTRY(F4),
ENTRY(F5),
ENTRY(F6),
ENTRY(F7),
ENTRY(F8),
ENTRY(F9),
ENTRY(F10),
ENTRY(F11),
ENTRY(F12),
ENTRY(F13),
ENTRY(F14),
ENTRY(F15),
ENTRY(F16),
ENTRY(F17),
ENTRY(F18),
ENTRY(F19),
ENTRY(F20),
ENTRY(F21),
ENTRY(F22),
ENTRY(F23),
ENTRY(F24),
ENTRY(NUMLOCK),
ENTRY(SCROLL),
ENTRY(LSHIFT),
ENTRY(RSHIFT),
ENTRY(LCONTROL),
ENTRY(RCONTROL),
ENTRY(LMENU),
ENTRY(RMENU),
ENTRY(BROWSER_BACK),
ENTRY(BROWSER_FORWARD),
ENTRY(BROWSER_REFRESH),
ENTRY(BROWSER_STOP),
ENTRY(BROWSER_SEARCH),
ENTRY(BROWSER_FAVORITES),
ENTRY(BROWSER_HOME),
ENTRY(VOLUME_MUTE),
ENTRY(VOLUME_DOWN),
ENTRY(VOLUME_UP),
ENTRY(MEDIA_NEXT_TRACK),
ENTRY(MEDIA_PREV_TRACK),
ENTRY(MEDIA_STOP),
ENTRY(MEDIA_PLAY_PAUSE),
ENTRY(LAUNCH_MAIL),
ENTRY(LAUNCH_MEDIA_SELECT),
ENTRY(LAUNCH_APP1),
ENTRY(LAUNCH_APP2),
ENTRY(OEM_1),
ENTRY(OEM_PLUS),
ENTRY(OEM_COMMA),
ENTRY(OEM_MINUS),
ENTRY(OEM_PERIOD),
ENTRY(OEM_2),
ENTRY(OEM_4),
ENTRY(OEM_5),
ENTRY(OEM_6),
ENTRY(OEM_7),
ENTRY(OEM_8),
ENTRY(OEM_102),
ENTRY(PROCESSKEY),
ENTRY(PACKET),
ENTRY(ATTN),
ENTRY(CRSEL),
ENTRY(EXSEL),
ENTRY(EREOF),
ENTRY(PLAY),
ENTRY(ZOOM),
ENTRY(NONAME),
ENTRY(PA1),
ENTRY(OEM_CLEAR),
};
#undef ENTRY
if (auto it = enums2str.find(code); it != enums2str.end()) {
return it->second;
}
return "UNKNOWN";
}
}