Mercurial > pub > dyncall > bindings
diff R/scratch/win32.R @ 0:0cfcc391201f
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:26:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/R/scratch/win32.R Thu Mar 19 22:26:28 2015 +0100 @@ -0,0 +1,502 @@ +# ---------------------------------------------------------------------------- +# constants + +CS_BYTEALIGNCLIENT = 4096 +CS_BYTEALIGNWINDOW = 8192 +CS_CLASSDC = 64 +CS_DBLCLKS = 8 +CS_DELETE_TRANSFORM = 0x00000003 +CS_DISABLE = 0x00000002 +CS_ENABLE = 0x00000001 +CS_GLOBALCLASS = 16384 +CS_HREDRAW = 2 +CS_IME = 0x10000 +CS_INSERTCHAR = 0x2000 +CS_KEYCVTWINDOW = 4 +CS_NOCLOSE = 512 +CS_NOKEYCVT = 256 +CS_NOMOVECARET = 0x4000 +CS_OWNDC = 32 +CS_PARENTDC = 128 +CS_SAVEBITS = 2048 +CS_VREDRAW = 1 +WM_USER = 1024 +WM_ACTIVATE = 6 +WM_ACTIVATEAPP = 28 +WM_AFXFIRST = 864 +WM_AFXLAST = 895 +WM_APP = 32768 +WM_ASKCBFORMATNAME = 780 +WM_CANCELJOURNAL = 75 +WM_CANCELMODE = 31 +WM_CAPTURECHANGED = 533 +WM_CHANGECBCHAIN = 781 +WM_CHAR = 258 +WM_CHARTOITEM = 47 +WM_CHILDACTIVATE = 34 +WM_CHOOSEFONT_GETLOGFONT = (WM_USER+1) +WM_CHOOSEFONT_SETFLAGS = (WM_USER+102) +WM_CHOOSEFONT_SETLOGFONT = (WM_USER+101) +WM_CLEAR = 771 +WM_CLOSE = 16 +WM_COMMAND = 273 +WM_COMMNOTIFY = 68 +WM_COMPACTING = 65 +WM_COMPAREITEM = 57 +WM_CONTEXTMENU = 123 +WM_CONVERTREQUESTEX = 0x108 +WM_COPY = 769 +WM_COPYDATA = 74 +WM_CREATE = 1 +WM_CTLCOLORBTN = 309 +WM_CTLCOLORDLG = 310 +WM_CTLCOLOREDIT = 307 +WM_CTLCOLORLISTBOX = 308 +WM_CTLCOLORMSGBOX = 306 +WM_CTLCOLORSCROLLBAR = 311 +WM_CTLCOLORSTATIC = 312 +WM_CUT = 768 +WM_DDE_FIRST = 0x03E0 +WM_DDE_ACK = (WM_DDE_FIRST+4) +WM_DDE_ADVISE = (WM_DDE_FIRST+2) +WM_DDE_DATA = (WM_DDE_FIRST+5) +WM_DDE_EXECUTE = (WM_DDE_FIRST+8) +WM_DDE_INITIATE = (WM_DDE_FIRST) +WM_DDE_LAST = (WM_DDE_FIRST+8) +WM_DDE_POKE = (WM_DDE_FIRST+7) +WM_DDE_REQUEST = (WM_DDE_FIRST+6) +WM_DDE_TERMINATE = (WM_DDE_FIRST+1) +WM_DDE_UNADVISE = (WM_DDE_FIRST+3) +WM_DEADCHAR = 259 +WM_DELETEITEM = 45 +WM_DESTROY = 2 +WM_DESTROYCLIPBOARD = 775 +WM_DEVICECHANGE = 537 +WM_DEVMODECHANGE = 27 +WM_DISPLAYCHANGE = 126 +WM_DRAWCLIPBOARD = 776 +WM_DRAWITEM = 43 +WM_DROPFILES = 563 +WM_ENABLE = 10 +WM_ENDSESSION = 22 +WM_ENTERIDLE = 289 +WM_ENTERMENULOOP = 529 +WM_ENTERSIZEMOVE = 561 +WM_ERASEBKGND = 20 +WM_EXITMENULOOP = 530 +WM_EXITSIZEMOVE = 562 +WM_FONTCHANGE = 29 +WM_GETDLGCODE = 135 +WM_GETFONT = 49 +WM_GETHOTKEY = 51 +WM_GETICON = 127 +WM_GETMINMAXINFO = 36 +WM_GETTEXT = 13 +WM_GETTEXTLENGTH = 14 +WM_HANDHELDFIRST = 856 +WM_HANDHELDLAST = 863 +WM_HELP = 83 +WM_HOTKEY = 786 +WM_HSCROLL = 276 +WM_HSCROLLCLIPBOARD = 782 +WM_ICONERASEBKGND = 39 +WM_IME_CHAR = 0x286 +WM_IME_COMPOSITION = 0x10F +WM_IME_COMPOSITIONFULL = 0x284 +WM_IME_CONTROL = 0x283 +WM_IME_ENDCOMPOSITION = 0x10E +WM_IME_KEYDOWN = 0x290 +WM_IME_KEYLAST = 0x10F +WM_IME_KEYUP = 0x291 +WM_IME_NOTIFY = 0x282 +WM_IME_SELECT = 0x285 +WM_IME_SETCONTEXT = 0x281 +WM_IME_STARTCOMPOSITION = 0x10D +WM_INITDIALOG = 272 +WM_INITMENU = 278 +WM_INITMENUPOPUP = 279 +WM_INPUTLANGCHANGE = 81 +WM_INPUTLANGCHANGEREQUEST = 80 +WM_KEYDOWN = 256 +WM_KEYFIRST = 256 +WM_KEYLAST = 264 +WM_KEYUP = 257 +WM_KILLFOCUS = 8 +WM_LBUTTONDBLCLK = 515 +WM_LBUTTONDOWN = 513 +WM_LBUTTONUP = 514 +WM_MBUTTONDBLCLK = 521 +WM_MBUTTONDOWN = 519 +WM_MBUTTONUP = 520 +WM_MDIACTIVATE = 546 +WM_MDICASCADE = 551 +WM_MDICREATE = 544 +WM_MDIDESTROY = 545 +WM_MDIGETACTIVE = 553 +WM_MDIICONARRANGE = 552 +WM_MDIMAXIMIZE = 549 +WM_MDINEXT = 548 +WM_MDIREFRESHMENU = 564 +WM_MDIRESTORE = 547 +WM_MDISETMENU = 560 +WM_MDITILE = 550 +WM_MEASUREITEM = 44 +WM_MENUCHAR = 288 +WM_MENUSELECT = 287 +WM_MOUSEACTIVATE = 33 +WM_MOUSEFIRST = 512 +WM_MOUSEHOVER = 0x2A1 +WM_MOUSELAST = 522 +WM_MOUSELEAVE = 0x2A3 +WM_MOUSEMOVE = 512 +WM_MOUSEWHEEL = 522 +WM_MOVE = 3 +WM_MOVING = 534 +WM_NCACTIVATE = 134 +WM_NCCALCSIZE = 131 +WM_NCCREATE = 129 +WM_NCDESTROY = 130 +WM_NCHITTEST = 132 +WM_NCLBUTTONDBLCLK = 163 +WM_NCLBUTTONDOWN = 161 +WM_NCLBUTTONUP = 162 +WM_NCMBUTTONDBLCLK = 169 +WM_NCMBUTTONDOWN = 167 +WM_NCMBUTTONUP = 168 +WM_NCMOUSEMOVE = 160 +WM_NCPAINT = 133 +WM_NCRBUTTONDBLCLK = 166 +WM_NCRBUTTONDOWN = 164 +WM_NCRBUTTONUP = 165 +WM_NEXTDLGCTL = 40 +WM_NEXTMENU = 531 +WM_NOTIFY = 78 +WM_NOTIFYFORMAT = 85 +WM_NULL = 0 +WM_PAINT = 15 +WM_PAINTCLIPBOARD = 777 +WM_PAINTICON = 38 +WM_PALETTECHANGED = 785 +WM_PALETTEISCHANGING = 784 +WM_PARENTNOTIFY = 528 +WM_PASTE = 770 +WM_PENWINFIRST = 896 +WM_PENWINLAST = 911 +WM_POWER = 72 +WM_POWERBROADCAST = 536 +WM_PRINT = 791 +WM_PRINTCLIENT = 792 +WM_PSD_ENVSTAMPRECT = (WM_USER+5) +WM_PSD_FULLPAGERECT = (WM_USER+1) +WM_PSD_GREEKTEXTRECT = (WM_USER+4) +WM_PSD_MARGINRECT = (WM_USER+3) +WM_PSD_MINMARGINRECT = (WM_USER+2) +WM_PSD_PAGESETUPDLG = WM_USER +WM_PSD_YAFULLPAGERECT = (WM_USER+6) +WM_QUERYDRAGICON = 55 +WM_QUERYENDSESSION = 17 +WM_QUERYNEWPALETTE = 783 +WM_QUERYOPEN = 19 +WM_QUEUESYNC = 35 +WM_QUIT = 18 +WM_RBUTTONDBLCLK = 518 +WM_RBUTTONDOWN = 516 +WM_RBUTTONUP = 517 +WM_RENDERALLFORMATS = 774 +WM_RENDERFORMAT = 773 +WM_SETCURSOR = 32 +WM_SETFOCUS = 7 +WM_SETFONT = 48 +WM_SETHOTKEY = 50 +WM_SETICON = 128 +WM_SETREDRAW = 11 +WM_SETTEXT = 12 +WM_SETTINGCHANGE = 26 +WM_SHOWWINDOW = 24 +WM_SIZE = 5 +WM_SIZECLIPBOARD = 779 +WM_SIZING = 532 +WM_SPOOLERSTATUS = 42 +WM_STYLECHANGED = 125 +WM_STYLECHANGING = 124 +WM_SYNCPAINT = 136 +WM_SYSCHAR = 262 +WM_SYSCOLORCHANGE = 21 +WM_SYSCOMMAND = 274 +WM_SYSDEADCHAR = 263 +WM_SYSKEYDOWN = 260 +WM_SYSKEYUP = 261 +WM_TCARD = 82 +WM_THEMECHANGED = 794 +WM_TIMECHANGE = 30 +WM_TIMER = 275 +WM_UNDO = 772 +WM_USERCHANGED = 84 +WM_VKEYTOITEM = 46 +WM_VSCROLL = 277 +WM_VSCROLLCLIPBOARD = 778 +WM_WINDOWPOSCHANGED = 71 +WM_WINDOWPOSCHANGING = 70 +WM_WININICHANGE = 26 +WS_ACTIVECAPTION = 0x00000001 +WS_BORDER = 0x800000 +WS_CAPTION = 0xc00000 +WS_CHILD = 0x40000000 +WS_CHILDWINDOW = 0x40000000 +WS_CLIPCHILDREN = 0x2000000 +WS_CLIPSIBLINGS = 0x4000000 +WS_DISABLED = 0x8000000 +WS_DLGFRAME = 0x400000 +WS_EX_ACCEPTFILES = 16 +WS_EX_APPWINDOW = 0x40000 +WS_EX_CLIENTEDGE = 512 +WS_EX_COMPOSITED = 0x2000000 +WS_EX_CONTEXTHELP = 0x400 +WS_EX_CONTROLPARENT = 0x10000 +WS_EX_DLGMODALFRAME = 1 +WS_EX_LAYERED = 0x80000 +WS_EX_LAYOUTRTL = 0x400000 +WS_EX_LEFT = 0 +WS_EX_LEFTSCROLLBAR = 0x4000 +WS_EX_LTRREADING = 0 +WS_EX_MDICHILD = 64 +WS_EX_NOACTIVATE = 0x8000000 +WS_EX_NOINHERITLAYOUT = 0x100000 +WS_EX_NOPARENTNOTIFY = 4 +WS_EX_OVERLAPPEDWINDOW = 0x300 +WS_EX_PALETTEWINDOW = 0x188 +WS_EX_RIGHT = 0x1000 +WS_EX_RIGHTSCROLLBAR = 0 +WS_EX_RTLREADING = 0x2000 +WS_EX_STATICEDGE = 0x20000 +WS_EX_TOOLWINDOW = 128 +WS_EX_TOPMOST = 8 +WS_EX_TRANSPARENT = 32 +WS_EX_WINDOWEDGE = 256 +WS_GROUP = 0x20000 +WS_HSCROLL = 0x100000 +WS_ICONIC = 0x20000000 +WS_MAXIMIZE = 0x1000000 +WS_MAXIMIZEBOX = 0x10000 +WS_MINIMIZE = 0x20000000 +WS_MINIMIZEBOX = 0x20000 +WS_OVERLAPPED = 0 +WS_OVERLAPPEDWINDOW = 0xcf0000 +WS_POPUP = 0x80000000 +WS_POPUPWINDOW = 0x80880000 +WS_SIZEBOX = 0x40000 +WS_SYSMENU = 0x80000 +WS_TABSTOP = 0x10000 +WS_THICKFRAME = 0x40000 +WS_TILED = 0 +WS_TILEDWINDOW = 0xcf0000 +WS_VISIBLE = 0x10000000 +WS_VSCROLL = 0x200000 +SM_ARRANGE = 56 +SM_CLEANBOOT = 67 +SM_CMETRICS = 88 +SM_CMONITORS = 80 +SM_CMOUSEBUTTONS = 43 +SM_CXBORDER = 5 +SM_CXCURSOR = 13 +SM_CXDLGFRAME = 7 +SM_CXDOUBLECLK = 36 +SM_CXDRAG = 68 +SM_CXEDGE = 45 +SM_CXFIXEDFRAME = 7 +SM_CXFOCUSBORDER = 83 +SM_CXFRAME = 32 +SM_CXFULLSCREEN = 16 +SM_CXHSCROLL = 21 +SM_CXHTHUMB = 10 +SM_CXICON = 11 +SM_CXICONSPACING = 38 +SM_CXMAXIMIZED = 61 +SM_CXMAXTRACK = 59 +SM_CXMENUCHECK = 71 +SM_CXMENUSIZE = 54 +SM_CXMIN = 28 +SM_CXMINIMIZED = 57 +SM_CXMINSPACING = 47 +SM_CXMINTRACK = 34 +SM_CXSCREEN = 0 +SM_CXSIZE = 30 +SM_CXSIZEFRAME = 32 +SM_CXSMICON = 49 +SM_CXSMSIZE = 52 +SM_CXVIRTUALSCREEN = 78 +SM_CXVSCROLL = 2 +SM_CYBORDER = 6 +SM_CYCAPTION = 4 +SM_CYCURSOR = 14 +SM_CYDLGFRAME = 8 +SM_CYDOUBLECLK = 37 +SM_CYDRAG = 69 +SM_CYEDGE = 46 +SM_CYFIXEDFRAME = 8 +SM_CYFOCUSBORDER = 84 +SM_CYFRAME = 33 +SM_CYFULLSCREEN = 17 +SM_CYHSCROLL = 3 +SM_CYICON = 12 +SM_CYICONSPACING = 39 +SM_CYKANJIWINDOW = 18 +SM_CYMAXIMIZED = 62 +SM_CYMAXTRACK = 60 +SM_CYMENU = 15 +SM_CYMENUCHECK = 72 +SM_CYMENUSIZE = 55 +SM_CYMIN = 29 +SM_CYMINIMIZED = 58 +SM_CYMINSPACING = 48 +SM_CYMINTRACK = 35 +SM_CYSCREEN = 1 +SM_CYSIZE = 31 +SM_CYSIZEFRAME = 33 +SM_CYSMCAPTION = 51 +SM_CYSMICON = 50 +SM_CYSMSIZE = 53 +SM_CYVIRTUALSCREEN = 79 +SM_CYVSCROLL = 20 +SM_CYVTHUMB = 9 +SM_DBCSENABLED = 42 +SM_DEBUG = 22 +SM_IMMENABLED = 82 +SM_MEDIACENTER = 87 +SM_MENUDROPALIGNMENT = 40 +SM_MIDEASTENABLED = 74 +SM_MOUSEPRESENT = 19 +SM_MOUSEWHEELPRESENT = 75 +SM_NETWORK = 63 +SM_PENWINDOWS = 41 +SM_REMOTESESSION = 0X1000 +SM_RESERVED1 = 24 +SM_RESERVED2 = 25 +SM_RESERVED3 = 26 +SM_RESERVED4 = 27 +SM_SAMEDISPLAYFORMAT = 81 +SM_SECURE = 44 +SM_SERVERR2 = 89 +SM_SHOWSOUNDS = 70 +SM_SLOWMACHINE = 73 +SM_STARTER = 88 +SM_SWAPBUTTON = 23 +SM_TABLETPC = 86 +SM_XVIRTUALSCREEN = 76 +SM_YVIRTUALSCREEN = 77 +AF_12844 = 25 +AF_APPLETALK = 16 +AF_ATM = 22 +AF_BAN = 21 +AF_CCITT = 10 +AF_CHAOS = 5 +AF_CLUSTER = 24 +AF_DATAKIT = 9 +AF_DECnet = 12 +AF_DLI = 13 +AF_ECMA = 8 +AF_FIREFOX = 19 +AF_HYLINK = 15 +AF_IMPLINK = 3 +AF_INET = 2 +AF_INET6 = 23 +AF_IPX = 6 +AF_IRDA = 26 +AF_ISO = 7 +AF_LAT = 14 +AF_MAX = 29 +AF_NETBIOS = 17 +AF_NETDES = 28 +AF_NS = 6 +AF_OSI = AF_ISO +AF_PUP = 4 +AF_SNA = 11 +AF_UNIX = 1 +AF_UNKNOWN1 = 20 +AF_UNSPEC = 0 +AF_VOICEVIEW = 18 +COLOR_3DDKSHADOW = 21 +COLOR_3DFACE = 15 +COLOR_3DHIGHLIGHT = 20 +COLOR_3DHILIGHT = 20 +COLOR_3DLIGHT = 22 +COLOR_3DSHADOW = 16 +COLOR_ACTIVEBORDER = 10 +COLOR_ACTIVECAPTION = 2 +COLOR_ADJ_MAX = 100 +COLOR_ADJ_MIN = (-100) +COLOR_APPWORKSPACE = 12 +COLOR_BACKGROUND = 1 +COLOR_BTNFACE = 15 +COLOR_BTNHIGHLIGHT = 20 +COLOR_BTNHILIGHT = 20 +COLOR_BTNSHADOW = 16 +COLOR_BTNTEXT = 18 +COLOR_CAPTIONTEXT = 9 +COLOR_DESKTOP = 1 +COLOR_GRADIENTACTIVECAPTION = 27 +COLOR_GRADIENTINACTIVECAPTION = 28 +COLOR_GRAYTEXT = 17 +COLOR_HIGHLIGHT = 13 +COLOR_HIGHLIGHTTEXT = 14 +COLOR_HOTLIGHT = 26 +COLOR_INACTIVEBORDER = 11 +COLOR_INACTIVECAPTION = 3 +COLOR_INACTIVECAPTIONTEXT = 19 +COLOR_INFOBK = 24 +COLOR_INFOTEXT = 23 +COLOR_MENU = 4 +COLOR_MENUTEXT = 7 +COLOR_SCROLLBAR = 0 +COLOR_WINDOW = 5 +COLOR_WINDOWFRAME = 6 +COLOR_WINDOWTEXT = 8 +# ---------------------------------------------------------------------------- +# types + +types <- c( +UINT='i', +WNDPROC='p', +int='i', +HINSTANCE='p', +HICON='p', +HCURSOR='p', +HBRUSH='p', +LPCTSTR='S', +LPCTSTR='S', +void='v' +) + +# ---------------------------------------------------------------------------- +# structures + +WNDCLASSEXA <- structinfo(" + UINT cbSize; + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCTSTR lpszMenuName; + LPCTSTR lpszClassName; + HICON hIconSm; +", types) + +# ---------------------------------------------------------------------------- +# functions + +.kernel32 <- dynbind("kernel32"," + GetTickCount()i; + GetLastError()i; +",callmode="stdcall") + +.user32 <- dynbind("user32"," + RegisterClassExA(p)n; + CreateWindowExA(iSSiiiiipppp)p; + DefWindowProcA(pppp)p; +",callmode="stdcall") + +