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

浏览器

开发平台:

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 = "cPluginSideband"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. '---------------------------------------------------------------------------------------
  15. ' Module    : cPluginSideband
  16. ' DateTime  : 2005-5-28 21:20
  17. ' Author    : Lingll
  18. ' Purpose   : 插件,边栏sideband
  19. '---------------------------------------------------------------------------------------
  20. Option Explicit
  21. '插件数据--com插件
  22. Private Type PluginData_Com
  23.     'Title As String
  24.     'FileName As String
  25.     ObjectName As String
  26.     ClassID As String
  27. End Type
  28. ''插件数据--html插件
  29. 'Private Type PluginData_Html
  30. '
  31. 'End Type
  32. Public Title As String      '名称,对应于菜单或按钮显示的文字
  33. Public FileName As String   '要执行的文件名,exe | ini
  34. Public Param As String
  35. Public VisInMenu As Long    '是否在"插件菜单"中显示
  36. Public IconFile As String
  37. Private ModuleType As String    'script,exe,com,dll,sendkey
  38. Private PluginType As String    'command,sideband,toolband,
  39.                                 '也就是执行与存在方式,对应的是命令,侧边栏,工具栏
  40. Private o_FileName As String       'ini中指向的真实文件名
  41. Private o_Title As String       'ini文件中的Title
  42. Private mData_Com As PluginData_Com
  43. 'Private Const m_MTStr_Script As String = "script"
  44. 'Private Const m_MTStr_Exe As String = "exe"
  45. Private Const m_MTStr_Com As String = "com"
  46. Private Const m_MTStr_Html As String = "html"
  47. 'Private Const m_MTStr_Dll As String = "dll"
  48. 'Private Const m_MTStr_Sendkey As String = "sendkey"
  49. Private m_SideBand As LEPluginLib.ILESideBand
  50. '是否第一次显示,用来加速程序启动速度
  51. Private m_firstShow As Boolean
  52. 'Private mPluginData As PluginData
  53. '---------------------------------------------------------------------------------------
  54. ' Procedure : LoadSideBand
  55. ' DateTime  : 2005-5-28 21:55
  56. ' Author    : Lingll
  57. ' Purpose   : 加载sideband(初始化)
  58. '---------------------------------------------------------------------------------------
  59. Public Sub LoadSideBand()
  60. On Error Resume Next
  61. Dim tPath$, tParam$
  62. Select Case LCase$(ModuleType)
  63.     Case m_MTStr_Com
  64.         Call LoadSideBand_Com
  65.     Case m_MTStr_Html
  66.         Call LoadSideBand_Html
  67. End Select
  68. End Sub
  69. '---------------------------------------------------------------------------------------
  70. ' Procedure : LoadSideBand_Com
  71. ' DateTime  : 2005-5-28 21:57
  72. ' Author    : Lingll
  73. ' Purpose   : (加载dll)
  74. '---------------------------------------------------------------------------------------
  75. Private Sub LoadSideBand_Com()
  76. On Error Resume Next
  77. Dim tObj As LEPluginLib.ILESideBand
  78. Dim tDll As cCrDllObj
  79. Set tDll = New cCrDllObj
  80. tDll.IniClsId mData_Com.ClassID
  81. Set tObj = tDll.CreateMyDllObject(TranslatePath2(o_FileName))
  82. If tObj Is Nothing Then
  83.     ErrorLog.AddLog "LoadSideBand_Com,some error..."
  84. Else
  85.     Set m_SideBand = tObj
  86.     Set tObj = Nothing
  87. End If
  88. End Sub
  89. '---------------------------------------------------------------------------------------
  90. ' Procedure : LoadSideBand_Html
  91. ' DateTime  : 2005-6-14 20:59
  92. ' Author    : Lingll
  93. ' Purpose   :
  94. '---------------------------------------------------------------------------------------
  95. Private Sub LoadSideBand_Html()
  96. Dim tFrm As frmSideBandHtml
  97. Set tFrm = New frmSideBandHtml
  98. Load tFrm
  99. Set m_SideBand = tFrm
  100. 'tFrm.Navigate TranslatePath2(o_FileName)
  101. Set tFrm = Nothing
  102. End Sub
  103. Private Function TranslatePath(vPath$) As String
  104. Dim tPath$
  105. Dim tSysDir$
  106.     tPath = vPath
  107.     tPath = Replace(tPath, "%app%", App.path, , , vbTextCompare)
  108.     tPath = Replace(tPath, "%windir%", Environ("windir"), , , vbTextCompare)
  109.     
  110.     If InStr(1, tPath, "%system%", vbTextCompare) > 0 Then
  111.         If IsWinNT() Then
  112.             tSysDir = Environ("windir") & "system32"
  113.         Else
  114.             tSysDir = Environ("windir") & "system"
  115.         End If
  116.         tPath = Replace(tPath, "%system%", tSysDir, , , vbTextCompare)
  117.     End If
  118.     
  119.     TranslatePath = tPath
  120.     
  121. End Function
  122. '用于有 . 的情况
  123. Private Function TranslatePath2(vPath$) As String
  124. TranslatePath2 = TranslatePath(Replace(vPath, ".", GetFileFolder(FileName) & ""))
  125. End Function
  126. 'Private Function TranslateParam(vParam$) As String
  127. 'Dim tParam$
  128. '    tParam = vParam
  129. '    If loadedBrowserCount > 0 Then
  130. '        tParam = Replace(tParam, "%url%", webbState(gActiveWebIndex).webForm.GetWebUrl, , , vbTextCompare)
  131. '        tParam = Replace(tParam, "%WebWinHwnd%", webbState(gActiveWebIndex).webForm.hWnd, , , vbTextCompare)
  132. '    Else
  133. '        tParam = Replace(tParam, "%url%", "", , , vbTextCompare)
  134. '        tParam = Replace(tParam, "%WebWinHwnd%", "", , , vbTextCompare)
  135. '    End If
  136. 'TranslateParam = tParam
  137. 'End Function
  138. Public Sub Reload()
  139. If FileExist(TranslatePath(FileName)) Then
  140.     If LCase$(GetExtendName(FileName)) = "ini" Then
  141.         Call ReadData
  142.     End If
  143. End If
  144. End Sub
  145. '---------------------------------------------------------------------------------------
  146. ' Procedure : ReadData
  147. ' DateTime  : 2005-5-28 18:47
  148. ' Author    : Lingll
  149. ' Purpose   : 读取插件详细数据
  150. '---------------------------------------------------------------------------------------
  151. Private Sub ReadData()
  152. Dim tIni As cINIFile
  153. Set tIni = New cINIFile
  154. tIni.IniFile = TranslatePath(FileName)
  155. If Trim(tIni.ReadKey("General", "Flag")) = LEPluginFlag Then
  156.     If LCase(Trim(tIni.ReadKey("General", "PluginType"))) = PluginTypeTag_SideBand Then
  157.         o_FileName = tIni.ReadKey("General", "FileName")
  158.         o_Title = tIni.ReadKey("General", "Title")
  159.         ModuleType = LCase$(Trim$(tIni.ReadKey("General", "ModuleType")))
  160.         IconFile = tIni.ReadKey("General", "IconFile")
  161.         
  162.         Select Case ModuleType
  163.             Case m_MTStr_Com
  164.                 mData_Com.ClassID = tIni.ReadKey(m_MTStr_Com, "ClassID")
  165.                 mData_Com.ObjectName = tIni.ReadKey(m_MTStr_Com, "ObjectName")
  166.             Case m_MTStr_Html
  167.                 
  168.         End Select
  169.     End If
  170. End If
  171. End Sub
  172. '---------------------------------------------------------------------------------------
  173. ' Procedure : ShowBand
  174. ' DateTime  : 2005-5-29 21:21
  175. ' Author    : Lingll
  176. ' Purpose   :
  177. '---------------------------------------------------------------------------------------
  178. Public Sub ShowBand(bShow As Boolean)
  179. If Not m_SideBand Is Nothing Then
  180.     If bShow And m_firstShow And ModuleType = m_MTStr_Html Then
  181.         Dim tFrm As frmSideBandHtml
  182.         Set tFrm = m_SideBand
  183.         tFrm.Navigate TranslatePath2(o_FileName)
  184.         m_firstShow = False
  185.     End If
  186.     m_SideBand.ShowBand bShow
  187. End If
  188. End Sub
  189. '---------------------------------------------------------------------------------------
  190. ' Procedure : SetSite
  191. ' DateTime  : 2005-5-29 21:23
  192. ' Author    : Lingll
  193. ' Purpose   :
  194. '---------------------------------------------------------------------------------------
  195. Public Sub SetSite(hParent&)
  196. If m_SideBand Is Nothing Then
  197.     Call LoadSideBand
  198. End If
  199. If Not m_SideBand Is Nothing Then
  200.     m_SideBand.SetSite hParent, gOutInfo
  201. End If
  202. End Sub
  203. '---------------------------------------------------------------------------------------
  204. ' Procedure : Resize
  205. ' DateTime  : 2005-5-29 21:23
  206. ' Author    : Lingll
  207. ' Purpose   :
  208. '---------------------------------------------------------------------------------------
  209. Public Sub Resize(x&, y&, cx&, cy&)
  210. If Not m_SideBand Is Nothing Then
  211.     m_SideBand.Resize x&, y&, cx, cy
  212. End If
  213. End Sub
  214. Public Function GetModuleTypeIndex() As Long
  215. Select Case LCase$(ModuleType)
  216. '    Case m_MTStr_Script
  217. '        GetModuleTypeIndex = 0
  218. '    Case m_MTStr_Exe
  219. '        GetModuleTypeIndex = 1
  220.     Case m_MTStr_Com
  221.         GetModuleTypeIndex = 2
  222. '    Case m_MTStr_Dll
  223. '        GetModuleTypeIndex = 3
  224. '    Case m_MTStr_Sendkey
  225. '        GetModuleTypeIndex = 4
  226. '    Case Else
  227. '        GetModuleTypeIndex = 0
  228. End Select
  229. End Function
  230. Public Function Get_O_FileName() As String
  231. Get_O_FileName = TranslatePath2(o_FileName)
  232. End Function
  233. Public Function GetRealFileFolder() As String
  234. GetRealFileFolder = GetFileFolder(TranslatePath2(FileName))
  235. End Function
  236. Private Sub Class_Initialize()
  237. m_firstShow = True
  238. End Sub
  239. Private Sub Class_Terminate()
  240. If Not m_SideBand Is Nothing Then
  241.     m_SideBand.CloseBand
  242.     Set m_SideBand = Nothing
  243. End If
  244. End Sub