diff --git a/Units/MMLAddon/mmlpsthread.pas b/Units/MMLAddon/mmlpsthread.pas index 886ac64..0f090cb 100644 --- a/Units/MMLAddon/mmlpsthread.pas +++ b/Units/MMLAddon/mmlpsthread.pas @@ -232,6 +232,8 @@ begin Continue:= True; end; + + procedure TMMLPSThread.OnCompile(Sender: TPSScript); var i,ii : integer; @@ -240,6 +242,9 @@ begin for ii := 0 to PluginsGlob.MPlugins[PluginsToLoad[i]].MethodLen - 1 do PSScript.AddFunctionEx(PluginsGlob.MPlugins[PluginsToLoad[i]].Methods[i].FuncPtr, PluginsGlob.MPlugins[PluginsToLoad[i]].Methods[i].FuncStr, cdStdCall); + for i := 0 to high(VirtualKeys) do + PSScript.Comp.AddConstantN(Format('VK_%S',[VirtualKeys[i].Str]),'Byte').SetInt(VirtualKeys[i].Key); + // Here we add all the functions to the engine. {$I PSInc/pscompile.inc} end; diff --git a/Units/MMLCore/mufasatypes.pas b/Units/MMLCore/mufasatypes.pas index c7075a9..60e9672 100644 --- a/Units/MMLCore/mufasatypes.pas +++ b/Units/MMLCore/mufasatypes.pas @@ -97,6 +97,190 @@ type var PluginsGlob : TMPlugins; +type + VirtualKeyInfo = record + Str : string; + Key : byte; + end; + +var + VirtualKeys : array[0..173] of VirtualKeyInfo = ( + (str :'UNKNOWN'; key : 0), + (str :'LBUTTON'; key : 1), + (str :'RBUTTON'; key : 2), + (str :'CANCEL'; key : 3), + (str :'MBUTTON'; key : 4), + (str :'XBUTTON1'; key : 5), + (str :'XBUTTON2'; key : 6), + (str :'BACK'; key : 8), + (str :'TAB'; key : 9), + (str :'CLEAR'; key : 12), + (str :'RETURN'; key : 13), + (str :'SHIFT'; key : 16), + (str :'CONTROL'; key : 17), + (str :'MENU'; key : 18), + (str :'PAUSE'; key : 19), + (str :'CAPITAL'; key : 20), + (str :'KANA'; key : 21), + (str :'HANGUL'; key : 21), + (str :'JUNJA'; key : 23), + (str :'FINAL'; key : 24), + (str :'HANJA'; key : 25), + (str :'KANJI'; key : 25), + (str :'ESCAPE'; key : 27), + (str :'CONVERT'; key : 28), + (str :'NONCONVERT'; key : 29), + (str :'ACCEPT'; key : 30), + (str :'MODECHANGE'; key : 31), + (str :'SPACE'; key : 32), + (str :'PRIOR'; key : 33), + (str :'NEXT'; key : 34), + (str :'END'; key : 35), + (str :'HOME'; key : 36), + (str :'LEFT'; key : 37), + (str :'UP'; key : 38), + (str :'RIGHT'; key : 39), + (str :'DOWN'; key : 40), + (str :'SELECT'; key : 41), + (str :'PRINT'; key : 42), + (str :'EXECUTE'; key : 43), + (str :'SNAPSHOT'; key : 44), + (str :'INSERT'; key : 45), + (str :'DELETE'; key : 46), + (str :'HELP'; key : 47), + (str :'0'; key : $30), + (str :'1'; key : $31), + (str :'2'; key : $32), + (str :'3'; key : $33), + (str :'4'; key : $34), + (str :'5'; key : $35), + (str :'6'; key : $36), + (str :'7'; key : $37), + (str :'8'; key : $38), + (str :'9'; key : $39), + (str :'A'; key : $41), + (str :'B'; key : $42), + (str :'C'; key : $43), + (str :'D'; key : $44), + (str :'E'; key : $45), + (str :'F'; key : $46), + (str :'G'; key : $47), + (str :'H'; key : $48), + (str :'I'; key : $49), + (str :'J'; key : $4A), + (str :'K'; key : $4B), + (str :'L'; key : $4C), + (str :'M'; key : $4D), + (str :'N'; key : $4E), + (str :'O'; key : $4F), + (str :'P'; key : $50), + (str :'Q'; key : $51), + (str :'R'; key : $52), + (str :'S'; key : $53), + (str :'T'; key : $54), + (str :'U'; key : $55), + (str :'V'; key : $56), + (str :'W'; key : $57), + (str :'X'; key : $58), + (str :'Y'; key : $59), + (str :'Z'; key : $5A), + (str :'LWIN'; key : $5B), + (str :'RWIN'; key : $5C), + (str :'APPS'; key : $5D), + (str :'SLEEP'; key : $5F), + (str :'NUMPAD0'; key : 96), + (str :'NUMPAD1'; key : 97), + (str :'NUMPAD2'; key : 98), + (str :'NUMPAD3'; key : 99), + (str :'NUMPAD4'; key : 100), + (str :'NUMPAD5'; key : 101), + (str :'NUMPAD6'; key : 102), + (str :'NUMPAD7'; key : 103), + (str :'NUMPAD8'; key : 104), + (str :'NUMPAD9'; key : 105), + (str :'MULTIPLY'; key : 106), + (str :'ADD'; key : 107), + (str :'SEPARATOR'; key : 108), + (str :'SUBTRACT'; key : 109), + (str :'DECIMAL'; key : 110), + (str :'DIVIDE'; key : 111), + (str :'F1'; key : 112), + (str :'F2'; key : 113), + (str :'F3'; key : 114), + (str :'F4'; key : 115), + (str :'F5'; key : 116), + (str :'F6'; key : 117), + (str :'F7'; key : 118), + (str :'F8'; key : 119), + (str :'F9'; key : 120), + (str :'F10'; key : 121), + (str :'F11'; key : 122), + (str :'F12'; key : 123), + (str :'F13'; key : 124), + (str :'F14'; key : 125), + (str :'F15'; key : 126), + (str :'F16'; key : 127), + (str :'F17'; key : 128), + (str :'F18'; key : 129), + (str :'F19'; key : 130), + (str :'F20'; key : 131), + (str :'F21'; key : 132), + (str :'F22'; key : 133), + (str :'F23'; key : 134), + (str :'F24'; key : 135), + (str :'NUMLOCK'; key : $90), + (str :'SCROLL'; key : $91), + (str :'LSHIFT'; key : $A0), + (str :'RSHIFT'; key : $A1), + (str :'LCONTROL'; key : $A2), + (str :'RCONTROL'; key : $A3), + (str :'LMENU'; key : $A4), + (str :'RMENU'; key : $A5), + (str :'BROWSER_BACK'; key : $A6), + (str :'BROWSER_FORWARD'; key : $A7), + (str :'BROWSER_REFRESH'; key : $A8), + (str :'BROWSER_STOP'; key : $A9), + (str :'BROWSER_SEARCH'; key : $AA), + (str :'BROWSER_FAVORITES'; key : $AB), + (str :'BROWSER_HOME'; key : $AC), + (str :'VOLUME_MUTE'; key : $AD), + (str :'VOLUME_DOWN'; key : $AE), + (str :'VOLUME_UP'; key : $AF), + (str :'MEDIA_NEXT_TRACK'; key : $B0), + (str :'MEDIA_PREV_TRACK'; key : $B1), + (str :'MEDIA_STOP'; key : $B2), + (str :'MEDIA_PLAY_PAUSE'; key : $B3), + (str :'LAUNCH_MAIL'; key : $B4), + (str :'LAUNCH_MEDIA_SELECT'; key : $B5), + (str :'LAUNCH_APP1'; key : $B6), + (str :'LAUNCH_APP2'; key : $B7), + (str :'OEM_1'; key : $BA), + (str :'OEM_PLUS'; key : $BB), + (str :'OEM_COMMA'; key : $BC), + (str :'OEM_MINUS'; key : $BD), + (str :'OEM_PERIOD'; key : $BE), + (str :'OEM_2'; key : $BF), + (str :'OEM_3'; key : $C0), + (str :'OEM_4'; key : $DB), + (str :'OEM_5'; key : $DC), + (str :'OEM_6'; key : $DD), + (str :'OEM_7'; key : $DE), + (str :'OEM_8'; key : $DF), + (str :'OEM_102'; key : $E2), + (str :'PROCESSKEY'; key : $E7), + (str :'ATTN'; key : $F6), + (str :'CRSEL'; key : $F7), + (str :'EXSEL'; key : $F8), + (str :'EREOF'; key : $F9), + (str :'PLAY'; key : $FA), + (str :'ZOOM'; key : $FB), + (str :'NONAME'; key : $FC), + (str :'PA1'; key : $FD), + (str :'OEM_CLEAR'; key : $FE), + + (str :'HIGHESTVALUE'; key : $FE), + (str :'UNDEFINED'; key : $FF) + ); implementation