wv2s.dll, mod_wv2s.hsp を入手したと仮定しますが、これで出来ると思います。
#include "mod_wv2s.hsp"
// webview2最小サンプル
WV2Env 0, 0
env = stat
if env {
WV2Ctrl env, hwnd
ctrl = stat
if stat {
WV2SetVisible ctrl, 1
WV2SetSize ctrl, 0, 0, ginfo_winx, ginfo_winy
surl = "https://www.google.co.jp/"
WV2Navigate ctrl, surl
// view取得 (Hiroさんのサンプルに出てくるcurViewに相当するもの)
prm = varptr(view)
ComCall ctrl, 25/*"get_CoreWebView2"*/, prm, 1
}
}
onexit *ONEXIT_
oncmd gosub *EVENT_ExecuteScript, 0x9010 ; WV2HdlNew用の衝突しない番号を指定(0x8000〜0xBFFFまで)
WV2HdlNew 2/*type:HW*/, hwnd, 0x9010
resNew_exec = stat ; ExecuteScriptするときに使用
// ExecuteScript用ウィンドウ作成
screen 1, 320,300, 12, ginfo_wx2+20, ginfo_wy1
objsize ginfo_sx, 20
button gosub "ExecuteScript", *BTN_EXEC
bufRes="" : ysize = (ginfo_sy-20)/2
sdim bufExec, 1024
bufExec="document.body.style.backgroundColor=\"#abc\";\ndocument.documentElement.outerHTML;"
mesbox bufExec, ginfo_sx,ysize, 5
mesbox bufRes, ginfo_sx,ysize, 4 : idMbRes = stat
gsel 0
stop
*BTN_EXEC
if view == 0 : return
// Unicode(utf-16)に変換
sdim bufTmp, (strlen(bufExec)+1)*2
cnvstow bufTmp, bufExec
// ExecuteScript実行
prm = varptr(bufTmp), resNew_exec
ComCall view, 29/*"ExecuteScript"*/, prm, 2
return
// EVENT_ExecuteScript内で使用する関数
#uselib "kernel32.dll"
#func lstrcpyW "lstrcpyW" wptr,wptr
#func lstrlenW "lstrlenW" wptr
#uselib "combase.dll"
#func WindowsDeleteString "WindowsDeleteString" int
*EVENT_ExecuteScript
// 文字列を受け取る : Unicode(utf-16)
sdim bufTmp, (lstrlenW(lparam)+1)*2
lstrcpyW varptr(bufTmp), lparam
vBuf = cnvwtos(bufTmp) ; shift-jisに変換
gsel 1
objprm idMbRes, vBuf ; mesboxに表示
gsel 0
// 忘れずに受け取った文字列のメモリを解放
WindowsDeleteString lparam
return
*ONEXIT_
if view : ComDel view
if ctrl : ComDel ctrl
if env : ComDel env
end
本当は、WV2HdlWait を使って oncmd 無しで出来るのではないかと予想しているのですが、使い方が分かりません(-_-;)