3 API Discoverer 0.02 (C) Jon Ripley, 2002,2005 : _Err _Init :  Set window text  0 "Window Position: ";winxpos%",";winypos% / 9)"Size : ";winxsize%" by ";winysize% ' "H Scroll Current : ";hscrollpos% ! 9)"Max : ";hscrollmax% ! 9)"Min : ";hscrollmin% ' "V Scroll Current : ";vscrollpos% ! 9)"Max : ";vscrollmax% ! 9)"Min : ";vscrollmin% ! "Keyboard Key : "  9)"Inkey : " ! "Mouse Button : " ( 9)"Clicked : ";mousex%",";mousey%  9)"Current : " ! "Menu Item : " : * _Close(@msg%,@wparam%,@lparam%): *  _Mouse(@msg%,@wparam%,@lparam%): * _Move(@msg%,@wparam%,@lparam%): * _Sys(@msg%,@wparam%,@lparam%): : _Err : lk%=-1: Last key pressed  ( Display INKEY code and ASCII value x%=-127-1  x%:19,9);x%" "  7c%=(0): c%<>lk% c%<>-1 19,8);c%" ":lk%=c% :  Update mouse coodinates % x,y,z:19,12);x;",";y;" "; : CheckScrollKeys(c%) CheckMenuKeys : ) Don't use silly amounts of CPU time  "Sleep",200   : _Err =17  r% i "MessageBox",@hwnd%,"Internal error ("+$+":"+Þ+"). Quit program ?","An error has occured",52 r% r%=6:  : _Init  block% 256 :  Initialise window 3 "SetWindowText",@hwnd%,"Win32 API Discoverer" + "MoveWindow",@hwnd%,100,100,500,320,1 # "GetWindowRect",@hwnd%,block% 1 Next three lines are same as PROCGetWinVars &winxpos%=!block%:winypos%=block%!4 <winxsize%=block%!8-winxpos%:winysize%=block%!12-winypos% :  Initialise scroll bars "ShowScrollBar",@hwnd%,3, + "GetScrollPos",@hwnd%,0 hscrollpos% + "GetScrollPos",@hwnd%,1 vscrollpos% . "GetScrollRange",@hwnd%,0,block%,block%+4 ,hscrollmin%=!block%:hscrollmax%=block%!4 . "GetScrollRange",@hwnd%,1,block%,block%+4 ,vscrollmin%=!block%:vscrollmax%=block%!4 5hscrollu%=2:hscrollp%=10:vscrollu%=2:vscrollp%=10 : Initialise mouse variables !mousex%=0:mousey%=0:mouseb%=0 :  Create menus ! "CreatePopupMenu" m_file% 3 "AppendMenu",m_file%,0,101,"&New"+9+"Ctrl+N" 4 "AppendMenu",m_file%,0,102,"&Open"+9+"Ctrl+O" 4 "AppendMenu",m_file%,0,103,"&Save"+9+"Ctrl+S" 7 "AppendMenu",m_file%,0,104,"Save &As"+9+"Ctrl+A" & "AppendMenu",m_file%,2048,105,"" 4 "AppendMenu",m_file%,0,106,"E&xit"+9+"Alt+F4" : $ "CreatePopupMenu" m_options% A "AppendMenu",m_options%,0,300,"&Preferences..."+9+"Ctrl+P" : ! "CreatePopupMenu" m_help% A "AppendMenu",m_help%,0,400,"&About this program..."+9+"F1" :  "CreateMenu" m_main% - "AppendMenu",m_main%,16,m_file%,"&File" 3 "AppendMenu",m_main%,16,m_options%,"&Options" - "AppendMenu",m_main%,16,m_help%,"&Help"  "SetMenu",@hwnd%,m_main%  "DrawMenuBar",@hwnd% :  26  :  GetWinVars # "GetWindowRect",@hwnd%,block% &winxpos%=!block%:winypos%=block%!4 <winxsize%=block%!8-winxpos%:winysize%=block%!12-winypos%  : # _Close(msg%,wparam%,lparam%)  wlo%,whi%,llo%,lhi% 1whi%=wparam%>>16 &FFFF:wlo%=wparam% &FFFF 1lhi%=lparam%>>16 &FFFF:llo%=lparam% &FFFF X 0,14)"Close:";msg%",";wparam%":";whi%"/";wlo%",";lparam%":";lhi%"/";llo%;10," ") QUIT  : # _Mouse(msg%,wparam%,lparam%)  wlo%,whi%,llo%,lhi% 1whi%=wparam%>>16 &FFFF:wlo%=wparam% &FFFF 1lhi%=lparam%>>16 &FFFF:llo%=lparam% &FFFF  19,10);wlo%" " 1 19,11);lhi%",";llo%" ": BB4W position  : " _Move(msg%,wparam%,lparam%)  wlo%,whi%,llo%,lhi% 1whi%=wparam%>>16 &FFFF:wlo%=wparam% &FFFF 1lhi%=lparam%>>16 &FFFF:llo%=lparam% &FFFF msg% G 3:GetWinVars:19,0);winxpos%;",";winypos%" ": llo,lhi P 5:GetWinVars:19,1);winxsize%;" by ";winysize%" ":26: llo,lhi 276 wlo% 0 0:Scroll(0,-hscrollu%): Scroll Left Unit 0 1:Scroll(0,hscrollu%): Scroll Right Unit 0 2:Scroll(0,-hscrollp%): Scroll Left Page 0 3:Scroll(0,hscrollp%): Scroll Right Page ' 4:Scroll(2,whi%): Scroll set to 0 5:Scroll(2,whi%): Scroll passing through  8: End of scroll $:prFlags("Horizontal scroll:")  277: wlo% . 0:Scroll(1,-vscrollu%): Scroll Up Unit . 1:Scroll(1,vscrollu%) Scroll Down Unit 0 2:Scroll(1,-vscrollp%): Scroll Down Page - 3:Scroll(1,vscrollp%): Scroll Up Page ' 4:Scroll(3,whi%): Scroll set to 0 5:Scroll(3,whi%): Scroll passing through  8: End of scroll ":prFlags("Vertical scroll:")  Y:0,14)"UKMove";msg%",";wparam%":";whi%"/";wlo%",";lparam%":";lhi%"/";llo%;10," ")   :  Scroll(f%,c%)  d%:d%=f%2:f%=f%1  f%=0 p%=hscrollpos%  f%=1 p%=vscrollpos%  d% p%=c% p%=p%+c% f%=0 # p%hscrollmax% p%=hscrollmax% hscrollpos%=p% 19,2);p%" "  f%=1 # p%vscrollmax% p%=vscrollmax% vscrollpos%=p% 19,5);p%" "  " "SetScrollPos",@hwnd%,f%,p%,1  : ! _Sys(msg%,wparam%,lparam%)  wlo%,whi%,llo%,lhi%,temp 1whi%=wparam%>>16 &FFFF:wlo%=wparam% &FFFF 1lhi%=lparam%>>16 &FFFF:llo%=lparam% &FFFF  msg%<>273 V 0,13)"SYS:";msg%",";wparam%":";whi%"/";wlo%",";lparam%":";lhi%"/";llo%;10," ")   19,13);wparam%;" "  msg% 273  wparam%  100: m_file% > &File  101: m_file% > &New  102: m_file% > &Open  103: m_file% > &Save  104: m_file% > Save &As  106: m_file% > E&xit  ( 300: m_options% > &Preferences... , 400: m_help% > &About this program... "MessageBox",@hwnd%,"Windows API Discoverer"+13+"Version 0.20"+13+"Written by Jon Ripley"+13+"(C) 23-Mar-2003","About this program",64    :  CheckScrollKeys(c%)  Scrollbar related keys K c%=141 c%=139 Scroll(1,-vscrollu%): Mouse wheel down / Down Arrow F c%=140 c%=138 Scroll(1,vscrollu%): Mouse wheel up / Up Arrow - c%=132 Scroll(1,-vscrollp%): PageDown * c%=133 Scroll(1,vscrollp%): PageUp + c%=130 Scroll(1,-vscrollpos%): Home 5 c%=131 Scroll(1,vscrollmax%-vscrollpos%): End / c%=136 Scroll(0,-vscrollu%): Left Arrow / c%=137 Scroll(0,vscrollu%): Right Arrow  :  CheckMenuKeys menu% = Only process menu keys if my window has the input focus 5 "GetForegroundWindow" menu%: menu%<>@hwnd%  Menu shortcut keys menu%=-1  If Ctrl+ ... -2  -86 menu%=101  -55 menu%=102  -82 menu%=103  -66 menu%=104  -56 menu%=300  If Alt+ -3 -21    -114 menu%=400 " menu%<>-1 _Sys(273,menu%,0)  : prFlags(a$) Ka$;msg%",";wparam%",";lparam%":";wlo%"/";whi%":";llo%"/";lhi%;10," ")