本帖最后由 kjgmj 于 2010-10-23 18:35 编辑
看代码吧:(三个文件)
TinyWeb.bas
#引用 仅一次 "windows.bi"
#引用 "TinyWeb.bi"
函数 DlgProc ( 传值 hWin 为 HWND , 传值 uMsg 为 UINT , 传值 wParam 为 WPARAM , 传值 lParam 为 LPARAM ) 为 整数型
变量 rect 为 RECT
变量 i 为 整数型
变量 wUrl 为 宽文本 * 260
判断 分支 uMsg
分支 WM_INITDIALOG
hWeb = CreateWindowEx ( WS_EX_CLIENTEDGE , "AtlAxWin" , "http://www.ywgn.net/", WS_CHILD 或 WS_VISIBLE 或 WS_VSCROLL 或 WS_HSCROLL , 0 , 0 , 100,100 , hWin , 0 , hInstance , 0 )
' 读入数据 the IUnknown interface
AtlAxGetControl ( hWeb , pIUnknown )
IUnknown = 转换类型 ( IUnknown 指针 , * pIUnknown )
i = IUnknown - > AddRef ( pIUnknown )
' 读入数据 the IWebBrowser interface
i = IUnknown - > QueryInterface ( pIUnknown , @ IID_IWebBrowser , @ pIWebBrowser )
IWebBrowser = 转换类型 ( IWebBrowser 指针 , * pIWebBrowser )
i = IWebBrowser - > AddRef ( pIWebBrowser )
i = IUnknown - > Release ( pIUnknown )
'
分支 WM_COMMAND
判断 分支 取低十六位 ( wParam )
分支 IDM_FILE_GOTO1
MultiByteToWideChar ( CP_ACP , 0 , 取文本指针 ( "http://www.ywgn.net/") , - 1 , @ wUrl , 260 )
i = IWebBrowser - > Navigate ( pIWebBrowser , @ wUrl , NULL , NULL , NULL , NULL )
'
分支 IDM_FILE_BACK
i = IWebBrowser - > GoBack ( pIWebBrowser )
'
分支 IDM_FILE_FORWARD
i = IWebBrowser - > GoForward ( pIWebBrowser )
'
分支 IDM_FILE_EXIT
i = IWebBrowser - > Release ( pIWebBrowser )
EndDialog ( hWin , 0 )
'
结束 判断
分支 WM_CLOSE
EndDialog ( hWin , 0 )
'
分支 WM_SIZE
GetClientRect ( hWin , @ rect )
MoveWindow ( hWeb , 0 , 0 , rect.right , rect . bottom , TRUE )
'
分支 否则
返回 FALSE
'
结束 判断
返回 TRUE
结束 函数
'''
''' Program start
'''
'结束 函数
' ' Create the Dialog
' '
hInstance = GetModuleHandle ( NULL )
hDll = LoadLibrary ("atl.dll")
如果 hDll 则
AtlAxWinInit = 转换类型 ( 任意 指针 , GetProcAddress ( hDll ,"AtlAxWinInit") )
AtlAxGetControl = 转换类型 ( 任意 指针 , GetProcAddress (hDll ,"AtlAxGetControl") )
如果 AtlAxWinInit ( ) 则
DialogBoxParam ( hInstance , 转换类型 ( 字符型 指针 , IDD_DLG1 ) , NULL , @DlgProc , NULL )
结束 如果
FreeLibrary (hDll)
结束 如果
' '
' ' 程序名 has ended
' '
ExitProcess (0)
结束
'''
''' Program end
'''
TinyWeb.bi
#定义 IDD_DLG1 1000
#定义 IDR_MENU 10000
#定义 IDM_FILE_GOTO1 10002
#定义 IDM_FILE_BACK 10003
#定义 IDM_FILE_FORWARD 10004
#定义 IDM_FILE_EXIT 10001
类型 IID
Data1 为 无符整数型
Data2 为 无符短整数型
Data3 为 无符短整数型
Data4 ( 0 至 7 ) 为 无符字节型
结束 类型
类型 IUnknown
QueryInterface 为 函数 ( 传值 pif 为 任意 指针 , 传值 iid 为 IID 指针 , 传值 pInterface 为 任意 指针 ) 为 整数型
AddRef 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
Release 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
结束 类型
类型 IWebBrowser
QueryInterface 为 函数 ( 传值 pif 为 任意 指针 , 传值 iid 为 IID 指针 , 传值 pInterface 为 任意 指针 ) 为 整数型
AddRef 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
Release 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
GetTypeInfoCount 为 函数 ( 传值 pif 为 任意 指针 , pctinfo 为 DWORD ) 为 整数型
GetTypeInfo 为 函数 ( 传值 pif 为 任意 指针 , 传值 iTInfo 为 DWORD , 传值 lcid 为 DWORD , 传值 ppTInfo 为 DWORD ) 为 整数型
GetIDsOfNames 为 函数 ( 传值 pif 为 任意 指针 , 传值 riid 为 DWORD , 传值 rgszNames 为 DWORD , 传值 cNames 为 DWORD , 传值 lcid 为 DWORD , 传值 rgDispId 为 DWORD ) 为 整数型
Invoke 为 函数 ( 传值 pif 为 任意 指针 , 传值 dispIdMember 为 DWORD , 传值 riid 为 DWORD , 传值 lcid 为 DWORD , 传值 wFlags 为 DWORD , 传值 pDispParams 为 DWORD , 传值 pVarResult 为 DWORD , 传值 pExcepInfo 为 DWORD , 传值 puArgErr 为 DWORD ) 为 整数型
GoBack 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
GoForward 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
GoHome 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
GoSearch 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
Navigate 为 函数 ( 传值 pif 为 任意 指针 , 传值 bstrURL 为 宽文本 指针 , 传值 Flags 为 任意 指针 , 传值 TargetFrameName 为 任意 指针 , 传值 PostData 为 任意 指针 , 传值 Headers 为 任意 指针 ) 为 整数型
结束 类型
变量 AtlAxWinInit 为 函数 为 BOOL
变量 共享 AtlAxGetControl 为 函数 ( 传值 hWin 为 HWND , 传址 pp 为 整数型 指针 ) 为 整数型
变量 共享 hDll 为 HMODULE
变量 共享 hInstance 为 HINSTANCE
变量 共享 hWeb 为 HWND
变量 共享 IID_IWebBrowser 为 IID = (&H0EAB22AC1,&H030C1,&H011CF,{&H0A7,&H0EB,&H000,&H000,&H0C0,&H05B,&H0AE,&H00B})
变量 共享 pIUnknown 为 整数型 指针
变量 共享 IUnknown 为 IUnknown 指针
变量 共享 pIWebBrowser 为 整数型 指针
变量 共享 IWebBrowser 为 IWebBrowser 指针
TinyWeb.rc
#define IDD_DLG1 1000
#define IDR_MENU 10000
#define IDM_FILE_GOTO1 10002
#define IDM_FILE_BACK 10003
#define IDM_FILE_FORWARD 10004
#define IDM_FILE_EXIT 10001
IDD_DLG1 DIALOGEX 6,5,371,275
CAPTION "Tiny Web Browser"
FONT 8,"MS Sans Serif",400,0,0
MENU IDR_MENU
STYLE 0x10CF0800
BEGIN
END
IDR_MENU MENU
BEGIN
POPUP "File"
BEGIN
MENUITEM "Goto http://www.ywgn.net/",IDM_FILE_GOTO1
MENUITEM "Go Back",IDM_FILE_BACK
MENUITEM "Go Forward ",IDM_FILE_FORWARD
MENUITEM "Exit",IDM_FILE_EXIT
END
END
|