Pub.bas
上传用户:davilee3
上传日期:2015-04-22
资源大小:986k
文件大小:2k
源码类别:

浏览器

开发平台:

Visual Basic

  1. Attribute VB_Name = "mPub"
  2. '---------------------------------------------------------------------------------------
  3. ' Module    : mPub
  4. ' DateTime  : 2005-8-15 16:58
  5. ' Author    : Lingll
  6. ' Purpose   :
  7. '---------------------------------------------------------------------------------------
  8. Option Explicit
  9. '枚举页面中所有的frame
  10. Public Sub EnumFrames(ByVal wb As SHDocVw.WebBrowser, wbs As Collection)
  11. Dim pContainer As olelib.IOleContainer
  12. Dim pEnumerator As olelib.IEnumUnknown
  13. Dim pUnk As olelib.IUnknown
  14. Dim pBrowser As SHDocVw.WebBrowser
  15.    Set pContainer = wb.Document
  16.    
  17.    ' Get an enumerator for the frames
  18.    If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
  19.       Set pContainer = Nothing
  20.       ' Enumerate and refresh all the frames
  21.       Do While pEnumerator.Next(1, pUnk) = 0
  22.          On Error Resume Next
  23.          
  24.          ' Clear errors
  25.          Err.Clear
  26.          
  27.          ' Get the IWebBrowser2 interface
  28.          Set pBrowser = pUnk
  29.    
  30.          If Err.Number = 0 Then
  31.             'Debug.Print "Frame: " & pBrowser.LocationURL
  32.             wbs.Add pBrowser
  33.             Call EnumFrames(pBrowser, wbs)
  34.          End If
  35.       Loop
  36.       Set pEnumerator = Nothing
  37.    End If
  38. End Sub
  39. Public Function GetHtml(vWeb As SHDocVw.WebBrowser, Optional vSelWeb As SHDocVw.WebBrowser) As String
  40. On Error Resume Next
  41. Dim tCol As New Collection
  42. Dim tWeb As SHDocVw.WebBrowser
  43. Dim tStr$, tstr2$
  44. tCol.Add vWeb
  45. Call EnumFrames(vWeb, tCol)
  46. For Each tWeb In tCol
  47.     tStr = vbNullString
  48.     Err.Clear
  49.     tStr = tWeb.Document.Selection.createRange.htmltext
  50.     
  51.     If Err.Number = 0 Or Err.Number = INET_E_DEFAULT_ACTION Then
  52.         If LenB(tStr) > 0 Then
  53.             Set vSelWeb = tWeb
  54.             Exit For
  55.         End If
  56.     End If
  57. Next tWeb
  58. GetHtml = tStr
  59. End Function