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

浏览器

开发平台:

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 = "cCallByName"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. Option Explicit
  17. Public CallObject As Object
  18. Public ProcName As String
  19. Public args As Variant
  20. Public argsCnt As Long
  21. Private m_InsideIndex As Long
  22. Private Const unloadindex As Long = 5
  23. '执行脚本对应的index
  24. 'Private Const RunScriptIndex As Long = 100
  25. Private Const RunPluginIndex As Long = 100
  26. '脚本的index
  27. 'Public ScriptIndex As Long
  28. '插件的index
  29. Public PluginIndex As Long
  30. Private Const mSubCount As Long = 13
  31. Private mTag As String
  32. 'Public Function GetScriptIndex() As Long
  33. '    GetScriptIndex = RunScriptIndex
  34. 'End Function
  35. Public Function GetPluginIndex() As Long
  36.     GetPluginIndex = RunPluginIndex
  37. End Function
  38. Public Sub Execute(Optional nObject As Object = Nothing)
  39. On Error GoTo due
  40. Dim tObj As Object
  41. If m_InsideIndex = RunPluginIndex Then
  42.     Call gPlugins(PluginIndex).Run
  43. Else
  44.     Call ExeOrder(m_InsideIndex)
  45.     If ProcName <> "" Then
  46.         If CallObject Is Nothing Then
  47.             Set tObj = nObject
  48.         Else
  49.             Set tObj = CallObject
  50.         End If
  51.         
  52.         If Not tObj Is Nothing Then
  53.             If argsCnt > 0 Then
  54.                 Select Case m_InsideIndex
  55.                     Case unloadindex
  56.                         CallByName tObj, ProcName, VbMethod, gActiveWebIndex
  57.                         gMainForm.SetFocus
  58. '                    Case RunPluginIndex ' RunScriptIndex
  59. '                        Debug.Print "runplugin", PluginIndex
  60. '                        'CallByName tObj, ProcName, VbMethod, PluginIndex  ' ScriptIndex
  61. '                        Call gPlugins(PluginIndex).Run
  62.                     Case Else
  63.                         CallByName tObj, ProcName, VbMethod, args
  64.                 End Select
  65.             Else
  66.                 CallByName tObj, ProcName, VbMethod
  67.             End If
  68.         End If
  69.     End If
  70. End If
  71. Exit Sub
  72. due:
  73.     ErrorLog.AddLog Err.Description & Chr(9) & tObj.name & Chr(9) & "Execute"
  74. End Sub
  75. Private Sub Class_Initialize()
  76. SetNone
  77. End Sub
  78. 'Public Sub SetByIndex(index As Long)
  79. 'Select Case index
  80. '    Case 0
  81. '        Call setnone
  82. '    Case 1
  83. '        Call goback
  84. '    Case 2
  85. '        Call goforward
  86. '    Case 3
  87. '        Call previoustab
  88. '    Case 4
  89. '        Call nexttab
  90. '    Case 5
  91. '        Call closetab
  92. '    Case 6
  93. '        Call refreshTab
  94. '    Case 7
  95. '        Call NoShowFloat
  96. '    Case 8
  97. '        Call NoShowObject
  98. '    Case 9
  99. '
  100. 'End Select
  101. 'End Sub
  102. '#############################################
  103. '设置各种命令
  104. '=============  命令0  ===================
  105. Public Sub SetNone()
  106. m_InsideIndex = 0
  107. Set CallObject = Nothing
  108. ProcName = ""
  109. 'args=
  110. argsCnt = 0
  111. End Sub
  112. '=============  命令1  ===================
  113. Public Sub goback()
  114. m_InsideIndex = 1
  115. Set CallObject = Nothing
  116. ProcName = "callGo"
  117. args = -1
  118. argsCnt = 1
  119. End Sub
  120. '=============  命令2  ===================
  121. Public Sub goforward()
  122. m_InsideIndex = 2
  123. Set CallObject = Nothing
  124. ProcName = "callGo"
  125. args = 1
  126. argsCnt = 1
  127. End Sub
  128. '=============  命令3  ===================
  129. Public Sub previoustab()
  130. m_InsideIndex = 3
  131. Set CallObject = gMainForm
  132. ProcName = "NextLastTab"
  133. args = False
  134. argsCnt = 1
  135. End Sub
  136. '=============  命令4  ===================
  137. Public Sub nexttab()
  138. m_InsideIndex = 4
  139. Set CallObject = gMainForm
  140. ProcName = "NextLastTab"
  141. args = True
  142. argsCnt = 1
  143. End Sub
  144. '=============  命令5  ===================
  145. Public Sub closetab()
  146. m_InsideIndex = 5
  147. Set CallObject = gMainForm
  148. ProcName = "UnloadBrowser"
  149. 'args = nIndex
  150. argsCnt = 1
  151. End Sub
  152. '=============  命令6  ===================
  153. Public Sub refreshTab()
  154. m_InsideIndex = 6
  155. Set CallObject = Nothing
  156. ProcName = "RefreshWeb"
  157. 'args = nIndex
  158. argsCnt = 0
  159. End Sub
  160. '=============  命令7  ===================
  161. Public Sub NoShowFloat()
  162. m_InsideIndex = 7
  163. Set CallObject = Nothing
  164. ProcName = "NoShowFloat"
  165. 'args = nIndex
  166. argsCnt = 0
  167. End Sub
  168. '=============  命令8  ===================
  169. Public Sub NoShowObject()
  170. m_InsideIndex = 8
  171. Set CallObject = Nothing
  172. ProcName = "NoShowObject"
  173. 'args = nIndex
  174. argsCnt = 0
  175. End Sub
  176. '=============  命令9  ===================
  177. Public Sub ClearMouseLimit()
  178. m_InsideIndex = 9
  179. Set CallObject = Nothing
  180. ProcName = "ClearMouseLimit"
  181. argsCnt = 0
  182. End Sub
  183. '=============  命令10  ===================
  184. Public Sub CloseAllTab()
  185. m_InsideIndex = 10
  186. Set CallObject = gMainForm
  187. ProcName = "CloseAllTabs"
  188. argsCnt = 0
  189. End Sub
  190. '=============  命令11  ===================
  191. Public Sub ClosePages()
  192. m_InsideIndex = 11
  193. Set CallObject = gMainForm
  194. ProcName = "ClosePage"
  195. argsCnt = 0
  196. End Sub
  197. '=============  命令12  ===================
  198. Public Sub ScrollDown()
  199. m_InsideIndex = 12
  200. Set CallObject = Nothing
  201. ProcName = "ScrollPage"
  202. argsCnt = 1
  203. args = True
  204. End Sub
  205. '=============  命令13  ===================
  206. Public Sub ScrollUp()
  207. m_InsideIndex = 13
  208. Set CallObject = Nothing
  209. ProcName = "ScrollPage"
  210. argsCnt = 1
  211. args = False
  212. End Sub
  213. '============  命令100 (执行插件命令) ======
  214. Public Sub RunPlugin()
  215. m_InsideIndex = RunPluginIndex
  216. Set CallObject = Nothing
  217. ProcName = "RunPlugin" ' "RunScriptByIndex"
  218. argsCnt = 0
  219. 'args=
  220. End Sub
  221. ''============  命令100 (执行脚本命令) ======
  222. 'Public Sub RunScript()
  223. 'm_InsideIndex = RunScriptIndex
  224. 'Set CallObject = Nothing
  225. 'ProcName = "RunScriptByIndex"
  226. 'argsCnt = 1
  227. ''args=
  228. 'End Sub
  229. '######## end of 设置各种命令
  230. '#################################################
  231. Public Property Get InsideIndex() As Long
  232. InsideIndex = m_InsideIndex
  233. End Property
  234. Public Property Let InsideIndex(nIndex As Long)
  235. If nIndex >= 0 And nIndex <= mSubCount Then
  236.     m_InsideIndex = nIndex
  237. 'ElseIf nIndex = RunScriptIndex Then
  238. ElseIf nIndex = RunPluginIndex Then
  239.     m_InsideIndex = RunPluginIndex
  240. Else
  241.     m_InsideIndex = 0
  242. End If
  243. 'Select Case nIndex
  244. '    Case 0
  245. '        Call SetNone
  246. '    Case 1
  247. '        Call goback
  248. '    Case 2
  249. '        Call goforward
  250. '    Case 3
  251. '        Call previoustab
  252. '    Case 4
  253. '        Call nexttab
  254. '    Case 5
  255. '        Call closetab
  256. '    Case 6
  257. '        Call refreshTab
  258. '    Case 7
  259. '        Call NoShowFloat
  260. '    Case 8
  261. '        Call NoShowObject
  262. '    Case 9
  263. '        Call ClearMouseLimit
  264. '    Case 10
  265. '        Call CloseAllTab
  266. '    Case 11
  267. '        Call ClosePages
  268. '    Case Else
  269. '        Call SetNone
  270. '        m_InsideIndex = 0
  271. 'End Select
  272. End Property
  273. Private Sub ExeOrder(nIndex As Long)
  274. Select Case nIndex
  275.     Case 0
  276.         Call SetNone
  277.     Case 1
  278.         Call goback
  279.     Case 2
  280.         Call goforward
  281.     Case 3
  282.         Call previoustab
  283.     Case 4
  284.         Call nexttab
  285.     Case 5
  286.         Call closetab
  287.     Case 6
  288.         Call refreshTab
  289.     Case 7
  290.         Call NoShowFloat
  291.     Case 8
  292.         Call NoShowObject
  293.     Case 9
  294.         Call ClearMouseLimit
  295.     Case 10
  296.         Call CloseAllTab
  297.     Case 11
  298.         Call ClosePages
  299.     Case 12
  300.         Call ScrollDown
  301.     Case 13
  302.         Call ScrollUp
  303.     'Case RunScriptIndex
  304.     '    Call RunScript
  305.     Case RunPluginIndex
  306.         Call RunPlugin
  307.     Case Else
  308.         Call SetNone
  309.         'm_InsideIndex = 0
  310. End Select
  311. End Sub
  312. Public Property Get EventText() As String
  313. 'Dim rtn As String
  314. 'Select Case m_InsideIndex
  315. '    Case 0
  316. '        rtn = "(无)"
  317. '    Case 1
  318. '        rtn = "后退"
  319. '    Case 2
  320. '        rtn = "前进"
  321. '    Case 3
  322. '        rtn = "前一页面"
  323. '    Case 4
  324. '        rtn = "后一页面"
  325. '    Case 5
  326. '        rtn = "关闭页面"
  327. '    Case 6
  328. '        rtn = "刷新"
  329. '    Case 7
  330. '        rtn = "隐藏漂浮物"
  331. 'End Select
  332. EventText = GetEventText(m_InsideIndex)
  333. End Property
  334. Public Property Get SubCount() As Long
  335. SubCount = mSubCount
  336. End Property
  337. Public Function GetEventText(index As Long)
  338. Dim rtn As String
  339. Select Case index
  340.     Case 0
  341.         rtn = "(无)"
  342.     Case 1
  343.         rtn = "后退"
  344.     Case 2
  345.         rtn = "前进"
  346.     Case 3
  347.         rtn = "前一页面"
  348.     Case 4
  349.         rtn = "后一页面"
  350.     Case 5
  351.         rtn = "关闭页面(当前页)"
  352.     Case 6
  353.         rtn = "刷新"
  354.     Case 7
  355.         rtn = "隐藏漂浮物"
  356.     Case 8
  357.         rtn = "隐藏Object"
  358.     Case 9
  359.         rtn = "清除右键限制"
  360.     Case 10
  361.         rtn = "关闭所有页面"
  362.     Case 11
  363.         rtn = "关闭页面(被选择的)"
  364.     Case 12
  365.         rtn = "向下翻页"
  366.     Case 13
  367.         rtn = "向上翻页"
  368.     Case RunPluginIndex
  369.         If PluginIndex > gPluginCnt Or PluginIndex <= 0 Then
  370.             PluginIndex = gPluginCnt
  371.         End If
  372.         rtn = "插件:" & gPlugins(PluginIndex).Title
  373. '    Case RunScriptIndex
  374. '        If ScriptIndex > gScriptCnt Then
  375. '            ScriptIndex = gScriptCnt
  376. '        End If
  377.         'rtn = "运行脚本:" ' & gScripts(ScriptIndex).Title
  378.     Case Else
  379.         rtn = "(无)"
  380. End Select
  381. GetEventText = rtn
  382. End Function
  383. Public Property Get Tag() As String
  384. Tag = mTag
  385. End Property
  386. Public Property Let Tag(ByVal vNewValue As String)
  387. mTag = vNewValue
  388. End Property