• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            如何對webbrowser和IE編程(三)

            IWebBrowserApp

            IWebBrowserApp 接口僅僅在IE中實現。 典型的,你使用InternetExplorer 對象創建一個IE的實例. 然后你使用 IWebBrowserApp 接口操縱此實例. (今天采用IWebBrowser2 替代) IWebBrowserApp 接口繼承自 IWebBrowser, 所以它提供 IWebBrowser 的全部功能。

            因為IWebBrowserApp呈現一個IE窗口的實例, 所以它的方法和屬性典型地允許你控制瀏覽器窗口的用戶接口。 這些方法和屬性并非包含在WebBrowser的 IWebBrowser 中的:寄宿control的應用程序提供諸如狀態條, 工具條, 以及菜單條等用戶接口. WebBrowser 控件僅僅用于裝載web頁以及其它類型文件。

            IWebBrowserApp 有4個方法和10 各屬性。

            方法 IWebBrowserApp 接口的屬性很直觀立如下表, 但是有2個有理由值的討論:GetPropertyPutProperty. 此兩個方法允許你在IE屬性包(property bag)中存儲一個屬性一邊你能夠在其后重新找回他們。 你將典型地從一個web頁上存儲一些狀態信息到另一個web頁 (事實上,使用IWebBrowser2 接口你可以在宿主一個WebBrowser 控件時候使用此方法)

            Table 6-3. IWebBrowserApp  vtable 次序的方法

            方法

             

            描述

             

            Quit

             

            促使 Internet Explorer 窗口關閉。換句話講,將自動化操作關閉 IE 實例

             

            ClientToWindow

             

            轉換一個點從窗口坐標到客戶坐標。

             

            PutProperty

             

            存儲一個屬性值到 ie 的屬性包,將可以隨手采用 GetProperty . 獲取

             

            GetProperty

             

            獲取先前由 PutProperty . 方法存儲的屬性值

             

            VB代碼:

            InternetExplorer1.PutProperty "CurrentPicture"10
            InternetExplorer1.GetProperty(
            "CurrentPicture")                                                    

            VC++代碼:

            CSomeClass::PutGetProperty(VARIANT vtCurrentValue, VARIANT* vtNewValue)
            {
                HRESULT hr;
                hr 
            = m_pInternetExplorer->PutProperty(L"CurrentPicture", vtCurrentValue);

                
            if (SUCCEEDED(hr))
                {
                    
            // Notice that vtNewValue is already a pointer, so you
                    
            // don't have to pass the address to GetProperty.
                    
            //

                    hr 
            = m_pInternetExplorer->GetProperty(L"CurrentPicture", vtNewValue);
                }

                
            return hr;
            }

            PutGetProperty 方法接受包含當前屬性值的 VARIANT 變量指針且將接收屬性值。

            屬性 IWebBrowserApp 接口有10 個屬性. Table 6-4. IWebBrowserApp vtable 次序的屬性

            屬性

             

            描述

             

            Name

             

            返回對象的名稱 t. ( 舉例,當自動化 IE Name 屬性將返回 Microsoft Internet Explorer .)

             

            HWND

             

            返回 IE 窗口的句柄

             

            FullName

             

            返回 ie 可執行文件的全路徑 (iexplore.exe).

             

            Path

             

            返回 IE 應用程序的全路徑 .

             

            Visible

             

            監測和設置 IE 窗口是否可見。 ( 換句話講,你可與使用此屬性顯示 / 隱藏 )

             

            StatusBar

             

            顯示或者隱藏 IE 狀態條,也可監測當前狀態條

             

            StatusText

             

            設置或隱藏狀態條文字

             

            ToolBar

             

            顯示或者隱藏 IE 工具條,也可監測當前工具條狀態  

             

            MenuBar

             

            顯示或者隱藏 IE 菜單條,也可監測當前工具菜單態  

             

            FullScreen

             

            設置或者檢測一個值指示 IE 當前是否最大化顯示。最大化顯示, iE 占據整個屏幕

             

            Table 6-4 中的屬性列表直截了當且易于使用。舉例來說, 如果你想從你的Vb程序中獲取IE狀態條中的文字,你應當使用如下代碼:

            Dim strStatusText
            strStatusText 
            = InternetExplorer1.StatusText                                        

            使用MFC包裝類的VC++程序代碼如下:

            BSTR bstrStatusText;
            HRESULT hr 
            = m_pInternetExplorer->get_StatusText(&bstrStatusText);

             

             

            IWebBrowser2

            因為COM規則要求接口恒久不變, 要加入新的工呢高COM,你必須增加新的接口。 新的接口可擴展自其他接口已擴展功能。 舉例,當心的需求引入WebBrowser 和Internet Explorer 接口, 開發者被要求建立一個新的接口: IWebBrowser2.

            早期, IWebBrowser2 繼承自 IWebBrowser IWebBrowserApp,還提供不包含在著兩個接口中的功能. 所以你應當使用IWebBrowser2 接口替代 來操縱WebBrowser 控件或者 Internet Explorer.

            IWebBrowser2 接口有4個方法和8個屬性.

            方法     IWebBrowser2 接口方法如下描述,按照 vtable 次序, in Table 6-5.

            也許IWebBrowser2 、接口踵使用最多的方法是ExecWB. 它通過WebBrowser實現了一個  IOleCommandTarget 接口的Exec的包裝實現。 在 ExecWB 方法 被創建前, 你不可以直接從VB中調用IOleCommandTarget::Exec, 因為VB不可訪問 IOleCommandTarget 接口 ,因而VB不可直接使用該接口的ExecWB方法。 IOleCommandTarget::Exec 方法過去大量使用,所以 WebBrowser 開發者決定創建ExecWB 以使事情變得容易。

             

            Table 6-5. IWebBrowser2  Vtable 次序的方法

            方法

             

            描述

             

            Navigate2

             

            功能基于 Navigate 方法,不同在于 Navigate2 允許你導航到飛 URL 表達的地方,例如 Windows shell folder. (Windows shell folder 是指向標示符指針 , 或者 windows shell 命名空間中的 PIDL,)

             

            QueryStatusWB

             

            IoleCommandTarget 接口的 QueryStatus 方法在 WebBrowser. 中的包裝實現

             

            ExecWB

             

            IoleCommandTarget 接口的 Exec 方法在 WebBrowser. 中的包裝實現

             

            ShowBrowserBar

             

            顯示或者隱藏特定的瀏覽器條 . 該方法僅僅用于 InternetExplorer 對象

             

             

            為什么你無論如何都要調用ExecWB方法?因為它提供了你需要的功能(通過IOleCommandTarget::Exec)不是暴露于webbrowser接口。你大概疑惑于為社么開發者不實現擴展屬性和方法。記住:COM規則是一旦接口發表就不可改變。所以你不能夠不能增加功能而不創建新的接口。

            ExecWB 方法允許WebBrowser 開發者增加新的功能而不用創建新的接口。再之, 那是由WebBrowser 通過 ExecWB 代表性的暴露不常用的工的途徑, 譬如調用 Save As 對話框或者縮放web頁的字體。  ExecWB 工作的方法是傳遞一個你想調用的command ID 和必需的參數. 太多的 command IDs ,他們包含于OLECMDID 實現文檔頭文件he DocObj.h .

             

             

            作為舉例, 支持縮放web頁的內容字體。Internet Explorer 允許你通過View菜單的Text Size子菜單改變字體的大小從最小到最大。 ExecWB 方法暴露了允許你改變顯示在瀏覽器中的文字大小。對于Zoom 命令, 你可指定特殊值0, 1, 2, 3, or 4,  0 是最小字體 ,4是最大字體。以下舉例為改變字體為最大(VB):

            WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, _CLng(4), Null

            再次代碼中, 我調用 ExecWB 方法, 傳遞OLECMDID_ZOOM 常量給第一個參數. 此常量指定 zoom 操作將被執行。 第二個參數傳遞給ExecWB 不要提示用戶。另外的選擇, 你可以提醒用戶而是用OLECMDEXECOPT_PROMPTUSER. (見 DocObj.h.)

            第三個輸入參數指示要設定的文字尺寸。我想是文字盡可能的大,所以我指定了4 。注意我在調用中使用了VB的Clng函數包裝此值,轉換我指定的此值為一個variant—輸入需要的類型.最后為一個輸出參數包含任何返回值。因為返回值不需要關心,我傳遞Null.

             

             

            屬性 IWebBrowser2 接口有8個屬性。 (Table 6-6 按照vtable次序展示其)。他們都很直觀,我僅僅解釋恰宏很特別的一個—AddressBar.

            Table 6-6. IWebBrowser2 Properties in Vtable Order

            屬性

             

            描述

             

            ReadyState

             

            返回 WebBrowser 的狀態 ( 換句話講 ,該屬性指示文檔是否完成裝載 ). 盡管你可以使用 ReadyState 屬性 , 使用 DocumentComplete 時間檢測文檔是否裝載還是比較好些。 ( 那意味著所有 HTML 和文檔被裝載

             

            Offline

             

            . 返回或者設置檢測 webbrowser 是否處于脫機模式的變量

             

            Silent

             

            返回或設置 WebBrowser 是否處于沉默模式。如果處于沉默模式,意味著沒有對話框可以被顯示 .

             

            RegisterAsBrowser

             

            . 設置或者檢測 Webbrowser 是否是作為頂層瀏覽器被登記

             

            RegisterAsDropTarget

             

            . 設置或返回 WebBrowser 是否作為導航的拖放對象 。如果登記委托放對象 , 用戶可直接拖放連接到瀏覽器  

             

            TheaterMode

             

            返回或者設置 Internet Explorer 是否處于 theater 或者 normal window 模式 . 。在 theater 模式 , Internet Explorer 占據整個屏幕就像處于 FullScreen 模式,但也有最小化的用戶接口元素 ( 此屬性僅僅展示于 InternetExplorer 對象 )

             

            AddressBar

             

            顯示或者隱藏地址欄 ( 此屬性僅僅展示于 InternetExplorer 對象 )

             

            Resizable

             

            返回或者設置 Internet Explorer 是否可被調整大小 , 你可利用此屬性防止用戶改變 webbrowser 的大小 ( 此屬性僅僅展示于 InternetExplorer 對象 )

             

             

             

            AddressBar 屬性允許你顯示/隱藏Internet Explorer 地址欄—一個包含可輸入URL的文本框 允許你導航到某個Url。 能夠顯示或者隱藏地址條允許你完全控制你的用戶的導航體驗

            在你的企業網絡或者中小學控制用戶導航體驗.在此環境下,你將控制用戶的導航以至于可確定某些不恰當地頁面不可訪問。你可創建你自己的瀏覽器。但是如果你沒有時間和資源這么做,你可以自動化IE來代替.自動化IE允許你管掉所有的用戶界面允許用戶導航到某個web頁,像菜單條, 工具條,以地址欄. 之后你可建立一定數量的可訪問web頁連接列表給用戶。

             

            關掉這些用戶接口很容易. VB代碼:

            InternetExplorer1.AddressBar = False
            InternetExplorer1.ToolBar 
            = False
            InternetExplorer1.MenuBar 
            = False

            posted on 2006-06-23 21:41 楊粼波 閱讀(1561) 評論(0)  編輯 收藏 引用 所屬分類: Windows編程

            国产精品久久午夜夜伦鲁鲁| 2021国产精品午夜久久| 国产国产成人久久精品| 久久综合伊人77777麻豆| 热re99久久6国产精品免费| 国产福利电影一区二区三区久久老子无码午夜伦不 | 69久久夜色精品国产69| 久久综合给合综合久久| 久久免费的精品国产V∧| 久久久久久国产精品免费免费| 午夜天堂av天堂久久久| 久久亚洲天堂| 久久精品国产免费一区| 久久久久免费看成人影片| 亚洲精品美女久久久久99小说| 精品永久久福利一区二区| 久久久久久久久波多野高潮| 久久久国产精品| 美女写真久久影院| 久久久久久亚洲Av无码精品专口 | 国产午夜福利精品久久| 久久亚洲国产成人精品性色| 精品久久久久成人码免费动漫| 国产99久久久国产精免费| 久久久女人与动物群交毛片 | 国产精品VIDEOSSEX久久发布| 久久综合狠狠综合久久综合88| 久久久久久久91精品免费观看| 久久久久综合国产欧美一区二区| 国产精品久久一区二区三区| 久久w5ww成w人免费| 国产美女亚洲精品久久久综合| 思思久久好好热精品国产| 久久久久无码中| 久久久久国产精品麻豆AR影院| 99久久99久久精品国产| 亚洲狠狠久久综合一区77777| 999久久久免费国产精品播放| 亚洲精品高清国产一久久| 亚洲国产精品热久久| 国产综合成人久久大片91|