getting a windows message name [duplicate] - c++

This question already has answers here:
Convert Windows Message IDs to Text
(3 answers)
Closed 2 years ago.
I have a windows program that I'm extending with a DLL. I include debug code through a debug stream objects that print through OutputDebugString and I can view with DebugView. Part of the interface is a message processing function.
__declspec(dllexport) LRESULT messageProc(UINT Message, WPARAM wParam, LPARAM lParam) {
dbg << "Message received " << Message << endl;
return TRUE;
My question is if there is a function to retrieve the name of an message from the code. For example instead of the output "message received 534" I would like to see "message received WM_MOVING" to more appropriately distinguish and filter the debug output.

C++ 11
From List Of Window Messages
thx to #arx for the link.
Usage:
#include <map>
int messagenumber = 5;
const char* translatedMessage = wmTranslation[messagenumber];
if (translatedMessage == NULL)
{
translatedMessage = "UnknownMessage";
}
Translation-Data:
static std::map<int, const char*> wmTranslation = {
{0, "WM_NULL" },
{1, "WM_CREATE" },
{2, "WM_DESTROY" },
{3, "WM_MOVE" },
{5, "WM_SIZE" },
{6, "WM_ACTIVATE" },
{7, "WM_SETFOCUS" },
{8, "WM_KILLFOCUS" },
{10, "WM_ENABLE" },
{11, "WM_SETREDRAW" },
{12, "WM_SETTEXT" },
{13, "WM_GETTEXT" },
{14, "WM_GETTEXTLENGTH" },
{15, "WM_PAINT" },
{16, "WM_CLOSE" },
{17, "WM_QUERYENDSESSION" },
{18, "WM_QUIT" },
{19, "WM_QUERYOPEN" },
{20, "WM_ERASEBKGND" },
{21, "WM_SYSCOLORCHANGE" },
{22, "WM_ENDSESSION" },
{24, "WM_SHOWWINDOW" },
{25, "WM_CTLCOLOR" },
{26, "WM_WININICHANGE" },
{27, "WM_DEVMODECHANGE" },
{28, "WM_ACTIVATEAPP" },
{29, "WM_FONTCHANGE" },
{30, "WM_TIMECHANGE" },
{31, "WM_CANCELMODE" },
{32, "WM_SETCURSOR" },
{33, "WM_MOUSEACTIVATE" },
{34, "WM_CHILDACTIVATE" },
{35, "WM_QUEUESYNC" },
{36, "WM_GETMINMAXINFO" },
{38, "WM_PAINTICON" },
{39, "WM_ICONERASEBKGND" },
{40, "WM_NEXTDLGCTL" },
{42, "WM_SPOOLERSTATUS" },
{43, "WM_DRAWITEM" },
{44, "WM_MEASUREITEM" },
{45, "WM_DELETEITEM" },
{46, "WM_VKEYTOITEM" },
{47, "WM_CHARTOITEM" },
{48, "WM_SETFONT" },
{49, "WM_GETFONT" },
{50, "WM_SETHOTKEY" },
{51, "WM_GETHOTKEY" },
{55, "WM_QUERYDRAGICON" },
{57, "WM_COMPAREITEM" },
{61, "WM_GETOBJECT" },
{65, "WM_COMPACTING" },
{68, "WM_COMMNOTIFY" },
{70, "WM_WINDOWPOSCHANGING" },
{71, "WM_WINDOWPOSCHANGED" },
{72, "WM_POWER" },
{73, "WM_COPYGLOBALDATA" },
{74, "WM_COPYDATA" },
{75, "WM_CANCELJOURNAL" },
{78, "WM_NOTIFY" },
{80, "WM_INPUTLANGCHANGEREQUEST" },
{81, "WM_INPUTLANGCHANGE" },
{82, "WM_TCARD" },
{83, "WM_HELP" },
{84, "WM_USERCHANGED" },
{85, "WM_NOTIFYFORMAT" },
{123, "WM_CONTEXTMENU" },
{124, "WM_STYLECHANGING" },
{125, "WM_STYLECHANGED" },
{126, "WM_DISPLAYCHANGE" },
{127, "WM_GETICON" },
{128, "WM_SETICON" },
{129, "WM_NCCREATE" },
{130, "WM_NCDESTROY" },
{131, "WM_NCCALCSIZE" },
{132, "WM_NCHITTEST" },
{133, "WM_NCPAINT" },
{134, "WM_NCACTIVATE" },
{135, "WM_GETDLGCODE" },
{136, "WM_SYNCPAINT" },
{160, "WM_NCMOUSEMOVE" },
{161, "WM_NCLBUTTONDOWN" },
{162, "WM_NCLBUTTONUP" },
{163, "WM_NCLBUTTONDBLCLK" },
{164, "WM_NCRBUTTONDOWN" },
{165, "WM_NCRBUTTONUP" },
{166, "WM_NCRBUTTONDBLCLK" },
{167, "WM_NCMBUTTONDOWN" },
{168, "WM_NCMBUTTONUP" },
{169, "WM_NCMBUTTONDBLCLK" },
{171, "WM_NCXBUTTONDOWN" },
{172, "WM_NCXBUTTONUP" },
{173, "WM_NCXBUTTONDBLCLK" },
{176, "EM_GETSEL" },
{177, "EM_SETSEL" },
{178, "EM_GETRECT" },
{179, "EM_SETRECT" },
{180, "EM_SETRECTNP" },
{181, "EM_SCROLL" },
{182, "EM_LINESCROLL" },
{183, "EM_SCROLLCARET" },
{185, "EM_GETMODIFY" },
{187, "EM_SETMODIFY" },
{188, "EM_GETLINECOUNT" },
{189, "EM_LINEINDEX" },
{190, "EM_SETHANDLE" },
{191, "EM_GETHANDLE" },
{192, "EM_GETTHUMB" },
{193, "EM_LINELENGTH" },
{194, "EM_REPLACESEL" },
{195, "EM_SETFONT" },
{196, "EM_GETLINE" },
{197, "EM_LIMITTEXT" },
{197, "EM_SETLIMITTEXT" },
{198, "EM_CANUNDO" },
{199, "EM_UNDO" },
{200, "EM_FMTLINES" },
{201, "EM_LINEFROMCHAR" },
{202, "EM_SETWORDBREAK" },
{203, "EM_SETTABSTOPS" },
{204, "EM_SETPASSWORDCHAR" },
{205, "EM_EMPTYUNDOBUFFER" },
{206, "EM_GETFIRSTVISIBLELINE" },
{207, "EM_SETREADONLY" },
{209, "EM_SETWORDBREAKPROC" },
{209, "EM_GETWORDBREAKPROC" },
{210, "EM_GETPASSWORDCHAR" },
{211, "EM_SETMARGINS" },
{212, "EM_GETMARGINS" },
{213, "EM_GETLIMITTEXT" },
{214, "EM_POSFROMCHAR" },
{215, "EM_CHARFROMPOS" },
{216, "EM_SETIMESTATUS" },
{217, "EM_GETIMESTATUS" },
{224, "SBM_SETPOS" },
{225, "SBM_GETPOS" },
{226, "SBM_SETRANGE" },
{227, "SBM_GETRANGE" },
{228, "SBM_ENABLE_ARROWS" },
{230, "SBM_SETRANGEREDRAW" },
{233, "SBM_SETSCROLLINFO" },
{234, "SBM_GETSCROLLINFO" },
{235, "SBM_GETSCROLLBARINFO" },
{240, "BM_GETCHECK" },
{241, "BM_SETCHECK" },
{242, "BM_GETSTATE" },
{243, "BM_SETSTATE" },
{244, "BM_SETSTYLE" },
{245, "BM_CLICK" },
{246, "BM_GETIMAGE" },
{247, "BM_SETIMAGE" },
{248, "BM_SETDONTCLICK" },
{255, "WM_INPUT" },
{256, "WM_KEYDOWN" },
{256, "WM_KEYFIRST" },
{257, "WM_KEYUP" },
{258, "WM_CHAR" },
{259, "WM_DEADCHAR" },
{260, "WM_SYSKEYDOWN" },
{261, "WM_SYSKEYUP" },
{262, "WM_SYSCHAR" },
{263, "WM_SYSDEADCHAR" },
{264, "WM_KEYLAST" },
{265, "WM_UNICHAR" },
{265, "WM_WNT_CONVERTREQUESTEX" },
{266, "WM_CONVERTREQUEST" },
{267, "WM_CONVERTRESULT" },
{268, "WM_INTERIM" },
{269, "WM_IME_STARTCOMPOSITION" },
{270, "WM_IME_ENDCOMPOSITION" },
{271, "WM_IME_COMPOSITION" },
{271, "WM_IME_KEYLAST" },
{272, "WM_INITDIALOG" },
{273, "WM_COMMAND" },
{274, "WM_SYSCOMMAND" },
{275, "WM_TIMER" },
{276, "WM_HSCROLL" },
{277, "WM_VSCROLL" },
{278, "WM_INITMENU" },
{279, "WM_INITMENUPOPUP" },
{280, "WM_SYSTIMER" },
{287, "WM_MENUSELECT" },
{288, "WM_MENUCHAR" },
{289, "WM_ENTERIDLE" },
{290, "WM_MENURBUTTONUP" },
{291, "WM_MENUDRAG" },
{292, "WM_MENUGETOBJECT" },
{293, "WM_UNINITMENUPOPUP" },
{294, "WM_MENUCOMMAND" },
{295, "WM_CHANGEUISTATE" },
{296, "WM_UPDATEUISTATE" },
{297, "WM_QUERYUISTATE" },
{306, "WM_CTLCOLORMSGBOX" },
{307, "WM_CTLCOLOREDIT" },
{308, "WM_CTLCOLORLISTBOX" },
{309, "WM_CTLCOLORBTN" },
{310, "WM_CTLCOLORDLG" },
{311, "WM_CTLCOLORSCROLLBAR" },
{312, "WM_CTLCOLORSTATIC" },
{512, "WM_MOUSEFIRST" },
{512, "WM_MOUSEMOVE" },
{513, "WM_LBUTTONDOWN" },
{514, "WM_LBUTTONUP" },
{515, "WM_LBUTTONDBLCLK" },
{516, "WM_RBUTTONDOWN" },
{517, "WM_RBUTTONUP" },
{518, "WM_RBUTTONDBLCLK" },
{519, "WM_MBUTTONDOWN" },
{520, "WM_MBUTTONUP" },
{521, "WM_MBUTTONDBLCLK" },
{521, "WM_MOUSELAST" },
{522, "WM_MOUSEWHEEL" },
{523, "WM_XBUTTONDOWN" },
{524, "WM_XBUTTONUP" },
{525, "WM_XBUTTONDBLCLK" },
{528, "WM_PARENTNOTIFY" },
{529, "WM_ENTERMENULOOP" },
{530, "WM_EXITMENULOOP" },
{531, "WM_NEXTMENU" },
{532, "WM_SIZING" },
{533, "WM_CAPTURECHANGED" },
{534, "WM_MOVING" },
{536, "WM_POWERBROADCAST" },
{537, "WM_DEVICECHANGE" },
{544, "WM_MDICREATE" },
{545, "WM_MDIDESTROY" },
{546, "WM_MDIACTIVATE" },
{547, "WM_MDIRESTORE" },
{548, "WM_MDINEXT" },
{549, "WM_MDIMAXIMIZE" },
{550, "WM_MDITILE" },
{551, "WM_MDICASCADE" },
{552, "WM_MDIICONARRANGE" },
{553, "WM_MDIGETACTIVE" },
{560, "WM_MDISETMENU" },
{561, "WM_ENTERSIZEMOVE" },
{562, "WM_EXITSIZEMOVE" },
{563, "WM_DROPFILES" },
{564, "WM_MDIREFRESHMENU" },
{640, "WM_IME_REPORT" },
{641, "WM_IME_SETCONTEXT" },
{642, "WM_IME_NOTIFY" },
{643, "WM_IME_CONTROL" },
{644, "WM_IME_COMPOSITIONFULL" },
{645, "WM_IME_SELECT" },
{646, "WM_IME_CHAR" },
{648, "WM_IME_REQUEST" },
{656, "WM_IMEKEYDOWN" },
{656, "WM_IME_KEYDOWN" },
{657, "WM_IMEKEYUP" },
{657, "WM_IME_KEYUP" },
{672, "WM_NCMOUSEHOVER" },
{673, "WM_MOUSEHOVER" },
{674, "WM_NCMOUSELEAVE" },
{675, "WM_MOUSELEAVE" },
{768, "WM_CUT" },
{769, "WM_COPY" },
{770, "WM_PASTE" },
{771, "WM_CLEAR" },
{772, "WM_UNDO" },
{773, "WM_RENDERFORMAT" },
{774, "WM_RENDERALLFORMATS" },
{775, "WM_DESTROYCLIPBOARD" },
{776, "WM_DRAWCLIPBOARD" },
{777, "WM_PAINTCLIPBOARD" },
{778, "WM_VSCROLLCLIPBOARD" },
{779, "WM_SIZECLIPBOARD" },
{780, "WM_ASKCBFORMATNAME" },
{781, "WM_CHANGECBCHAIN" },
{782, "WM_HSCROLLCLIPBOARD" },
{783, "WM_QUERYNEWPALETTE" },
{784, "WM_PALETTEISCHANGING" },
{785, "WM_PALETTECHANGED" },
{786, "WM_HOTKEY" },
{791, "WM_PRINT" },
{792, "WM_PRINTCLIENT" },
{793, "WM_APPCOMMAND" },
{856, "WM_HANDHELDFIRST" },
{863, "WM_HANDHELDLAST" },
{864, "WM_AFXFIRST" },
{895, "WM_AFXLAST" },
{896, "WM_PENWINFIRST" },
{897, "WM_RCRESULT" },
{898, "WM_HOOKRCRESULT" },
{899, "WM_GLOBALRCCHANGE" },
{899, "WM_PENMISCINFO" },
{900, "WM_SKB" },
{901, "WM_HEDITCTL" },
{901, "WM_PENCTL" },
{902, "WM_PENMISC" },
{903, "WM_CTLINIT" },
{904, "WM_PENEVENT" },
{911, "WM_PENWINLAST" },
{1024, "DDM_SETFMT" },
{1024, "DM_GETDEFID" },
{1024, "NIN_SELECT" },
{1024, "TBM_GETPOS" },
{1024, "WM_PSD_PAGESETUPDLG" },
{1024, "WM_USER" },
{1025, "CBEM_INSERTITEMA" },
{1025, "DDM_DRAW" },
{1025, "DM_SETDEFID" },
{1025, "HKM_SETHOTKEY" },
{1025, "PBM_SETRANGE" },
{1025, "RB_INSERTBANDA" },
{1025, "SB_SETTEXTA" },
{1025, "TB_ENABLEBUTTON" },
{1025, "TBM_GETRANGEMIN" },
{1025, "TTM_ACTIVATE" },
{1025, "WM_CHOOSEFONT_GETLOGFONT" },
{1025, "WM_PSD_FULLPAGERECT" },
{1026, "CBEM_SETIMAGELIST" },
{1026, "DDM_CLOSE" },
{1026, "DM_REPOSITION" },
{1026, "HKM_GETHOTKEY" },
{1026, "PBM_SETPOS" },
{1026, "RB_DELETEBAND" },
{1026, "SB_GETTEXTA" },
{1026, "TB_CHECKBUTTON" },
{1026, "TBM_GETRANGEMAX" },
{1026, "WM_PSD_MINMARGINRECT" },
{1027, "CBEM_GETIMAGELIST" },
{1027, "DDM_BEGIN" },
{1027, "HKM_SETRULES" },
{1027, "PBM_DELTAPOS" },
{1027, "RB_GETBARINFO" },
{1027, "SB_GETTEXTLENGTHA" },
{1027, "TBM_GETTIC" },
{1027, "TB_PRESSBUTTON" },
{1027, "TTM_SETDELAYTIME" },
{1027, "WM_PSD_MARGINRECT" },
{1028, "CBEM_GETITEMA" },
{1028, "DDM_END" },
{1028, "PBM_SETSTEP" },
{1028, "RB_SETBARINFO" },
{1028, "SB_SETPARTS" },
{1028, "TB_HIDEBUTTON" },
{1028, "TBM_SETTIC" },
{1028, "TTM_ADDTOOLA" },
{1028, "WM_PSD_GREEKTEXTRECT" },
{1029, "CBEM_SETITEMA" },
{1029, "PBM_STEPIT" },
{1029, "TB_INDETERMINATE" },
{1029, "TBM_SETPOS" },
{1029, "TTM_DELTOOLA" },
{1029, "WM_PSD_ENVSTAMPRECT" },
{1030, "CBEM_GETCOMBOCONTROL" },
{1030, "PBM_SETRANGE32" },
{1030, "RB_SETBANDINFOA" },
{1030, "SB_GETPARTS" },
{1030, "TB_MARKBUTTON" },
{1030, "TBM_SETRANGE" },
{1030, "TTM_NEWTOOLRECTA" },
{1030, "WM_PSD_YAFULLPAGERECT" },
{1031, "CBEM_GETEDITCONTROL" },
{1031, "PBM_GETRANGE" },
{1031, "RB_SETPARENT" },
{1031, "SB_GETBORDERS" },
{1031, "TBM_SETRANGEMIN" },
{1031, "TTM_RELAYEVENT" },
{1032, "CBEM_SETEXSTYLE" },
{1032, "PBM_GETPOS" },
{1032, "RB_HITTEST" },
{1032, "SB_SETMINHEIGHT" },
{1032, "TBM_SETRANGEMAX" },
{1032, "TTM_GETTOOLINFOA" },
{1033, "CBEM_GETEXSTYLE" },
{1033, "CBEM_GETEXTENDEDSTYLE" },
{1033, "PBM_SETBARCOLOR" },
{1033, "RB_GETRECT" },
{1033, "SB_SIMPLE" },
{1033, "TB_ISBUTTONENABLED" },
{1033, "TBM_CLEARTICS" },
{1033, "TTM_SETTOOLINFOA" },
{1034, "CBEM_HASEDITCHANGED" },
{1034, "RB_INSERTBANDW" },
{1034, "SB_GETRECT" },
{1034, "TB_ISBUTTONCHECKED" },
{1034, "TBM_SETSEL" },
{1034, "TTM_HITTESTA" },
{1034, "WIZ_QUERYNUMPAGES" },
{1035, "CBEM_INSERTITEMW" },
{1035, "RB_SETBANDINFOW" },
{1035, "SB_SETTEXTW" },
{1035, "TB_ISBUTTONPRESSED" },
{1035, "TBM_SETSELSTART" },
{1035, "TTM_GETTEXTA" },
{1035, "WIZ_NEXT" },
{1036, "CBEM_SETITEMW" },
{1036, "RB_GETBANDCOUNT" },
{1036, "SB_GETTEXTLENGTHW" },
{1036, "TB_ISBUTTONHIDDEN" },
{1036, "TBM_SETSELEND" },
{1036, "TTM_UPDATETIPTEXTA" },
{1036, "WIZ_PREV" },
{1037, "CBEM_GETITEMW" },
{1037, "RB_GETROWCOUNT" },
{1037, "SB_GETTEXTW" },
{1037, "TB_ISBUTTONINDETERMINATE" },
{1037, "TTM_GETTOOLCOUNT" },
{1038, "CBEM_SETEXTENDEDSTYLE" },
{1038, "RB_GETROWHEIGHT" },
{1038, "SB_ISSIMPLE" },
{1038, "TB_ISBUTTONHIGHLIGHTED" },
{1038, "TBM_GETPTICS" },
{1038, "TTM_ENUMTOOLSA" },
{1039, "SB_SETICON" },
{1039, "TBM_GETTICPOS" },
{1039, "TTM_GETCURRENTTOOLA" },
{1040, "RB_IDTOINDEX" },
{1040, "SB_SETTIPTEXTA" },
{1040, "TBM_GETNUMTICS" },
{1040, "TTM_WINDOWFROMPOINT" },
{1041, "RB_GETTOOLTIPS" },
{1041, "SB_SETTIPTEXTW" },
{1041, "TBM_GETSELSTART" },
{1041, "TB_SETSTATE" },
{1041, "TTM_TRACKACTIVATE" },
{1042, "RB_SETTOOLTIPS" },
{1042, "SB_GETTIPTEXTA" },
{1042, "TB_GETSTATE" },
{1042, "TBM_GETSELEND" },
{1042, "TTM_TRACKPOSITION" },
{1043, "RB_SETBKCOLOR" },
{1043, "SB_GETTIPTEXTW" },
{1043, "TB_ADDBITMAP" },
{1043, "TBM_CLEARSEL" },
{1043, "TTM_SETTIPBKCOLOR" },
{1044, "RB_GETBKCOLOR" },
{1044, "SB_GETICON" },
{1044, "TB_ADDBUTTONSA" },
{1044, "TBM_SETTICFREQ" },
{1044, "TTM_SETTIPTEXTCOLOR" },
{1045, "RB_SETTEXTCOLOR" },
{1045, "TB_INSERTBUTTONA" },
{1045, "TBM_SETPAGESIZE" },
{1045, "TTM_GETDELAYTIME" },
{1046, "RB_GETTEXTCOLOR" },
{1046, "TB_DELETEBUTTON" },
{1046, "TBM_GETPAGESIZE" },
{1046, "TTM_GETTIPBKCOLOR" },
{1047, "RB_SIZETORECT" },
{1047, "TB_GETBUTTON" },
{1047, "TBM_SETLINESIZE" },
{1047, "TTM_GETTIPTEXTCOLOR" },
{1048, "RB_BEGINDRAG" },
{1048, "TB_BUTTONCOUNT" },
{1048, "TBM_GETLINESIZE" },
{1048, "TTM_SETMAXTIPWIDTH" },
{1049, "RB_ENDDRAG" },
{1049, "TB_COMMANDTOINDEX" },
{1049, "TBM_GETTHUMBRECT" },
{1049, "TTM_GETMAXTIPWIDTH" },
{1050, "RB_DRAGMOVE" },
{1050, "TBM_GETCHANNELRECT" },
{1050, "TB_SAVERESTOREA" },
{1050, "TTM_SETMARGIN" },
{1051, "RB_GETBARHEIGHT" },
{1051, "TB_CUSTOMIZE" },
{1051, "TBM_SETTHUMBLENGTH" },
{1051, "TTM_GETMARGIN" },
{1052, "RB_GETBANDINFOW" },
{1052, "TB_ADDSTRINGA" },
{1052, "TBM_GETTHUMBLENGTH" },
{1052, "TTM_POP" },
{1053, "RB_GETBANDINFOA" },
{1053, "TB_GETITEMRECT" },
{1053, "TBM_SETTOOLTIPS" },
{1053, "TTM_UPDATE" },
{1054, "RB_MINIMIZEBAND" },
{1054, "TB_BUTTONSTRUCTSIZE" },
{1054, "TBM_GETTOOLTIPS" },
{1054, "TTM_GETBUBBLESIZE" },
{1055, "RB_MAXIMIZEBAND" },
{1055, "TBM_SETTIPSIDE" },
{1055, "TB_SETBUTTONSIZE" },
{1055, "TTM_ADJUSTRECT" },
{1056, "TBM_SETBUDDY" },
{1056, "TB_SETBITMAPSIZE" },
{1056, "TTM_SETTITLEA" },
{1057, "MSG_FTS_JUMP_VA" },
{1057, "TB_AUTOSIZE" },
{1057, "TBM_GETBUDDY" },
{1057, "TTM_SETTITLEW" },
{1058, "RB_GETBANDBORDERS" },
{1059, "MSG_FTS_JUMP_QWORD" },
{1059, "RB_SHOWBAND" },
{1059, "TB_GETTOOLTIPS" },
{1060, "MSG_REINDEX_REQUEST" },
{1060, "TB_SETTOOLTIPS" },
{1061, "MSG_FTS_WHERE_IS_IT" },
{1061, "RB_SETPALETTE" },
{1061, "TB_SETPARENT" },
{1062, "RB_GETPALETTE" },
{1063, "RB_MOVEBAND" },
{1063, "TB_SETROWS" },
{1064, "TB_GETROWS" },
{1065, "TB_GETBITMAPFLAGS" },
{1066, "TB_SETCMDID" },
{1067, "RB_PUSHCHEVRON" },
{1067, "TB_CHANGEBITMAP" },
{1068, "TB_GETBITMAP" },
{1069, "MSG_GET_DEFFONT" },
{1069, "TB_GETBUTTONTEXTA" },
{1070, "TB_REPLACEBITMAP" },
{1071, "TB_SETINDENT" },
{1072, "TB_SETIMAGELIST" },
{1073, "TB_GETIMAGELIST" },
{1074, "TB_LOADIMAGES" },
{1074, "EM_CANPASTE" },
{1074, "TTM_ADDTOOLW" },
{1075, "EM_DISPLAYBAND" },
{1075, "TB_GETRECT" },
{1075, "TTM_DELTOOLW" },
{1076, "EM_EXGETSEL" },
{1076, "TB_SETHOTIMAGELIST" },
{1076, "TTM_NEWTOOLRECTW" },
{1077, "EM_EXLIMITTEXT" },
{1077, "TB_GETHOTIMAGELIST" },
{1077, "TTM_GETTOOLINFOW" },
{1078, "EM_EXLINEFROMCHAR" },
{1078, "TB_SETDISABLEDIMAGELIST" },
{1078, "TTM_SETTOOLINFOW" },
{1079, "EM_EXSETSEL" },
{1079, "TB_GETDISABLEDIMAGELIST" },
{1079, "TTM_HITTESTW" },
{1080, "EM_FINDTEXT" },
{1080, "TB_SETSTYLE" },
{1080, "TTM_GETTEXTW" },
{1081, "EM_FORMATRANGE" },
{1081, "TB_GETSTYLE" },
{1081, "TTM_UPDATETIPTEXTW" },
{1082, "EM_GETCHARFORMAT" },
{1082, "TB_GETBUTTONSIZE" },
{1082, "TTM_ENUMTOOLSW" },
{1083, "EM_GETEVENTMASK" },
{1083, "TB_SETBUTTONWIDTH" },
{1083, "TTM_GETCURRENTTOOLW" },
{1084, "EM_GETOLEINTERFACE" },
{1084, "TB_SETMAXTEXTROWS" },
{1085, "EM_GETPARAFORMAT" },
{1085, "TB_GETTEXTROWS" },
{1086, "EM_GETSELTEXT" },
{1086, "TB_GETOBJECT" },
{1087, "EM_HIDESELECTION" },
{1087, "TB_GETBUTTONINFOW" },
{1088, "EM_PASTESPECIAL" },
{1088, "TB_SETBUTTONINFOW" },
{1089, "EM_REQUESTRESIZE" },
{1089, "TB_GETBUTTONINFOA" },
{1090, "EM_SELECTIONTYPE" },
{1090, "TB_SETBUTTONINFOA" },
{1091, "EM_SETBKGNDCOLOR" },
{1091, "TB_INSERTBUTTONW" },
{1092, "EM_SETCHARFORMAT" },
{1092, "TB_ADDBUTTONSW" },
{1093, "EM_SETEVENTMASK" },
{1093, "TB_HITTEST" },
{1094, "EM_SETOLECALLBACK" },
{1094, "TB_SETDRAWTEXTFLAGS" },
{1095, "EM_SETPARAFORMAT" },
{1095, "TB_GETHOTITEM" },
{1096, "EM_SETTARGETDEVICE" },
{1096, "TB_SETHOTITEM" },
{1097, "EM_STREAMIN" },
{1097, "TB_SETANCHORHIGHLIGHT" },
{1098, "EM_STREAMOUT" },
{1098, "TB_GETANCHORHIGHLIGHT" },
{1099, "EM_GETTEXTRANGE" },
{1099, "TB_GETBUTTONTEXTW" },
{1100, "EM_FINDWORDBREAK" },
{1100, "TB_SAVERESTOREW" },
{1101, "EM_SETOPTIONS" },
{1101, "TB_ADDSTRINGW" },
{1102, "EM_GETOPTIONS" },
{1102, "TB_MAPACCELERATORA" },
{1103, "EM_FINDTEXTEX" },
{1103, "TB_GETINSERTMARK" },
{1104, "EM_GETWORDBREAKPROCEX" },
{1104, "TB_SETINSERTMARK" },
{1105, "EM_SETWORDBREAKPROCEX" },
{1105, "TB_INSERTMARKHITTEST" },
{1106, "EM_SETUNDOLIMIT" },
{1106, "TB_MOVEBUTTON" },
{1107, "TB_GETMAXSIZE" },
{1108, "EM_REDO" },
{1108, "TB_SETEXTENDEDSTYLE" },
{1109, "EM_CANREDO" },
{1109, "TB_GETEXTENDEDSTYLE" },
{1110, "EM_GETUNDONAME" },
{1110, "TB_GETPADDING" },
{1111, "EM_GETREDONAME" },
{1111, "TB_SETPADDING" },
{1112, "EM_STOPGROUPTYPING" },
{1112, "TB_SETINSERTMARKCOLOR" },
{1113, "EM_SETTEXTMODE" },
{1113, "TB_GETINSERTMARKCOLOR" },
{1114, "EM_GETTEXTMODE" },
{1114, "TB_MAPACCELERATORW" },
{1115, "EM_AUTOURLDETECT" },
{1115, "TB_GETSTRINGW" },
{1116, "EM_GETAUTOURLDETECT" },
{1116, "TB_GETSTRINGA" },
{1117, "EM_SETPALETTE" },
{1118, "EM_GETTEXTEX" },
{1119, "EM_GETTEXTLENGTHEX" },
{1120, "EM_SHOWSCROLLBAR" },
{1121, "EM_SETTEXTEX" },
{1123, "TAPI_REPLY" },
{1124, "ACM_OPENA" },
{1124, "BFFM_SETSTATUSTEXTA" },
{1124, "CDM_FIRST" },
{1124, "CDM_GETSPEC" },
{1124, "EM_SETPUNCTUATION" },
{1124, "IPM_CLEARADDRESS" },
{1124, "WM_CAP_UNICODE_START" },
{1125, "ACM_PLAY" },
{1125, "BFFM_ENABLEOK" },
{1125, "CDM_GETFILEPATH" },
{1125, "EM_GETPUNCTUATION" },
{1125, "IPM_SETADDRESS" },
{1125, "PSM_SETCURSEL" },
{1125, "UDM_SETRANGE" },
{1125, "WM_CHOOSEFONT_SETLOGFONT" },
{1126, "ACM_STOP" },
{1126, "BFFM_SETSELECTIONA" },
{1126, "CDM_GETFOLDERPATH" },
{1126, "EM_SETWORDWRAPMODE" },
{1126, "IPM_GETADDRESS" },
{1126, "PSM_REMOVEPAGE" },
{1126, "UDM_GETRANGE" },
{1126, "WM_CAP_SET_CALLBACK_ERRORW" },
{1126, "WM_CHOOSEFONT_SETFLAGS" },
{1127, "ACM_OPENW" },
{1127, "BFFM_SETSELECTIONW" },
{1127, "CDM_GETFOLDERIDLIST" },
{1127, "EM_GETWORDWRAPMODE" },
{1127, "IPM_SETRANGE" },
{1127, "PSM_ADDPAGE" },
{1127, "UDM_SETPOS" },
{1127, "WM_CAP_SET_CALLBACK_STATUSW" },
{1128, "BFFM_SETSTATUSTEXTW" },
{1128, "CDM_SETCONTROLTEXT" },
{1128, "EM_SETIMECOLOR" },
{1128, "IPM_SETFOCUS" },
{1128, "PSM_CHANGED" },
{1128, "UDM_GETPOS" },
{1129, "CDM_HIDECONTROL" },
{1129, "EM_GETIMECOLOR" },
{1129, "IPM_ISBLANK" },
{1129, "PSM_RESTARTWINDOWS" },
{1129, "UDM_SETBUDDY" },
{1130, "CDM_SETDEFEXT" },
{1130, "EM_SETIMEOPTIONS" },
{1130, "PSM_REBOOTSYSTEM" },
{1130, "UDM_GETBUDDY" },
{1131, "EM_GETIMEOPTIONS" },
{1131, "PSM_CANCELTOCLOSE" },
{1131, "UDM_SETACCEL" },
{1132, "EM_CONVPOSITION" },
{1132, "EM_CONVPOSITION" },
{1132, "PSM_QUERYSIBLINGS" },
{1132, "UDM_GETACCEL" },
{1133, "MCIWNDM_GETZOOM" },
{1133, "PSM_UNCHANGED" },
{1133, "UDM_SETBASE" },
{1134, "PSM_APPLY" },
{1134, "UDM_GETBASE" },
{1135, "PSM_SETTITLEA" },
{1135, "UDM_SETRANGE32" },
{1136, "PSM_SETWIZBUTTONS" },
{1136, "UDM_GETRANGE32" },
{1136, "WM_CAP_DRIVER_GET_NAMEW" },
{1137, "PSM_PRESSBUTTON" },
{1137, "UDM_SETPOS32" },
{1137, "WM_CAP_DRIVER_GET_VERSIONW" },
{1138, "PSM_SETCURSELID" },
{1138, "UDM_GETPOS32" },
{1139, "PSM_SETFINISHTEXTA" },
{1140, "PSM_GETTABCONTROL" },
{1141, "PSM_ISDIALOGMESSAGE" },
{1142, "MCIWNDM_REALIZE" },
{1142, "PSM_GETCURRENTPAGEHWND" },
{1143, "MCIWNDM_SETTIMEFORMATA" },
{1143, "PSM_INSERTPAGE" },
{1144, "EM_SETLANGOPTIONS" },
{1144, "MCIWNDM_GETTIMEFORMATA" },
{1144, "PSM_SETTITLEW" },
{1144, "WM_CAP_FILE_SET_CAPTURE_FILEW" },
{1145, "EM_GETLANGOPTIONS" },
{1145, "MCIWNDM_VALIDATEMEDIA" },
{1145, "PSM_SETFINISHTEXTW" },
{1145, "WM_CAP_FILE_GET_CAPTURE_FILEW" },
{1146, "EM_GETIMECOMPMODE" },
{1147, "EM_FINDTEXTW" },
{1147, "MCIWNDM_PLAYTO" },
{1147, "WM_CAP_FILE_SAVEASW" },
{1148, "EM_FINDTEXTEXW" },
{1148, "MCIWNDM_GETFILENAMEA" },
{1149, "EM_RECONVERSION" },
{1149, "MCIWNDM_GETDEVICEA" },
{1149, "PSM_SETHEADERTITLEA" },
{1149, "WM_CAP_FILE_SAVEDIBW" },
{1150, "EM_SETIMEMODEBIAS" },
{1150, "MCIWNDM_GETPALETTE" },
{1150, "PSM_SETHEADERTITLEW" },
{1151, "EM_GETIMEMODEBIAS" },
{1151, "MCIWNDM_SETPALETTE" },
{1151, "PSM_SETHEADERSUBTITLEA" },
{1152, "MCIWNDM_GETERRORA" },
{1152, "PSM_SETHEADERSUBTITLEW" },
{1153, "PSM_HWNDTOINDEX" },
{1154, "PSM_INDEXTOHWND" },
{1155, "MCIWNDM_SETINACTIVETIMER" },
{1155, "PSM_PAGETOINDEX" },
{1156, "PSM_INDEXTOPAGE" },
{1157, "DL_BEGINDRAG" },
{1157, "MCIWNDM_GETINACTIVETIMER" },
{1157, "PSM_IDTOINDEX" },
{1158, "DL_DRAGGING" },
{1158, "PSM_INDEXTOID" },
{1159, "DL_DROPPED" },
{1159, "PSM_GETRESULT" },
{1160, "DL_CANCELDRAG" },
{1160, "PSM_RECALCPAGESIZES" },
{1164, "MCIWNDM_GET_SOURCE" },
{1165, "MCIWNDM_PUT_SOURCE" },
{1166, "MCIWNDM_GET_DEST" },
{1167, "MCIWNDM_PUT_DEST" },
{1168, "MCIWNDM_CAN_PLAY" },
{1169, "MCIWNDM_CAN_WINDOW" },
{1170, "MCIWNDM_CAN_RECORD" },
{1171, "MCIWNDM_CAN_SAVE" },
{1172, "MCIWNDM_CAN_EJECT" },
{1173, "MCIWNDM_CAN_CONFIG" },
{1174, "IE_GETINK" },
{1174, "IE_MSGFIRST" },
{1174, "MCIWNDM_PALETTEKICK" },
{1175, "IE_SETINK" },
{1176, "IE_GETPENTIP" },
{1177, "IE_SETPENTIP" },
{1178, "IE_GETERASERTIP" },
{1179, "IE_SETERASERTIP" },
{1180, "IE_GETBKGND" },
{1181, "IE_SETBKGND" },
{1182, "IE_GETGRIDORIGIN" },
{1183, "IE_SETGRIDORIGIN" },
{1184, "IE_GETGRIDPEN" },
{1185, "IE_SETGRIDPEN" },
{1186, "IE_GETGRIDSIZE" },
{1187, "IE_SETGRIDSIZE" },
{1188, "IE_GETMODE" },
{1189, "IE_SETMODE" },
{1190, "IE_GETINKRECT" },
{1190, "WM_CAP_SET_MCI_DEVICEW" },
{1191, "WM_CAP_GET_MCI_DEVICEW" },
{1204, "WM_CAP_PAL_OPENW" },
{1205, "WM_CAP_PAL_SAVEW" },
{1208, "IE_GETAPPDATA" },
{1209, "IE_SETAPPDATA" },
{1210, "IE_GETDRAWOPTS" },
{1211, "IE_SETDRAWOPTS" },
{1212, "IE_GETFORMAT" },
{1213, "IE_SETFORMAT" },
{1214, "IE_GETINKINPUT" },
{1215, "IE_SETINKINPUT" },
{1216, "IE_GETNOTIFY" },
{1217, "IE_SETNOTIFY" },
{1218, "IE_GETRECOG" },
{1219, "IE_SETRECOG" },
{1220, "IE_GETSECURITY" },
{1221, "IE_SETSECURITY" },
{1222, "IE_GETSEL" },
{1223, "IE_SETSEL" },
{1224, "CDM_LAST" },
{1224, "EM_SETBIDIOPTIONS" },
{1224, "IE_DOCOMMAND" },
{1224, "MCIWNDM_NOTIFYMODE" },
{1225, "EM_GETBIDIOPTIONS" },
{1225, "IE_GETCOMMAND" },
{1226, "EM_SETTYPOGRAPHYOPTIONS" },
{1226, "IE_GETCOUNT" },
{1227, "EM_GETTYPOGRAPHYOPTIONS" },
{1227, "IE_GETGESTURE" },
{1227, "MCIWNDM_NOTIFYMEDIA" },
{1228, "EM_SETEDITSTYLE" },
{1228, "IE_GETMENU" },
{1229, "EM_GETEDITSTYLE" },
{1229, "IE_GETPAINTDC" },
{1229, "MCIWNDM_NOTIFYERROR" },
{1230, "IE_GETPDEVENT" },
{1231, "IE_GETSELCOUNT" },
{1232, "IE_GETSELITEMS" },
{1233, "IE_GETSTYLE" },
{1243, "MCIWNDM_SETTIMEFORMATW" },
{1244, "EM_OUTLINE" },
{1244, "EM_OUTLINE" },
{1244, "MCIWNDM_GETTIMEFORMATW" },
{1245, "EM_GETSCROLLPOS" },
{1245, "EM_GETSCROLLPOS" },
{1246, "EM_SETSCROLLPOS" },
{1246, "EM_SETSCROLLPOS" },
{1247, "EM_SETFONTSIZE" },
{1247, "EM_SETFONTSIZE" },
{1248, "EM_GETZOOM" },
{1248, "MCIWNDM_GETFILENAMEW" },
{1249, "EM_SETZOOM" },
{1249, "MCIWNDM_GETDEVICEW" },
{1250, "EM_GETVIEWKIND" },
{1251, "EM_SETVIEWKIND" },
{1252, "EM_GETPAGE" },
{1252, "MCIWNDM_GETERRORW" },
{1253, "EM_SETPAGE" },
{1254, "EM_GETHYPHENATEINFO" },
{1255, "EM_SETHYPHENATEINFO" },
{1259, "EM_GETPAGEROTATE" },
{1260, "EM_SETPAGEROTATE" },
{1261, "EM_GETCTFMODEBIAS" },
{1262, "EM_SETCTFMODEBIAS" },
{1264, "EM_GETCTFOPENSTATUS" },
{1265, "EM_SETCTFOPENSTATUS" },
{1266, "EM_GETIMECOMPTEXT" },
{1267, "EM_ISIME" },
{1268, "EM_GETIMEPROPERTY" },
{1293, "EM_GETQUERYRTFOBJ" },
{1294, "EM_SETQUERYRTFOBJ" },
{1536, "FM_GETFOCUS" },
{1537, "FM_GETDRIVEINFOA" },
{1538, "FM_GETSELCOUNT" },
{1539, "FM_GETSELCOUNTLFN" },
{1540, "FM_GETFILESELA" },
{1541, "FM_GETFILESELLFNA" },
{1542, "FM_REFRESH_WINDOWS" },
{1543, "FM_RELOAD_EXTENSIONS" },
{1553, "FM_GETDRIVEINFOW" },
{1556, "FM_GETFILESELW" },
{1557, "FM_GETFILESELLFNW" },
{1625, "WLX_WM_SAS" },
{2024, "SM_GETSELCOUNT" },
{2024, "UM_GETSELCOUNT" },
{2024, "WM_CPL_LAUNCH" },
{2025, "SM_GETSERVERSELA" },
{2025, "UM_GETUSERSELA" },
{2025, "WM_CPL_LAUNCHED" },
{2026, "SM_GETSERVERSELW" },
{2026, "UM_GETUSERSELW" },
{2027, "SM_GETCURFOCUSA" },
{2027, "UM_GETGROUPSELA" },
{2028, "SM_GETCURFOCUSW" },
{2028, "UM_GETGROUPSELW" },
{2029, "SM_GETOPTIONS" },
{2029, "UM_GETCURFOCUSA" },
{2030, "UM_GETCURFOCUSW" },
{2031, "UM_GETOPTIONS" },
{2032, "UM_GETOPTIONS2" },
{4096, "LVM_FIRST" },
{4096, "LVM_GETBKCOLOR" },
{4097, "LVM_SETBKCOLOR" },
{4098, "LVM_GETIMAGELIST" },
{4099, "LVM_SETIMAGELIST" },
{4100, "LVM_GETITEMCOUNT" },
{4101, "LVM_GETITEMA" },
{4102, "LVM_SETITEMA" },
{4103, "LVM_INSERTITEMA" },
{4104, "LVM_DELETEITEM" },
{4105, "LVM_DELETEALLITEMS" },
{4106, "LVM_GETCALLBACKMASK" },
{4107, "LVM_SETCALLBACKMASK" },
{4108, "LVM_GETNEXTITEM" },
{4109, "LVM_FINDITEMA" },
{4110, "LVM_GETITEMRECT" },
{4111, "LVM_SETITEMPOSITION" },
{4112, "LVM_GETITEMPOSITION" },
{4113, "LVM_GETSTRINGWIDTHA" },
{4114, "LVM_HITTEST" },
{4115, "LVM_ENSUREVISIBLE" },
{4116, "LVM_SCROLL" },
{4117, "LVM_REDRAWITEMS" },
{4118, "LVM_ARRANGE" },
{4119, "LVM_EDITLABELA" },
{4120, "LVM_GETEDITCONTROL" },
{4121, "LVM_GETCOLUMNA" },
{4122, "LVM_SETCOLUMNA" },
{4123, "LVM_INSERTCOLUMNA" },
{4124, "LVM_DELETECOLUMN" },
{4125, "LVM_GETCOLUMNWIDTH" },
{4126, "LVM_SETCOLUMNWIDTH" },
{4127, "LVM_GETHEADER" },
{4129, "LVM_CREATEDRAGIMAGE" },
{4130, "LVM_GETVIEWRECT" },
{4131, "LVM_GETTEXTCOLOR" },
{4132, "LVM_SETTEXTCOLOR" },
{4133, "LVM_GETTEXTBKCOLOR" },
{4134, "LVM_SETTEXTBKCOLOR" },
{4135, "LVM_GETTOPINDEX" },
{4136, "LVM_GETCOUNTPERPAGE" },
{4137, "LVM_GETORIGIN" },
{4138, "LVM_UPDATE" },
{4139, "LVM_SETITEMSTATE" },
{4140, "LVM_GETITEMSTATE" },
{4141, "LVM_GETITEMTEXTA" },
{4142, "LVM_SETITEMTEXTA" },
{4143, "LVM_SETITEMCOUNT" },
{4144, "LVM_SORTITEMS" },
{4145, "LVM_SETITEMPOSITION32" },
{4146, "LVM_GETSELECTEDCOUNT" },
{4147, "LVM_GETITEMSPACING" },
{4148, "LVM_GETISEARCHSTRINGA" },
{4149, "LVM_SETICONSPACING" },
{4150, "LVM_SETEXTENDEDLISTVIEWSTYLE" },
{4151, "LVM_GETEXTENDEDLISTVIEWSTYLE" },
{4152, "LVM_GETSUBITEMRECT" },
{4153, "LVM_SUBITEMHITTEST" },
{4154, "LVM_SETCOLUMNORDERARRAY" },
{4155, "LVM_GETCOLUMNORDERARRAY" },
{4156, "LVM_SETHOTITEM" },
{4157, "LVM_GETHOTITEM" },
{4158, "LVM_SETHOTCURSOR" },
{4159, "LVM_GETHOTCURSOR" },
{4160, "LVM_APPROXIMATEVIEWRECT" },
{4161, "LVM_SETWORKAREAS" },
{4162, "LVM_GETSELECTIONMARK" },
{4163, "LVM_SETSELECTIONMARK" },
{4164, "LVM_SETBKIMAGEA" },
{4165, "LVM_GETBKIMAGEA" },
{4166, "LVM_GETWORKAREAS" },
{4167, "LVM_SETHOVERTIME" },
{4168, "LVM_GETHOVERTIME" },
{4169, "LVM_GETNUMBEROFWORKAREAS" },
{4170, "LVM_SETTOOLTIPS" },
{4171, "LVM_GETITEMW" },
{4172, "LVM_SETITEMW" },
{4173, "LVM_INSERTITEMW" },
{4174, "LVM_GETTOOLTIPS" },
{4179, "LVM_FINDITEMW" },
{4183, "LVM_GETSTRINGWIDTHW" },
{4191, "LVM_GETCOLUMNW" },
{4192, "LVM_SETCOLUMNW" },
{4193, "LVM_INSERTCOLUMNW" },
{4211, "LVM_GETITEMTEXTW" },
{4212, "LVM_SETITEMTEXTW" },
{4213, "LVM_GETISEARCHSTRINGW" },
{4214, "LVM_EDITLABELW" },
{4235, "LVM_GETBKIMAGEW" },
{4236, "LVM_SETSELECTEDCOLUMN" },
{4237, "LVM_SETTILEWIDTH" },
{4238, "LVM_SETVIEW" },
{4239, "LVM_GETVIEW" },
{4241, "LVM_INSERTGROUP" },
{4243, "LVM_SETGROUPINFO" },
{4245, "LVM_GETGROUPINFO" },
{4246, "LVM_REMOVEGROUP" },
{4247, "LVM_MOVEGROUP" },
{4250, "LVM_MOVEITEMTOGROUP" },
{4251, "LVM_SETGROUPMETRICS" },
{4252, "LVM_GETGROUPMETRICS" },
{4253, "LVM_ENABLEGROUPVIEW" },
{4254, "LVM_SORTGROUPS" },
{4255, "LVM_INSERTGROUPSORTED" },
{4256, "LVM_REMOVEALLGROUPS" },
{4257, "LVM_HASGROUP" },
{4258, "LVM_SETTILEVIEWINFO" },
{4259, "LVM_GETTILEVIEWINFO" },
{4260, "LVM_SETTILEINFO" },
{4261, "LVM_GETTILEINFO" },
{4262, "LVM_SETINSERTMARK" },
{4263, "LVM_GETINSERTMARK" },
{4264, "LVM_INSERTMARKHITTEST" },
{4265, "LVM_GETINSERTMARKRECT" },
{4266, "LVM_SETINSERTMARKCOLOR" },
{4267, "LVM_GETINSERTMARKCOLOR" },
{4269, "LVM_SETINFOTIP" },
{4270, "LVM_GETSELECTEDCOLUMN" },
{4271, "LVM_ISGROUPVIEWENABLED" },
{4272, "LVM_GETOUTLINECOLOR" },
{4273, "LVM_SETOUTLINECOLOR" },
{4275, "LVM_CANCELEDITLABEL" },
{4276, "LVM_MAPINDEXTOID" },
{4277, "LVM_MAPIDTOINDEX" },
{4278, "LVM_ISITEMVISIBLE" },
{8192, "OCM__BASE" },
{8197, "LVM_SETUNICODEFORMAT" },
{8198, "LVM_GETUNICODEFORMAT" },
{8217, "OCM_CTLCOLOR" },
{8235, "OCM_DRAWITEM" },
{8236, "OCM_MEASUREITEM" },
{8237, "OCM_DELETEITEM" },
{8238, "OCM_VKEYTOITEM" },
{8239, "OCM_CHARTOITEM" },
{8249, "OCM_COMPAREITEM" },
{8270, "OCM_NOTIFY" },
{8465, "OCM_COMMAND" },
{8468, "OCM_HSCROLL" },
{8469, "OCM_VSCROLL" },
{8498, "OCM_CTLCOLORMSGBOX" },
{8499, "OCM_CTLCOLOREDIT" },
{8500, "OCM_CTLCOLORLISTBOX" },
{8501, "OCM_CTLCOLORBTN" },
{8502, "OCM_CTLCOLORDLG" },
{8503, "OCM_CTLCOLORSCROLLBAR" },
{8504, "OCM_CTLCOLORSTATIC" },
{8720, "OCM_PARENTNOTIFY" },
{32768, "WM_APP" },
{52429, "WM_RASDIALEVENT" },
};
NOTE:
There are some duplicates in the list, which i did not remove.
std::map discards them automatically...

There is no function as far as I know, but you can make one relatively easily. You need to copy all the message definitions from Windows.h and put them in a C++ file like this:
#define X(x) { x, #x },
struct WindowsMessage
{
int msgid;
char* pname;
} WindowsMessages[] =
{
X( WM_PAINT )
X( WM_NCPAINT )
...
};
#undef X
Then you write a function which, given a message id, searches through this table and returns the corresponding text. # in the macro is the famous "stringize" operator of C, which converts the identifier that follows it into a string literal. How convenient!

// https://rextester.com/DVKG30016
#include <iostream>
const char*id2str_impl(int id){
#define F(A,B)case A:return #B;
switch(id){
F(0,WM_NULL)
F(1,WM_CREATE)
F(2,WM_DESTROY)
F(3,WM_MOVE)
F(5,WM_SIZE)
F(6,WM_ACTIVATE)
F(7,WM_SETFOCUS)
F(8,WM_KILLFOCUS)
F(10,WM_ENABLE)
F(11,WM_SETREDRAW)
F(12,WM_SETTEXT)
F(13,WM_GETTEXT)
F(14,WM_GETTEXTLENGTH)
F(15,WM_PAINT)
F(16,WM_CLOSE)
F(17,WM_QUERYENDSESSION)
F(18,WM_QUIT)
F(19,WM_QUERYOPEN)
F(20,WM_ERASEBKGND)
F(21,WM_SYSCOLORCHANGE)
F(22,WM_ENDSESSION)
F(24,WM_SHOWWINDOW)
F(25,WM_CTLCOLOR)
F(26,WM_WININICHANGE)
F(27,WM_DEVMODECHANGE)
F(28,WM_ACTIVATEAPP)
F(29,WM_FONTCHANGE)
F(30,WM_TIMECHANGE)
F(31,WM_CANCELMODE)
F(32,WM_SETCURSOR)
F(33,WM_MOUSEACTIVATE)
F(34,WM_CHILDACTIVATE)
F(35,WM_QUEUESYNC)
F(36,WM_GETMINMAXINFO)
F(38,WM_PAINTICON)
F(39,WM_ICONERASEBKGND)
F(40,WM_NEXTDLGCTL)
F(42,WM_SPOOLERSTATUS)
F(43,WM_DRAWITEM)
F(44,WM_MEASUREITEM)
F(45,WM_DELETEITEM)
F(46,WM_VKEYTOITEM)
F(47,WM_CHARTOITEM)
F(48,WM_SETFONT)
F(49,WM_GETFONT)
F(50,WM_SETHOTKEY)
F(51,WM_GETHOTKEY)
F(55,WM_QUERYDRAGICON)
F(57,WM_COMPAREITEM)
F(61,WM_GETOBJECT)
F(65,WM_COMPACTING)
F(68,WM_COMMNOTIFY)
F(70,WM_WINDOWPOSCHANGING)
F(71,WM_WINDOWPOSCHANGED)
F(72,WM_POWER)
F(73,WM_COPYGLOBALDATA)
F(74,WM_COPYDATA)
F(75,WM_CANCELJOURNAL)
F(78,WM_NOTIFY)
F(80,WM_INPUTLANGCHANGEREQUEST)
F(81,WM_INPUTLANGCHANGE)
F(82,WM_TCARD)
F(83,WM_HELP)
F(84,WM_USERCHANGED)
F(85,WM_NOTIFYFORMAT)
F(123,WM_CONTEXTMENU)
F(124,WM_STYLECHANGING)
F(125,WM_STYLECHANGED)
F(126,WM_DISPLAYCHANGE)
F(127,WM_GETICON)
F(128,WM_SETICON)
F(129,WM_NCCREATE)
F(130,WM_NCDESTROY)
F(131,WM_NCCALCSIZE)
F(132,WM_NCHITTEST)
F(133,WM_NCPAINT)
F(134,WM_NCACTIVATE)
F(135,WM_GETDLGCODE)
F(136,WM_SYNCPAINT)
F(160,WM_NCMOUSEMOVE)
F(161,WM_NCLBUTTONDOWN)
F(162,WM_NCLBUTTONUP)
F(163,WM_NCLBUTTONDBLCLK)
F(164,WM_NCRBUTTONDOWN)
F(165,WM_NCRBUTTONUP)
F(166,WM_NCRBUTTONDBLCLK)
F(167,WM_NCMBUTTONDOWN)
F(168,WM_NCMBUTTONUP)
F(169,WM_NCMBUTTONDBLCLK)
F(171,WM_NCXBUTTONDOWN)
F(172,WM_NCXBUTTONUP)
F(173,WM_NCXBUTTONDBLCLK)
F(176,EM_GETSEL)
F(177,EM_SETSEL)
F(178,EM_GETRECT)
F(179,EM_SETRECT)
F(180,EM_SETRECTNP)
F(181,EM_SCROLL)
F(182,EM_LINESCROLL)
F(183,EM_SCROLLCARET)
F(185,EM_GETMODIFY)
F(187,EM_SETMODIFY)
F(188,EM_GETLINECOUNT)
F(189,EM_LINEINDEX)
F(190,EM_SETHANDLE)
F(191,EM_GETHANDLE)
F(192,EM_GETTHUMB)
F(193,EM_LINELENGTH)
F(194,EM_REPLACESEL)
F(195,EM_SETFONT)
F(196,EM_GETLINE)
F(197,(EM_LIMITTEXT,EM_SETLIMITTEXT))
F(198,EM_CANUNDO)
F(199,EM_UNDO)
F(200,EM_FMTLINES)
F(201,EM_LINEFROMCHAR)
F(202,EM_SETWORDBREAK)
F(203,EM_SETTABSTOPS)
F(204,EM_SETPASSWORDCHAR)
F(205,EM_EMPTYUNDOBUFFER)
F(206,EM_GETFIRSTVISIBLELINE)
F(207,EM_SETREADONLY)
F(209,(EM_SETWORDBREAKPROC,EM_GETWORDBREAKPROC))
F(210,EM_GETPASSWORDCHAR)
F(211,EM_SETMARGINS)
F(212,EM_GETMARGINS)
F(213,EM_GETLIMITTEXT)
F(214,EM_POSFROMCHAR)
F(215,EM_CHARFROMPOS)
F(216,EM_SETIMESTATUS)
F(217,EM_GETIMESTATUS)
F(224,SBM_SETPOS)
F(225,SBM_GETPOS)
F(226,SBM_SETRANGE)
F(227,SBM_GETRANGE)
F(228,SBM_ENABLE_ARROWS)
F(230,SBM_SETRANGEREDRAW)
F(233,SBM_SETSCROLLINFO)
F(234,SBM_GETSCROLLINFO)
F(235,SBM_GETSCROLLBARINFO)
F(240,BM_GETCHECK)
F(241,BM_SETCHECK)
F(242,BM_GETSTATE)
F(243,BM_SETSTATE)
F(244,BM_SETSTYLE)
F(245,BM_CLICK)
F(246,BM_GETIMAGE)
F(247,BM_SETIMAGE)
F(248,BM_SETDONTCLICK)
F(255,WM_INPUT)
F(256,WM_KEYDOWN)
F(257,WM_KEYUP)
F(258,WM_CHAR)
F(259,WM_DEADCHAR)
F(260,WM_SYSKEYDOWN)
F(261,WM_SYSKEYUP)
F(262,WM_SYSCHAR)
F(263,WM_SYSDEADCHAR)
F(265,(WM_UNICHAR,WM_WNT_CONVERTREQUESTEX))
F(266,WM_CONVERTREQUEST)
F(267,WM_CONVERTRESULT)
F(268,WM_INTERIM)
F(269,WM_IME_STARTCOMPOSITION)
F(270,WM_IME_ENDCOMPOSITION)
F(271,WM_IME_COMPOSITION)
F(272,WM_INITDIALOG)
F(273,WM_COMMAND)
F(274,WM_SYSCOMMAND)
F(275,WM_TIMER)
F(276,WM_HSCROLL)
F(277,WM_VSCROLL)
F(278,WM_INITMENU)
F(279,WM_INITMENUPOPUP)
F(280,WM_SYSTIMER)
F(287,WM_MENUSELECT)
F(288,WM_MENUCHAR)
F(289,WM_ENTERIDLE)
F(290,WM_MENURBUTTONUP)
F(291,WM_MENUDRAG)
F(292,WM_MENUGETOBJECT)
F(293,WM_UNINITMENUPOPUP)
F(294,WM_MENUCOMMAND)
F(295,WM_CHANGEUISTATE)
F(296,WM_UPDATEUISTATE)
F(297,WM_QUERYUISTATE)
F(306,WM_CTLCOLORMSGBOX)
F(307,WM_CTLCOLOREDIT)
F(308,WM_CTLCOLORLISTBOX)
F(309,WM_CTLCOLORBTN)
F(310,WM_CTLCOLORDLG)
F(311,WM_CTLCOLORSCROLLBAR)
F(312,WM_CTLCOLORSTATIC)
F(512,WM_MOUSEMOVE)
F(513,WM_LBUTTONDOWN)
F(514,WM_LBUTTONUP)
F(515,WM_LBUTTONDBLCLK)
F(516,WM_RBUTTONDOWN)
F(517,WM_RBUTTONUP)
F(518,WM_RBUTTONDBLCLK)
F(519,WM_MBUTTONDOWN)
F(520,WM_MBUTTONUP)
F(521,WM_MBUTTONDBLCLK)
F(522,WM_MOUSEWHEEL)
F(523,WM_XBUTTONDOWN)
F(524,WM_XBUTTONUP)
F(525,WM_XBUTTONDBLCLK)
F(526,WM_MOUSEHWHEEL)
F(528,WM_PARENTNOTIFY)
F(529,WM_ENTERMENULOOP)
F(530,WM_EXITMENULOOP)
F(531,WM_NEXTMENU)
F(532,WM_SIZING)
F(533,WM_CAPTURECHANGED)
F(534,WM_MOVING)
F(536,WM_POWERBROADCAST)
F(537,WM_DEVICECHANGE)
F(544,WM_MDICREATE)
F(545,WM_MDIDESTROY)
F(546,WM_MDIACTIVATE)
F(547,WM_MDIRESTORE)
F(548,WM_MDINEXT)
F(549,WM_MDIMAXIMIZE)
F(550,WM_MDITILE)
F(551,WM_MDICASCADE)
F(552,WM_MDIICONARRANGE)
F(553,WM_MDIGETACTIVE)
F(560,WM_MDISETMENU)
F(561,WM_ENTERSIZEMOVE)
F(562,WM_EXITSIZEMOVE)
F(563,WM_DROPFILES)
F(564,WM_MDIREFRESHMENU)
F(640,WM_IME_REPORT)
F(641,WM_IME_SETCONTEXT)
F(642,WM_IME_NOTIFY)
F(643,WM_IME_CONTROL)
F(644,WM_IME_COMPOSITIONFULL)
F(645,WM_IME_SELECT)
F(646,WM_IME_CHAR)
F(648,WM_IME_REQUEST)
F(656,(WM_IMEKEYDOWN,WM_IME_KEYDOWN))
F(657,(WM_IMEKEYUP,WM_IME_KEYUP))
F(672,WM_NCMOUSEHOVER)
F(673,WM_MOUSEHOVER)
F(674,WM_NCMOUSELEAVE)
F(675,WM_MOUSELEAVE)
F(768,WM_CUT)
F(769,WM_COPY)
F(770,WM_PASTE)
F(771,WM_CLEAR)
F(772,WM_UNDO)
F(773,WM_RENDERFORMAT)
F(774,WM_RENDERALLFORMATS)
F(775,WM_DESTROYCLIPBOARD)
F(776,WM_DRAWCLIPBOARD)
F(777,WM_PAINTCLIPBOARD)
F(778,WM_VSCROLLCLIPBOARD)
F(779,WM_SIZECLIPBOARD)
F(780,WM_ASKCBFORMATNAME)
F(781,WM_CHANGECBCHAIN)
F(782,WM_HSCROLLCLIPBOARD)
F(783,WM_QUERYNEWPALETTE)
F(784,WM_PALETTEISCHANGING)
F(785,WM_PALETTECHANGED)
F(786,WM_HOTKEY)
F(791,WM_PRINT)
F(792,WM_PRINTCLIENT)
F(793,WM_APPCOMMAND)
F(856,WM_HANDHELDFIRST)
F(863,WM_HANDHELDLAST)
F(864,WM_AFXFIRST)
F(895,WM_AFXLAST)
F(896,WM_PENWINFIRST)
F(897,WM_RCRESULT)
F(898,WM_HOOKRCRESULT)
F(899,(WM_GLOBALRCCHANGE,WM_PENMISCINFO))
F(900,WM_SKB)
F(901,(WM_HEDITCTL,WM_PENCTL))
F(902,WM_PENMISC)
F(903,WM_CTLINIT)
F(904,WM_PENEVENT)
F(911,WM_PENWINLAST)
F(1024,(DDM_SETFMT,DM_GETDEFID,NIN_SELECT,TBM_GETPOS,WM_PSD_PAGESETUPDLG,WM_USER))
F(1025,(CBEM_INSERTITEMA,DDM_DRAW,DM_SETDEFID,HKM_SETHOTKEY,PBM_SETRANGE,RB_INSERTBANDA,SB_SETTEXTA,TB_ENABLEBUTTON,TBM_GETRANGEMIN,TTM_ACTIVATE,WM_CHOOSEFONT_GETLOGFONT,WM_PSD_FULLPAGERECT))
F(1026,(CBEM_SETIMAGELIST,DDM_CLOSE,DM_REPOSITION,HKM_GETHOTKEY,PBM_SETPOS,RB_DELETEBAND,SB_GETTEXTA,TB_CHECKBUTTON,TBM_GETRANGEMAX,WM_PSD_MINMARGINRECT))
F(1027,(CBEM_GETIMAGELIST,DDM_BEGIN,HKM_SETRULES,PBM_DELTAPOS,RB_GETBARINFO,SB_GETTEXTLENGTHA,TBM_GETTIC,TB_PRESSBUTTON,TTM_SETDELAYTIME,WM_PSD_MARGINRECT))
F(1028,(CBEM_GETITEMA,DDM_END,PBM_SETSTEP,RB_SETBARINFO,SB_SETPARTS,TB_HIDEBUTTON,TBM_SETTIC,TTM_ADDTOOLA,WM_PSD_GREEKTEXTRECT))
F(1029,(CBEM_SETITEMA,PBM_STEPIT,TB_INDETERMINATE,TBM_SETPOS,TTM_DELTOOLA,WM_PSD_ENVSTAMPRECT))
F(1030,(CBEM_GETCOMBOCONTROL,PBM_SETRANGE32,RB_SETBANDINFOA,SB_GETPARTS,TB_MARKBUTTON,TBM_SETRANGE,TTM_NEWTOOLRECTA,WM_PSD_YAFULLPAGERECT))
F(1031,(CBEM_GETEDITCONTROL,PBM_GETRANGE,RB_SETPARENT,SB_GETBORDERS,TBM_SETRANGEMIN,TTM_RELAYEVENT))
F(1032,(CBEM_SETEXSTYLE,PBM_GETPOS,RB_HITTEST,SB_SETMINHEIGHT,TBM_SETRANGEMAX,TTM_GETTOOLINFOA))
F(1033,(CBEM_GETEXSTYLE,CBEM_GETEXTENDEDSTYLE,PBM_SETBARCOLOR,RB_GETRECT,SB_SIMPLE,TB_ISBUTTONENABLED,TBM_CLEARTICS,TTM_SETTOOLINFOA))
F(1034,(CBEM_HASEDITCHANGED,RB_INSERTBANDW,SB_GETRECT,TB_ISBUTTONCHECKED,TBM_SETSEL,TTM_HITTESTA,WIZ_QUERYNUMPAGES))
F(1035,(CBEM_INSERTITEMW,RB_SETBANDINFOW,SB_SETTEXTW,TB_ISBUTTONPRESSED,TBM_SETSELSTART,TTM_GETTEXTA,WIZ_NEXT))
F(1036,(CBEM_SETITEMW,RB_GETBANDCOUNT,SB_GETTEXTLENGTHW,TB_ISBUTTONHIDDEN,TBM_SETSELEND,TTM_UPDATETIPTEXTA,WIZ_PREV))
F(1037,(CBEM_GETITEMW,RB_GETROWCOUNT,SB_GETTEXTW,TB_ISBUTTONINDETERMINATE,TTM_GETTOOLCOUNT))
F(1038,(CBEM_SETEXTENDEDSTYLE,RB_GETROWHEIGHT,SB_ISSIMPLE,TB_ISBUTTONHIGHLIGHTED,TBM_GETPTICS,TTM_ENUMTOOLSA))
F(1039,(SB_SETICON,TBM_GETTICPOS,TTM_GETCURRENTTOOLA))
F(1040,(RB_IDTOINDEX,SB_SETTIPTEXTA,TBM_GETNUMTICS,TTM_WINDOWFROMPOINT))
F(1041,(RB_GETTOOLTIPS,SB_SETTIPTEXTW,TBM_GETSELSTART,TB_SETSTATE,TTM_TRACKACTIVATE))
F(1042,(RB_SETTOOLTIPS,SB_GETTIPTEXTA,TB_GETSTATE,TBM_GETSELEND,TTM_TRACKPOSITION))
F(1043,(RB_SETBKCOLOR,SB_GETTIPTEXTW,TB_ADDBITMAP,TBM_CLEARSEL,TTM_SETTIPBKCOLOR))
F(1044,(RB_GETBKCOLOR,SB_GETICON,TB_ADDBUTTONSA,TBM_SETTICFREQ,TTM_SETTIPTEXTCOLOR))
F(1045,(RB_SETTEXTCOLOR,TB_INSERTBUTTONA,TBM_SETPAGESIZE,TTM_GETDELAYTIME))
F(1046,(RB_GETTEXTCOLOR,TB_DELETEBUTTON,TBM_GETPAGESIZE,TTM_GETTIPBKCOLOR))
F(1047,(RB_SIZETORECT,TB_GETBUTTON,TBM_SETLINESIZE,TTM_GETTIPTEXTCOLOR))
F(1048,(RB_BEGINDRAG,TB_BUTTONCOUNT,TBM_GETLINESIZE,TTM_SETMAXTIPWIDTH))
F(1049,(RB_ENDDRAG,TB_COMMANDTOINDEX,TBM_GETTHUMBRECT,TTM_GETMAXTIPWIDTH))
F(1050,(RB_DRAGMOVE,TBM_GETCHANNELRECT,TB_SAVERESTOREA,TTM_SETMARGIN))
F(1051,(RB_GETBARHEIGHT,TB_CUSTOMIZE,TBM_SETTHUMBLENGTH,TTM_GETMARGIN))
F(1052,(RB_GETBANDINFOW,TB_ADDSTRINGA,TBM_GETTHUMBLENGTH,TTM_POP))
F(1053,(RB_GETBANDINFOA,TB_GETITEMRECT,TBM_SETTOOLTIPS,TTM_UPDATE))
F(1054,(RB_MINIMIZEBAND,TB_BUTTONSTRUCTSIZE,TBM_GETTOOLTIPS,TTM_GETBUBBLESIZE))
F(1055,(RB_MAXIMIZEBAND,TBM_SETTIPSIDE,TB_SETBUTTONSIZE,TTM_ADJUSTRECT))
F(1056,(TBM_SETBUDDY,TB_SETBITMAPSIZE,TTM_SETTITLEA))
F(1057,(MSG_FTS_JUMP_VA,TB_AUTOSIZE,TBM_GETBUDDY,TTM_SETTITLEW))
F(1058,RB_GETBANDBORDERS)
F(1059,(MSG_FTS_JUMP_QWORD,RB_SHOWBAND,TB_GETTOOLTIPS))
F(1060,(MSG_REINDEX_REQUEST,TB_SETTOOLTIPS))
F(1061,(MSG_FTS_WHERE_IS_IT,RB_SETPALETTE,TB_SETPARENT))
F(1062,RB_GETPALETTE)
F(1063,(RB_MOVEBAND,TB_SETROWS))
F(1064,TB_GETROWS)
F(1065,TB_GETBITMAPFLAGS)
F(1066,TB_SETCMDID)
F(1067,(RB_PUSHCHEVRON,TB_CHANGEBITMAP))
F(1068,TB_GETBITMAP)
F(1069,(MSG_GET_DEFFONT,TB_GETBUTTONTEXTA))
F(1070,TB_REPLACEBITMAP)
F(1071,TB_SETINDENT)
F(1072,TB_SETIMAGELIST)
F(1073,TB_GETIMAGELIST)
F(1074,(TB_LOADIMAGES,EM_CANPASTE,TTM_ADDTOOLW))
F(1075,(EM_DISPLAYBAND,TB_GETRECT,TTM_DELTOOLW))
F(1076,(EM_EXGETSEL,TB_SETHOTIMAGELIST,TTM_NEWTOOLRECTW))
F(1077,(EM_EXLIMITTEXT,TB_GETHOTIMAGELIST,TTM_GETTOOLINFOW))
F(1078,(EM_EXLINEFROMCHAR,TB_SETDISABLEDIMAGELIST,TTM_SETTOOLINFOW))
F(1079,(EM_EXSETSEL,TB_GETDISABLEDIMAGELIST,TTM_HITTESTW))
F(1080,(EM_FINDTEXT,TB_SETSTYLE,TTM_GETTEXTW))
F(1081,(EM_FORMATRANGE,TB_GETSTYLE,TTM_UPDATETIPTEXTW))
F(1082,(EM_GETCHARFORMAT,TB_GETBUTTONSIZE,TTM_ENUMTOOLSW))
F(1083,(EM_GETEVENTMASK,TB_SETBUTTONWIDTH,TTM_GETCURRENTTOOLW))
F(1084,(EM_GETOLEINTERFACE,TB_SETMAXTEXTROWS))
F(1085,(EM_GETPARAFORMAT,TB_GETTEXTROWS))
F(1086,(EM_GETSELTEXT,TB_GETOBJECT))
F(1087,(EM_HIDESELECTION,TB_GETBUTTONINFOW))
F(1088,(EM_PASTESPECIAL,TB_SETBUTTONINFOW))
F(1089,(EM_REQUESTRESIZE,TB_GETBUTTONINFOA))
F(1090,(EM_SELECTIONTYPE,TB_SETBUTTONINFOA))
F(1091,(EM_SETBKGNDCOLOR,TB_INSERTBUTTONW))
F(1092,(EM_SETCHARFORMAT,TB_ADDBUTTONSW))
F(1093,(EM_SETEVENTMASK,TB_HITTEST))
F(1094,(EM_SETOLECALLBACK,TB_SETDRAWTEXTFLAGS))
F(1095,(EM_SETPARAFORMAT,TB_GETHOTITEM))
F(1096,(EM_SETTARGETDEVICE,TB_SETHOTITEM))
F(1097,(EM_STREAMIN,TB_SETANCHORHIGHLIGHT))
F(1098,(EM_STREAMOUT,TB_GETANCHORHIGHLIGHT))
F(1099,(EM_GETTEXTRANGE,TB_GETBUTTONTEXTW))
F(1100,(EM_FINDWORDBREAK,TB_SAVERESTOREW))
F(1101,(EM_SETOPTIONS,TB_ADDSTRINGW))
F(1102,(EM_GETOPTIONS,TB_MAPACCELERATORA))
F(1103,(EM_FINDTEXTEX,TB_GETINSERTMARK))
F(1104,(EM_GETWORDBREAKPROCEX,TB_SETINSERTMARK))
F(1105,(EM_SETWORDBREAKPROCEX,TB_INSERTMARKHITTEST))
F(1106,(EM_SETUNDOLIMIT,TB_MOVEBUTTON))
F(1107,TB_GETMAXSIZE)
F(1108,(EM_REDO,TB_SETEXTENDEDSTYLE))
F(1109,(EM_CANREDO,TB_GETEXTENDEDSTYLE))
F(1110,(EM_GETUNDONAME,TB_GETPADDING))
F(1111,(EM_GETREDONAME,TB_SETPADDING))
F(1112,(EM_STOPGROUPTYPING,TB_SETINSERTMARKCOLOR))
F(1113,(EM_SETTEXTMODE,TB_GETINSERTMARKCOLOR))
F(1114,(EM_GETTEXTMODE,TB_MAPACCELERATORW))
F(1115,(EM_AUTOURLDETECT,TB_GETSTRINGW))
F(1116,(EM_GETAUTOURLDETECT,TB_GETSTRINGA))
F(1117,EM_SETPALETTE)
F(1118,EM_GETTEXTEX)
F(1119,EM_GETTEXTLENGTHEX)
F(1120,EM_SHOWSCROLLBAR)
F(1121,EM_SETTEXTEX)
F(1123,TAPI_REPLY)
F(1124,(ACM_OPENA,BFFM_SETSTATUSTEXTA,CDM_GETSPEC,EM_SETPUNCTUATION,IPM_CLEARADDRESS,WM_CAP_UNICODE_START))
F(1125,(ACM_PLAY,BFFM_ENABLEOK,CDM_GETFILEPATH,EM_GETPUNCTUATION,IPM_SETADDRESS,PSM_SETCURSEL,UDM_SETRANGE,WM_CHOOSEFONT_SETLOGFONT))
F(1126,(ACM_STOP,BFFM_SETSELECTIONA,CDM_GETFOLDERPATH,EM_SETWORDWRAPMODE,IPM_GETADDRESS,PSM_REMOVEPAGE,UDM_GETRANGE,WM_CAP_SET_CALLBACK_ERRORW,WM_CHOOSEFONT_SETFLAGS))
F(1127,(ACM_OPENW,BFFM_SETSELECTIONW,CDM_GETFOLDERIDLIST,EM_GETWORDWRAPMODE,IPM_SETRANGE,PSM_ADDPAGE,UDM_SETPOS,WM_CAP_SET_CALLBACK_STATUSW))
F(1128,(BFFM_SETSTATUSTEXTW,CDM_SETCONTROLTEXT,EM_SETIMECOLOR,IPM_SETFOCUS,PSM_CHANGED,UDM_GETPOS))
F(1129,(CDM_HIDECONTROL,EM_GETIMECOLOR,IPM_ISBLANK,PSM_RESTARTWINDOWS,UDM_SETBUDDY))
F(1130,(CDM_SETDEFEXT,EM_SETIMEOPTIONS,PSM_REBOOTSYSTEM,UDM_GETBUDDY))
F(1131,(EM_GETIMEOPTIONS,PSM_CANCELTOCLOSE,UDM_SETACCEL))
F(1132,(EM_CONVPOSITION,EM_CONVPOSITION,PSM_QUERYSIBLINGS,UDM_GETACCEL))
F(1133,(MCIWNDM_GETZOOM,PSM_UNCHANGED,UDM_SETBASE))
F(1134,(PSM_APPLY,UDM_GETBASE))
F(1135,(PSM_SETTITLEA,UDM_SETRANGE32))
F(1136,(PSM_SETWIZBUTTONS,UDM_GETRANGE32,WM_CAP_DRIVER_GET_NAMEW))
F(1137,(PSM_PRESSBUTTON,UDM_SETPOS32,WM_CAP_DRIVER_GET_VERSIONW))
F(1138,(PSM_SETCURSELID,UDM_GETPOS32))
F(1139,PSM_SETFINISHTEXTA)
F(1140,PSM_GETTABCONTROL)
F(1141,PSM_ISDIALOGMESSAGE)
F(1142,(MCIWNDM_REALIZE,PSM_GETCURRENTPAGEHWND))
F(1143,(MCIWNDM_SETTIMEFORMATA,PSM_INSERTPAGE))
F(1144,(EM_SETLANGOPTIONS,MCIWNDM_GETTIMEFORMATA,PSM_SETTITLEW,WM_CAP_FILE_SET_CAPTURE_FILEW))
F(1145,(EM_GETLANGOPTIONS,MCIWNDM_VALIDATEMEDIA,PSM_SETFINISHTEXTW,WM_CAP_FILE_GET_CAPTURE_FILEW))
F(1146,EM_GETIMECOMPMODE)
F(1147,(EM_FINDTEXTW,MCIWNDM_PLAYTO,WM_CAP_FILE_SAVEASW))
F(1148,(EM_FINDTEXTEXW,MCIWNDM_GETFILENAMEA))
F(1149,(EM_RECONVERSION,MCIWNDM_GETDEVICEA,PSM_SETHEADERTITLEA,WM_CAP_FILE_SAVEDIBW))
F(1150,(EM_SETIMEMODEBIAS,MCIWNDM_GETPALETTE,PSM_SETHEADERTITLEW))
F(1151,(EM_GETIMEMODEBIAS,MCIWNDM_SETPALETTE,PSM_SETHEADERSUBTITLEA))
F(1152,(MCIWNDM_GETERRORA,PSM_SETHEADERSUBTITLEW))
F(1153,PSM_HWNDTOINDEX)
F(1154,PSM_INDEXTOHWND)
F(1155,(MCIWNDM_SETINACTIVETIMER,PSM_PAGETOINDEX))
F(1156,PSM_INDEXTOPAGE)
F(1157,(DL_BEGINDRAG,MCIWNDM_GETINACTIVETIMER,PSM_IDTOINDEX))
F(1158,(DL_DRAGGING,PSM_INDEXTOID))
F(1159,(DL_DROPPED,PSM_GETRESULT))
F(1160,(DL_CANCELDRAG,PSM_RECALCPAGESIZES))
F(1164,MCIWNDM_GET_SOURCE)
F(1165,MCIWNDM_PUT_SOURCE)
F(1166,MCIWNDM_GET_DEST)
F(1167,MCIWNDM_PUT_DEST)
F(1168,MCIWNDM_CAN_PLAY)
F(1169,MCIWNDM_CAN_WINDOW)
F(1170,MCIWNDM_CAN_RECORD)
F(1171,MCIWNDM_CAN_SAVE)
F(1172,MCIWNDM_CAN_EJECT)
F(1173,MCIWNDM_CAN_CONFIG)
F(1174,(IE_GETINK,MCIWNDM_PALETTEKICK))
F(1175,IE_SETINK)
F(1176,IE_GETPENTIP)
F(1177,IE_SETPENTIP)
F(1178,IE_GETERASERTIP)
F(1179,IE_SETERASERTIP)
F(1180,IE_GETBKGND)
F(1181,IE_SETBKGND)
F(1182,IE_GETGRIDORIGIN)
F(1183,IE_SETGRIDORIGIN)
F(1184,IE_GETGRIDPEN)
F(1185,IE_SETGRIDPEN)
F(1186,IE_GETGRIDSIZE)
F(1187,IE_SETGRIDSIZE)
F(1188,IE_GETMODE)
F(1189,IE_SETMODE)
F(1190,(IE_GETINKRECT,WM_CAP_SET_MCI_DEVICEW))
F(1191,WM_CAP_GET_MCI_DEVICEW)
F(1204,WM_CAP_PAL_OPENW)
F(1205,WM_CAP_PAL_SAVEW)
F(1208,IE_GETAPPDATA)
F(1209,IE_SETAPPDATA)
F(1210,IE_GETDRAWOPTS)
F(1211,IE_SETDRAWOPTS)
F(1212,IE_GETFORMAT)
F(1213,IE_SETFORMAT)
F(1214,IE_GETINKINPUT)
F(1215,IE_SETINKINPUT)
F(1216,IE_GETNOTIFY)
F(1217,IE_SETNOTIFY)
F(1218,IE_GETRECOG)
F(1219,IE_SETRECOG)
F(1220,IE_GETSECURITY)
F(1221,IE_SETSECURITY)
F(1222,IE_GETSEL)
F(1223,IE_SETSEL)
F(1224,(EM_SETBIDIOPTIONS,IE_DOCOMMAND,MCIWNDM_NOTIFYMODE))
F(1225,(EM_GETBIDIOPTIONS,IE_GETCOMMAND))
F(1226,(EM_SETTYPOGRAPHYOPTIONS,IE_GETCOUNT))
F(1227,(EM_GETTYPOGRAPHYOPTIONS,IE_GETGESTURE,MCIWNDM_NOTIFYMEDIA))
F(1228,(EM_SETEDITSTYLE,IE_GETMENU))
F(1229,(EM_GETEDITSTYLE,IE_GETPAINTDC,MCIWNDM_NOTIFYERROR))
F(1230,IE_GETPDEVENT)
F(1231,IE_GETSELCOUNT)
F(1232,IE_GETSELITEMS)
F(1233,IE_GETSTYLE)
F(1243,MCIWNDM_SETTIMEFORMATW)
F(1244,(EM_OUTLINE,MCIWNDM_GETTIMEFORMATW))
F(1245,EM_GETSCROLLPOS)
F(1246,(EM_SETSCROLLPOS,EM_SETSCROLLPOS))
F(1247,EM_SETFONTSIZE)
F(1248,(EM_GETZOOM,MCIWNDM_GETFILENAMEW))
F(1249,(EM_SETZOOM,MCIWNDM_GETDEVICEW))
F(1250,EM_GETVIEWKIND)
F(1251,EM_SETVIEWKIND)
F(1252,(EM_GETPAGE,MCIWNDM_GETERRORW))
F(1253,EM_SETPAGE)
F(1254,EM_GETHYPHENATEINFO)
F(1255,EM_SETHYPHENATEINFO)
F(1259,EM_GETPAGEROTATE)
F(1260,EM_SETPAGEROTATE)
F(1261,EM_GETCTFMODEBIAS)
F(1262,EM_SETCTFMODEBIAS)
F(1264,EM_GETCTFOPENSTATUS)
F(1265,EM_SETCTFOPENSTATUS)
F(1266,EM_GETIMECOMPTEXT)
F(1267,EM_ISIME)
F(1268,EM_GETIMEPROPERTY)
F(1293,EM_GETQUERYRTFOBJ)
F(1294,EM_SETQUERYRTFOBJ)
F(1536,FM_GETFOCUS)
F(1537,FM_GETDRIVEINFOA)
F(1538,FM_GETSELCOUNT)
F(1539,FM_GETSELCOUNTLFN)
F(1540,FM_GETFILESELA)
F(1541,FM_GETFILESELLFNA)
F(1542,FM_REFRESH_WINDOWS)
F(1543,FM_RELOAD_EXTENSIONS)
F(1553,FM_GETDRIVEINFOW)
F(1556,FM_GETFILESELW)
F(1557,FM_GETFILESELLFNW)
F(1625,WLX_WM_SAS)
F(2024,(SM_GETSELCOUNT,UM_GETSELCOUNT,WM_CPL_LAUNCH))
F(2025,(SM_GETSERVERSELA,UM_GETUSERSELA,WM_CPL_LAUNCHED))
F(2026,(SM_GETSERVERSELW,UM_GETUSERSELW))
F(2027,(SM_GETCURFOCUSA,UM_GETGROUPSELA))
F(2028,(SM_GETCURFOCUSW,UM_GETGROUPSELW))
F(2029,(SM_GETOPTIONS,UM_GETCURFOCUSA))
F(2030,UM_GETCURFOCUSW)
F(2031,UM_GETOPTIONS)
F(2032,UM_GETOPTIONS2)
F(4096,LVM_GETBKCOLOR)
F(4097,LVM_SETBKCOLOR)
F(4098,LVM_GETIMAGELIST)
F(4099,LVM_SETIMAGELIST)
F(4100,LVM_GETITEMCOUNT)
F(4101,LVM_GETITEMA)
F(4102,LVM_SETITEMA)
F(4103,LVM_INSERTITEMA)
F(4104,LVM_DELETEITEM)
F(4105,LVM_DELETEALLITEMS)
F(4106,LVM_GETCALLBACKMASK)
F(4107,LVM_SETCALLBACKMASK)
F(4108,LVM_GETNEXTITEM)
F(4109,LVM_FINDITEMA)
F(4110,LVM_GETITEMRECT)
F(4111,LVM_SETITEMPOSITION)
F(4112,LVM_GETITEMPOSITION)
F(4113,LVM_GETSTRINGWIDTHA)
F(4114,LVM_HITTEST)
F(4115,LVM_ENSUREVISIBLE)
F(4116,LVM_SCROLL)
F(4117,LVM_REDRAWITEMS)
F(4118,LVM_ARRANGE)
F(4119,LVM_EDITLABELA)
F(4120,LVM_GETEDITCONTROL)
F(4121,LVM_GETCOLUMNA)
F(4122,LVM_SETCOLUMNA)
F(4123,LVM_INSERTCOLUMNA)
F(4124,LVM_DELETECOLUMN)
F(4125,LVM_GETCOLUMNWIDTH)
F(4126,LVM_SETCOLUMNWIDTH)
F(4127,LVM_GETHEADER)
F(4129,LVM_CREATEDRAGIMAGE)
F(4130,LVM_GETVIEWRECT)
F(4131,LVM_GETTEXTCOLOR)
F(4132,LVM_SETTEXTCOLOR)
F(4133,LVM_GETTEXTBKCOLOR)
F(4134,LVM_SETTEXTBKCOLOR)
F(4135,LVM_GETTOPINDEX)
F(4136,LVM_GETCOUNTPERPAGE)
F(4137,LVM_GETORIGIN)
F(4138,LVM_UPDATE)
F(4139,LVM_SETITEMSTATE)
F(4140,LVM_GETITEMSTATE)
F(4141,LVM_GETITEMTEXTA)
F(4142,LVM_SETITEMTEXTA)
F(4143,LVM_SETITEMCOUNT)
F(4144,LVM_SORTITEMS)
F(4145,LVM_SETITEMPOSITION32)
F(4146,LVM_GETSELECTEDCOUNT)
F(4147,LVM_GETITEMSPACING)
F(4148,LVM_GETISEARCHSTRINGA)
F(4149,LVM_SETICONSPACING)
F(4150,LVM_SETEXTENDEDLISTVIEWSTYLE)
F(4151,LVM_GETEXTENDEDLISTVIEWSTYLE)
F(4152,LVM_GETSUBITEMRECT)
F(4153,LVM_SUBITEMHITTEST)
F(4154,LVM_SETCOLUMNORDERARRAY)
F(4155,LVM_GETCOLUMNORDERARRAY)
F(4156,LVM_SETHOTITEM)
F(4157,LVM_GETHOTITEM)
F(4158,LVM_SETHOTCURSOR)
F(4159,LVM_GETHOTCURSOR)
F(4160,LVM_APPROXIMATEVIEWRECT)
F(4161,LVM_SETWORKAREAS)
F(4162,LVM_GETSELECTIONMARK)
F(4163,LVM_SETSELECTIONMARK)
F(4164,LVM_SETBKIMAGEA)
F(4165,LVM_GETBKIMAGEA)
F(4166,LVM_GETWORKAREAS)
F(4167,LVM_SETHOVERTIME)
F(4168,LVM_GETHOVERTIME)
F(4169,LVM_GETNUMBEROFWORKAREAS)
F(4170,LVM_SETTOOLTIPS)
F(4171,LVM_GETITEMW)
F(4172,LVM_SETITEMW)
F(4173,LVM_INSERTITEMW)
F(4174,LVM_GETTOOLTIPS)
F(4179,LVM_FINDITEMW)
F(4183,LVM_GETSTRINGWIDTHW)
F(4191,LVM_GETCOLUMNW)
F(4192,LVM_SETCOLUMNW)
F(4193,LVM_INSERTCOLUMNW)
F(4211,LVM_GETITEMTEXTW)
F(4212,LVM_SETITEMTEXTW)
F(4213,LVM_GETISEARCHSTRINGW)
F(4214,LVM_EDITLABELW)
F(4235,LVM_GETBKIMAGEW)
F(4236,LVM_SETSELECTEDCOLUMN)
F(4237,LVM_SETTILEWIDTH)
F(4238,LVM_SETVIEW)
F(4239,LVM_GETVIEW)
F(4241,LVM_INSERTGROUP)
F(4243,LVM_SETGROUPINFO)
F(4245,LVM_GETGROUPINFO)
F(4246,LVM_REMOVEGROUP)
F(4247,LVM_MOVEGROUP)
F(4250,LVM_MOVEITEMTOGROUP)
F(4251,LVM_SETGROUPMETRICS)
F(4252,LVM_GETGROUPMETRICS)
F(4253,LVM_ENABLEGROUPVIEW)
F(4254,LVM_SORTGROUPS)
F(4255,LVM_INSERTGROUPSORTED)
F(4256,LVM_REMOVEALLGROUPS)
F(4257,LVM_HASGROUP)
F(4258,LVM_SETTILEVIEWINFO)
F(4259,LVM_GETTILEVIEWINFO)
F(4260,LVM_SETTILEINFO)
F(4261,LVM_GETTILEINFO)
F(4262,LVM_SETINSERTMARK)
F(4263,LVM_GETINSERTMARK)
F(4264,LVM_INSERTMARKHITTEST)
F(4265,LVM_GETINSERTMARKRECT)
F(4266,LVM_SETINSERTMARKCOLOR)
F(4267,LVM_GETINSERTMARKCOLOR)
F(4269,LVM_SETINFOTIP)
F(4270,LVM_GETSELECTEDCOLUMN)
F(4271,LVM_ISGROUPVIEWENABLED)
F(4272,LVM_GETOUTLINECOLOR)
F(4273,LVM_SETOUTLINECOLOR)
F(4275,LVM_CANCELEDITLABEL)
F(4276,LVM_MAPINDEXTOID)
F(4277,LVM_MAPIDTOINDEX)
F(4278,LVM_ISITEMVISIBLE)
F(8192,OCM__BASE)
F(8197,LVM_SETUNICODEFORMAT)
F(8198,LVM_GETUNICODEFORMAT)
F(8217,OCM_CTLCOLOR)
F(8235,OCM_DRAWITEM)
F(8236,OCM_MEASUREITEM)
F(8237,OCM_DELETEITEM)
F(8238,OCM_VKEYTOITEM)
F(8239,OCM_CHARTOITEM)
F(8249,OCM_COMPAREITEM)
F(8270,OCM_NOTIFY)
F(8465,OCM_COMMAND)
F(8468,OCM_HSCROLL)
F(8469,OCM_VSCROLL)
F(8498,OCM_CTLCOLORMSGBOX)
F(8499,OCM_CTLCOLOREDIT)
F(8500,OCM_CTLCOLORLISTBOX)
F(8501,OCM_CTLCOLORBTN)
F(8502,OCM_CTLCOLORDLG)
F(8503,OCM_CTLCOLORSCROLLBAR)
F(8504,OCM_CTLCOLORSTATIC)
F(8720,OCM_PARENTNOTIFY)
F(32768,WM_APP)
F(52429,WM_RASDIALEVENT)
}
#undef F
return 0;
}
std::string id2str(int id){
auto*p=id2str_impl(id);
return p?p:"unk("+std::to_string(id)+")";
}
int main(){
std::cout << "id2str(512) == " << id2str(512) << std::endl;
}
diff (compared to https://wiki.winehq.org/List_Of_Windows_Messages):
https://www.diffchecker.com/VvLzYadB

Related

How do you change the font formatting of a single axis label value

I have a text field ['Region'] with four values {Global, AMER, APAC, EMEA}. I have a simple bar chart and want the label to be bold only for 'Global' but have been unable to do so.
I tried:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": { "values": [
{"Region": "Global", "Months": 1, "RegionRank":1},
{"Region": "AMER", "Months": -1, "RegionRank":2},
{"Region": "APAC", "Months": 3, "RegionRank":3}, {"Region": "EMEA", "Months": 2, "RegionRank":4}
]},
"layer": [
{
"mark": {
"type": "bar",
"filled": false,
"stroke": "gray",
"strokeDash": [3.6],
"strokeWidth": 3
}
},
{
"mark": {
"type": "text",
"fontSize": 14,
"xOffset": {
"expr": "datum['Months']<0 ? -15:15"
}
},
"encoding": {
"text": {
"field": "Months",
"format": "+.0f"
}
}
}
],
"encoding": {
"y": {
"field": "Region",
"type": "nominal",
"axis": {
"offset": 10,
"title": null,
// problem section
"labelFontWeight": {
"condition": {"test": "datum['Region'] == 'Global'","value":"bold"},
"value":"normal"
}
},
"sort": {
"op": "min",
"field": "RegionRank",
"order": "ascending"
}
},
"x": {
"field": "Months",
"type": "quantitative",
"axis": {"title": null}
}
}
}
but there is no change to the label font weight.
What is interesting is that I switched the result conditions, making the '==Global' result "normal" and the else "bold" and it changed font weight on all the labels to bold. That leads me to believe that my condition is never being evaluated as true. Any ideas why? Is what I want to do - changing a signal value in an axis label - possible?
You mean like this?
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {
"values": [
{"Region": "Global", "Months": 1, "RegionRank": 1},
{"Region": "AMER", "Months": -1, "RegionRank": 2},
{"Region": "APAC", "Months": 3, "RegionRank": 3},
{"Region": "EMEA", "Months": 2, "RegionRank": 4}
]
},
"layer": [
{
"mark": {
"type": "bar",
"filled": false,
"stroke": "gray",
"strokeDash": [3.6],
"strokeWidth": 3
}
},
{
"mark": {
"type": "text",
"fontSize": 14,
"xOffset": {"expr": "datum['Months']<0 ? -15:15"}
},
"encoding": {"text": {"field": "Months", "format": "+.0f"}}
}
],
"encoding": {
"y": {
"field": "Region",
"type": "nominal",
"axis": {
"offset": 10,
"title": null,
"labelFontWeight": {
"condition": {"test": "datum.label == 'Global'", "value": "bold"},
"value": "normal"
}
},
"sort": {"op": "min", "field": "RegionRank", "order": "ascending"}
},
"x": {"field": "Months", "type": "quantitative", "axis": {"title": null}}
}
}

icCube gauge with multiple band colors

I'm trying to make a gauge and want to have two band colors (wrong/red, good/green). I've an example of the amchart in their online Chart maker https://live.amcharts.com/new/edit/. But I'm not able to get this working in icCube.
current we have icCube reporting version 7.0.0 (5549).
This is my chart JSON:
{
"box": {
"id": "wb695",
"widgetAdapterId": "w28",
"rectangle": {
"left": 1510,
"top": 340,
"right": 1910,
"bottom": 640
},
"zIndex": 901
},
"data": {
"mode": "MDX",
"schemaSettings": {
"cubeName": null,
"schemaName": null
},
"options": {
"WIZARD": {
"measures": [],
"rows": [],
"rowsNonEmpty": false,
"columns": [],
"columnsNonEmpty": false,
"filter": []
},
"MDX": {
"statement": "with \n member [Measures].[Measure1] AS 0.9\n member [Measures].[Measure2] AS 0.1\nSELECT\n\n{[Measures].[Measure1], [Measures].[Measure2]} on 0\n\nFROM [cube]"
},
"DATASOURCE": {}
},
"ic3_name": "mdx Query-5",
"ic3_uid": "m17"
},
"data-render": {
"chartType": {
"label": "Gauge",
"proto": {
"chartPrototype": {
"type": "gauge",
"arrows": [
{
"id": "GaugeArrow-1"
}
],
"axes": [
{
"id": "GaugeAxis-1"
}
]
},
"graphPrototype": {},
"dataProviderType": 3
},
"id": "gauge-chart"
},
"graphsConfiguration": [
{
"graph": {}
}
],
"valueAxes": [],
"trendLinesGuides": {},
"configuredQuadrants": {},
"advanced": {
"titles": [],
"faceAlpha": 0,
"faceBorderAlpha": 0
},
"balloon": {
"offsetX": 8
},
"chartOptions": {
"axes": [
{
"axisAlpha": 0.25,
"bottomText": "SLA",
"bottomTextColor": "#2A3F56",
"tickAlpha": 0.25,
"bandOutlineAlpha": 1,
"bandAlpha": 1,
"bandOutlineThickness": 95,
"bandOutlineColor": "#0095BC",
"id": 1
}
],
"bands": [
{
"alpha": 0.8,
"color": "#B53728",
"endValue": 0.6,
"startValue": 0,
"id": "GaugeBand-1"
},
{
"alpha": 0.6,
"color": "#435035",
"endValue": 1,
"startValue": 0.6,
"innerRadius": 0.69,
"id": "GaugeBand-2"
}
]
},
"ic3Data": {
"chartTypeConfig": {
"pie-chart-donut": {
"chartType": {
"label": "Donut",
"proto": {
"chartPrototype": {
"type": "donut",
"pullOutRadius": 0,
"startDuration": 0,
"legend": {
"enabled": false,
"align": "center",
"markerType": "circle"
},
"innerRadius": "60%"
},
"dataProviderType": 1
},
"id": "pie-chart-donut"
},
"graphsConfiguration": [
{}
],
"valueAxes": [],
"trendLinesGuides": {},
"configuredQuadrants": {},
"advanced": {
"titles": []
},
"balloon": {
"offsetX": 8
},
"chartOptions": {
"showZeroSlices": false,
"labelsEnabled": false,
"innerRadius": "60%",
"startAngle": 270,
"radius": "",
"fontSize": 20,
"color": "#0095BC",
"outlineAlpha": 0.25,
"tapToActivate": false
}
}
}
},
"axes": [
{
"startValue": 0,
"endValue": 1,
"startAngle": -90,
"endAngle": 90
}
],
"valueFormatting": ""
},
"navigation": {
"menuVisibility": {
"back": true,
"axisXChange": "All",
"axisYChange": "All",
"filter": "All",
"reset": true,
"widget": true,
"others": "All"
},
"selectionMode": "disabled"
},
"events": {},
"filtering": {},
"hooks": {}
}
Sorry for the late answer, out of the box it's not possible but you can use hooks to change the javascript options sent to amcharts.
JS / On Widget Options :
function(context, options, $box) {
const bands = [
{
"color": "#00CC00",
"endValue": 300000,
"id": "GaugeBand-1",
"startValue": 0
},
{
"color": "#ffac29",
"endValue": 600000,
"id": "GaugeBand-2",
"startValue": 300000
},
{
"color": "#ea3838",
"endValue": 900000,
"id": "GaugeBand-3",
"innerRadius": "95%",
"startValue": 600000
}
];
options.axes[0]["bands"] = bands;
return options;
}
This should work

Chartjs Stacked bar chart not displaying correctly

I'm trying to create a stacked bar chart with chartjs. I have time series with discrepencies in time, this means some series can have value for a time but others don't. For this reason I chose to include directly the x values in the dataset and not as a label array, but the chart does not render correctly.
Here is my code:
var config = {
type:'bar',
data:{
datasets:datasets
},
options: {
responsive: true,
title:{
display:true,
text:"MyChart"
},
tooltips: {
mode: 'index'
},
hover: {
mode: 'index'
},
legend: {
position: 'bottom'
},
elements: { point: { radius: 0 }},
scales: {
xAxes: [{
stacked: true,
type: 'time',
time: {
unit: 'minutes',
unitStepSize: 5,
displayFormats:{
minutes:'HH:mm'
}
},
scaleLabel: {
display: true,
labelString: 'Date'
}
}],
yAxes: [{
stacked:true,
scaleLabel: {
display: true,
labelString: 'Resources Consumed'
}
}]
}
}
};
var ctx = document.getElementById('session-sql-activity').getContext("2d");
ctx.canvas.height = 300;
ctx.canvas.width = 800;
new Chart(ctx,config);
I think the issue is with the x axis stacking.
Here is a JSFiddle illustrating the problem.
https://jsfiddle.net/1kLyyjfp/
I think a solution is to specify a value for the y axis anyway.
{
"y": 0,
"x": "2017-12-22 08:59"
}
The resulting dataset is:
[{
"data": [{
"y": 2,
"x": "2017-12-22 08:59"
}, {
"y": 18,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#32AA09",
"label": "7726bj0dhtnmt"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 2,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#CF5A26",
"label": "0ks4u5nywjbdj"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 4,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#DA43AA",
"label": "1mnbsygj75jvx"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 2,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#5200A0",
"label": "39ymdt11ybwhz"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 2,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#925E44",
"label": "4v1whmzv76j2z"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 2,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#477BD4",
"label": "5sfyujuhwbj9n"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 4,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#272755",
"label": "6x0zvf2mw8t6g"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 2,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#F581E0",
"label": "7kpk62m5n8j9q"
}, {
"data": [{
"y": 0,
"x": "2017-12-22 08:59"
}, {
"y": 20,
"x": "2017-12-22 09:00"
}],
"backgroundColor": "#4128A8",
"label": "7mwz4m103nn1k"
}];

facebook reactions to be grouped by aggs terms elasticsearch

I am working on Facebook analytic, Here is a query which is supposed to fetch the summary of the reactions from Facebook page posts,
Note: posts json is as it is inserted to elastic-search db
{
"query": {
"match": {
"from.id": "[Page-id]"
}
},
"aggs": {
"summary_reaction": {
"terms": {
"field": "reactions.data.type.keyword"
}
}
}
}
Only issue is query return unique count whereas it should consider all reactions.
My result is
"aggregations": {
"reaction_summary": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "LIKE",
"doc_count": 2
},
{
"key": "HAHA",
"doc_count": 1
}
]
}
}
here is the sample json
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 6.158189,
"hits": [
{
"_index": "facebook_page",
"_type": "post",
"_id": "AV1RMRKSSM3OTvGpqzx7",
"_score": 6.158189,
"_source": {
"reactions": {
"paging": {
"cursors": {
"after": "TVRFMk9EYzVOekl5TWpjMU5USTJPakUxTURBek1EVTNOREU2TWpVME1EazJNVFl4TXc9PQZDZD",
"before": "TVRFMk9EYzVOekl5TWpjMU5USTJPakUxTURBek1EVTNOREU2TWpVME1EazJNVFl4TXc9PQZDZD"
}
},
"data": [
{
"pic_large": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/20108099_116879808942184_8792637908147052517_n.png?oh=4dcc9a9bbdfc965eb477a14775f31448&oe=5A0BCFB5&__gda__=1510661157_f329dd30b13490dbae8d05d3aa45d79f",
"type": "LIKE",
"id": "116879722275526",
"name": "Moojaa"
}
]
},
"from": {
"picture": {
"data": {
"url": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p50x50/20108099_116879808942184_8792637908147052517_n.png?oh=24cc256b24e5da70f306afcf784a636d&oe=59FBA1D4&__gda__=1509895651_44acee6189c7c1cb6eed023a6e742d1a",
"is_silhouette": false
}
},
"name": "Moojaa",
"id": "116879722275526"
},
"coordinates": {},
"created_time": "2017-07-17T15:35:35+0000",
"message": "Kuthey e Moojaa",
"type": "status",
"id": "116879722275526_116886608941504"
}
},
{
"_index": "facebook_page",
"_type": "post",
"_id": "AV1RMRViSM3OTvGpqzx8",
"_score": 6.158189,
"_source": {
"reactions": {
"paging": {
"cursors": {
"after": "TVRFMk9EYzVOekl5TWpjMU5USTJPakUxTURBek1EUTBNRGc2TWpVME1EazJNVFl4TXc9PQZDZD",
"before": "TVRBd01ERTFOREl5TkRrNE56Y3dPakUxTURBek1EUTFNams2TWpVME1EazJNVFl4TXc9PQZDZD"
}
},
"data": [
{
"pic_large": "https://fb-s-a-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/16864759_114731265717623_8811777667276972672_n.jpg?oh=836c6d5145bc8023d3ac60e0dfd42bde&oe=5A00D0DC&__gda__=1509885772_ad8923f4369250c2c2051c5e9293331f",
"type": "LIKE",
"id": "111467022710714",
"name": "Ram Singh Shankar"
},
{
"pic_large": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/20108099_116879808942184_8792637908147052517_n.png?oh=4dcc9a9bbdfc965eb477a14775f31448&oe=5A0BCFB5&__gda__=1510661157_f329dd30b13490dbae8d05d3aa45d79f",
"type": "LIKE",
"id": "116879722275526",
"name": "Moojaa"
}
]
},
"from": {
"picture": {
"data": {
"url": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p50x50/20108099_116879808942184_8792637908147052517_n.png?oh=24cc256b24e5da70f306afcf784a636d&oe=59FBA1D4&__gda__=1509895651_44acee6189c7c1cb6eed023a6e742d1a",
"is_silhouette": false
}
},
"name": "Moojaa",
"id": "116879722275526"
},
"coordinates": {},
"comments": {
"paging": {
"cursors": {
"after": "WTI5dGJXVnVkRjlqZAFhKemIzSTZANVEUyT0RneE5UUTRPVFF5TURFd09qRTFNREF6TURRMk5Eaz0ZD",
"before": "WTI5dGJXVnVkRjlqZAFhKemIzSTZANVEUyT0RneE5EUXlNamMxTXpVME9qRTFNREF6TURRMk1URT0ZD"
}
},
"data": [
{
"message": "test",
"from": {
"picture": {
"data": {
"url": "https://fb-s-a-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/16864759_114731265717623_8811777667276972672_n.jpg?oh=836c6d5145bc8023d3ac60e0dfd42bde&oe=5A00D0DC&__gda__=1509885772_ad8923f4369250c2c2051c5e9293331f",
"is_silhouette": false
}
},
"name": "Ram Singh Shankar",
"id": "111467022710714"
},
"id": "116880885608743_116881442275354"
},
{
"message": "test 2",
"from": {
"picture": {
"data": {
"url": "https://fb-s-a-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/16864759_114731265717623_8811777667276972672_n.jpg?oh=836c6d5145bc8023d3ac60e0dfd42bde&oe=5A00D0DC&__gda__=1509885772_ad8923f4369250c2c2051c5e9293331f",
"is_silhouette": false
}
},
"name": "Ram Singh Shankar",
"id": "111467022710714"
},
"id": "116880885608743_116881548942010"
}
]
},
"created_time": "2017-07-17T15:13:23+0000",
"message": "another Mooja",
"type": "status",
"id": "116879722275526_116880885608743"
}
},
{
"_index": "facebook_page",
"_type": "post",
"_id": "AV1RMRgtSM3OTvGpqzx9",
"_score": 6.158189,
"_source": {
"reactions": {
"paging": {
"cursors": {
"after": "TVRBd01ERTFOREl5TkRrNE56Y3dPakUxTURBek1EUXpPRGM2TnpnNE5qUTRNRE0zT1RFek16RXkZD",
"before": "TVRFMk9EYzVOekl5TWpjMU5USTJPakUxTURBek1EUTVOVEk2TnpnNE5qUTRNRE0zT1RFek16RXkZD"
}
},
"data": [
{
"pic_large": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/20108099_116879808942184_8792637908147052517_n.png?oh=4dcc9a9bbdfc965eb477a14775f31448&oe=5A0BCFB5&__gda__=1510661157_f329dd30b13490dbae8d05d3aa45d79f",
"type": "HAHA",
"id": "116879722275526",
"name": "Moojaa"
},
{
"pic_large": "https://fb-s-a-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/16864759_114731265717623_8811777667276972672_n.jpg?oh=836c6d5145bc8023d3ac60e0dfd42bde&oe=5A00D0DC&__gda__=1509885772_ad8923f4369250c2c2051c5e9293331f",
"type": "HAHA",
"id": "111467022710714",
"name": "Ram Singh Shankar"
}
]
},
"from": {
"picture": {
"data": {
"url": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p50x50/20108099_116879808942184_8792637908147052517_n.png?oh=24cc256b24e5da70f306afcf784a636d&oe=59FBA1D4&__gda__=1509895651_44acee6189c7c1cb6eed023a6e742d1a",
"is_silhouette": false
}
},
"name": "Moojaa",
"id": "116879722275526"
},
"coordinates": {},
"comments": {
"paging": {
"cursors": {
"after": "WTI5dGJXVnVkRjlqZAFhKemIzSTZANVEUyT0RneE9ESTFOakE0TmpRNU9qRTFNREF6TURRM05EYz0ZD",
"before": "WTI5dGJXVnVkRjlqZAFhKemIzSTZANVEUyT0RneE5UVTRPVFF5TURBNU9qRTFNREF6TURRMk5UUT0ZD"
}
},
"data": [
{
"message": "test 3",
"from": {
"picture": {
"data": {
"url": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/20108099_116879808942184_8792637908147052517_n.png?oh=4dcc9a9bbdfc965eb477a14775f31448&oe=5A0BCFB5&__gda__=1510661157_f329dd30b13490dbae8d05d3aa45d79f",
"is_silhouette": false
}
},
"name": "Moojaa",
"id": "116879722275526"
},
"id": "116880192275479_116881558942009"
},
{
"message": "test ram",
"from": {
"picture": {
"data": {
"url": "https://fb-s-a-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/16864759_114731265717623_8811777667276972672_n.jpg?oh=836c6d5145bc8023d3ac60e0dfd42bde&oe=5A00D0DC&__gda__=1509885772_ad8923f4369250c2c2051c5e9293331f",
"is_silhouette": false
}
},
"name": "Ram Singh Shankar",
"id": "111467022710714"
},
"id": "116880192275479_116881578942007"
},
{
"message": "test singh",
"from": {
"picture": {
"data": {
"url": "https://fb-s-a-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/16864759_114731265717623_8811777667276972672_n.jpg?oh=836c6d5145bc8023d3ac60e0dfd42bde&oe=5A00D0DC&__gda__=1509885772_ad8923f4369250c2c2051c5e9293331f",
"is_silhouette": false
}
},
"name": "Ram Singh Shankar",
"id": "111467022710714"
},
"id": "116880192275479_116881598942005"
},
{
"message": "khair",
"from": {
"picture": {
"data": {
"url": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p200x200/20108099_116879808942184_8792637908147052517_n.png?oh=4dcc9a9bbdfc965eb477a14775f31448&oe=5A0BCFB5&__gda__=1510661157_f329dd30b13490dbae8d05d3aa45d79f",
"is_silhouette": false
}
},
"name": "Moojaa",
"id": "116879722275526"
},
"id": "116880192275479_116881825608649"
}
]
},
"created_time": "2017-07-17T15:10:12+0000",
"message": "Testing my Mooja",
"type": "status",
"id": "116879722275526_116880192275479"
}
}
]
}
}
You have to set data inside the reactions as nested type and you can do nested aggregation on the data to get all the counts for the type.
Mappings
PUT facebook_index1
{
"mappings": {
"document_type" : {
"properties": {
"reactions" : {
"type": "object",
"properties": {
"data" : {
"type" : "nested",
"properties" : {
"type" : {
"type" : "keyword"
}
}
}
}
}
}
}
}
}
Query
use nested aggs to aggregate for type for data.
POST facebook_index1/_search
{
"size": 0,
"aggs": {
"nested_data_aggs": {
"nested": {
"path": "reactions.data"
},
"aggs": {
"summary_reaction": {
"terms": {
"field": "reactions.data.type",
"size": 10
}
}
}
}
}
}
Hope this works

Error !!! CloudFormation template validation

I'm designing redis cluster using cloudformation template and during the validation of the template I'm facing this error "Template contains errors.: Template format error: JSON not well-formed. (line 151, column 2)"
Below is the cloudformation script
{
"AWSTemplateFormatVersion": "2010-09-09",
"Metadata": {
"AWS::CloudFormation::Designer": {
"f60e2d2e-b46b-48b1-88c8-eecce45d2166": {
"size": {
"width": 60,
"height": 60
},
"position": {
"x": 320,
"y": 70
},
"z": 2,
"parent": "71508a33-8207-4580-8721-c3688c4a0353",
"embeds": [],
"ismemberof": [
"a63aacbd-1c6e-4118-8bbe-08a5bc63052a",
"55eb37aa-e764-49ac-b8fe-3eddb2ea77ad"
]
},
"a63aacbd-1c6e-4118-8bbe-08a5bc63052a": {
"size": {
"width": 60,
"height": 60
},
"position": {
"x": 320,
"y": 160
},
"z": 2,
"parent": "71508a33-8207-4580-8721-c3688c4a0353",
"embeds": []
},
"0291abc8-9c50-491b-8400-e1f7f8b22118": {
"source": {
"id": "f60e2d2e-b46b-48b1-88c8-eecce45d2166"
},
"target": {
"id": "a63aacbd-1c6e-4118-8bbe-08a5bc63052a"
},
"z": 1
},
"55eb37aa-e764-49ac-b8fe-3eddb2ea77ad": {
"size": {
"width": 60,
"height": 60
},
"position": {
"x": 440,
"y": 70
},
"z": 2,
"parent": "71508a33-8207-4580-8721-c3688c4a0353",
"embeds": []
},
"7aa270dd-1131-4dc4-8913-dfaf44a3815d": {
"source": {
"id": "f60e2d2e-b46b-48b1-88c8-eecce45d2166"
},
"target": {
"id": "55eb37aa-e764-49ac-b8fe-3eddb2ea77ad"
},
"z": 2
},
"71508a33-8207-4580-8721-c3688c4a0353": {
"size": {
"width": 610,
"height": 600
},
"position": {
"x": 20,
"y": 10
},
"z": 1,
"embeds": [
"55eb37aa-e764-49ac-b8fe-3eddb2ea77ad",
"a63aacbd-1c6e-4118-8bbe-08a5bc63052a",
"f60e2d2e-b46b-48b1-88c8-eecce45d2166"
]
}
}
},
"Parameters" : {
"CacheNodeType" : {
"Description" : "The compute and memory capacity of the nodes in the Cache Cluster",
"Type" : "String",
"Default" : "cache.m3.medium",
"AllowedValues" : ["cache.t2.micro", "cache.t2.small", "cache.t2.medium",
"cache.m3.medium", "cache.m3.large", "cache.m3.xlarge", "cache.m3.2xlarge",
"cache.t1.micro", "cache.m1.small", "cache.m1.medium", "cache.m1.large",
"cache.m1.xlarge", "cache.c1.xlarge", "cache.r3.large", "cache.r3.xlarge",
"cache.r3.2xlarge", "cache.r3.4xlarge","cache.r3.8xlarge", "cache.m2.xlarge",
"cache.m2.2xlarge", "cache.m2.4xlarge"],
"ConstraintDescription" : "must select a valid Cache Node type."
}
},
"Resources": {
"RedisClusterReplicationGroup": {
"Type": "AWS::ElastiCache::ReplicationGroup",
"Properties": {
"CacheParameterGroupName": {
"Ref": "RedisClusterParameterGroup"
},
"CacheSubnetGroupName": {
"Ref": "RedisClusterSubnetGroup"
},
"CacheNodeType" : { "Ref" : "CacheNodeType" },
"Engine" : "redis",
"EngineVersion" : "2.8.24",
"NumCacheClusters" : 4,
"Port" : 6879,
"PreferredCacheClusterAZs" : ["us-east-1c","us-east-1d","us-east-1e"],
"ReplicationGroupDescription" : "RedisClusterReplicationGroup",
"SecurityGroupIds" : "sg-7ea72e07",
"SnapshotRetentionLimit" : 0,
"AutomaticFailoverEnabled" : true,
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "f60e2d2e-b46b-48b1-88c8-eecce45d2166"
}
}
},
"RedisClusterParameterGroup": {
"Type": "AWS::ElastiCache::ParameterGroup",
"Properties": {
"CacheParameterGroupFamily" : "redis2.8",
"CacheParameterGroupName" : "RedisClusterParameterGroup",
"Description" :"RedisClusterParameterGroup"
},
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "a63aacbd-1c6e-4118-8bbe-08a5bc63052a"
}
}
},
"RedisClusterSubnetGroup": {
"Type": "AWS::ElastiCache::SubnetGroup",
"Properties": {
"Description" : "RedisClusterSubnetGroups",
"SubnetIds" : ["subnet-7854ab20", "subnet-eaa7039c", "subnet-988a00a5"]
},
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "71508a33-8207-4580-8721-c3688c4a0353"
}
}
}
},
}
One way to avoid this whole set of JSON errors is to switch to YAML syntax, which is supported by Cloudformation. You can convert your JSON document to YAML at
https://www.json2yaml.com/
and then just use that. I find YAML much easier to maintain without the quotes, braces, and commas.
{
"AWSTemplateFormatVersion": "2010-09-09",
"Metadata": {
"AWS::CloudFormation::Designer": {
"f60e2d2e-b46b-48b1-88c8-eecce45d2166": {
"size": {
"width": 60,
"height": 60
},
"position": {
"x": 320,
"y": 70
},
"z": 2,
"parent": "71508a33-8207-4580-8721-c3688c4a0353",
"embeds": [],
"ismemberof": [
"a63aacbd-1c6e-4118-8bbe-08a5bc63052a",
"55eb37aa-e764-49ac-b8fe-3eddb2ea77ad"
]
},
"a63aacbd-1c6e-4118-8bbe-08a5bc63052a": {
"size": {
"width": 60,
"height": 60
},
"position": {
"x": 320,
"y": 160
},
"z": 2,
"parent": "71508a33-8207-4580-8721-c3688c4a0353",
"embeds": []
},
"0291abc8-9c50-491b-8400-e1f7f8b22118": {
"source": {
"id": "f60e2d2e-b46b-48b1-88c8-eecce45d2166"
},
"target": {
"id": "a63aacbd-1c6e-4118-8bbe-08a5bc63052a"
},
"z": 1
},
"55eb37aa-e764-49ac-b8fe-3eddb2ea77ad": {
"size": {
"width": 60,
"height": 60
},
"position": {
"x": 440,
"y": 70
},
"z": 2,
"parent": "71508a33-8207-4580-8721-c3688c4a0353",
"embeds": []
},
"7aa270dd-1131-4dc4-8913-dfaf44a3815d": {
"source": {
"id": "f60e2d2e-b46b-48b1-88c8-eecce45d2166"
},
"target": {
"id": "55eb37aa-e764-49ac-b8fe-3eddb2ea77ad"
},
"z": 2
},
"71508a33-8207-4580-8721-c3688c4a0353": {
"size": {
"width": 610,
"height": 600
},
"position": {
"x": 20,
"y": 10
},
"z": 1,
"embeds": [
"55eb37aa-e764-49ac-b8fe-3eddb2ea77ad",
"a63aacbd-1c6e-4118-8bbe-08a5bc63052a",
"f60e2d2e-b46b-48b1-88c8-eecce45d2166"
]
}
}
},
"Parameters": {
"CacheNodeType": {
"Description": "The compute and memory capacity of the nodes in the Cache Cluster",
"Type": "String",
"Default": "cache.m3.medium",
"AllowedValues": [
"cache.t2.micro",
"cache.t2.small",
"cache.t2.medium",
"cache.m3.medium",
"cache.m3.large",
"cache.m3.xlarge",
"cache.m3.2xlarge",
"cache.t1.micro",
"cache.m1.small",
"cache.m1.medium",
"cache.m1.large",
"cache.m1.xlarge",
"cache.c1.xlarge",
"cache.r3.large",
"cache.r3.xlarge",
"cache.r3.2xlarge",
"cache.r3.4xlarge",
"cache.r3.8xlarge",
"cache.m2.xlarge",
"cache.m2.2xlarge",
"cache.m2.4xlarge"
],
"ConstraintDescription": "must select a valid Cache Node type."
}
},
"Resources": {
"RedisClusterReplicationGroup": {
"Type": "AWS::ElastiCache::ReplicationGroup",
"Properties": {
"CacheParameterGroupName": {
"Ref": "RedisClusterParameterGroup"
},
"CacheSubnetGroupName": {
"Ref": "RedisClusterSubnetGroup"
},
"CacheNodeType": {
"Ref": "CacheNodeType"
},
"Engine": "redis",
"EngineVersion": "2.8.24",
"NumCacheClusters": 4,
"Port": 6879,
"PreferredCacheClusterAZs": [
"us-east-1c",
"us-east-1d",
"us-east-1e"
],
"ReplicationGroupDescription": "RedisClusterReplicationGroup",
"SecurityGroupIds": "sg-7ea72e07",
"SnapshotRetentionLimit": 0,
"AutomaticFailoverEnabled": true,
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "f60e2d2e-b46b-48b1-88c8-eecce45d2166"
}
}
}
},
"RedisClusterParameterGroup": {
"Type": "AWS::ElastiCache::ParameterGroup",
"Properties": {
"CacheParameterGroupFamily": "redis2.8",
"CacheParameterGroupName": "RedisClusterParameterGroup",
"Description": "RedisClusterParameterGroup"
},
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "a63aacbd-1c6e-4118-8bbe-08a5bc63052a"
}
}
},
"RedisClusterSubnetGroup": {
"Type": "AWS::ElastiCache::SubnetGroup",
"Properties": {
"Description": "RedisClusterSubnetGroups",
"SubnetIds": [
"subnet-7854ab20",
"subnet-eaa7039c",
"subnet-988a00a5"
]
},
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "71508a33-8207-4580-8721-c3688c4a0353"
}
}
}
}
}
Any JSON parser will tell you what the issue is. The last element need not have a ',' and the JSON needed one more '}' to get validated properly. I haven't checked if the script passes the cloudformation validation but, it passes the JSON parsing