ll_libload wininet, "wininet.dll"
ll_getproc InternetOpen, "InternetOpenA", wininet
ll_getproc InternetOpenUrl, "InternetOpenUrlA", wininet
ll_getproc InternetQueryDataAvailable, "InternetQueryDataAvailable", wininet
ll_getproc InternetReadFile, "InternetReadFile", wininet
ll_getproc InternetCloseHandle, "InternetCloseHandle", wininet
#module
#deffunc inetinit
mref stt, 64
prm = 0, 0, 0, 0, 0
agent = "hspbc"
ll_getptr agent : ll_ret prm
ll_callfunc prm, 5, InternetOpen@
ll_ret hinet : stt = hinet
return
#deffunc inetend onexit
if hinet : ll_callfunc hinet, 1, InternetCloseHandle@
return
#deffunc inetget val, str
mref data, 24 : mref url, 33
prm = hinet, 0, 0, 0, 0x80000000, 0
ll_getptr url : ll_ret prm.1
ll_callfunc prm, 6, InternetOpenUrl@
ll_ret hfile
ll_getptr i : ll_ret i.1
prm = hfile,i.1
ll_callfunc prm, 2, InternetQueryDataAvailable@
ll_ret i
if i = 0 : return
sdim s, i.1
i = 0
prm = hfile, 0, i.1
ll_getptr s : ll_ret prm.1
ll_getptr i.2 : ll_ret prm.3
repeat
ll_callfunc prm, 4, InternetReadFile@
if i.2 = 0 : break
repeat i.2
peek i.3, s, cnt
poke data, i + cnt, i.3
loop
i += i.2
loop
ll_callfunc hfile, 1, InternetCloseHandle@
return
#global
sdim buf, 10000 // 受け取る変数は大きめに確保する
inetinit
inetget buf, "http://www.rinku.zaq.ne.jp/ultimate/"
mesbox buf, winx, winy, 1
stop
|