Liberty BASIC Help Online |
Example Programs
For some examples showing how to call APIs, examine the programs named CALL32?.BAS that are included with Liberty BASIC.
'CALL32-4.BAS - Make some API calls to play wave files and
'dynamically resize a window
open "kernel32" for dll as #kernel
open "user32" for dll as #user
open "winmm" for dll as #mm
open "Me" for window as #aWindow
print str$(playMode)
wavefile$ = "chimes.wav"
playMode = 4
calldll #mm, "sndPlaySoundA", _
wavefile$ as ptr,_
playMode as long,_
result as long
hndl = hwnd(#aWindow)
for x = 50 to 350 step 5
calldll #user, "MoveWindow", _
hndl as ulong, _
50 as long, _
50 as long, _
x as long, _
x as long, _
1 as long, _
result as boolean
next x
input r$
progname$ = "notepad.exe"
code = _SW_SHOWNA
notice str$(code)
calldll #kernel, "WinExec", _
progname$ as struct, _
code as ushort, _
result as ushort
print result
close #kernel
input r$
***********************************************
'CALL32-5.BAS - make various API calls to play
'wave files, track
'the mouse position, and move a window around
struct point, x as long, y as long
open "kernel32" for dll as #kernel
open "user32" for dll as #user
open "Me" for window as #aWindow
hndl = hwnd(#aWindow)
for i = 1 to 500
calldll #user, "GetCursorPos", _
point as struct, _
result as void
x = point.x.struct
y = point.y.struct
calldll #user, "MoveWindow", _
hndl as ulong, _
x as long, _
y as long, _
100 as long, _
100 as long, _
1 as long, _
result as boolean
next x
progname$ = "notepad.exe call32-5.bas"
code = _SW_NORMAL
notice str$(code)
calldll #kernel, "WinExec", _
progname$ as struct, _
code as long, _
result as long
print result
close #kernel
input r$
Copyright (C) 2003 Shoptalk Systems
Liberty BASIC - http://www.libertybasic.com/