web.form库源码
namespace web;
import util.metaProperty
import win;
import com;
mapurl = function(url){
var local = ..io.localpath(url)
if( local ){
if(not ..io.exist(local) ){
//if( ! _STUDIO_INVOKED ){
url = ..string.replace(url,"@\","/");
url = ..string.upper(url)
url = "res://" + ..io._exepath + "/RES/" + url;
//}
}
else {
url = local;
}
}
return url;
}
class form{
ctor( winform ,uiflag,dlctl)begin
//默认是有滚动条的,没有才需要设置
if(type(winform.scroll)==type.table /*winform没有的变量都会返回一个空的table*/ ){
if(uiflag)
uiflag |= 0x8/*_UIFLAG_SCROLL_NO*/
else
uiflag = 0x8/*_UIFLAG_SCROLL_NO*/
}
this._dlctl = dlctl;
this._hostflag = uiflag;
..com.CreateEmbed( this ,winform )
winform.web = this;
/*
this._form = winform
this._host = 宿主对象
this._object = 控件对象
*/
this._browser = this._object
this.hwndEmbedding = ..win.findEx( winform.hwnd,0,"shell embedding" )
this.hwndControl = ..win.getLeaf( winform.hwnd )
//如果是控件,返回父窗口
var form = ..win.ui.getForm(winform.hwnd)
form.isDialogMessage = function(hwnd,msg){
if ( (msg.message >= 0x100/*_WM_KEYFIRST*/) && (msg.message <= 0x108/*_WM_KEYLAST*/) ) {
if( msg.wParam!= 0xD/*_VK_RETURN*/ ){
if( this._host.tranacc(msg) ){
return true;
}
}
}
}
form._ondestroy = function(){
this._host.close();
}
//用局部变量来隐藏对象的数据
var margin = {left=0;top=0;right=0;bottom=0}
winform.adjust = function( width,height) begin
var rc = winform.clientRect;
var l = tonumber( margin.left);
var t = tonumber( margin.top);
var r = tonumber( margin.right);
var b = tonumber( margin.bottom)
if( (l!==null) && (t!==null) && (r!==null) && (b!==null) ){
//调整浏览器窗口,以适应新的窗口尺寸
::MoveWindow(this.hwndEmbedding,l,t, rc.right-rc.left-r-l, rc.bottom-rc.top-b-t,1)
}
end;
var sink, cookie =..com.Connect(this._browser, this );
end;
//设置网页边距getting started
setMargin = function(left,top,right,bottom){
margin.left = left;
margin.top = top;
margin.right = right;
margin.bottom = bottom;
var rc = this._form.rect;
::MoveWindow(this.hwndEmbedding,left,top, rc.right-rc.left-margin.right-left, rc.bottom-rc.top-margin.bottom-top,1)
};
//获取网页边距
getMargin = function(){
return margin.left,margin.top,margin.right,margin.bottom
};
waitClose = function(){
//等待直到web窗口被关闭
var hwnd = this._form.hwnd;
while( ::IsWindow(hwnd) )
..win.delay(100)
}
isbrowser = function(pdisp){
return ..com.topointer(this._browser) == ..com.topointer(pdisp)
}
wait = function(url){
//等待页面下载完成(如果不指定url参数,则等待当前页面打开)
var hwnd = this._form.hwnd;
var delay = ..win.delay;
var browser = this._browser;
var curl;
while(::IsWindow(hwnd) ){
do {
delay(100)
}while( (browser.ReadyState != 4/*READYSTATE_COMPLETE*/) || browser.Busy )
curl = ..string.lower( browser.LocationURL ) ;
if( ..string.startWith( curl, "res://") ){
if(..string.find( curl,"err") ){
//..io.print("wait()","出错了");
return false;
}
}
//如果用户没有指定需要到达的URL
if(!url)
return true;
if( ..string.find( browser.LocationURL,url) )
return true;
delay(100)
}
return false;
}
waitEle = function(name,frame){
//等待页面下载完成(如果不指定url参数,则等待当前页面打开)
var hwnd = this._form.hwnd;
var delay = ..win.delay;
var ele;
while(::IsWindow(hwnd) ){
delay(100)
ele = this.getEle(name,frame)
if(ele)
return ele;
}
return null;
}
waitDoc = function( frame){
//等待页面下载完成(如果不指定url参数,则等待当前页面打开)
var hwnd = this._form.hwnd;
var delay = ..win.delay;
var doc;
while(::IsWindow(hwnd) ){
delay(100)
doc = this.getDoc(frame)
if(doc)
return doc;
}
return null;
}
doScript = function(s,frame,n="javascript"){//执行网页脚本或框架内脚本
var doc = this.getDoc(frame)
if( doc ){
var wd = doc.parentWindow or doc.contentWindow
wd.execScript(s,n);
}
}
fromPoint = function(x = 0,y=0,frame){
var doc = this.getDoc(frame);
if( doc ){
return doc.elementFromPoint(x,y);
}
}
getDoc = function(frame){
if(frame){
var ele = this._browser.Document.getElementById(frame);
if(ele){
//return ele.contentDocument;
return ele.contentWindow.Document;
}
}
else
return this._browser.Document;
}
getEle = function(id,frame){
var doc = this.getDoc(frame);
if(doc){
var ele = doc.getElementById(id);
if(ele) return ele;
var eles = doc.getElementsByName(id);
return eles(0);
}
}
getEles = function(name,frame){
var doc = this.getDoc(frame);
return doc && doc.getElementsByName(name);
}
getOption = function(name,ind,frame){
var ele = this.getEle(name,frame);
return ele.options(ind);
}
findOption = function(name,v,frame){
var ele = this.getEle(name,frame);
for i,opt in com.each(ele.options) {
if(opt.value=v or opt.innerText==v)
return opt;
}
}
write = function(strhtml,frame ){
var doc = this.getDoc(frame)
if(!doc){
if(!frame){
this.go("about:blank")
doc = this.document;
}
}
if(!doc)
return false;
doc.write(strhtml);
doc.close();
}
go = function(url,headers,target="_self"){
url = ..web.mapurl(url);
if(headers=="")headers=null;
this._browser.Navigate(url,0,target,null,headers)
}
post = function(url,postdata,headers='\r\nContent-Type: application/x-www-form-urlencoded',target="_self"){
if(headers=="")headers=null;
if(!postdata)return this.go(url);
url = ..web.mapurl(url);
this._browser.Navigate(url,0,target,{ postdata/* 转换为字节数组*/ } ,headers)
}
goback = function(){
this._browser.GoBack()
}
goforward = function(){
this._browser.GoForward()
}
gohome = function(){
this._browser.GoHome()
}
gosearch = function(){
this._browser.GoSearch()
}
refresh = function(){
this._browser.Refresh()
}
refresh2 = function(ref=REFRESH_COMPLETELY){
this._browser.Refresh2(0)
}
refresh3 = function(ref=REFRESH_COMPLETELY){
this._browser.Refresh2(3)
}
stop = function(){
this._browser.Stop()
}
eachAll = function(tag,frame){
var doc = this.getDoc(frame);
if(doc){
if(tag)
return ..com.each( doc.all.tags(tag) );
return ..com.each( doc.all );
}
}
eachLinks = function(frame){
return this.eachAll('A',frame ) );
}
@metaProperty;
}
form.metaProperty = ..util.metaProperty(
type = {
_get = function(){
return owner._browser.Type
}
};
document = {
_get = function(){
return owner._browser.Document
}
}
host = {
_get = function(){
return owner._browser.Document.parentWindow.location.host
}
};
body = {
_get = function(){
return owner._browser.Document.Body
}
};
location = {
_get = function(){
return owner._browser.LocationURL ;
}
_set = function( value ){
owner._browser.Navigate(value) ;
}
};
silent = {
_get = function(){
return owner._browser.Silent ;
}
_set = function( value ){
owner._browser.Silent = value;
}
};
application = {
_get = function(){
return owner._browser.Application ;
}
}
execEle = function(ele,cmd,val,ui){
if( type(ele)==type.string)
ele = owner.getEle(ele);
var controlRange = ele.document.body.createControlRange();
if(!controlRange)
return;
//ele.contentEditable = true;
controlRange.addElement(ele);
controlRange.execCommand( cmd,ui,val);
//ele.contentEditable = false;
}
exec = function(cmd,val,ui){
owner.document.execCommand(cmd,ui,val,0);
}
execWb = function(id,val,opt=1){
return owner._browser.ExecWB(id,opt,val)
}
openproxy = {
_get = function(){
var ie = com.CreateObject("InternetExplorer.Application.1")
ie.left=5000
ie.top=5000
var wb = owner;//因为每个函数有自已的owner参数,创建一个wb变量将这里的owner保留给ie.DWebBrowserEvents2.BeforeNavigate2使用
ie.DWebBrowserEvents2 = {
BeforeNavigate2 = function( pDisp, url, Flags, TargetFrameName, PostData, Headers, Cancel ) begin
ie.Quit();
ie = null;
wb.post(url,PostData,Headers )
return true;
end;
}
com.Connect(ie, ie.DWebBrowserEvents2 )
ie.Application.RegisterAsBrowser = true;
return ie.Application;
}
};
get = function(){
}
)
form.metaProperty.select = function(name,v,frame){//支持框架
var ele = owner.getEle(name,frame);
var opt;
if(ele){
if(type(v)==type.number and v < ele.length){
opt = ele.options(v);
}
else{
for i,child in com.each(ele.options) {
if(child.value=v or child.innerText==v){
opt=child;
}
}
}
}
if( opt ){
opt.selected = true;
if( ele.onchange )
ele.fireEvent("onchange")
return opt;
}
}
//自动提示
/******intellisense( )
web.mapurl(__/*根目录相对路径*/) = 将根目录下的相对路径转换为正确的URL\n支持发布后的内嵌资源文件\n此函数在web.form库内定义
web.form( __/*winform对象*/ ) = 创建web窗体
!wb.hwndEmbedding = 嵌入窗口
!wb.hwndControl = 控件窗口
!wb._browser = 浏览器控件,com对象
!wb._object = 控件对象
!wb.write("__") = 将字符串值写入网页、不允许追加
!wb.write("__","框架名") = 将字符串值写入框架网页、不允许追加
!wb.type = 返回当前加载的文件类型\n例如doc文件返回Microsoft Word Document
!wb.wait("__") = 等待指定的网址下载完成,支持模式语法
!wb.wait() = 等待网页下载完成
!wb.write("__") = 将字符串值写入网页
!wb.setMargin(.(left,top,right,bottom) = 设置网页边距
!wb.getMargin() = 读取网页边距\nleft,top,right,bottom=wb.getMargin()
!wb.waitClose() = 等待网页被关闭
!wb.showhelp = 是否允许显示帮助对话框
!wb.silent = 组件对话框、脚本错误对话框静默模式\n如果仅需禁用脚本错误对话框,建议设置noScriptErr属性
!wb.noScriptErr = @.noScriptErr=true;\n//禁止弹出脚本错误对话框,并允许脚本继续执行
!wb.go("__/*网址*/") = 打开网址
!wb.post(.("__/*网址*/","k=v&k2=v2") = 自动提交表单
!wb.post(.("__/*网址*/","k=v&k2=v2","自定义http头") = 自动提交表单
!wb.post(.("__/*网址*/","k=v&k2=v2","自定义http头","目标框架") = 自动提交表单
!wb.location = 当前网址
!wb.host = 当前网址所在主机名
!wb.go("__/*网址*/","自定义http头") = 打开网址
!wb.go("__/*网址*/","自定义http头","目标框架") = 打开网址
!wb.eachLinks() = 创建迭代器,迭代页面所有超链接,例:\nfor(i,ele in wb.eachLinks() ){\n \n}\n
!wb.eachAll() = 创建迭代器,迭代页面所有超链接,例:\nfor(i,ele in wb.eachAll() ){\n \n}\n
!wb.eachLinks("框架名") = 创建迭代器,迭代页面所有超链接,例:\nfor(i,ele in wb.eachLinks("框架名") ){\n \n}\n
!wb.eachAll("input") = 创建迭代器,迭代页面全部节点,例:\nfor(i,ele in wb.eachAll("input") ){\n \n}\n
!wb.eachAll("input","框架名") = 创建迭代器,迭代页面全部节点,例:\nfor(i,ele in wb.eachAll() ){\n \n}\n
!wb.goback()=导航到历史列表中的上一个页面
!wb.goforward()=导航到历史历表中的下一个项目
!wb.gohome()=导航到缺省页面
!wb.gosearch()=导航到缺省页面
!wb.refresh()=刷新页面\n如果服务器未更新则不会重新下载,类似在浏览器中按F5的效果
!wb.refresh2()=重新下载页面
!wb.refresh3()=重新下载最新页面\n添加Pragma:no-cache请求头,强制服务端刷新\n类似在浏览器中按下Ctrl+F5的效果
!wb.refresh2=根据指定的刷新级别刷新当前页面
!wb.stop()=停止当前导航
!wb.BeforeNavigate2 = @.BeforeNavigate2=function( pDisp, url, Flags, TargetFrameName, PostData, Headers, Cancel ) {
/*导航发生前触发(打开网页前),刷新时不触发*/
__/*请输入代码*/
}
!wb.showMenu = @.showMenu=function(x,y,id,ele){
/*定义此事件函数则禁用默认的右键弹出菜单*/
select(id) {
case 0/*_CONTEXT_MENU_DEFAULT */ {
}
case 1/*_CONTEXT_MENU_IMAGE*/ {
}
case 2/*_CONTEXT_MENU_CONTROL*/ {
}
case 4/*_CONTEXT_MENU_TEXTSELECT */ {
}
case 5/*_CONTEXT_MENU_ANCHOR*/ {
}
}
return false;//返回false禁止默认菜单
}
!wb.showMsg = @.showMsg=function(text/*信息*/,caption/*标题*/){
/*弹出对话框触发此事件*/
return true; /*返回false则不显示对话框*/
}
!wb.CommandStateChange = @.CommandStateChang=function(cmd,enable) {
/*当命令的激活状态改变时触发。它表明何时激活或关闭Back和Forward菜单项或按钮 */
select(cmd) {
case 0xFFFFFFFF/*_CSC_UPDATECOMMANDS*/ {
/*更新控制按钮*/
}
case 0x2/*_CSC_NAVIGATEBACK*/ {
/*启用或禁用后退按钮*/
__/*请输入代码*/
}
case 0x1/*_CSC_NAVIGATEFORWARD*/ {
/*启用或禁用前进按钮*/
}
}
}
!wb.DocumentComplete = @.DocumentComplete=function( pDisp, url) {
/*当整个文档完成时触发,刷新页面不触发*/
__/*请输入代码*/
}
!wb.DownloadBegin = @.DownloadBegin=function() {
/*当某项下载操作已经开始后触发,刷新也可触发此事件*/
__/*请输入代码*/
}
!wb.DownloadComplete = @.DownloadComplete=function() {
/*当某项下载操作已经完成后触发,刷新也可触发此事件*/
__/*请输入代码*/
}
!wb.FileDownload = @.FileDownload=function( activeDocument, cancel /*返回值*/) {
__/*请输入代码*/
}
!wb.NavigateComplete2 = @.NavigateComplete2=function(pDisp, url) {
/*导航完成后触发,刷新时不触发*/
__/*请输入代码*/
}
!wb.OnVisible = @.OnVisible=function( Visible ) {
/*显示触发*/
__/*请输入代码*/
} ;
!wb.NavigateError = @.NavigateError=function(pDisp,url,target,statusCode,cancel /*返回值*/) {
/*导航遇到错误时触发*/
__/*请输入代码*/
} ;
!wb.NewWindow3 = @.NewWindow3=function(ppDisp, Cancel,dwFlags,bstrUrlContext, bstrUrl ) {
/*弹出新窗口以前触发 */
__/*请输入代码*/
} ;
!wb.TitleChange = @.TitleChange=function( text ) {
/*网页标题改变时触发*/
__/*请输入代码*/
} ;
!wb.NewWindow2 = @.NewWindow2=function( ppDisp, Cancel) {
/*弹出新窗口以前触发 */
return owner.openproxy /*创建代理窗口捕获网址并在当前窗口打开*/
return ppDisp, true; /*第二个返回值如果为真,则取消新窗口*/
/*新建的web窗体,并将application作为返回值,则在该web窗口中打开*/
/*return wbother.application; */
}
!wb._form = !winform.
!ele.fireEvent("onclick") = 自动触发element元素节点的事件脚本.
!ele.click = 模拟鼠标点击\n如果节点有脚本事件,请调用fireEvent方法
!ele.setAttribute("属性名","属性值") = 修改属性\n也可以直接写 ele.属性名字 = 值
!ele.getAttribute("属性名") = 获取属性\n也可以直接写 var 返回值=ele.属性名字
!ele.innerHTML = 返回节点内的HTML代码
!ele.outerHTML = 返回该节点的HTML代码
!ele.checked = 复选框、单选框等选中状态
!ele.form.submit() = 自动提交表单
!ele.selected = 设置为下拉选框选中项
?.getEle= !ele.
?.waitEle= !ele.
ele = !ele.
?.all = !ele.
!document.write(__/*输入HTML*/) = 将HTML写入网页,允许追加输出
!document.writeln(__/*输入HTML*/) = 将HTML写入网页,并添加换行符,允许追加输出
!document.all(1__/*输入序号*/) = 返回指定的节点
!document.attachEvent("onclick",__/*指定dispath接口*/) = 绑定DOM事件接口
!wb.document = !document.
?wb.getDoc=!document.
?wb.waitDoc=!document.
!wb.getDoc(__/*框架名*/) = 获取文档对象
!wb.waitDoc(__/*框架名*/) = 等待页页文档对象创建\n并获取文档对象
!wb.select("控件名字",__/*输入选项索引,或选项值、选项文本*/) = 查找下拉选框的指定选项,选中并返回选项节点
?.select = !ele.
!wb.exec("__") = 执行命令
!wb.exec("__", ) = 执行命令
!wb.exec("__", ,true) = 执行命令
!wb.execEle(ele,"__") = 执行命令
!wb.execEle(ele,"__", ) = 执行命令
!wb.execEle(ele,"__", ,true) = 执行命令
!wb.execWb( __ ) = 执行命令\n命令ID为_OLECMDID_前缀的常量
!wb.execWb( __, ) = 执行命令,并传入参数\n命令ID为_OLECMDID_前缀的常量
!wb.external = @.external={
__/*输入要公开的成员*/
}
!wb.doScript(.(js脚本) =执行js脚本
!wb.doScript(.(js脚本,框架名称) =执行js脚本
!wb.doScript(.(js脚本,框架名称,脚本语言名称="javascript") =执行js脚本
!wb.body = !ele.
!wb.setRadio("__", 1) = 选定单选按钮
!wb.setSelect("__", 1,true) = 选定复选按钮,
!wb.getEle("__") = wb.getEle(id,frame = null)//返回一个节点对像或框架内子节点对像
!wb.getEles("__") = 返回同名的所有节点,例如\nele = wb.getEles("节点名字");\nele(1).setAttribute("属性名字", "修改第一个节点属性值");
!wb.fromPoint(.(x坐标,y坐标) = 自指定的坐标获取节点
!wb.fromPoint(.(x坐标,y坐标,框架名) = 自指定的坐标获取节点
?wb.fromPoint = !ele.
?web.form = !wb.
end intellisense******/
/**intellisense()
_DLCTL_DLIMAGES=@0x10/*_DLCTL_DLIMAGES*/
_DLCTL_VIDEOS=@0x20/*_DLCTL_VIDEOS*/
_DLCTL_BGSOUNDS=@0x40/*_DLCTL_BGSOUNDS*/
_DLCTL_NO_SCRIPTS=@0x80/*_DLCTL_NO_SCRIPTS*/
_DLCTL_NO_JAVA=@0x100/*_DLCTL_NO_JAVA*/
_DLCTL_NO_RUNACTIVEXCTLS=@0x200/*_DLCTL_NO_RUNACTIVEXCTLS*/
_DLCTL_NO_DLACTIVEXCTLS=@0x400/*_DLCTL_NO_DLACTIVEXCTLS*/
_DLCTL_DOWNLOADONLY=@0x800/*_DLCTL_DOWNLOADONLY*/
_DLCTL_NO_FRAMEDOWNLOAD=@0x1000/*_DLCTL_NO_FRAMEDOWNLOAD*/
_DLCTL_RESYNCHRONIZE=@0x2000/*_DLCTL_RESYNCHRONIZE*/
_DLCTL_PRAGMA_NO_CACHE=@0x4000/*_DLCTL_PRAGMA_NO_CACHE*/
_DLCTL_NO_BEHAVIORS=@0x8000/*_DLCTL_NO_BEHAVIORS*/
_DLCTL_NO_METACHARSET=@0x10000/*_DLCTL_NO_METACHARSET*/
_DLCTL_URL_ENCODING_DISABLE_UTF8=@0x20000/*_DLCTL_URL_ENCODING_DISABLE_UTF8*/
_DLCTL_URL_ENCODING_ENABLE_UTF8=@0x40000/*_DLCTL_URL_ENCODING_ENABLE_UTF8*/
_DLCTL_NOFRAMES=@0x80000/*_DLCTL_NOFRAMES*/
_DLCTL_FORCEOFFLINE=@0x10000000/*_DLCTL_FORCEOFFLINE*/
_DLCTL_NO_CLIENTPULL=@0x20000000/*_DLCTL_NO_CLIENTPULL*/
_DLCTL_SILENT=@0x40000000/*_DLCTL_SILENT*/
_DLCTL_OFFLINEIFNOTCONNECTED=@0x80000000/*_DLCTL_OFFLINEIFNOTCONNECTED*/
_DLCTL_OFFLINE=@0x80000000/*_DLCTL_OFFLINE*/
_UIFLAG_DIALOG=@0x1/*_UIFLAG_DIALOG*/
_UIFLAG_DISABLE_HELP_MENU=@0x2/*_UIFLAG_DISABLE_HELP_MENU*/
_UIFLAG_NO3DBORDER=@0x4/*_UIFLAG_NO3DBORDER*/
_UIFLAG_SCROLL_NO=@0x8/*_UIFLAG_SCROLL_NO*/
_UIFLAG_DISABLE_SCRIPT_INACTIVE=@0x10/*_UIFLAG_DISABLE_SCRIPT_INACTIVE*/
_UIFLAG_OPENNEWWIN=@0x20/*_UIFLAG_OPENNEWWIN*/
_UIFLAG_DISABLE_OFFSCREEN=@0x40/*_UIFLAG_DISABLE_OFFSCREEN*/
_UIFLAG_FLAT_SCROLLBAR=@0x80/*_UIFLAG_FLAT_SCROLLBAR*/
_UIFLAG_DIV_BLOCKDEFAULT=@0x100/*_UIFLAG_DIV_BLOCKDEFAULT*/
_UIFLAG_ACTIVATE_CLIENTHIT_ONLY=@0x200/*_UIFLAG_ACTIVATE_CLIENTHIT_ONLY*/
_UIFLAG_OVERRIDEBEHAVIORFACTORY=@0x400/*_UIFLAG_OVERRIDEBEHAVIORFACTORY*/
_UIFLAG_CODEPAGELINKEDFONTS=@0x800/*_UIFLAG_CODEPAGELINKEDFONTS*/
_UIFLAG_URL_ENCODING_DISABLE_UTF8=@0x1000/*_UIFLAG_URL_ENCODING_DISABLE_UTF8*/
_UIFLAG_URL_ENCODING_ENABLE_UTF8=@0x2000/*_UIFLAG_URL_ENCODING_ENABLE_UTF8*/
_UIFLAG_ENABLE_FORMS_AUTOCOMPLETE=@0x4000/*_UIFLAG_ENABLE_FORMS_AUTOCOMPLETE*/
_UIFLAG_ENABLE_INPLACE_NAVIGATION=@0x10000/*_UIFLAG_ENABLE_INPLACE_NAVIGATION*/
_UIFLAG_IME_ENABLE_RECONVERSION=@0x20000/*_UIFLAG_IME_ENABLE_RECONVERSION*/
_UIFLAG_THEME=@0x40000/*_UIFLAG_THEME*/
_UIFLAG_NOTHEME=@0x80000/*_UIFLAG_NOTHEME*/
_UIFLAG_NOPICS=@0x100000/*_UIFLAG_NOPICS*/
_UIFLAG_NO3DOUTERBORDER=@0x200000/*_UIFLAG_NO3DOUTERBORDER*/
_UIFLAG_DISABLE_EDIT_NS_FIXUP=@0x400000/*_UIFLAG_DISABLE_EDIT_NS_FIXUP*/
_UIFLAG_LOCAL_MACHINE_ACCESS_CHECK=@0x800000/*_UIFLAG_LOCAL_MACHINE_ACCESS_CHECK*/
_UIFLAG_DISABLE_UNTRUSTEDPROTOCOL=@0x1000000/*_UIFLAG_DISABLE_UNTRUSTEDPROTOCOL*/
_UIFLAG_HOST_NAVIGATES=@0x2000000/*_UIFLAG_HOST_NAVIGATES*/
_UIFLAG_ENABLE_REDIRECT_NOTIFICATION=@0x4000000/*_UIFLAG_ENABLE_REDIRECT_NOTIFICATION*/
_UIFLAG_USE_WINDOWLESS_SELECTCONTROL=@0x8000000/*_UIFLAG_USE_WINDOWLESS_SELECTCONTROL*/
_UIFLAG_USE_WINDOWED_SELECTCONTROL=@0x10000000/*_UIFLAG_USE_WINDOWED_SELECTCONTROL*/
_UIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE=@0x20000000/*_UIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE*/
_UIFLAG_DPI_AWARE=@0x40000000/*_UIFLAG_DPI_AWARE*/
_NWMF_UNLOADING=@0x1/*_NWMF_UNLOADING*/
_NWMF_FIRST=@0x4/*_NWMF_FIRST*/
_NWMF_OVERRIDEKEY=@0x8/*_NWMF_OVERRIDEKEY*/
_NWMF_SHOWHELP=@0x10/*_NWMF_SHOWHELP*/
_NWMF_HTMLDIALOG=@0x20/*_NWMF_HTMLDIALOG*/
_NWMF_FROMDIALOGCHILD=@0x40/*_NWMF_FROMDIALOGCHILD*/
_NWMF_USERREQUESTED=@0x80/*_NWMF_USERREQUESTED*/
_NWMF_USERALLOWED=@0x100/*_NWMF_USERALLOWED*/
_NWMF_FORCEWINDOW=@0x10000/*_NWMF_FORCEWINDOW*/
_NWMF_FORCETAB=@0x20000/*_NWMF_FORCETAB*/
_NWMF_SUGGESTWINDOW=@0x40000/*_NWMF_SUGGESTWINDOW*/
_NWMF_SUGGESTTAB=@0x80000/*_NWMF_SUGGESTTAB*/
_NWMF_INACTIVETAB=@0x100000/*_NWMF_INACTIVETAB*/
_CSC_UPDATECOMMANDS=@0xFFFFFFFF/*_CSC_UPDATECOMMANDS*/
_CSC_NAVIGATEFORWARD=@0x1/*_CSC_NAVIGATEFORWARD*/
_CSC_NAVIGATEBACK=@0x2/*_CSC_NAVIGATEBACK*/
_OLECMDID_OPEN=@0x1/*_OLECMDID_OPEN*/
_OLECMDID_NEW=@0x2/*_OLECMDID_NEW*/
_OLECMDID_SAVE=@0x3/*_OLECMDID_SAVE*/
_OLECMDID_SAVEAS=@0x4/*_OLECMDID_SAVEAS*/
_OLECMDID_SAVECOPYAS=@0x5/*_OLECMDID_SAVECOPYAS*/
_OLECMDID_PRINT=@0x6/*_OLECMDID_PRINT*/
_OLECMDID_PRINTPREVIEW=@0x7/*_OLECMDID_PRINTPREVIEW*/
_OLECMDID_PAGESETUP=@0x8/*_OLECMDID_PAGESETUP*/
_OLECMDID_SPELL=@0x9/*_OLECMDID_SPELL*/
_OLECMDID_PROPERTIES=@0xA/*_OLECMDID_PROPERTIES*/
_OLECMDID_CUT=@0xB/*_OLECMDID_CUT*/
_OLECMDID_COPY=@0xC/*_OLECMDID_COPY*/
_OLECMDID_PASTE=@0xD/*_OLECMDID_PASTE*/
_OLECMDID_PASTESPECIAL=@0xE/*_OLECMDID_PASTESPECIAL*/
_OLECMDID_UNDO=@0xF/*_OLECMDID_UNDO*/
_OLECMDID_REDO=@0x10/*_OLECMDID_REDO*/
_OLECMDID_SELECTALL=@0x11/*_OLECMDID_SELECTALL*/
_OLECMDID_CLEARSELECTION=@0x12/*_OLECMDID_CLEARSELECTION*/
_OLECMDID_ZOOM=@0x13/*_OLECMDID_ZOOM*/
_OLECMDID_GETZOOMRANGE=@0x14/*_OLECMDID_GETZOOMRANGE*/
_OLECMDID_UPDATECOMMANDS=@0x15/*_OLECMDID_UPDATECOMMANDS*/
_OLECMDID_REFRESH=@0x16/*_OLECMDID_REFRESH*/
_OLECMDID_STOP=@0x17/*_OLECMDID_STOP*/
_OLECMDID_HIDETOOLBARS=@0x18/*_OLECMDID_HIDETOOLBARS*/
_OLECMDID_SETPROGRESSMAX=@0x19/*_OLECMDID_SETPROGRESSMAX*/
_OLECMDID_SETPROGRESSPOS=@0x1A/*_OLECMDID_SETPROGRESSPOS*/
_OLECMDID_SETPROGRESSTEXT=@0x1B/*_OLECMDID_SETPROGRESSTEXT*/
_OLECMDID_SETTITLE=@0x1C/*_OLECMDID_SETTITLE*/
_OLECMDID_SETDOWNLOADSTATE=@0x1D/*_OLECMDID_SETDOWNLOADSTATE*/
_OLECMDID_STOPDOWNLOAD=@0x1E/*_OLECMDID_STOPDOWNLOAD*/
_OLECMDEXECOPT_DODEFAULT=@0x0/*_OLECMDEXECOPT_DODEFAULT*/
_OLECMDEXECOPT_PROMPTUSER=@0x1/*_OLECMDEXECOPT_PROMPTUSER*/
_OLECMDEXECOPT_DONTPROMPTUSER=@0x2/*_OLECMDEXECOPT_DONTPROMPTUSER*/
_OLECMDEXECOPT_SHOWHELP=@0x3/*_OLECMDEXECOPT_SHOWHELP*/
end intellisense**/