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

浏览器

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cBHO"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Option Explicit
  15. ' interfaces
  16. Implements IObjectWithSite
  17. ' private variables
  18. Private moUnknown As IUnknownVB
  19. Private WithEvents moBrowser As InternetExplorer
  20. Attribute moBrowser.VB_VarHelpID = -1
  21. Private mIsIE As Boolean
  22. Private Sub Class_Initialize()
  23. 'Load frmDebug
  24. 'ShowWindow frmDebug.hwnd, SW_NORMAL
  25. End Sub
  26. ' called when the parent wants
  27. ' to know what we're aiming at
  28. Private Sub IObjectWithSite_GetSite(ByVal priid As VBShellLib.REFIID, ppvObj As VBShellLib.VOID)
  29.    ' return the interface we've got
  30.    If Not (moUnknown Is Nothing) Then
  31.       moUnknown.QueryInterface priid, ppvObj
  32.    End If
  33. End Sub
  34. ' called on init to give us a
  35. ' pointer to the parent browser
  36. Private Sub IObjectWithSite_SetSite(ByVal pSite As VBShellLib.IUnknownVB)
  37. ' store the unknown
  38. Set moUnknown = pSite
  39. ' since this method is called again
  40. ' when the BHO is unloaded, we have to
  41. ' release our pointer
  42. If ObjPtr(pSite) = 0 Then
  43.    CopyMemory moBrowser, 0&, 4
  44. Else
  45.     ' get the IWebBrowser2 interface
  46.     Set moBrowser = moUnknown
  47.     
  48.     Set IEBrowser = moBrowser
  49.     
  50.     mIsIE = (GetClassNameVb(moBrowser.hwnd) = ClassName_IEFrm)
  51.     If mIsIE Then
  52.         
  53.         Call InstallMouseHook
  54. '        Load frmDebug
  55. '        ShowWindow frmDebug.hwnd, SW_NORMAL
  56.     End If
  57. End If
  58. End Sub
  59. Private Sub moBrowser_NewWindow2(ppDisp As Object, Cancel As Boolean)
  60. On Error Resume Next
  61. Dim tDoc As Object
  62. Set tDoc = moBrowser.document
  63. Cancel = tDoc Is Nothing And Not vkPress(VK_CONTROL)
  64. End Sub
  65. Private Sub moBrowser_OnQuit()
  66. If mIsIE Then
  67.     Call UninstallMouseHook
  68.     
  69.     Set IEBrowser = Nothing
  70. End If
  71. End Sub