ちょっと違うかもしれませんが、ページ遷移する"前"に
移動するかの確認ダイアログを出すサンプルです。
("いいえ"を選択すると、遷移しません)
#define DISPID_BEFORENAVIGATE2 250
#define DISPID_NEWWINDOW3 273
#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}"
#define BrowserNavConstants_Zero 0
#define BrowserNavConstants_navOpenInNewWindow 1
#define BrowserNavConstants_navNoHistory 2
#define BrowserNavConstants_navNoReadFromCache 4
#define BrowserNavConstants_navNoWriteToCache 8
#define BrowserNavConstants_navAllowAutosearch 16
#define BrowserNavConstants_navBrowserBar 32
#define BrowserNavConstants_navHyperlink 64
#define BrowserNavConstants_navEnforceRestricted 128
#define BrowserNavConstants_navNewWindowsManaged 256
#define BrowserNavConstants_navUntrustedForDownload 512
#define BrowserNavConstants_navTrustedForActiveX 1024
#define BrowserNavConstants_navOpenInNewTab 2048
#define BrowserNavConstants_navOpenInBackgroundTab 4096
#define BrowserNavConstants_navKeepWordWheelText 8192
#define BrowserNavConstants_navVirtualTab 16384
#define BrowserNavConstants_navBlockRedirectsXDomain 32768
#define BrowserNavConstants_navOpenNewForegroundTab 65536
axobj ie, "Shell.Explorer.2", 640, 480
ie("Silent") = -1
comevent ie_event, ie, DIID_DWebBrowserEvents2, *event
ie->"Navigate" "http://hsp.tv/"
stop
*event
dispid = comevdisp(ie_event)
if DISPID_BEFORENAVIGATE2 == dispid : gosub *OnBeforeNavigate
if DISPID_NEWWINDOW3 == dispid : gosub *OnNewWindow3
return
//
// https://msdn.microsoft.com/en-us/library/aa768280%28v=vs.85%29.aspx
//
*OnBeforeNavigate
// ページ遷移が行われる前に実行される処理
comevarg p1_Url, ie_event, 1, 2
comevarg p2_Flags, ie_event, 2, 2
// ハイパーリンクを押されて、遷移する場合
if BrowserNavConstants_navHyperlink && p2_Flags("val") {
dialog strf("%sにアクセスしますか?", p1_Url("val")), 2
// いいえの場合はキャンセルさせる
if 7 == stat {
comevarg p6_Cancel, ie_event, 6, 2
p6_Cancel("val") = 1
delcom p6_Cancel
}
}
delcom p2_Flags
delcom p1_Url
return
*OnNewWindow3
// 新規では開かせないが、既存のウィンドウ内で開く処理
comevarg p1_Cancel, ie_event, 1, 2
comevarg p4_Url, ie_event, 4, 2
dialog strf("%sにアクセスしますか?", p4_Url("val")), 2
// はいの場合はナビゲートさせる
p1_Cancel("val") = 1
if 6 == stat {
ie->"Navigate" p4_Url("val")
}
delcom p4_Url
delcom p1_Cancel
return