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

浏览器

开发平台:

Visual Basic

  1. '    If tmpNode.Tag <> "Root" Then
  2. '        tvwFavorite.ToolTipText = tmpNode.Tag
  3. '      Else
  4. '        tvwFavorite.ToolTipText = ""
  5. '    End If
  6. '  Else
  7. '    tvwFavorite.ToolTipText = ""
  8. 'End If
  9. 'End Sub
  10. '
  11. 'Private Sub tvwFavorite_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  12. 'If Button = vbRightButton Then
  13. '    Dim tmpNode As Node
  14. '    Set tmpNode = tvwFavorite.HitTest(x, y)
  15. '    If Not (tmpNode Is Nothing) Then
  16. '
  17. '        tvwPopItemKey = tmpNode.Key
  18. '        If tmpNode.Tag = "Root" Then
  19. '            mnuPopOpenInNewWindow.Visible = False
  20. '            mnuPopDeleteFavorite.Enabled = False
  21. '        Else
  22. '            mnuPopOpenInNewWindow.Visible = True
  23. '            mnuPopDeleteFavorite.Enabled = True
  24. '        End If
  25. '        Me.PopupMenu mnuPopFavorite
  26. '    End If
  27. '    Button = 0
  28. 'End If
  29. 'End Sub
  30. '
  31. 'Private Sub tvwFavorite_NodeClick(ByVal Node As MSComctlLib.Node)
  32. ''If Node.Tag = "Root" Then
  33. ''    If Not loadSubInfo(Node.index).isLoadSub Then
  34. ''        Call seedFile(Node.Key, loadSubInfo(Node.index).hwnd)
  35. ''        loadSubInfo(Node.index).isLoadSub = True
  36. ''        Node.Expanded = True
  37. ''    End If
  38. ''  Else
  39. ''    If Not tlbOther.Buttons("locknew").Value Then webbState(gActiveWebIndex).isFirst = 1
  40. ''    wbbMe(gActiveWebIndex).Navigate Node.Tag
  41. ''End If
  42. '
  43. 'End Sub
  44. Public Sub UnloadBrowser(ByVal index As Long)
  45. Dim ulUrl As String, ulTitle As String
  46. On Error GoTo due
  47. 'If loaded > 1 Then
  48. 'If webbState(index).isLoaded Then
  49. If Not webbState(index) Is Nothing Then
  50.     'webbState(index).isLoaded = False
  51.     
  52.     ulUrl = webbState(index).webForm.GetWebUrl
  53.     ulTitle = webbState(index).webForm.GetWebTitle
  54.     
  55.     isUnloadByFunction = True
  56.     
  57.     Dim tmpIndex As Integer
  58.     Dim i As Integer
  59.     Dim tmpLeft As Single, tmpWidth As Single, tOrder As Integer
  60.     
  61.     
  62.     
  63.     If index = gActiveWebIndex Then
  64.         gActiveWebIndex = 0
  65.         'lstOrder.RemoveItem (0)
  66.         'gActiveWebIndex = lstOrder.List(0)
  67.     Else
  68. '        For i = 0 To lstOrder.ListCount - 1
  69. '            If lstOrder.List(i) = LTrim$(Str(index)) Then
  70. '                lstOrder.RemoveItem (i)
  71. '                Exit For
  72. '            End If
  73. '        Next i
  74.     End If
  75.         
  76.     
  77.     If loadedBrowserCount > 1 Then
  78.         isTabClick = False
  79.         'Call SwitchTabs(Val(lstOrder.List(0)), index)
  80.         'webbState(Val(lstOrder.List(0))).webForm.ZOrder
  81.     Else
  82.         gActiveWebIndex = 0
  83.     End If
  84.     
  85.            
  86.     If webbState(index).TabBtn.Selected Then selectedTabsCount = selectedTabsCount - 1
  87.     'Debug.Print "unloadbrowser:"; webbState(index).TabBtn.TagL, webbState(index).TabBtn.index
  88.     TabBar.RemoveByIndex webbState(index).TabBtn.index
  89.     Set webbState(index).TabBtn = Nothing
  90.     
  91.     Unload webbState(index).webForm
  92.     Set webbState(index).webForm = Nothing
  93.     
  94.     Set webbState(index) = Nothing
  95. '    webbState(index).isFirst = 0
  96.     
  97.     
  98. '================= controls no use ======================
  99. '    tOrder = webbState(index).tabOrder
  100. '    tmpWidth = webbState(index).webTab.pWidth
  101. '
  102. '    For i = 1 To browserCount
  103. '        If webbState(i).isLoaded Then
  104. '            If webbState(i).tabOrder > tOrder Then
  105. '                webbState(i).webTab.pLeft = webbState(i).webTab.pLeft - tmpWidth
  106. '                webbState(i).tabOrder = webbState(i).tabOrder - 1
  107. '            End If
  108. '        End If
  109. '    Next
  110. '
  111. '    If webbState(index).webTab.Selected Then selectedTabsCount = selectedTabsCount - 1
  112. '    Unload cochkButton(index)
  113. '
  114. '
  115. '    Set webbState(index).webTab = Nothing
  116. '=========================================================
  117.     
  118.     
  119.     
  120.     loadedBrowserCount = loadedBrowserCount - 1
  121.     fraHoldOpt.width = loadedBrowserCount * tabLength
  122.     
  123.     If tabsPos > loadedBrowserCount Then tabsPos = loadedBrowserCount
  124.     
  125.     Call refreshTab
  126. ClosedPages.Add ulTitle, ulUrl
  127. 'Call load_close_menu(ulUrl, ulTitle)
  128. Call EnableButtons
  129. End If
  130. Exit Sub
  131. due:
  132. ErrorLog.AddLog Err.Description & Str(Err.Number) & Chr(9) & "Unload Function"
  133. Resume Next
  134. End Sub
  135. Private Function GetFoldName(newPath As String) As String
  136. Dim tmpPos As Integer
  137. tmpPos = InStr(1, newPath, "")
  138. If tmpPos = 0 Then
  139.   GetFoldName = newPath
  140.   Exit Function
  141. End If
  142. '递归调用
  143. GetFoldName = GetFoldName(Right$(newPath, Len(newPath) - tmpPos))
  144. End Function
  145. '---------------------------------------------------------------------------------------
  146. ' Procedure : SeekFavoriteFolder
  147. ' DateTime  : 2005-5-13 22:53
  148. ' Author    : Lingll
  149. ' Purpose   : 调用 SeekFold ,SeekFile
  150. '---------------------------------------------------------------------------------------
  151. Public Sub SeekFavoriteFolder( _
  152.         ByVal newFold As String, hMainMnu As Long, Optional extPos As Integer = 0, _
  153.         Optional NotRoot As Boolean = True, Optional hParent&)
  154. Call SeekFolder(newFold, hMainMnu, extPos, NotRoot, hParent)
  155. Call SeekFile(newFold, hMainMnu, extPos, NotRoot, hParent)
  156. End Sub
  157. Private Sub SeekFolder(ByVal newFold As String, hMainMnu As Long, Optional extPos As Integer = 0, _
  158.                     Optional NotRoot As Boolean = True, Optional hParent&)
  159. Dim i As Integer
  160. Dim hSubMnu As Long
  161. Dim tmpStr As String
  162. 'Dim tmpNode As Node
  163. Dim hNode&
  164. Dim tFolders() As String
  165. Dim tFldCnt As Long
  166. If Right(newFold, 1) <> "" Then
  167.     newFold = newFold & ""
  168. End If
  169. Call FindFilesAPI(newFold, "*", tFldCnt, tFolders, False, gFavoriteShowHidden = 1)
  170. SortString tFolders, 1, tFldCnt, True
  171. For i = 1 To tFldCnt
  172.     tmpStr = tFolders(i)
  173.     hSubMnu = CreatePopupMenu
  174.     SetMenuParam hSubMnu, MenuData_FavoriteMenu
  175.     
  176.     If Not m_cTvwFav Is Nothing Then
  177.         If NotRoot Then
  178.             hNode = m_cTvwFav.AddItem(tmpStr, hParent, , 4, 4, 1, subMenuCount + 1)
  179.         Else
  180.             hNode = m_cTvwFav.AddItem(tmpStr, , , 4, 4, 1, subMenuCount + 1)
  181.         End If
  182.     End If
  183.     
  184.     
  185.     Call AppendMenu(hMainMnu, MF_POPUP Or MF_STRING, hSubMnu, Mid2(tmpStr, , MaxMenuCharLength, "..."))
  186.     Call gODrawMenu.RstMenu(hMainMnu, i + extPos - 1, , ImgIx_Icon_Folder, ImgIx_Icon_Folder_Open, , , "fav")
  187.  
  188.    
  189.     subMenuCount = subMenuCount + 1
  190.     If subMenuCount > Max_subMenuCount Then
  191.         Max_subMenuCount = Max_subMenuCount + 10
  192.         ReDim Preserve loadSubInfo(0 To Max_subMenuCount)
  193.     End If
  194.     
  195.     
  196.     With loadSubInfo(subMenuCount)
  197.         .Title = tmpStr
  198.         .hWnd = hSubMnu
  199.         .path = newFold & tFolders(i)
  200.         .isLoadSub = False
  201.         .hNode = hNode
  202.     End With
  203.     
  204.     '递归调用
  205.     'Call SeekFold(newFold & tFolders(i), hSubMnu, , , hNode)
  206. Next
  207. AppendMenu hMainMnu, MF_SEPARATOR, 0&, ""
  208. AppendMenu hMainMnu, MF_STRING, 9998, "打开本层链接"
  209. AppendMenu hMainMnu, MF_STRING, 9999, "分离本层链接"
  210. 'Dim i As Integer ', j As Integer
  211. 'Dim hSubMnu As Long
  212. ''Dim mIf As MENUITEMINFO
  213. 'Dim tmpStr As String
  214. ''Dim tmpNode As Node
  215. '
  216. 'Dim hNode&
  217. '
  218. 'Dir1.path = newFold
  219. '
  220. 'For i = 0 To Dir1.ListCount - 1
  221. '    Dir1.path = newFold
  222. '    tmpStr = GetFoldName(Dir1.List(i))
  223. '    hSubMnu = CreatePopupMenu
  224. '
  225. '    If Not m_cTvwFav Is Nothing Then
  226. '        If NotRoot Then
  227. '            hNode = m_cTvwFav.AddItem(tmpStr, hParent, , 4, 4, 1, subMenuCount + 1)
  228. '        Else
  229. '            hNode = m_cTvwFav.AddItem(tmpStr, , , 4, 4, 1, subMenuCount + 1)
  230. '        End If
  231. '    End If
  232. '
  233. ''    If NotRoot Then
  234. ''        Set tmpNode = tvwFavorite.Nodes.Add(Dir1.List(-1), tvwChild, Dir1.List(i), tmpStr, ImgK_Icon_Folder)  ' "folder")
  235. ''      Else
  236. ''        Set tmpNode = tvwFavorite.Nodes.Add(, , Dir1.List(i), tmpStr, ImgK_Icon_Folder)  '  "folder" )
  237. ''    End If
  238. ''    tmpNode.Tag = "Root"
  239. '
  240. '    Call AppendMenu(hMainMnu, MF_POPUP Or MF_STRING, hSubMnu, Mid2(tmpStr, , MaxMenuCharLength, "..."))
  241. '    Call gODrawMenu.RstMenu(hMainMnu, i + extPos, , ImgIx_Icon_Folder, ImgIx_Icon_Folder_Open, , , "fav")
  242. '
  243. '
  244. '    subMenuCount = subMenuCount + 1
  245. '    If subMenuCount > Max_subMenuCount Then
  246. '        Max_subMenuCount = Max_subMenuCount + 10
  247. '        ReDim Preserve loadSubInfo(0 To Max_subMenuCount)
  248. '    End If
  249. '
  250. '
  251. '    With loadSubInfo(subMenuCount)
  252. '        .Title = tmpStr
  253. '        .hwnd = hSubMnu
  254. '        .path = Dir1.List(i)
  255. '        .isLoadSub = False
  256. '        .hNode = hNode
  257. '    End With
  258. '
  259. '    '递归调用
  260. '    'Call SeekFold(Dir1.List(i), hSubMnu)
  261. '    Call SeekFold(Dir1.List(i), hSubMnu, , , hNode)
  262. 'Next
  263. 'AppendMenu hMainMnu, MF_SEPARATOR, 0&, ""
  264. 'AppendMenu hMainMnu, MF_STRING, 9998, "打开本层链接"
  265. 'AppendMenu hMainMnu, MF_STRING, 9999, "分离本层链接"
  266. '
  267. End Sub
  268. Public Sub favConet(newUrl As String, Optional newWindow As Boolean = True)
  269. If newWindow Or loadedBrowserCount < 1 Then
  270.     Call NewWebbrowser(newUrl)
  271. Else
  272.     webbState(gActiveWebIndex).webForm.Navigate newUrl, False
  273. End If
  274.     
  275. End Sub
  276. Public Sub SeekFile(ByVal newFold As String, hMainMnu As Long, Optional extPos As Integer = 0, _
  277.             Optional NotRoot As Boolean = True, Optional hParent&)
  278. On Error Resume Next
  279. Dim tmpName As String, j&
  280. Dim tIniFile As cINIFile
  281. Dim tMenuCnt As Long
  282. Dim tFiles() As String
  283. Dim tFleCnt As Long
  284. Set tIniFile = New cINIFile
  285. If Right$(newFold, 1) <> "" Then
  286.     newFold = newFold & ""
  287. End If
  288. Call FindFilesAPI(newFold, "*.url", tFleCnt, tFiles, True, gFavoriteShowHidden = 1)
  289. SortString tFiles, 1, tFleCnt, True
  290. For j = 1 To tFleCnt
  291.     itemMenuCount = itemMenuCount + 1
  292.     If itemMenuCount > Max_itemMenuCount Then
  293.         Max_itemMenuCount = Max_itemMenuCount + 50
  294.         ReDim Preserve favoriteInfo(0 To Max_itemMenuCount)
  295.     End If
  296.     
  297.     
  298.     tmpName = Left$(tFiles(j), Len(tFiles(j)) - 4)
  299.     With favoriteInfo(itemMenuCount)
  300.         .path = newFold & tFiles(j)
  301.         
  302.         .Title = tmpName
  303.         .hSubMenu = hMainMnu
  304.     End With
  305.     
  306.     
  307.     Call InsertMenu(hMainMnu, extPos + j - 1, MF_BYPOSITION Or MF_STRING, itemMenuCount + MenuIDOffset, Mid2(tmpName, , MaxMenuCharLength, "..."))
  308.     
  309.     Call gODrawMenu.RstMenu(hMainMnu, CLng(extPos + j - 1), , ImgIx_Icon_Url, , , , "fav")
  310.     
  311.     favoriteInfo(itemMenuCount).url = tIniFile.ReadKey("InternetShortcut", "URL", "", newFold & tFiles(j))
  312.     
  313.     
  314.     If Not m_cTvwFav Is Nothing Then
  315.         If NotRoot Then
  316.             m_cTvwFav.AddItem tmpName, hParent, , 6, 6, 0, itemMenuCount
  317.         Else
  318.             m_cTvwFav.AddItem tmpName, , , 6, 6, 0, itemMenuCount
  319.         End If
  320.     End If
  321.     
  322. '    If NotRoot Then
  323. '        Set tmpNode = tvwFavorite.Nodes.Add(newFold, tvwChild, tmpNewFold + File1.List(j), tmpName, "url")
  324. '    Else
  325. '        Set tmpNode = tvwFavorite.Nodes.Add(, , tmpNewFold + File1.List(j), tmpName, ImgK_Icon_Url) ' "url")
  326. '    End If
  327. '    tmpNode.Tag = favoriteInfo(itemMenuCount).Url
  328.     
  329. Next
  330. tMenuCnt = GetMenuItemCount(hMainMnu)
  331. If (tMenuCnt <= 3) And NotRoot Then
  332.     Call InsertMenu(hMainMnu, 0, MF_BYPOSITION Or MF_STRING, 0, "(空)")
  333.     
  334.     For j = 0 To tMenuCnt
  335.         Call EnableMenuItem(hMainMnu, j, MF_BYPOSITION Or MF_GRAYED)
  336.     Next j
  337. End If
  338. If gFavoriteSinglLineMenu = 0 Then
  339.     Call BreakMenu(hMainMnu)
  340. End If
  341.             
  342. 'Dim tmpName As String, j As Integer ', n As Integer
  343. 'Dim tmpNewFold As String
  344. ''Dim tmpNode As Node
  345. 'Dim tIniFile As cINIFile
  346. 'Set tIniFile = New cINIFile
  347. '
  348. 'File1.path = newFold
  349. 'File1.Refresh
  350. 'For j = 0 To File1.ListCount - 1
  351. '    itemMenuCount = itemMenuCount + 1
  352. '    If itemMenuCount > Max_itemMenuCount Then
  353. '        Max_itemMenuCount = Max_itemMenuCount + 50
  354. '        ReDim Preserve favoriteInfo(0 To Max_itemMenuCount)
  355. '    End If
  356. '
  357. '
  358. '    tmpName = File1.List(j)
  359. '    With favoriteInfo(itemMenuCount)
  360. '        .path = tmpName
  361. '        tmpName = Mid(tmpName, 1, Len(tmpName) - 4)
  362. '        .Title = tmpName
  363. '        .hSubMenu = hMainMnu
  364. '    End With
  365. '
  366. '    Call InsertMenu(hMainMnu, extPos + j, MF_BYPOSITION Or MF_STRING, itemMenuCount + MenuIDOffset, Mid2(tmpName, , MaxMenuCharLength, "..."))
  367. '
  368. '    Call gODrawMenu.RstMenu(hMainMnu, CLng(extPos + j), , ImgIx_Icon_Url, , , , "fav")
  369. '
  370. '    favoriteInfo(itemMenuCount).Url = tIniFile.ReadKey("InternetShortcut", "URL", "", File1.path + "" + File1.List(j))
  371. '
  372. '
  373. '
  374. '    If Right(newFold, 1) <> "" Then tmpNewFold = newFold + "" Else tmpNewFold = newFold
  375. '    favoriteInfo(itemMenuCount).path = tmpNewFold & File1.List(j)
  376. '
  377. '    If Not m_cTvwFav Is Nothing Then
  378. '        If NotRoot Then
  379. '            m_cTvwFav.AddItem tmpName, hParent, , 6, 6, 0, itemMenuCount
  380. '        Else
  381. '            m_cTvwFav.AddItem tmpName, , , 6, 6, 0, itemMenuCount
  382. '        End If
  383. '    End If
  384. '
  385. ''    If NotRoot Then
  386. ''        Set tmpNode = tvwFavorite.Nodes.Add(newFold, tvwChild, tmpNewFold + File1.List(j), tmpName, "url")
  387. ''    Else
  388. ''        Set tmpNode = tvwFavorite.Nodes.Add(, , tmpNewFold + File1.List(j), tmpName, ImgK_Icon_Url) ' "url")
  389. ''    End If
  390. ''    tmpNode.Tag = favoriteInfo(itemMenuCount).Url
  391. '
  392. 'Next
  393. '
  394. 'Dim tmpCount As Long
  395. 'If GetMenuItemCount(hMainMnu) < 1 And NotRoot Then
  396. '    Call AppendMenu(hMainMnu, MF_BYPOSITION, 0, "(空)")
  397. '    Call EnableMenuItem(hMainMnu, 0, MF_BYPOSITION + MF_GRAYED)
  398. '
  399. 'End If
  400. End Sub
  401. '---------------------------------------------------------------------------------------
  402. ' Procedure : BreakMenu
  403. ' DateTime  : 2005-4-19 22:54
  404. ' Author    : Lingll
  405. ' Purpose   :
  406. '---------------------------------------------------------------------------------------
  407. Private Sub BreakMenu(vHMenu&)
  408. Dim tMH&
  409. Dim tScH&, tMaxItem&
  410. Dim tForCnt&
  411. Dim tMenuCnt&
  412. Dim i&
  413. tMenuCnt = GetMenuItemCount(vHMenu)
  414. tMH = GetMenuItemHeight
  415. tScH = GetSystemMetrics(SM_CYSCREEN) - 50
  416. tMaxItem = Int(tScH / tMH)
  417. For i = tMaxItem - 1 To tMenuCnt - 1 Step tMaxItem
  418.     SetMenuType vHMenu, i, 1, MFT_MENUBARBREAK, MFT_MENUBARBREAK
  419. Next i
  420. End Sub
  421. Public Function NewWebbrowser( _
  422.         Optional ByVal newUrl As String = "", _
  423.         Optional nForm As frmBrowser = Nothing, _
  424.         Optional nNewWinodwInBack As Boolean = False, _
  425.         Optional nEnableNewInBack As Boolean = False, _
  426.         Optional nTabIndex& = -1, _
  427.         Optional noNavigate As Boolean = False _
  428.         ) As Long
  429.         
  430. On Error GoTo due:
  431. Dim i As Long, j As Long
  432. '判断是否用newurl做连接
  433. Dim useUrl As Boolean
  434. Dim newB As frmBrowser
  435. If nEnableNewInBack Then
  436. Else
  437.     nNewWinodwInBack = (isLockPresentWeb = 1) Or vkPress(VK_CONTROL)
  438. End If
  439. If loadedBrowserCount >= browserCount Then
  440.     MsgBox "max limit"
  441.     Exit Function
  442. End If
  443. useUrl = (nForm Is Nothing)
  444. If nForm Is Nothing Then
  445.     newUrl = Trim$(newUrl)
  446.     If newUrl = "" Then newUrl = "about:blank"
  447.     Set newB = New frmBrowser
  448.     Load newB
  449.     'Call newB.Navigate(newUrl, False)
  450. '    If newB.Navigate2(newUrl) Then
  451. '    Else
  452. '        Unload newB
  453. '        Exit Function
  454. '    End If
  455. Else
  456.     Set newB = nForm
  457. End If
  458. For i = 1 To browserCount
  459.     'If Not webbState(i).isLoaded Then
  460.     If webbState(i) Is Nothing Then
  461.         
  462.         'webbState(i).isLoaded = True
  463.         Set webbState(i) = New cLBrowser
  464.         webbState(i).IniMe TabBar, newB
  465.         'webbState(i).tabOrder = loadedBrowserCount + 1
  466.         
  467. '        If nForm Is Nothing Then
  468. '            Set newB = New frmBrowser
  469. '        Else
  470. '            Set newB = nForm
  471. '        End If
  472.         'newB.CanNotShow = False
  473.         
  474. '        === controls no use ==========
  475. '        Load cochkButton(i) '提前加载,避免  frmBrowser.FormActive() 出错
  476. '        =====================================
  477.                 
  478.         Set webbState(i).TabBtn = TabBar.Add("", cbtsCheck, i, , nTabIndex)
  479.         
  480.         newB.tagIndex = i
  481.         Dim tPreState&
  482.         If loadedBrowserCount <= 0 Then
  483.             ShowWindow newB.hWnd, SW_SHOWMAXIMIZED
  484.         Else
  485.             
  486.             'If isLockPresentWeb = 1 Or vkPress(VK_CONTROL) Then
  487.             
  488.             tPreState = webbState(gActiveWebIndex).webForm.WindowState
  489.             nNewWinodwInBack = nNewWinodwInBack And (tPreState <> vbMinimized)
  490.             
  491.             If nNewWinodwInBack Then
  492.                 Dim preHwnd As Long
  493.                 preHwnd = webbState(gActiveWebIndex).webForm.hWnd
  494.                 
  495.                 If Not newB.HaveSetRect Then
  496.                     If tPreState = vbNormal Then
  497.                         ShowWindow newB.hWnd, SW_SHOWNOACTIVATE
  498.                     Else
  499.                         NOExeActive = True
  500.                         'newB.NoActive = True
  501.                         SendMessageLng hMDIClient, WM_SETREDRAW, 0&, ByVal 0&
  502.                         ShowWindow newB.hWnd, SW_MAXIMIZE
  503.                     End If
  504.                     'SetWindowPos newB.hwnd, preHwnd, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
  505.                     BringWindowToTop preHwnd
  506.                     SendMessageLng hMDIClient, WM_SETREDRAW, 1&, ByVal 0&
  507.                     NOExeActive = False
  508.                 Else
  509.                     SetWindowPos newB.hWnd, preHwnd, 0, 0, newB.GetSetWinWidth, newB.GetSetWinHeight, SWP_NOMOVE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE
  510.                 End If
  511.             Else
  512.                 If Not newB.HaveSetRect Then
  513.                     If tPreState = vbNormal Then
  514.                         ShowWindow newB.hWnd, SW_SHOWNORMAL
  515.                     Else
  516.                         ShowWindow newB.hWnd, SW_SHOWMAXIMIZED
  517.                     End If
  518.                     BringWindowToTop newB.hWnd
  519.                 Else
  520.                     SetWindowPos newB.hWnd, HWND_TOP, 0, 0, newB.GetSetWinWidth, newB.GetSetWinHeight, SWP_NOMOVE Or SWP_SHOWWINDOW
  521.                 End If
  522.             End If
  523.         End If
  524.         Set webbState(i).webForm = newB
  525. '        webbState(i).isFirst = 1
  526.         'webbState(i).fontSize = 2
  527.         
  528. '        ======== controls no use ==================
  529. '        Dim tmpOptLeft As Single
  530. '        Dim tmpOptIndex As Single
  531. '        tmpOptLeft = -cochkButton(tmpOptIndex).pWidth
  532. '
  533. '        For j = 1 To browserCount
  534. '            If webbState(j).isLoaded And j <> i Then
  535. '                If tmpOptLeft < cochkButton(j).pLeft Then
  536. '                    tmpOptLeft = cochkButton(j).pLeft
  537. '                    tmpOptIndex = j
  538. '                End If
  539. '            End If
  540. '        Next
  541. '
  542. '
  543. '
  544. '        cochkButton(i).pVisible = False
  545. '        cochkButton(i).CreateFace
  546. '        'Set cochkButton(i).PictureIN = ProgressIcon(0)
  547. '        With cochkButton(i)
  548. '            .pLeft = tmpOptLeft + cochkButton(tmpOptIndex).pWidth
  549. '            '.pVisible = True
  550. '        End With
  551. '        ======================================================
  552.         
  553.         
  554.         
  555.         'If isLockPresentWeb = 0 And Not vkPress(VK_CONTROL) Then
  556.         If Not nNewWinodwInBack Then
  557.             'If loadedBrowserCount > 0 Then cochkButton(gActiveWebIndex).Checked = False
  558.             'lstOrder.AddItem i, 0
  559.             gActiveWebIndex = i
  560. '            cochkButton(i).Checked = True
  561.         Else
  562.             If loadedBrowserCount > 0 Then
  563.                 'cochkButton(gActiveWebIndex).Checked = True
  564.                 'lstOrder.AddItem i, 1
  565.                 'cochkButton(i).Checked = False
  566.             Else
  567.                 'lstOrder.AddItem i
  568.                 'cochkButton(i).Checked = True
  569.                 gActiveWebIndex = i
  570.             End If
  571.         End If
  572.         
  573.         '======= control no use ============
  574.         'Set webbState(i).webTab = cochkButton(i)
  575.         '===================================
  576.          
  577.         
  578.         Exit For
  579.     End If
  580. Next i
  581. If useUrl And (Not noNavigate) Then
  582.     'newB.webMe.Navigate2 newUrl
  583.     Call newB.Navigate(newUrl, False)
  584. End If
  585. 'If useUrl Then
  586. '    newUrl = Trim$(newUrl)
  587. '    If newUrl = "" Then newUrl = "about:blank"
  588. '    newB.Navigate newUrl
  589. 'End If
  590.     
  591. 'On Error Resume Next
  592. 'wbbMe(i).ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(2)
  593. loadedBrowserCount = loadedBrowserCount + 1
  594. fraHoldOpt.width = tabLength * loadedBrowserCount
  595. Call refreshTab
  596. Call EnableButtons
  597. isTabClick = True
  598. NewWebbrowser = i
  599. Exit Function
  600. due:
  601. ErrorLog.AddLog "new window" & Chr(9) & Err.Description & Str(Err.Number)
  602. Resume Next
  603. End Function
  604. Private Sub resizeFramFravorite()
  605. On Error Resume Next
  606. 'Dim tRight&
  607. With pctHoldFavorite
  608.     .Left = 0
  609.     .Top = 0
  610.     .width = pctSideBar.width - fraMove.width
  611.     .height = pctSideBar.height
  612. End With
  613. fraMove.Left = pctHoldFavorite.width
  614. fraMove.height = pctSideBar.height
  615. fraMove.Top = 0 ' -fraFavorite.Height
  616. End Sub
  617. '---------------------------------------------------------------------------------------
  618. ' Procedure : RefreshFavorite
  619. ' DateTime  : 2005-4-19 18:27
  620. ' Author    : Lingll
  621. ' Purpose   : 刷新收藏夹
  622. '             vLevel=0,不更新根路径,1,全面刷新
  623. '---------------------------------------------------------------------------------------
  624. Public Sub RefreshFavorite(Optional vLevel As Long = 1)
  625. Dim i As Long, menu_Count As Long
  626. Dim tPath As String * MAX_PATH
  627. Max_itemMenuCount = 500
  628. Max_subMenuCount = 100
  629. If vLevel = 1 Then
  630.     If gFavoriteUseDefaultPath Then
  631.         Call SHGetSpecialFolderPathW(0&, tPath, CSIDL_FAVORITES, 0)
  632.         favoritePath = SysAllocString(StrPtr(tPath))
  633.     Else
  634.         favoritePath = gFavoriteCustomPath
  635.     End If
  636. End If
  637. If m_cTvwFav Is Nothing Then
  638.     Call IniFavoriteTree
  639. Else
  640.     m_cTvwFav.Clear
  641. End If
  642. 'tvwFavorite.Nodes.Clear
  643. gODrawMenu.RemoveMulODMenu "fav"
  644. menu_Count = GetMenuItemCount(hMnuFavorite)
  645. For i = menu_Count - 1 To FavoriteMenuPosOffset Step -1
  646.     DeleteMenu hMnuFavorite, i, MF_BYPOSITION
  647. Next
  648. ReDim loadSubInfo(0 To Max_subMenuCount)
  649. ReDim favoriteInfo(0 To Max_itemMenuCount)
  650. subMenuCount = 0
  651. itemMenuCount = 0
  652. loadSubInfo(0).isLoadSub = False
  653. loadSubInfo(0).hWnd = hMnuFavorite
  654. loadSubInfo(0).path = favoritePath
  655. loadSubInfo(0).Title = "收藏"
  656. 'Call SeekFold(favoritePath, hMnuFavorite, FavoriteMenuPosOffset, False)
  657. 'Call SeekFavoriteFolder(favoritePath, hMnuFavorite, FavoriteMenuPosOffset, False)
  658. 'Call mnuFavorite_Click
  659. End Sub
  660. Private Sub SaveProxy()
  661. Dim i&
  662. Dim tStg As cStorage
  663. Set tStg = New cStorage
  664. If tStg.OpenFile(AppPath & File_Config, StgName_Proxy) Then
  665.     tStg.PutInteger proxyDataCount
  666.     For i = 1 To proxyDataCount
  667.         tStg.WriteString proxyData(i).proxyName, 2
  668.         tStg.WriteString proxyData(i).address, 2
  669.         tStg.WriteString proxyData(i).port, 1
  670.         
  671.         tStg.PutInteger proxyData(i).isByPass, 1
  672.         tStg.WriteString proxyData(i).bypass
  673.     Next i
  674.     tStg.CloseFile
  675. End If
  676. End Sub
  677. '========================================================
  678. 'Private Sub SaveProxy()
  679. 'Dim i&
  680. 'Dim tFile As cBinaryFile
  681. 'Set tFile = New cBinaryFile
  682. '
  683. '
  684. 'Dim hFile As Long
  685. 'On Error GoTo drr
  686. '
  687. 'Name AppPath & "proxy.dat" As AppPath & "proxy.bak"
  688. 'hFile = FreeFile
  689. 'With tFile
  690. '    .OpenFile AppPath & "proxy.dat"
  691. '    .PutLng proxyDataCount
  692. '    For i = 1 To proxyDataCount
  693. '        .WriteStringInt proxyData(i).proxyName
  694. '        .WriteStringInt proxyData(i).address
  695. '        .WriteStringByt proxyData(i).port
  696. '        .PutByte proxyData(i).isByPass
  697. '        .WriteStringLng proxyData(i).bypass
  698. '
  699. '    Next i
  700. '    .CloseFile
  701. 'End With
  702. ''Open fullpath + "proxy.dat" For Binary As hFile 'Len = Len(proxyData(0))
  703. ''    Put hFile, , proxyDataCount
  704. ''    If proxyDataCount > 0 Then
  705. ''        Dim i As Integer
  706. ''        For i = 1 To proxyDataCount
  707. ''
  708. ''            Put hFile, , proxyData(i)
  709. ''        Next
  710. ''    End If
  711. ''Close hFile
  712. '
  713. 'Exit Sub
  714. '
  715. 'drr:
  716. 'If Err.Number = 58 Then
  717. '    Kill AppPath & "proxy.bak"
  718. '    Resume
  719. '  ElseIf Err.Number = 53 Then
  720. '    Resume Next
  721. 'End If
  722. 'End Sub
  723. Private Sub refreshTab()
  724. If fraHoldOpt.width > pctTabs.width Then
  725.     If tabsPos > 1 Then
  726.         'myButtonGoLeft.pVisible = True
  727.         pctTabGoLeft.Visible = True
  728.         'myButtonGoLeft.TipText = "左面还有" & LTrim(Str(tabsPos - 1)) & "个页面"
  729.         TabGoLeftBar.Buttons(1).tiptext = "左面还有" & LTrim(Str(tabsPos - 1)) & "个页面"
  730.         
  731.         fraHoldOpt.Left = -tabLength * (tabsPos - 1) + mTabGoLRWidth * 15 ' myButtonGoLeft.pWidth
  732.       Else
  733.         timerMoveTab.Enabled = False
  734.         'myButtonGoLeft.pVisible = False
  735.         pctTabGoLeft.Visible = False
  736.         fraHoldOpt.Left = 0
  737.     End If
  738.     
  739.     If fraHoldOpt.width + fraHoldOpt.Left > pctTabs.width Then
  740.         'With myButtonGoRight
  741.             '.pVisible = True
  742.             pctTabGoRight.Visible = True
  743.             Dim rTabCount As Long
  744.             rTabCount = (fraHoldOpt.width + fraHoldOpt.Left - pctTabs.width) / tabLength
  745.             
  746.             TabGoRightBar.Buttons(1).tiptext = "右面还有" & LTrim(Str(rTabCount)) & "个页面"
  747.                         
  748.             '.pLeft = pctTabs.width - .pWidth
  749.             pctTabGoRight.Left = pctTabs.width - mTabGoLRWidth * 15
  750.         'End With
  751.       Else
  752.         'myButtonGoRight.pVisible = False
  753.         pctTabGoRight.Visible = False
  754.         timerMoveTab.Enabled = False
  755.     End If
  756.   Else
  757. '    myButtonGoLeft.pVisible = False
  758. '    myButtonGoRight.pVisible = False
  759.     pctTabGoLeft.Visible = False
  760.     pctTabGoRight.Visible = False
  761.     
  762.     timerMoveTab.Enabled = False
  763.     fraHoldOpt.Left = 0
  764.     tabsPos = 1
  765. End If
  766. End Sub
  767. '关闭被选择的页面
  768. Private Sub CloseMulTab(Optional isInvert As Boolean = False)
  769. Dim i As Long
  770. Dim canCall As Boolean
  771. For i = 1 To browserCount
  772.     'If webbState(i).isLoaded Then
  773.     If Not webbState(i) Is Nothing Then
  774. '        canCall = (webbState(i).webTab.Selected Or i = gActiveWebIndex) Xor isInvert
  775.         'canCall = webbState(i).webTab.Selected Xor  isInvert
  776.         canCall = webbState(i).TabBtn.Selected Xor isInvert
  777.         If canCall Then
  778.             Call UnloadBrowser(i)
  779.         End If
  780.     End If
  781. Next i
  782. End Sub
  783. Public Sub popMenuLockToolBar()
  784. 'Me.PopupMenu mnuToolBar ' mnuCbrPopMenu
  785. pMnu_ViewToolbar.Popup2 Me.hWnd, , , , TPM_LEFTALIGN
  786. End Sub
  787. 'Private Function load_close_menu(Url As String, Title As String) As Boolean
  788. ''If LCase(Url) = "about:blank" Or Url = "" Then Exit Function
  789. ''Dim canAdd As Boolean
  790. ''Dim repeatIndex As Integer
  791. ''Dim i As Integer
  792. ''If Trim(Title) = "" Then Title = Url
  793. ''Title = CutString(Title, 30, " ...")
  794. ''repeatIndex = 0
  795. ''For i = 1 To re_closepage_count
  796. ''    If Url = mnuRecent_ClosePage(i).Tag And Title = mnuRecent_ClosePage(i).Caption Then
  797. ''        repeatIndex = i
  798. ''        Exit For
  799. ''    End If
  800. ''Next
  801. ''
  802. ''
  803. ''
  804. ''If repeatIndex = 0 Then
  805. ''    re_closepage_count = re_closepage_count + 1
  806. ''    If re_closepage_count > max_re_closepage Then re_closepage_count = max_re_closepage
  807. ''    repeatIndex = re_closepage_count
  808. ''End If
  809. ''
  810. ''For i = repeatIndex To 2 Step -1
  811. ''    mnuRecent_ClosePage(i).Tag = mnuRecent_ClosePage(i - 1).Tag
  812. ''    mnuRecent_ClosePage(i).Caption = mnuRecent_ClosePage(i - 1).Caption
  813. ''    mnuRecent_ClosePage(i).Visible = True
  814. ''Next i
  815. ''
  816. ''mnuRecent_ClosePage(1).Visible = True
  817. ''mnuRecent_ClosePage(1).Tag = Url
  818. ''mnuRecent_ClosePage(1).Caption = Title
  819. ''mnuRecent_ClosePage(1).Visible = True
  820. ''If re_closepage_count > 0 Then mnuRecent_ClosePage(0).Visible = False
  821. ''
  822. '''Dim tButton  As MSComctlLib.Button, tButtonMenu As MSComctlLib.ButtonMenu
  823. '''Set tButton = tlbMe.Buttons(TbrK_Main_RecentClose)
  824. '''tButton.ButtonMenus.Clear
  825. '''pMnu_Reopen.ClearItems
  826. ''
  827. '''For i = 0 To re_closepage_count
  828. '''    If mnuRecent_ClosePage(i).Visible Then
  829. '''        pMnu_Reopen.Add mnuRecent_ClosePage(i).Caption
  830. '''
  831. '''        'Set tButtonMenu = tButton.ButtonMenus.Add(, , mnuRecent_ClosePage(i).Caption)
  832. '''        'tButtonMenu.Tag = mnuRecent_ClosePage(i).Tag
  833. '''    End If
  834. '''Next i
  835. ''
  836. '''If re_closepage_count > 0 Then
  837. '''    tButton.Image = "RecentCloseFull"
  838. '''    MoveWindow myRebar.hWnd, 0, 0, 100, 100, True
  839. '''Else
  840. '''    tButton.Image = "RecentCloseEmpty"
  841. '''End If
  842. 'End Function
  843. Public Sub NextLastTab(ByVal movenext As Boolean)
  844. Dim t_int As Integer, i As Integer
  845. If movenext Then
  846.     't_int = webbState(gActiveWebIndex).tabOrder + 1
  847.     t_int = webbState(gActiveWebIndex).TabBtn.index + 1
  848.     If t_int > loadedBrowserCount Then t_int = 1
  849. Else
  850.     't_int = webbState(gActiveWebIndex).tabOrder - 1
  851.     t_int = webbState(gActiveWebIndex).TabBtn.index - 1
  852.     If t_int < 1 Then t_int = loadedBrowserCount
  853. End If
  854. For i = 1 To browserCount
  855.     'If webbState(i).isLoaded Then
  856.     If Not webbState(i) Is Nothing Then
  857.         'If webbState(i).tabOrder = t_int Then
  858.         If webbState(i).TabBtn.index = t_int Then
  859. '            webbState(i).webForm.ZOrder
  860.             Call SwitchTabs(i)
  861.         End If
  862.     End If
  863. Next i
  864. End Sub
  865. Private Sub UnloadBrowsers(ByVal orderBegin As Integer, ByVal orderEnd As Integer)
  866. On Error GoTo due:
  867. If orderBegin > orderEnd Then Exit Sub
  868. Dim i As Integer
  869. Dim tLen As Integer
  870. Dim tLstI As Integer
  871. tLen = orderEnd - orderBegin + 1
  872. For i = 1 To browserCount
  873.     If Not webbState(i) Is Nothing Then
  874.         If Not webbState(i).Hided Then
  875.             If webbState(i).TabBtn.index >= orderBegin And webbState(i).TabBtn.index <= orderEnd Then
  876.                 ClosedPages.Add webbState(i).webForm.GetWebTitle, webbState(i).webForm.GetWebUrl
  877.                 isUnloadByFunction = True
  878.                 Unload webbState(i).webForm
  879.                 Set webbState(i).webForm = Nothing
  880.                 
  881.                 webbState(i).Tag = "ul"
  882.             End If
  883.         End If
  884.     End If
  885. Next i
  886. For i = 1 To browserCount
  887.     If Not webbState(i) Is Nothing Then
  888.         If webbState(i).Tag = "ul" Then
  889.             TabBar.RemoveByIndex webbState(i).TabBtn.index
  890.             Set webbState(i) = Nothing
  891.         End If
  892.     End If
  893. Next i
  894. loadedBrowserCount = loadedBrowserCount - tLen
  895. 'For i = loadedBrowserCount - 1 To 0 Step -1
  896. '    tLstI = CInt(lstOrder.List(i))
  897. '    'If webbState(tLstI).tabOrder >= orderBegin And webbState(tLstI).tabOrder <= orderEnd Then
  898. '    'If webbState(tLstI).tabOrder = 0 Then
  899. '    'If Not webbState(tLstI).isLoaded Then
  900. '    If Not webbState(tLstI) Is Nothing Then
  901. '        If webbState(tLstI).Tag = "1" Then
  902. '            Debug.Print "tlsti:"; tLstI
  903. '            TabBar.RemoveByIndex webbState(tLstI).TabBtn.index
  904. '            'TabBar.RemoveByButtonObj webbState(tLstI).TabBtn
  905. '            Set webbState(tLstI).TabBtn = Nothing
  906. '
  907. '            lstOrder.RemoveItem i
  908. '
  909. '            Set webbState(tLstI) = Nothing
  910. '        End If
  911. '    End If
  912. 'Next i
  913. 'loadedBrowserCount = loadedBrowserCount - tLen
  914. fraHoldOpt.width = tabLength * loadedBrowserCount
  915. 'gActiveWebIndex = lstOrder.List(0)
  916. 'Debug.Print "lstOrder.ListCount:"; lstOrder.ListCount
  917. 'webbState(CInt(lstOrder.List(0))).webForm.ZOrder
  918. Call refreshTab
  919. Call EnableButtons
  920. Exit Sub
  921. due:
  922.     ErrorLog.AddLog "unloadBrowsers" & Chr(9) & Err.Description & Str(Err.Number)
  923.     Resume Next
  924. End Sub
  925. 'Private Function CutString(nStr As String, nBits As Long, Add As String) As String
  926. 'Dim tstr As String
  927. 'tstr = StrConv(nStr, vbFromUnicode)
  928. 'If LenB(tstr) > nBits Then
  929. '    CutString = StrConv(LeftB(tstr, nBits), vbUnicode) & Add
  930. 'Else
  931. '    CutString = nStr
  932. 'End If
  933. '
  934. 'End Function
  935. Private Sub SavePagez() 'Optional nFile As String = "")
  936. Dim i As Long
  937. Dim turl As String
  938. Dim n As Long
  939. Dim tIni As cINIFile
  940. Set tIni = New cINIFile
  941. With tIni
  942.     .IniFile = AppPath & MainIniName
  943.     .DeleteSection "PageGroupTmp"
  944.     .WriteKey "PageGroupTmp", "Count", Str$(loadedBrowserCount)
  945.     n = 0
  946.     For i = 1 To browserCount
  947.         'If webbState(i).isLoaded Then
  948.         If Not webbState(i) Is Nothing Then
  949.             n = n + 1
  950.             turl = webbState(i).webForm.GetWebUrl
  951.             .WriteKey "PageGroupTmp", "URL" & LTrim$(Str(n)), turl
  952.         End If
  953.     Next i
  954. End With
  955. End Sub
  956. Private Sub LoadPagez() 'Optional nFile As String = "")
  957. 'Dim fn As Long
  958. Dim i As Long
  959. 'Dim tLen As Long
  960. Dim turl As String
  961. Dim pageCnt&
  962. 'If nFile = "" Then
  963. '    nFile = App.Path & "pages.dat"
  964. 'End If
  965. 'fn = FreeFile
  966. 'Open nFile For Binary As fn
  967. '    Get fn, , pageCnt
  968. '    For i = 1 To pageCnt
  969. '        Get fn, , tLen
  970. '        tUrl = StrConv(InputB(tLen, fn), vbUnicode)
  971. '        Call NewWebbrowser(tUrl)
  972. '    Next i
  973. 'Close fn
  974. '
  975. Dim tIni As cINIFile
  976. Set tIni = New cINIFile
  977. With tIni
  978.     .IniFile = AppPath & MainIniName
  979.     
  980.     pageCnt = Val(LTrim(.ReadKey("PageGroupTmp", "Count", "0")))
  981.     Debug.Print pageCnt
  982.     For i = 1 To pageCnt
  983.         turl = .ReadKey("PageGroupTmp", "URL" & LTrim(Str(i)), "about:blank")
  984.         Call NewWebbrowser(turl)
  985.     Next i
  986. End With
  987. End Sub
  988. '========= begin ======== 最近访问的收藏 ==============
  989. Public Sub ClickFavorite(nTitle As String, ByVal nUrl As String)
  990. Const iniMark& = 20
  991. 'Const addMark& = 3
  992. 'Const addMark2& = 2
  993. 'Const addMarkTop& = 1
  994. Const subMark& = 1
  995. Const addRuleCnt& = 4
  996. Dim addMark(0 To addRuleCnt - 1) As Long
  997. Dim addMarkPos(0 To addRuleCnt - 1) As Long
  998. addMark(0) = 4
  999. addMark(1) = 3
  1000. addMark(2) = 2
  1001. addMark(3) = 1
  1002. addMarkPos(0) = 0
  1003. addMarkPos(1) = 30
  1004. addMarkPos(2) = 50
  1005. addMarkPos(3) = 60
  1006. Dim i&, j&, index&, ti&, clickUrlIndex&
  1007. Dim isNewUrl As Boolean, firstBiger As Boolean
  1008. isNewUrl = True
  1009. nUrl = Trim(nUrl)
  1010. For i = 1 To moreFavCount
  1011.     If moreFavorite(moreFavOrder(i)).mark > -1 Then
  1012.         If nUrl = moreFavorite(moreFavOrder(i)).url Then
  1013.             isNewUrl = False
  1014.             index = i
  1015.             Exit For
  1016.         End If
  1017.     End If
  1018. Next i
  1019. If isNewUrl Then
  1020.     moreFavCount = moreFavCount + 1
  1021.     ReDim Preserve moreFavorite(0 To moreFavCount)
  1022.     ReDim Preserve moreFavOrder(0 To moreFavCount)
  1023.     
  1024.     With moreFavorite(moreFavCount)
  1025.         .mark = iniMark
  1026.         .Title = nTitle
  1027.         .url = nUrl
  1028.     End With
  1029.     moreFavOrder(moreFavCount) = moreFavCount
  1030.     
  1031.     firstBiger = True
  1032.     For i = moreFavCount - 1 To 1 Step -1
  1033.         ti = moreFavOrder(i)
  1034.         If moreFavorite(ti).mark > -1 Then
  1035.             moreFavorite(ti).mark = moreFavorite(ti).mark - subMark
  1036.             If moreFavorite(ti).mark <= iniMark And moreFavorite(ti).mark > -1 Then
  1037.                 moreFavOrder(i + 1) = ti
  1038.                 moreFavOrder(i) = moreFavCount
  1039.             ElseIf moreFavorite(ti).mark > iniMark And firstBiger Then
  1040.                 moreFavOrder(i + 1) = moreFavCount
  1041.                 firstBiger = False
  1042.             End If
  1043.         End If
  1044.         If moreFavorite(ti).mark < 0 And firstBiger Then
  1045.             moreFavOrder(i + 1) = ti
  1046.             moreFavOrder(i) = moreFavCount
  1047.         End If
  1048.     Next i
  1049. Else
  1050.     'If index > 1 Then
  1051.         clickUrlIndex = moreFavOrder(index)
  1052.         For i = moreFavCount To 1 Step -1
  1053.             ti = moreFavOrder(i)
  1054.             If i <> index Then
  1055.                 If moreFavorite(ti).mark > -1 Then
  1056.                     moreFavorite(ti).mark = moreFavorite(ti).mark - subMark
  1057.                 End If
  1058.             Else
  1059.                 For j = addRuleCnt - 1 To 0 Step -1
  1060.                     If moreFavorite(ti).mark >= addMarkPos(j) Then
  1061.                         moreFavorite(ti).mark = moreFavorite(ti).mark + addMark(j)
  1062.                         Exit For
  1063.                     End If
  1064.                 Next j
  1065. '                If index > 2 Then
  1066. '                    moreFavorite(Ti).mark = moreFavorite(Ti).mark + addMark
  1067. '                ElseIf index > 1 Then
  1068. '                    moreFavorite(Ti).mark = moreFavorite(Ti).mark + addMark2
  1069. '                Else
  1070. '                    moreFavorite(Ti).mark = moreFavorite(Ti).mark + addMarkTop
  1071. '                End If
  1072.             End If
  1073.             
  1074.             If i < index Then
  1075.                 If moreFavorite(ti).mark < moreFavorite(clickUrlIndex).mark Then
  1076.                     moreFavOrder(i + 1) = ti
  1077.                     moreFavOrder(i) = clickUrlIndex
  1078.                 End If
  1079.             End If
  1080.         Next i
  1081.     'End If
  1082. End If
  1083. Call RefreshMoreFavMenu
  1084. End Sub
  1085. Private Sub RefreshMoreFavMenu()
  1086. On Error GoTo due
  1087. Dim i&, ti&, tcnt&
  1088. 'tcnt = SMenus.Count
  1089. 'For i = tcnt To 1 Step -1
  1090. '    If SMenus(i).Tag = "mfa" Then
  1091. '        SMenus.Remove i
  1092. '    End If
  1093. 'Next i
  1094. gODrawMenu.RemoveMulODMenu "mfa"
  1095. 'mnuRecent_MoreFav(0).Visible = True
  1096. 'For i = 1 To moreFavMenuCount
  1097. '    'Unload mnuRecent_MoreFav(i)
  1098. '    SMenus.Remove "fav" & Str(i)
  1099. 'Next i
  1100. moreFavMenuCount = 0
  1101. pMnu_MoreFavorite.ClearItems
  1102. If moreFavCount > 0 Then
  1103.     For i = 1 To moreFavCount
  1104.         ti = moreFavOrder(i)
  1105.         If moreFavorite(ti).mark > -1 Then
  1106.             moreFavMenuCount = moreFavMenuCount + 1
  1107.             pMnu_MoreFavorite.Add Mid2(moreFavorite(ti).Title, , 30, " ..."), , ti + IdOffset_MoreFavorite
  1108. '            Load mnuRecent_MoreFav(moreFavMenuCount)
  1109. '            With mnuRecent_MoreFav(moreFavMenuCount)
  1110. '                .Enabled = True
  1111. '                .Visible = True
  1112. '                .Caption = Mid2(moreFavorite(ti).Title, , 30, " ...") '& Str(moreFavorite(Ti).mark)
  1113. '                .Tag = moreFavorite(ti).Url
  1114. '            End With
  1115.             gODrawMenu.RstMenu hMnuMoreFav, moreFavMenuCount - 1, "", ImgIx_Icon_Url, , , , "mfa"
  1116.         End If
  1117.     Next i
  1118. Else
  1119.     pMnu_MoreFavorite.Add "空", pmsString Or pmsDisabled
  1120. End If
  1121. pMnu_MoreFavorite.Add "", pmsSeparator
  1122. pMnu_MoreFavorite.Add "清空", , IDM_Main_Favorite_MoreFavs_Clear
  1123. 'If moreFavMenuCount > 0 Then
  1124. '    mnuRecent_MoreFav(0).Visible = False
  1125. '    mnuFavorite_MoreFavs_Clear.Visible = True
  1126. '    mnuFavorite_MoreFavs_none1.Visible = True
  1127. 'Else
  1128. '    mnuRecent_MoreFav(0).Visible = True
  1129. '    mnuFavorite_MoreFavs_Clear.Visible = False
  1130. '    mnuFavorite_MoreFavs_none1.Visible = False
  1131. 'End If
  1132. 'If moreFavCount > 0 Then
  1133. '    For i = 1 To moreFavCount
  1134. '        ti = moreFavOrder(i)
  1135. '        If moreFavorite(ti).mark > -1 Then
  1136. '            moreFavMenuCount = moreFavMenuCount + 1
  1137. '            Load mnuRecent_MoreFav(moreFavMenuCount)
  1138. '            With mnuRecent_MoreFav(moreFavMenuCount)
  1139. '                .Enabled = True
  1140. '                .Visible = True
  1141. '                .Caption = Mid2(moreFavorite(ti).Title, , 30, " ...") '& Str(moreFavorite(Ti).mark)
  1142. '                .Tag = moreFavorite(ti).Url
  1143. '            End With
  1144. '            'RstMenu hMnuMoreFav, i, "fav" & Str(i), ImgK_Icon_Url
  1145. '        End If
  1146. '    Next i
  1147. 'End If
  1148. 'If moreFavMenuCount > 0 Then
  1149. '    mnuRecent_MoreFav(0).Visible = False
  1150. '    mnuFavorite_MoreFavs_Clear.Visible = True
  1151. '    mnuFavorite_MoreFavs_none1.Visible = True
  1152. 'Else
  1153. '    mnuRecent_MoreFav(0).Visible = True
  1154. '    mnuFavorite_MoreFavs_Clear.Visible = False
  1155. '    mnuFavorite_MoreFavs_none1.Visible = False
  1156. 'End If
  1157. Exit Sub
  1158. due:
  1159. ErrorLog.AddLog "RefreshMoreFavMenu" & Chr(9) & Err.Description & Chr(9) & Err.Number
  1160. Resume Next
  1161. End Sub
  1162. Private Sub SaveMoreFavInfo()
  1163. Dim tStg As cStorage
  1164. Dim i&, ti&
  1165. Dim tMenuCnt&
  1166. tMenuCnt = 0
  1167. Set tStg = New cStorage
  1168. If tStg.OpenFile(AppPath & File_Config, StgName_MoreFav) Then
  1169.     tStg.PutInteger tMenuCnt
  1170.         
  1171.     For i = 1 To moreFavCount
  1172.         ti = moreFavOrder(i)
  1173.         If moreFavorite(ti).mark > -1 Then
  1174.             tMenuCnt = tMenuCnt + 1
  1175.             
  1176.             tStg.PutInteger moreFavorite(ti).mark
  1177.             tStg.WriteString moreFavorite(ti).Title
  1178.             tStg.WriteString moreFavorite(ti).url
  1179.         End If
  1180.     Next i
  1181.     tStg.SeekTo 0
  1182.     tStg.PutInteger tMenuCnt
  1183. End If
  1184. End Sub
  1185. Private Sub LoadMoreFavInfo()
  1186. Dim tStg As cStorage
  1187. Dim i&
  1188. Set tStg = New cStorage
  1189. If tStg.OpenFile(AppPath & File_Config, StgName_MoreFav) Then
  1190.     moreFavCount = tStg.GetInteger()
  1191.     
  1192.     ReDim moreFavorite(0 To moreFavCount)
  1193.     ReDim moreFavOrder(0 To moreFavCount)
  1194.     
  1195.     For i = 1 To moreFavCount
  1196.         moreFavOrder(i) = i
  1197.         With moreFavorite(i)
  1198.             .mark = tStg.GetInteger()
  1199.             .Title = tStg.GetString()
  1200.             .url = tStg.GetString()
  1201.         End With
  1202.     Next i
  1203.     tStg.CloseFile
  1204. Else
  1205.     moreFavCount = 0
  1206.     ReDim moreFavorite(0 To moreFavCount)
  1207.     ReDim moreFavOrder(0 To moreFavCount)
  1208. End If
  1209. Call RefreshMoreFavMenu
  1210. End Sub
  1211. '=========== 最近访问的收藏 =========== End ===============
  1212. '=========== begin ===========  搜索列表 ==============
  1213. Private Sub LoadSearchurlFromINI()
  1214. Dim i&, tIniFile As cINIFile
  1215. 'Dim IniFile As String
  1216. Set tIniFile = New cINIFile
  1217. With tIniFile
  1218.     .IniFile = AppPath & MainIniName
  1219.     FirstLoadSearchurl = Val(.ReadKey("Search Url", "FirstLoad", "1"))
  1220.     If FirstLoadSearchurl = 1 Then
  1221.         SearchurlCount = defSearchCount
  1222.         ReDim searchUrl(0 To SearchurlCount)
  1223.         
  1224.         For i = 1 To SearchurlCount
  1225.             searchUrl(i) = def_searchurl(i)
  1226.         Next i
  1227.         FirstLoadSearchurl = 0
  1228.     Else
  1229.         SearchurlCount = Val(.ReadKey("Search Url", "Count", "0"))
  1230.         ReDim searchUrl(0 To SearchurlCount)
  1231.         For i = 1 To SearchurlCount
  1232.             searchUrl(i).Title = .ReadKey("Search Url", "Title" & LTrim(Str(i)), "0")
  1233.             searchUrl(i).url = .ReadKey("Search Url", "URL" & LTrim(Str(i)), "0")
  1234.         Next i
  1235.     End If
  1236. End With
  1237. End Sub
  1238. Private Sub SaveSearchurlToINI()
  1239. Dim i&, tIniFile As cINIFile
  1240. Set tIniFile = New cINIFile
  1241. With tIniFile
  1242.     .IniFile = AppPath & MainIniName
  1243.     Call .DeleteSection("Search Url")
  1244.     Call .WriteKey("Search Url", "FirstLoad", Str$(FirstLoadSearchurl))
  1245.     Call .WriteKey("Search Url", "Count", Str$(SearchurlCount))
  1246.     'SearchurlCount = Val(.ReadKey("Search Url", "Count", "0"))
  1247.     For i = 1 To SearchurlCount
  1248.         Call .WriteKey("Search Url", "Title" & LTrim$(Str(i)), searchUrl(i).Title)
  1249.         Call .WriteKey("Search Url", "URL" & LTrim$(Str(i)), searchUrl(i).url)
  1250.     Next i
  1251. End With
  1252. End Sub
  1253. Public Sub LoadSearchurlMenu()
  1254. Dim i&
  1255. Dim asKey$
  1256. For i = 1 To SearchurlCount
  1257.     If i < 11 Then
  1258.         asKey = "&" & LTrim$(Str(i Mod 10)) & " "
  1259.     Else
  1260.         asKey = "  "
  1261.     End If
  1262.     
  1263.     mPopmnuTurnTo.Add asKey & searchUrl(i).Title, , i + mOffset_Turnto
  1264.     
  1265. '    Load mnuTurnTo_Search(i)
  1266. '
  1267. '    mnuTurnTo_Search(i).Caption = asKey & searchUrl(i).Title
  1268. Next i
  1269. End Sub
  1270. Public Sub RemoveSearchurlMenu()
  1271. 'Dim i&
  1272. Call mPopmnuTurnTo.RemoveItems(4, mPopmnuTurnTo.GetItemCount - 1)
  1273. 'For i = 1 To SearchurlCount
  1274. '    Unload mnuTurnTo_Search(i)
  1275. 'Next i
  1276. End Sub
  1277. '=========== 搜索列表 ============== END ==============
  1278. '保存地址栏键盘
  1279. Private Sub SaveAddbarKey()
  1280. Dim tIniFile As cINIFile
  1281. Set tIniFile = New cINIFile
  1282. With tIniFile
  1283.     .IniFile = AppPath & MainIniName
  1284.     Call .WriteKey("Addbar Key", "Enter", Str(AddBarShortKey_Enter))
  1285.     Call .WriteKey("Addbar Key", "Shift", Str(AddBarShortKey_Shift))
  1286.     Call .WriteKey("Addbar Key", "Ctrl", Str(AddBarShortKey_Ctrl))
  1287.     Call .WriteKey("Addbar Key", "Alt", Str(AddBarShortKey_Alt))
  1288.     Call .WriteKey("Addbar Key", "CtrlShift", Str(AddBarShortKey_CtrlShift))
  1289.     Call .WriteKey("Addbar Key", "AltShift", Str(AddBarShortKey_AltShift))
  1290. End With
  1291. End Sub
  1292. '读取地址栏键盘
  1293. Private Sub LoadAddbarKey()
  1294. Dim tIniFile As cINIFile
  1295. Set tIniFile = New cINIFile
  1296. With tIniFile
  1297.     .IniFile = AppPath & MainIniName
  1298.     AddBarShortKey_Enter = .ReadKey("Addbar Key", "Enter", "-3")
  1299.     AddBarShortKey_Shift = .ReadKey("Addbar Key", "Shift", "-2")
  1300.     AddBarShortKey_Ctrl = .ReadKey("Addbar Key", "Ctrl", "0")
  1301.     AddBarShortKey_Alt = .ReadKey("Addbar Key", "Alt", "0")
  1302.     AddBarShortKey_CtrlShift = .ReadKey("Addbar Key", "CtrlShift", "0")
  1303.     AddBarShortKey_AltShift = .ReadKey("Addbar Key", "AltShift", "0")
  1304. End With
  1305. End Sub
  1306. Public Property Get ShowFavorite() As Long ' MSComctlLib.ValueConstants
  1307. ShowFavorite = m_ShowFavorite
  1308. End Property
  1309. '是否显示边栏,显示哪个,
  1310. '0,不显示
  1311. '>0,显示id(菜单)对应的边栏
  1312. '<0,显示
  1313. Public Property Let ShowFavorite(ByVal vNewValue As Long) ' MSComctlLib.ValueConstants)
  1314. On Error Resume Next
  1315. m_ShowFavorite = vNewValue
  1316. 'm_cTbrMain.CheckButton TbrID_Main_Favorites, m_ShowFavorite = 1
  1317. Select Case vNewValue
  1318.     Case Is <> 0
  1319.         If vNewValue > 0 Then
  1320.             m_ShowFavorite = vNewValue
  1321.         Else
  1322.             m_ShowFavorite = Abs(m_ShowFavorite)
  1323.         End If
  1324.         Call ShowSideband(m_ShowFavorite)
  1325.         
  1326.         If vNewValue = IDM_Main_View_SideBand_Favorite Then
  1327.             If Not loadSubInfo(0).isLoadSub Then
  1328.                 Call SeekFavoriteFolder(favoritePath, loadSubInfo(0).hWnd, FavoriteMenuPosOffset, False)
  1329.                 loadSubInfo(0).isLoadSub = True
  1330.             End If
  1331.         End If
  1332.         
  1333.         If FloatFavorite = 1 Then
  1334.             pctSideBar.Visible = True
  1335.             Call resizeFramFravorite
  1336.         Else
  1337.             frmFloatFavorite.Show , Me
  1338.         End If
  1339.     Case 0
  1340.         m_ShowFavorite = -Abs(m_ShowFavorite)
  1341.         If FloatFavorite = 1 Then
  1342.             pctSideBar.Visible = False
  1343.         Else
  1344.             frmFloatFavorite.Hide
  1345.         End If
  1346.         
  1347.         pMnu_ViewSideBand.UnCheckAll
  1348.         m_cTbrMain.CheckButton TbrID_Main_Favorites, False
  1349. End Select
  1350. End Property
  1351. '---------------------------------------------------------------------------------------
  1352. ' Procedure : ShowSideband
  1353. ' DateTime  : 2005-5-31 16:09
  1354. ' Author    : Lingll
  1355. ' Purpose   :
  1356. '---------------------------------------------------------------------------------------
  1357. Private Sub ShowSideband(id&)
  1358. Dim tIndex&, i&
  1359. Debug.Print "side band"
  1360. tIndex = id - IdOffset_ViewSideBand
  1361. For i = 1 To gPluginSBCnt
  1362.     gPluginsSideBand(i).ShowBand False
  1363. Next i
  1364. pMnu_ViewSideBand.UnCheckAll
  1365. If id = IDM_Main_View_SideBand_Favorite Then
  1366.     m_cTvwFav.Visible = True
  1367.     lblSideBand.Caption = "收藏夹"
  1368.     pMnu_ViewSideBand.CheckItem IDM_Main_View_SideBand_Favorite, True
  1369.     m_cTbrMain.CheckButton TbrID_Main_Favorites, True
  1370. Else
  1371.     If tIndex > 0 And tIndex <= gPluginSBCnt Then
  1372.         m_cTvwFav.Visible = False
  1373.         Call gPluginsSideBand(tIndex).ShowBand(True)
  1374.         lblSideBand.Caption = gPluginsSideBand(tIndex).Title
  1375.         pMnu_ViewSideBand.CheckItem id, True
  1376.     End If
  1377.     Call m_cTbrMain.CheckButton(TbrID_Main_Favorites, False)
  1378. End If
  1379. End Sub
  1380. Private Sub LoadProxy()
  1381. Dim i&
  1382. Dim tStg As cStorage
  1383. ReDim proxyData(0 To 0)
  1384. Set tStg = New cStorage
  1385. If tStg.OpenFile(AppPath & File_Config, StgName_Proxy) Then
  1386.     proxyDataCount = tStg.GetInteger()
  1387.     ReDim proxyData(0 To proxyDataCount)
  1388.     For i = 1 To proxyDataCount
  1389.         proxyData(i).proxyName = tStg.GetString(2)
  1390.         proxyData(i).address = tStg.GetString(2)
  1391.         proxyData(i).port = tStg.GetString(1)
  1392.         proxyData(i).isByPass = tStg.GetInteger(1)
  1393.         proxyData(i).bypass = tStg.GetString()
  1394.     Next i
  1395. Else
  1396.     ReDim proxyData(0 To 0)
  1397.     proxyDataCount = 0
  1398. End If
  1399. End Sub
  1400. '===============================================================
  1401. 'Private Sub LoadProxy()
  1402. '
  1403. ''ReDim proxyData(0 To 0)
  1404. ''Dim hFile As Long
  1405. ''Dim tproxyDataCount As Integer
  1406. ''hFile = FreeFile
  1407. ''Open AppPath & "proxy.dat" For Binary As hFile 'Len = Len(proxyData(0))
  1408. ''    Get hFile, , tproxyDataCount
  1409. ''    proxyDataCount = tproxyDataCount
  1410. ''    If proxyDataCount > 0 Then
  1411. ''        ReDim proxyData(0 To proxyDataCount)
  1412. ''        Dim i As Integer
  1413. ''        For i = 1 To proxyDataCount
  1414. ''            Get hFile, , proxyData(i)
  1415. ''            With proxyData(i)
  1416. ''                .proxyName = Replace(.proxyName, vbNullChar, Chr$(32))
  1417. ''                .address = Replace(.address, vbNullChar, Chr$(32))
  1418. ''                .bypass = Replace(.bypass, vbNullChar, Chr$(32))
  1419. ''                .port = Replace(.port, vbNullChar, Chr$(32))
  1420. ''            End With
  1421. ''        Next
  1422. ''    End If
  1423. ''Close hFile
  1424. '
  1425. 'On Error GoTo due
  1426. '
  1427. 'ReDim proxyData(0 To 0)
  1428. ''Dim hFile As Long
  1429. ''hFile = FreeFile
  1430. 'Dim i&
  1431. 'Dim tFile As cBinaryFile
  1432. '
  1433. 'Set tFile = New cBinaryFile
  1434. 'With tFile
  1435. '    .OpenFile AppPath & "proxy.dat"
  1436. '    proxyDataCount = .GetLng
  1437. '    ReDim proxyData(0 To proxyDataCount)
  1438. '    For i = 1 To proxyDataCount
  1439. '        .ReadStringInt proxyData(i).proxyName
  1440. '        .ReadStringInt proxyData(i).address
  1441. '        .ReadStringLngByt proxyData(i).port
  1442. '        proxyData(i).isByPass = .GetByte
  1443. '        .ReadStringLng proxyData(i).bypass
  1444. '    Next i
  1445. 'End With
  1446. ''Open AppPath & "proxy.dat" For Binary As hFile 'Len = Len(proxyData(0))
  1447. ''    Get hFile, , tproxyDataCount
  1448. ''    proxyDataCount = tproxyDataCount
  1449. ''    If proxyDataCount > 0 Then
  1450. ''        ReDim proxyData(0 To proxyDataCount)
  1451. ''        Dim i As Integer
  1452. ''        For i = 1 To proxyDataCount
  1453. ''            Get hFile, , proxyData(i)
  1454. ''            With proxyData(i)
  1455. ''                .proxyName = Replace(.proxyName, vbNullChar, Chr$(32))
  1456. ''                .address = Replace(.address, vbNullChar, Chr$(32))
  1457. ''                .bypass = Replace(.bypass, vbNullChar, Chr$(32))
  1458. ''                .port = Replace(.port, vbNullChar, Chr$(32))
  1459. ''            End With
  1460. ''        Next
  1461. ''    End If
  1462. ''Close hFile
  1463. 'Exit Sub
  1464. '
  1465. 'due:
  1466. '    ReDim proxyData(0 To 0)
  1467. '    proxyDataCount = 0
  1468. 'End Sub
  1469. Public Sub LoadSettingsFromIni()
  1470. 'Dim i&, tmpVal&
  1471. Dim tIniFile As cINIFile
  1472. Set tIniFile = New cINIFile
  1473. With tIniFile
  1474.     .IniFile = AppPath & MainIniName
  1475.     
  1476.     IsUseProxy = .ReadKey("Proxy", "UseProxy", "1")
  1477.     ProxySelected = .ReadKey("Proxy", "UseIndex", "0")
  1478.     isLockPresentWeb = .ReadKey("Other", "LockPresentWeb", "0")
  1479.     PreventPopWindow = .ReadKey("Other", "PreventPopWindow", "2")
  1480.     'gOffline = .ReadKey("Other", "Offline", "0")
  1481.     DragDropSaveImageFolder = .ReadKey("Other", "DragDropSaveImageFolder", "")
  1482.     DragDropSaveTextFolder = .ReadKey("Other", "DragDropSaveTextFolder", "")
  1483.     EnableUrlFilter = .ReadKey("Other", "EnableUrlFilter", "1")
  1484.     gEnablePageRule = .ReadKey("Other", "EnablePageRule", "1")
  1485.     
  1486.     '收藏夹
  1487.     gFavoriteUseDefaultPath = .ReadInt("Favorite", "UseDefaultPath", 1)
  1488.     gFavoriteCustomPath = .ReadKey("Favorite", "CustomPath")
  1489.     gFavoriteSinglLineMenu = .ReadInt("Favorite", "SinglLineMenu", 1)
  1490.     gFavoriteShowHidden = .ReadInt("Favorite", "ShowHiddenFile", 0)
  1491.     
  1492.     ScrollRate = .ReadKey("MouseEvent", "ScrollRate", "2")
  1493.     ScrollRate2 = .ReadKey("MouseEvent", "ScrollRate2", "4")
  1494.     RollInvert = .ReadKey("MouseEvent", "RollInvert", "0")
  1495.     Rollmode = .ReadKey("MouseEvent", "Rollmode", "0")
  1496.     EnableDragLink = .ReadKey("MouseEvent", "EnableDragLink", "1")
  1497.     
  1498. '    For i = 0 To mouseEventCount - 1
  1499. '        mouse_event_prc(i).InsideIndex = CLng(.ReadKey("MouseEvent", "Event" & LTrim$(Str(i)), Str(def_mouse_event(i))))
  1500. '    Next i
  1501.     mouse_event_leftright.InsideIndex = CLng(.ReadKey("MouseEvent", "Event_LeftRight", Str(def_mouse_event_leftright)))
  1502.     mouse_event_rightleft.InsideIndex = CLng(.ReadKey("MouseEvent", "Event_RightLeft", Str(def_mouse_event_rightleft)))
  1503.     
  1504.     
  1505.     
  1506.     SaveWhenExit = .ReadKey("Other", "SaveWhenExit", "1")
  1507. End With
  1508. preSaveWhenExit = SaveWhenExit
  1509. If proxyDataCount < 0 Then
  1510.     IsUseProxy = 0
  1511.     ProxySelected = 0
  1512. End If
  1513. If ProxySelected > proxyDataCount Then ProxySelected = proxyDataCount
  1514. Call LoadSearchurlFromINI
  1515. Call LoadDragDropSetting
  1516. Call LoadAddbarKey
  1517. Call LoadPlugin
  1518. End Sub
  1519. Public Sub SaveSettingsToIni(Optional nExit As Boolean = True)
  1520. Dim tIniFile As cINIFile
  1521. If SaveWhenExit = 1 Or (Not nExit) Then
  1522.     Set tIniFile = New cINIFile
  1523.     'If mnuNoProxy.Checked Then IsUseProxy = 0 Else IsUseProxy = 1
  1524.     With tIniFile
  1525.         .IniFile = AppPath & MainIniName
  1526.         Call .WriteKey("Proxy", "UseProxy", Str$(IsUseProxy))
  1527.         Call .WriteKey("Proxy", "UseIndex", Str$(ProxySelected))
  1528.         
  1529.         Call .WriteKey("Other", "LockPresentWeb", Str$(isLockPresentWeb))
  1530.         Call .WriteKey("Other", "PreventPopWindow", Str$(PreventPopWindow))
  1531. '        Call .WriteKey("Other", "Offline", Str$(gOffline))
  1532.         Call .WriteKey("Other", "DragDropSaveImageFolder", DragDropSaveImageFolder)
  1533.         Call .WriteKey("Other", "DragDropSaveTextFolder", DragDropSaveTextFolder)
  1534.         Call .WriteKey("Other", "EnableUrlFilter", Str$(EnableUrlFilter))
  1535.         Call .WriteKey("Other", "EnablePageRule", Str$(gEnablePageRule))
  1536.         
  1537.         
  1538.         Call .WriteKey("Favorite", "UseDefaultPath", Str$(gFavoriteUseDefaultPath))
  1539.         Call .WriteKey("Favorite", "CustomPath", gFavoriteCustomPath)
  1540.         Call .WriteKey("Favorite", "SinglLineMenu", Str$(gFavoriteSinglLineMenu))
  1541.         Call .WriteKey("Favorite", "ShowHiddenFile", Str$(gFavoriteShowHidden))
  1542.         
  1543.         
  1544.         Call .WriteKey("MouseEvent", "ScrollRate", Str$(ScrollRate))
  1545.         Call .WriteKey("MouseEvent", "ScrollRate2", Str$(ScrollRate2))
  1546.         Call .WriteKey("MouseEvent", "RollInvert", Str$(RollInvert))
  1547.         Call .WriteKey("MouseEvent", "Rollmode", Str$(Rollmode))
  1548.         Call .WriteKey("MouseEvent", "EnableDragLink", Str$(EnableDragLink))
  1549.         
  1550. '        For i = 0 To mouseEventCount - 1
  1551. '            Call .WriteKey("MouseEvent", "Event" & LTrim$(Str(i)), Str$(mouse_event_prc(i).InsideIndex))
  1552. '        Next i
  1553.         Call .WriteKey("MouseEvent", "Event_LeftRight", Str$(mouse_event_leftright.InsideIndex))
  1554.         Call .WriteKey("MouseEvent", "Event_RightLeft", Str$(mouse_event_rightleft.InsideIndex))
  1555.         
  1556.         
  1557.         
  1558.     End With
  1559.     Call MouseHand.Save(AppPath & MainIniName)
  1560.     Call SaveDragDropSetting
  1561.     Call SaveSearchurlToINI
  1562.     Call SaveAddbarKey
  1563. '    Call SaveExTools
  1564.     Call SaveDownloadControl
  1565.     
  1566.     Call SaveToolbarButtonPos
  1567.     
  1568.     Call SaveSearchEgn
  1569.     Call SaveMulSearchEgn
  1570.     Call SavePlugin
  1571.     Call SaveDownManager
  1572. End If
  1573. If preSaveWhenExit <> SaveWhenExit Then
  1574.     Call tIniFile.WriteKey("Other", "SaveWhenExit", Str$(SaveWhenExit))
  1575. End If
  1576. Call SaveMoreFavInfo
  1577. Call SaveUrlFilter
  1578. Call SavePageRule
  1579. End Sub
  1580. '---------------------------------------------------------------------------------------
  1581. ' Procedure : SaveToolbarButtonPos
  1582. ' DateTime  : 2005-8-9 22:57
  1583. ' Author    : Lingll
  1584. ' Purpose   : 保存工具栏按钮
  1585. '---------------------------------------------------------------------------------------
  1586. Private Sub SaveToolbarButtonPos()
  1587. Dim tArr() As cButtonPosInfo
  1588. tArr = m_cTbrMain.p_colBff("desarr")
  1589. Call SaveTbrButtonPos("main", tArr)
  1590. tArr = m_cTbrSmall.p_colBff("desarr")
  1591. Call SaveTbrButtonPos("small", tArr)
  1592. End Sub
  1593. Public Sub SwitchTabs(ByVal index As Long, Optional ByVal oldIndex As Long = 0)
  1594. On Error GoTo due
  1595. 'Dim prehwd As Long
  1596. Dim newhwd As Long
  1597. 'Dim preIndex As Long
  1598. Dim newIndex As Long
  1599. If oldIndex = 0 Then oldIndex = gActiveWebIndex
  1600. If oldIndex = 0 Then Exit Sub
  1601. Debug.Print "switchtab", index, oldIndex
  1602. If webbState(oldIndex).webForm.WindowState = 2 Then
  1603.     'preIndex = oldIndex
  1604.     newIndex = index
  1605.     'prehwd = webbState(oldIndex).webForm.hwnd
  1606.     newhwd = webbState(index).webForm.hWnd
  1607.     
  1608.     SendMessageLng hMDIClient, WM_SETREDRAW, 0&, ByVal 0&
  1609.     BringWindowToTop (newhwd)
  1610.     SendMessageLng hMDIClient, WM_SETREDRAW, 1&, ByVal 0&
  1611.     RedrawWindow newhwd, ByVal 0&, 0&, _
  1612.         RDW_ALLCHILDREN Or RDW_UPDATENOW Or RDW_INVALIDATE Or RDW_FRAME
  1613.     
  1614. Else
  1615.     'webbState(index).webForm.SetFocus
  1616.     BringWindowToTop webbState(index).webForm.hWnd
  1617. End If
  1618. Exit Sub
  1619. due:
  1620.     ErrorLog.AddLog "switch " & vbTab & Err.Description
  1621.     Resume Next
  1622. End Sub
  1623. Public Sub ChangeStatusText(nText As String, Optional ByVal index As Long = 0)
  1624. 'SendMessage stabMe.Hwnd, SB_SETTEXTA, index, ByVal nText
  1625. If Not m_cSsbar Is Nothing Then
  1626.     m_cSsbar.SetText index, nText
  1627. End If
  1628. End Sub
  1629. ''获取关闭页面信息
  1630. 'Public Sub GetClosePages(nUrls() As String, nTitles() As String, nCount As Long)
  1631. 'Dim i&
  1632. 'nCount = re_closepage_count
  1633. 'ReDim nUrls(0 To re_closepage_count)
  1634. 'ReDim nTitles(0 To re_closepage_count)
  1635. 'For i = 1 To re_closepage_count
  1636. '    nUrls(i) = mnuRecent_ClosePage(i).Tag
  1637. '    nTitles(i) = mnuRecent_ClosePage(i).Caption
  1638. 'Next i
  1639. 'End Sub
  1640. Private Sub EnableButtons()
  1641. Dim nEnabled As Boolean
  1642. nEnabled = (loadedBrowserCount > 0)
  1643. If Not m_cTbrMain Is Nothing Then
  1644.     With m_cTbrMain
  1645.         If Not nEnabled Then
  1646.             Call .EnableButton(TbrID_Main_Back, nEnabled)
  1647.             Call .EnableButton(TbrID_Main_Forward, nEnabled)
  1648.             Call .CheckButton(TbrID_Main_AutoPreventPop, False)
  1649.         End If
  1650.         Call .EnableButton(TbrID_Main_Refresh, nEnabled)
  1651.         Call .EnableButton(TbrID_Main_Stop, nEnabled)
  1652.         Call .EnableButton(TbrID_Main_FontSize, nEnabled)
  1653.         Call .EnableButton(TbrID_Main_AutoPreventPop, nEnabled)
  1654.         Call .EnableButton(TbrID_Main_DLCtrl, nEnabled)
  1655.     End With
  1656. End If
  1657. 'With tlbMe
  1658. '    If Not nEnabled Then
  1659. '        .Buttons(TbrK_Main_Back).Enabled = nEnabled
  1660. '        .Buttons(TbrK_Main_Forward).Enabled = nEnabled
  1661. '        .Buttons(TbrK_Main_AutoPreventPop).Value = tbrUnpressed
  1662. '        Call m_cTbrSmall.CheckButton(TbrID_Small_LockNew, False)
  1663. '        'tlbOther.Buttons(TbrK_Small_LockNew).Value = tbrUnpressed
  1664. '    End If
  1665. '    .Buttons(TbrK_Main_Refresh).Enabled = nEnabled
  1666. '    .Buttons(TbrK_Main_Stop).Enabled = nEnabled
  1667. '    .Buttons(TbrK_Main_FontSize).Enabled = nEnabled
  1668. '    .Buttons(TbrK_Main_AutoPreventPop).Enabled = nEnabled
  1669. '    .Buttons(TbrK_Main_BlockElement).Enabled = nEnabled
  1670. 'End With
  1671. If Not m_cTbrSmall Is Nothing Then
  1672.     With m_cTbrSmall
  1673.         If Not nEnabled Then
  1674.             Call .CheckButton(TbrID_Small_LockNew, False)
  1675.         End If
  1676.         Call .EnableButton(TbrID_Small_LockNew, nEnabled)
  1677.         Call .EnableButton(TbrID_Small_NextTab, nEnabled)
  1678.         Call .EnableButton(TbrID_Small_LastTab, nEnabled)
  1679.         Call .EnableButton(TbrID_Small_Max, nEnabled)
  1680.         Call .EnableButton(TbrID_Small_Min, nEnabled)
  1681.         Call .EnableButton(TbrID_Small_NextTab, nEnabled)
  1682.         Call .EnableButton(TbrID_Small_Close, nEnabled)
  1683.     End With
  1684. End If
  1685. 'With tlbOther
  1686. '    .Buttons(TbrK_Small_LockNew).Enabled = nEnabled
  1687. '    .Buttons(TbrK_Small_NextTab).Enabled = nEnabled
  1688. '    .Buttons(TbrK_Small_LastTab).Enabled = nEnabled
  1689. '    .Buttons(TbrK_Small_Max).Enabled = nEnabled
  1690. '    .Buttons(TbrK_Small_Min).Enabled = nEnabled
  1691. '    .Buttons(TbrK_Small_NextTab).Enabled = nEnabled
  1692. '    .Buttons(TbrK_Small_Close).Enabled = nEnabled
  1693. 'End With
  1694. With mcTbrSearch
  1695.     If nEnabled Then
  1696.         .SetButtonState TbrID_Search_Find, TBSTATE_ENABLED
  1697.         .SetButtonState TbrID_Search_HeightLight, TBSTATE_ENABLED
  1698.     Else
  1699.         .SetButtonState TbrID_Search_Find, 0
  1700.         .SetButtonState TbrID_Search_HeightLight, 0
  1701.     End If
  1702. End With
  1703. 'With tbrSearch
  1704. '    .Buttons(TbrK_Search_Find).Enabled = nEnabled
  1705. '    .Buttons(TbrK_Search_HeightLight).Enabled = nEnabled
  1706. 'End With
  1707. If loadedBrowserCount <= 0 Then
  1708.     Call ChangeCaption
  1709. End If
  1710. End Sub
  1711. '设置搜索栏button
  1712. Public Sub SetSearchbarButtons()
  1713. With mcTbrSearch
  1714.     If gSearchEgnCount > 0 Then
  1715.         .SetButtonCaption TbrID_Search_Search, gSearchEgn(gDefaultEgn).Title
  1716.         .SetButtonState TbrID_Search_Search, TBSTATE_ENABLED
  1717.     Else
  1718.         .SetButtonCaption TbrID_Search_Search, ""
  1719.         .SetButtonState TbrID_Search_Search, 0
  1720.     End If
  1721.         
  1722.     If gMulSearchCount > 0 Then
  1723.         .SetButtonCaption TbrID_Search_MulSearch, gMulSearch(gDefaultMulEgn).Title
  1724.         .SetButtonState TbrID_Search_MulSearch, TBSTATE_ENABLED
  1725.     Else
  1726.         .SetButtonCaption TbrID_Search_MulSearch, ""
  1727.         .SetButtonState TbrID_Search_MulSearch, 0
  1728.     End If
  1729. End With
  1730. Call ResizeTbrSearch
  1731. End Sub
  1732. 'Public Property Get hMenu() As Long
  1733. 'hMenu = mHMenu
  1734. 'End Property
  1735. Private Sub LoadFavoriteMenu()
  1736. 'Dim favPath As String
  1737. 'favPath = favoritePath
  1738. hMnuFavorite = GetSubMenu(mHMenu, 2)
  1739. hMnuMoreFav = GetSubMenu(hMnuFavorite, 2)
  1740. hMnuReopen = GetSubMenu(hMnuFavorite, 3)
  1741. 'loadSubInfo(0).hwnd = hMnuFavorite
  1742. 'loadSubInfo(0).path = favPath
  1743. 'loadSubInfo(0).Title = "收藏"
  1744. '
  1745. '
  1746. 'Call SeekFold(favPath, hMnuFavorite, FavoriteMenuPosOffset, False)
  1747. End Sub
  1748. 'Public Property Get MainMenuItemCount() As Long
  1749. 'MainMenuItemCount = mMainMenuItemCount
  1750. 'End Property
  1751. '
  1752. 'Public Function GetCurrentMenuItemCount() As Long
  1753. 'GetCurrentMenuItemCount = GetMenuItemCount(mHMenu)
  1754. 'End Function
  1755. Public Property Let LocationURLText(ByVal vNewValue As String)
  1756. If Not addbarGetFocus Then
  1757.     Call SetWindowText(cmbAdd.hWnd, vNewValue)
  1758. End If
  1759. End Property
  1760. Public Sub NewIE(Optional url As String = "")
  1761. Dim tIE As New SHDocVw.InternetExplorer
  1762. If url = "" Then
  1763.     tIE.Navigate "about:blank"
  1764. Else
  1765.     tIE.Navigate url
  1766. End If
  1767. tIE.Visible = True
  1768.     
  1769. End Sub
  1770. Public Sub ExpandNode(hItem&, nExpanded As Boolean)
  1771. 'mvTvwFavorite.ExpandNode  tvwFavorite.Nodes(nKey), nExpanded
  1772. mvTvwFavorite.ExpandNode hItem, nExpanded
  1773. End Sub
  1774. Public Sub ShowMe(nShow As Boolean)
  1775. Debug.Print "fratitlebutton.Visible ", fraTitleButton.Visible
  1776. If nShow Then
  1777.     Me.Show
  1778.     Me.WindowState = mWindowState
  1779.     fraTitleButton.Visible = True
  1780.     mySysTray.InTray = False
  1781.     Call UnregisterHotKey(Me.hWnd, 1)
  1782. Else
  1783.     mWindowState = Me.WindowState
  1784.     Me.WindowState = vbMinimized
  1785.     Me.Hide
  1786.     fraTitleButton.Visible = False
  1787.     mySysTray.InTray = True
  1788.     
  1789.     Call RegisterHotKey(Me.hWnd, 1, MOD_CONTROL, VK_F8)
  1790. End If
  1791. Debug.Print "fratitlebutton.Visible2 ", fraTitleButton.Visible
  1792. End Sub
  1793. ''加载"外部工具"菜单
  1794. 'Public Sub LoadExToolsMenu()
  1795. 'Dim i&, ub&, tstr$
  1796. '
  1797. 'With pMnu_OuterTools
  1798. '    .ClearItems
  1799. '
  1800. '    If ExToolsCount > 0 Then
  1801. '        For i = 1 To ExToolsCount
  1802. '            If i < 10 Then
  1803. '                tstr = "&" & LTrim(Str(i)) & "  "
  1804. '            Else
  1805. '                tstr = Space(3)
  1806. '            End If
  1807. '            .Add tstr & ExTools(i).Caption, , i + IdOffset_OuterTools
  1808. '        Next i
  1809. '    Else
  1810. '        .Add "(空)", pmsString Or pmsDisabled
  1811. '    End If
  1812. '
  1813. '    .Add "", pmsSeparator
  1814. '    .Add "下载批量文件(flashget)...", , IDM_Main_OuterTools_FlashgetDownload
  1815. '
  1816. 'End With
  1817. 'ub = mnuOutToolsItems.UBound
  1818. 'mnuOutToolsItems(0).Visible = True
  1819. 'For i = 1 To ub
  1820. '    Unload mnuOutToolsItems(i)
  1821. 'Next i
  1822. 'For i = 1 To ExToolsCount
  1823. '    Load mnuOutToolsItems(i)
  1824. '    If i < 10 Then
  1825. '        tstr = "&" & LTrim(Str(i)) & "  "
  1826. '    Else
  1827. '        tstr = Space(3)
  1828. '    End If
  1829. '    mnuOutToolsItems(i).Caption = tstr & ExTools(i).Caption
  1830. '    mnuOutToolsItems(i).Enabled = True
  1831. '    mnuOutToolsItems(i).Visible = True
  1832. 'Next i
  1833. 'If ExToolsCount > 0 Then
  1834. '    mnuOutToolsItems(0).Visible = False
  1835. 'End If
  1836. 'End Sub
  1837. Private Sub OpenClipboardUrl()
  1838. Dim tstr$
  1839. tstr = Trim(Clipboard.GetText)
  1840. tstr = Replace(tstr, " ", "")
  1841. tstr = Replace(tstr, Chr(10) & Chr(13), "")
  1842. Call NewWebbrowser(tstr)
  1843. End Sub
  1844. '初始化ImageList
  1845. Private Sub IniImglst()
  1846. Dim tImg As cImgEx
  1847. 'Dim tDskDc&
  1848. Set tImg = New cImgEx
  1849. 'tDskDc = GetDC(0)
  1850. ''ImageList_AddMasked ImageList_tblMe.hImageList, LoadImageEx(IDB_MainBar, "gif").handle, RGB(255, 0, 255)
  1851. 'tImg.Create 260, 20, tDskDc
  1852. 'tImg.CopyByBmp LoadImageEx(IDB_MainBar, "gif").handle
  1853. 'With ImageList_tblMe.ListImages
  1854. '    .Add , ImgK_Main_New, tImg.ExtractImg2(20, 20, 0)
  1855. '    .Add , ImgK_Main_Back, tImg.ExtractImg2(20, 20, 1)
  1856. '    .Add , ImgK_Main_Forward, tImg.ExtractImg2(20, 20, 2)
  1857. '    .Add , ImgK_Main_Stop, tImg.ExtractImg2(20, 20, 3)
  1858. '    .Add , ImgK_Main_Refresh, tImg.ExtractImg2(20, 20, 4)
  1859. '    .Add , ImgK_Main_Favorites, tImg.ExtractImg2(20, 20, 5)
  1860. '    .Add , ImgK_Main_Proxy, tImg.ExtractImg2(20, 20, 6)
  1861. '    .Add , ImgK_Main_FontSize, tImg.ExtractImg2(20, 20, 7)
  1862. '    .Add , ImgK_Main_AutoPreventPop, tImg.ExtractImg2(20, 20, 8)
  1863. '
  1864. '    .Add , ImgK_Main_RecentClose, tImg.ExtractImg2(20, 20, 9)
  1865. '    .Add , ImgK_Main_BlockElement, tImg.ExtractImg2(20, 20, 10)
  1866. '    .Add , ImgK_Main_Option, tImg.ExtractImg2(20, 20, 11)
  1867. '    .Add , ImgK_Main_FullScreen, tImg.ExtractImg2(20, 20, 12)
  1868. '
  1869. 'End With
  1870. '
  1871. '
  1872. '
  1873. 'tImg.Create 260, 20, tDskDc
  1874. 'tImg.CopyByBmp LoadImageEx(IDB_MainBar_Gray, "gif").handle
  1875. 'With ImageList_tblMe_gray.ListImages
  1876. '    .Add , ImgK_Main_New, tImg.ExtractImg2(20, 20, 0)
  1877. '    .Add , ImgK_Main_Back, tImg.ExtractImg2(20, 20, 1)
  1878. '    .Add , ImgK_Main_Forward, tImg.ExtractImg2(20, 20, 2)
  1879. '    .Add , ImgK_Main_Stop, tImg.ExtractImg2(20, 20, 3)
  1880. '    .Add , ImgK_Main_Refresh, tImg.ExtractImg2(20, 20, 4)
  1881. '    .Add , ImgK_Main_Favorites, tImg.ExtractImg2(20, 20, 5)
  1882. '    .Add , ImgK_Main_Proxy, tImg.ExtractImg2(20, 20, 6)
  1883. '    .Add , ImgK_Main_FontSize, tImg.ExtractImg2(20, 20, 7)
  1884. '    .Add , ImgK_Main_AutoPreventPop, tImg.ExtractImg2(20, 20, 8)
  1885. '    .Add , ImgK_Main_RecentClose, tImg.ExtractImg2(20, 20, 9)
  1886. '    .Add , ImgK_Main_BlockElement, tImg.ExtractImg2(20, 20, 10)
  1887. '    .Add , ImgK_Main_Option, tImg.ExtractImg2(20, 20, 11)
  1888. '    .Add , ImgK_Main_FullScreen, tImg.ExtractImg2(20, 20, 12)
  1889. 'End With
  1890. 'Set IcoImgList = ImageList_Menu
  1891. 'Set gODrawMenu.IcoImgList = ImageList_Menu
  1892. gODrawMenu.IniImageList LoadImageEx(IDB_MenuIcon, "gif").handle, 16, 16
  1893. gODrawMenu.IniImageList LoadImageEx(IDB_PluginIcon, "gif").handle, 16, 16, "plugin"
  1894. 'With ImageList_Menu.ListImages
  1895. '    .Add , ImgK_Icon_Folder, LoadResPicture(IDI_Folder, vbResBitmap)
  1896. '    .Add , ImgK_Icon_Url, LoadResPicture(IDI_Url, vbResBitmap)
  1897. '    '.Add , ImgK_Icon_Reopen, LoadResPicture(IDI_Fav_Reopen, vbResBitmap)
  1898. '    '.Add , ImgK_Icon_AddFav, LoadResPicture(IDI_Fav_Add, vbResBitmap)
  1899. '    '.Add , ImgK_Icon_FavFav, LoadResPicture(IDI_Fav_Fav, vbResBitmap)
  1900. '    .Add , ImgK_Icon_Folder_Open, LoadResPicture(IDI_Folder_Open, vbResBitmap)
  1901. '    '.Add , ImgK_Icon_AddFav_Gray, LoadResPicture(IDI_Fav_Add_Gray, vbResBitmap)
  1902. 'End With
  1903. 'tImg.Create 91, 13, tDskDc
  1904. 'tImg.CopyByBmp LoadImageEx(IDB_OtherBar, "gif").handle
  1905. 'With ImageList_tlbOther.ListImages
  1906. '    .Add , ImgK_Small_LastTab, tImg.ExtractImg(0, 0, 13, 13)
  1907. '    .Add , ImgK_Small_NextTab, tImg.ExtractImg(13, 0, 13, 13)
  1908. '    .Add , ImgK_Small_Min, tImg.ExtractImg(26, 0, 13, 13)
  1909. '    .Add , ImgK_Small_Max, tImg.ExtractImg(39, 0, 13, 13)
  1910. '    .Add , ImgK_Small_Close, tImg.ExtractImg(52, 0, 13, 13)
  1911. '    .Add , ImgK_Small_LockPresent, tImg.ExtractImg(65, 0, 13, 13)
  1912. '    .Add , ImgK_Small_LockNew, tImg.ExtractImg(78, 0, 13, 13)
  1913. 'End With
  1914. 'tImg.Create 48, 16, tDskDc
  1915. 'tImg.CopyByBmp LoadImageEx(IDB_SearchBar, "gif").handle
  1916. 'With ImageList_Search.ListImages
  1917. '    .Add , ImgK_Search_Search, tImg.ExtractImg(0, 0, 16, 16)
  1918. '    .Add , ImgK_Search_HeightLight, tImg.ExtractImg(16, 0, 16, 16)
  1919. '    .Add , ImgK_Search_Find, tImg.ExtractImg(32, 0, 16, 16)
  1920. '
  1921. ''    .Add , ImgK_Search_Search, LoadResPicture(IDB_Search_Search, vbResBitmap)
  1922. ''    .Add , ImgK_Search_HeightLight, LoadResPicture(IDB_Search_HeightLight, vbResBitmap)
  1923. ''    .Add , ImgK_Search_Find, LoadResPicture(IDB_Search_Find, vbResBitmap)
  1924. 'End With
  1925. 'Call ReleaseDC(0, tDskDc)
  1926. End Sub
  1927. '初始化主工具栏
  1928. Private Sub IniToolbar()
  1929. Dim i& ', tBtn As MSComctlLib.Button
  1930. Dim tcnt&
  1931. Call LoadMainMenu
  1932. Set mcTbrMainMenu = CreateCmmCtrl(strCLSID_cToolBar) '   New cToolBar
  1933. With mcTbrMainMenu
  1934.     .CreateToolbar 0, False, False, 0, 15, TBSTYLE_Default Xor TBSTYLE_TOOLTIPS, 0
  1935.     .SetPadding 5, 4
  1936.     tcnt = GetMenuItemCount(gHMainMenu)
  1937.     For i = 0 To tcnt - 1
  1938.         .AddButton i + 100, GetMenuTextVb(gHMainMenu, i), , BTNS_AUTOSIZE Or BTNS_DROPDOWN
  1939.     Next i
  1940. End With
  1941. 'mHwndTbrMain = FindWindowEx(tlbMe.hwnd, 0&, "msvb_lib_toolbar", vbNullString)
  1942. 'With tlbMe
  1943. '    .ImageList = ImageList_tblMe
  1944. '    .DisabledImageList = ImageList_tblMe_gray
  1945. '
  1946. '    Set tBtn = .Buttons.Add(, TbrK_Main_New, , tbrDropdown, ImgK_Main_New)
  1947. '    tBtn.ToolTipText = "新建"
  1948. '    tBtn.Description = "新建"
  1949. '    tBtn.ButtonMenus.Add , "newblankpage", "空白页"
  1950. '    tBtn.ButtonMenus.Add , "newpresentpage", "当前页"
  1951. '    tBtn.ButtonMenus.Add , "newclipboard", "剪贴板"
  1952. '    tBtn.ButtonMenus.Add , , "-"
  1953. '    tBtn.ButtonMenus.Add , "newIEblank", "IE(空白)"
  1954. '    tBtn.ButtonMenus.Add , "newIEpresent", "IE(当前)"
  1955. '
  1956. '    'For i = 2 To 6
  1957. '    '    .Buttons.Add , ImageList_tblMe.ListImages(i).Key, , , i
  1958. '    'Next
  1959. '
  1960. '    Set tBtn = .Buttons.Add(, TbrK_Main_Back, , tbrDropdown, ImgK_Main_Back)
  1961. '    tBtn.ToolTipText = "后退"
  1962. '    tBtn.Description = "后退"
  1963. '
  1964. '    Set tBtn = .Buttons.Add(, TbrK_Main_Forward, , tbrDropdown, ImgK_Main_Forward)
  1965. '    'tBtn.Style = tbrDropdown
  1966. '    tBtn.ToolTipText = "前进"
  1967. '    tBtn.Description = "前进"
  1968. '
  1969. '    Set tBtn = .Buttons.Add(, TbrK_Main_Stop, , , ImgK_Main_Stop) ' .Buttons("stop")
  1970. '    tBtn.ToolTipText = "停止"
  1971. '    tBtn.Description = "停止"
  1972. '
  1973. '    Set tBtn = .Buttons.Add(, TbrK_Main_Refresh, , , ImgK_Main_Refresh)   '.Buttons("refresh")
  1974. '    tBtn.ToolTipText = "刷新"
  1975. '    tBtn.Description = "刷新"
  1976. '
  1977. '    Set tBtn = .Buttons.Add(, TbrK_Main_Favorites, , tbrDropdown, ImgK_Main_Favorites)   ' .Buttons("favorites")
  1978. '    'tBtn.Style = tbrDropdown
  1979. '    tBtn.ToolTipText = "收藏"
  1980. '    tBtn.Description = "收藏"
  1981. '
  1982. '    Set tBtn = .Buttons.Add(, TbrK_Main_Proxy, , tbrDropdown, ImgK_Main_Proxy)
  1983. '    tBtn.ToolTipText = "代理"
  1984. '    tBtn.Description = "代理"
  1985. '
  1986. '    Set tBtn = .Buttons.Add(, TbrK_Main_FontSize, , , ImgK_Main_FontSize)
  1987. '    tBtn.ToolTipText = "文字大小"
  1988. '    tBtn.Description = "文字大小"
  1989. '
  1990. '    Set tBtn = .Buttons.Add(, TbrK_Main_AutoPreventPop, , tbrDropdown, ImgK_Main_AutoPreventPop)
  1991. '    tBtn.ToolTipText = "自动过滤(当前窗口)"
  1992. '    tBtn.Description = "自动过滤(当前窗口)"
  1993. '
  1994. '
  1995. '    Set tBtn = .Buttons.Add(, TbrK_Main_RecentClose, , tbrDropdown, ImgK_Main_RecentClose)
  1996. '    'tBtn.ButtonMenus.Add , , "(空)"
  1997. '    'tBtn.ButtonMenus(1).Enabled = False
  1998. '    tBtn.ToolTipText = "最近关闭的页面"
  1999. '    tBtn.Description = "最近关闭的页面"
  2000. '
  2001. '
  2002. '    Set tBtn = .Buttons.Add(, TbrK_Main_BlockElement, , tbrDropdown, ImgK_Main_BlockElement)
  2003. '    tBtn.ToolTipText = "下载控制(当前窗口)"
  2004. '    tBtn.Description = "下载控制(当前窗口)"
  2005. '
  2006. '    Set tBtn = .Buttons.Add(, TbrK_Main_Option, , tbrDropdown, ImgK_Main_Option)
  2007. '    tBtn.ToolTipText = "选项"
  2008. '    tBtn.Description = "选项"
  2009. '
  2010. '    Set tBtn = .Buttons.Add(, TbrK_Main_FullScreen, , , ImgK_Main_FullScreen)
  2011. '    tBtn.ToolTipText = "全屏"
  2012. '    tBtn.Description = "全屏"
  2013. '
  2014. '    For i = 0 To gTbrMainBtnCnt - 1
  2015. '        .Buttons(i + 1).Visible = (gTbrMainBtnShow(i) = 1)
  2016. '    Next i
  2017. 'End With
  2018. 'mTbrOtherHwnd = FindWindowEx(tlbOther.hwnd, 0&, "msvb_lib_toolbar", vbNullString)
  2019. 'With tlbOther
  2020. '    .ImageList = ImageList_tlbOther
  2021. ''    For i = 1 To 5
  2022. ''        .Buttons.Add , ImageList_tlbOther.ListImages(i).Key, , , i
  2023. ''    Next
  2024. '
  2025. '    Set tBtn = .Buttons.Add(, TbrK_Small_LastTab, , , ImgK_Small_LastTab) ' .Buttons("lasttab")
  2026. '    tBtn.ToolTipText = "上一窗口"
  2027. '    tBtn.Description = "上一窗口"
  2028. '
  2029. '    Set tBtn = .Buttons.Add(, TbrK_Small_NextTab, , , ImgK_Small_NextTab) '.Buttons("nexttab")
  2030. '    tBtn.ToolTipText = "下一窗口"
  2031. '    tBtn.Description = "下一窗口"
  2032. '
  2033. '    Set tBtn = .Buttons.Add(, TbrK_Small_Min, , , ImgK_Small_Min)
  2034. '    tBtn.ToolTipText = "最小化|还原"
  2035. '    tBtn.Description = "最小化|还原"
  2036. '
  2037. '    Set tBtn = .Buttons.Add(, TbrK_Small_Max, , tbrDropdown, ImgK_Small_Max)
  2038. '    tBtn.ToolTipText = "最大化|还原"
  2039. '    tBtn.Description = "最大化|还原"
  2040. '    tBtn.ButtonMenus.Add , "restoreall", "还原所有(&R)"
  2041. '    tBtn.ButtonMenus.Add , "maxall", "最大化所有(&X)"
  2042. '
  2043. '
  2044. '    Set tBtn = .Buttons.Add(, TbrK_Small_Close, , tbrDropdown, ImgK_Small_Close) ' .Buttons("close")
  2045. '    'tBtn.Style = tbrDropdown
  2046. '    tBtn.ToolTipText = "关闭当前页"
  2047. '    tBtn.Description = "关闭当前页"
  2048. '    tBtn.ButtonMenus.Add , "closeother", "反向"
  2049. '    tBtn.ButtonMenus.Add , "closelike", "类似"
  2050. '    'tBtn.ButtonMenus("closelike").Enabled = False
  2051. '    tBtn.ButtonMenus.Add , "closeall", "所有"
  2052. '    tBtn.ButtonMenus.Add , , "-"
  2053. '    tBtn.ButtonMenus.Add , "close", "当前"
  2054. '
  2055. '
  2056. '
  2057. '    Set tBtn = .Buttons.Add(, , , tbrSeparator)
  2058. '    tBtn.Description = "分隔符"
  2059. '
  2060. '    Set tBtn = .Buttons.Add(, TbrK_Small_LockPresent, , tbrCheck, ImgK_Small_LockPresent)  ' .Buttons("lockpresent")
  2061. '    'tBtn.Style = tbrCheck
  2062. '    tBtn.Value = isLockPresentWeb
  2063. '    tBtn.ToolTipText = "不激活新窗口"
  2064. '    tBtn.Description = "不激活新窗口"
  2065. '
  2066. '
  2067. '    Set tBtn = .Buttons.Add(, TbrK_Small_LockNew, , tbrCheck, ImgK_Small_LockNew)  ' .Buttons("locknew")
  2068. '    'tBtn.Style = tbrCheck
  2069. '    tBtn.ToolTipText = "总在新窗口打开"
  2070. '    tBtn.Description = "总在新窗口打开"
  2071. '
  2072. '
  2073. '    For i = 0 To gTbrSmallBtnCnt - 1
  2074. '        .Buttons(i + 1).Visible = (gTbrSmallBtnShow(i) = 1)
  2075. '    Next i
  2076. '
  2077. ''    .Left = 30
  2078. ''    .Top = 0
  2079. 'End With
  2080. '搜索栏
  2081. 'mTbrSearchHwnd = FindWindowEx(tbrSearch.hwnd, 0&, "msvb_lib_toolbar", vbNullString)
  2082. 'With tbrSearch
  2083. '    .ImageList = ImageList_Search
  2084. '    Set tBtn = .Buttons.Add(, TbrK_Search_Search, , tbrDropdown, ImgK_Search_Search)
  2085. '    'tBtn.Caption = "gh"
  2086. '    tBtn.ToolTipText = "多引擎搜索"
  2087. '
  2088. '    Set tBtn = .Buttons.Add(, TbrK_Search_HeightLight, , , ImgK_Search_HeightLight)
  2089. '    tBtn.ToolTipText = "高亮关键字"
  2090. '
  2091. '    Set tBtn = .Buttons.Add(, TbrK_Search_Find, , , ImgK_Search_Find)
  2092. '    tBtn.ToolTipText = "页面中查找(F3)"
  2093. '
  2094. '
  2095. ''    SendMessage mTbrSearchHwnd, TB_SETSTYLE, 0, _
  2096. ''        ByVal (SendMessage(mTbrSearchHwnd, TB_GETSTYLE, 0, 0) Or TBSTYLE_LIST)
  2097. ''    SendMessage mTbrSearchHwnd, TB_SETEXTENDEDSTYLE, 0&, _
  2098. ''        ByVal (SendMessage(mTbrSearchHwnd, TB_GETEXTENDEDSTYLE, 0, 0) Or TBSTYLE_EX_MIXEDBUTTONS)
  2099. ''
  2100. ''    ChangeTbrbtnCaption mTbrSearchHwnd, 101, "高亮关键字", False
  2101. ''    ChangeTbrbtnCaption mTbrSearchHwnd, 102, "页面中查找(F3)", False
  2102. '
  2103. '
  2104. '    .Width = GetTbrWidth(tbrSearch) * 15
  2105. 'End With
  2106. Set mcTbrSearch = CreateCmmCtrl(strCLSID_cToolBar)     ' New cToolBar
  2107. With mcTbrSearch
  2108.     .CreateToolbar pctReBar.hWnd, True, True, 16, 16, , TBSTYLE_EX_Default Or TBSTYLE_EX_MIXEDBUTTONS
  2109.     .AddImages LoadImageEx(IDB_SearchBar, "gif").handle, RGB(255, 0, 255)
  2110.     .AddButton TbrID_Search_Combo, "", 30, BTNS_SEP
  2111.     
  2112.     .AddButton TbrID_Search_Search, "", 0, BTNS_DROPDOWN Or BTNS_AUTOSIZE Or BTNS_SHOWTEXT
  2113. '    If gSearchEgnCount > 0 Then
  2114. '        .SetButtonCaption TbrID_Search_Search, gSearchEgn(gDefaultEgn).Title
  2115. '    Else
  2116. '        .SetButtonState TbrID_Search_Search, 0
  2117. '    End If
  2118.     
  2119.     .AddButton TbrID_Search_MulSearch, "", 1, BTNS_DROPDOWN Or BTNS_AUTOSIZE Or BTNS_SHOWTEXT
  2120. '    If gMulSearchCount > 0 Then
  2121. '        .SetButtonCaption TbrID_Search_MulSearch, gMulSearch(gDefaultMulEgn).Title
  2122. '    Else
  2123. '        .SetButtonState TbrID_Search_MulSearch, 0
  2124. '    End If
  2125.     
  2126.     .AddButton TbrID_Search_HeightLight, "高亮关键字", 2
  2127.     .AddButton TbrID_Search_Find, "页面中查找(F3)", 3
  2128.     SetParent cmbSearch.hWnd, .hwndToolbar
  2129. End With
  2130. Call SetSearchbarButtons
  2131. 'With tlbFavorite
  2132. '    .ImageList = ImageList_tlbOther
  2133. '    .Buttons.Add , "lock", , , ImgK_Small_LockPresent
  2134. '    .Buttons.Add , "close", , , ImgK_Small_Close
  2135. '    .Buttons("lock").Style = tbrCheck
  2136. '    .Buttons("lock").Value = tbrPressed
  2137. '    .Width = .ButtonWidth * 2
  2138. 'End With
  2139. Call IniMainTbr
  2140. Call IniSideBarTbr
  2141. Call IniSmallTbr
  2142. End Sub
  2143. ''获得toolbar最小长度
  2144. 'Private Function GetTbrWidth(nTbr As MSComctlLib.ToolBar) As Long
  2145. 'Dim tBtn As MSComctlLib.Button
  2146. 'Dim tLen&
  2147. 'For Each tBtn In nTbr.Buttons
  2148. '    tLen = tLen + tBtn.Width
  2149. 'Next tBtn
  2150. 'GetTbrWidth = tLen / 15
  2151. 'End Function
  2152. Private Function GetTbrWidth2(nTbr As cToolBar) As Long
  2153. Dim tR&
  2154. With nTbr
  2155.     .GetBtnRect .GetButton(.ButtonCount - 1, False), , , tR
  2156. End With
  2157. GetTbrWidth2 = tR
  2158. End Function
  2159. 'resize small tool bar
  2160. Public Function ResizeTbr()
  2161. Dim tLen&, tR&
  2162. With m_cTbrSmall
  2163.     .GetBtnRect .GetButton(.ButtonCount - 1, False), , , tR
  2164. End With
  2165. tLen = tR ' GetTbrWidth(tlbOther)
  2166. m_cRebar.SetBandChildSize ID_Band_SmallTbr, 20, 19, , , , False
  2167. m_cRebar.SetBandWidth m_cRebar.IdToIndex(ID_Band_SmallTbr), tLen
  2168. 'tLen = GetTbrWidth(tlbMe)
  2169. 'myRebar.SizeBand ID_Band_MainTbr, 0, 26, Screen.Width / Screen.TwipsPerPixelX, True
  2170. 'myRebar.SizeBand ID_Band_MainTbr, 0, 26, tLen, True
  2171. End Function
  2172. '关闭所有窗口
  2173. Public Sub CloseAllTabs()
  2174. Debug.Print "closeall"
  2175. If loadedBrowserCount > 0 Then
  2176.     If MsgBox("关闭所有窗口?", vbYesNo + vbQuestion) = vbYes Then
  2177.         'Call UnloadBrowsers(1, webbState(gActiveWebIndex).tabOrder - 1)
  2178.         Call UnloadBrowsers(1, webbState(gActiveWebIndex).TabBtn.index - 1)
  2179.         Call UnloadBrowsers(2, loadedBrowserCount)
  2180.         Call UnloadBrowser(gActiveWebIndex)
  2181.     End If
  2182. End If
  2183. End Sub
  2184. '关闭相似页面
  2185. Private Sub CloseLikeTabs(ByVal nIndex As Long)
  2186. Dim tFrm As frmCloseLike
  2187. Set tFrm = New frmCloseLike
  2188. Load tFrm
  2189. tFrm.IniMe nIndex, Me
  2190. End Sub
  2191. Private Sub IniPopMenu()
  2192. 'Set mBlockElementPopMenu = New cPopMenu
  2193. 'With mBlockElementPopMenu
  2194. '    .Create
  2195. '    .Add "下载图片", , 101
  2196. '    .Add "下载音乐", , 102
  2197. '    .Add "下载视频", , 103
  2198. '    .Add "允许脚本", , 104
  2199. '    .Add "允许ActiveX", , 105
  2200. '    .Add "允许JavaApplet", , 106
  2201. '    .Add "下载ActiveX", , 107
  2202. '    .Add "", pmsSeparator
  2203. '    .Add "全部开启", pmsString, 201
  2204. '    .Add "全部关闭", pmsString, 202
  2205. 'End With
  2206. Set mPopmnuAutoBlockPopwin = New cPopMenu
  2207. With mPopmnuAutoBlockPopwin
  2208.     .Create
  2209.     .Add "宽松", , 101
  2210.     .Add "一般", , 102
  2211.     .Add "严格", , 103
  2212. End With
  2213. Dim tHmnu&
  2214. tHmnu = LoadMenuVB(400)
  2215. Set mPopmnuTabpop = New cPopMenu
  2216. With mPopmnuTabpop
  2217.     .Create GetSubMenu(tHmnu, 0)
  2218.     .Parent = Me.hWnd
  2219.     .EnableItem mIDM_Tabs_AddFavor, False
  2220. End With
  2221. RemoveMenu tHmnu, 0, MF_BYPOSITION
  2222. Set mPopmnuSystray = New cPopMenu
  2223. With mPopmnuSystray
  2224.     .Create GetSubMenu(tHmnu, 0)
  2225.     .SetDefault 101
  2226.     .Parent = Me.hWnd
  2227. End With
  2228. RemoveMenu tHmnu, 0, MF_BYPOSITION
  2229. Set mPopmnuTurnTo = New cPopMenu
  2230. With mPopmnuTurnTo
  2231.     .Create GetSubMenu(tHmnu, 0)
  2232.     .Parent = Me.hWnd
  2233.     .SetDefault mIDM_Turnto_TT
  2234.     '.EnableItem mIDM_Turnto_GoUp, False
  2235. End With
  2236. RemoveMenu tHmnu, 0, MF_BYPOSITION
  2237. DestroyMenu tHmnu
  2238. End Sub
  2239. ''弹出"下载控制"按钮下拉菜单
  2240. 'Private Sub ShowBlockElementMenu(x&, y&)
  2241. '''Dim tPt As POINTAPI
  2242. ''Dim tFrm As frmBrowser
  2243. ''Dim tId As Long
  2244. ''
  2245. '''tPt = GetTbrDropDownPoint(mHwndTbrMain, tlbMe.Buttons(TbrK_Main_BlockElement).index - 1)
  2246. ''Set tFrm = webbState(gActiveWebIndex).webForm
  2247. ''With mBlockElementPopMenu
  2248. ''    .CheckItem 0, tFrm.DL_Image, False
  2249. ''    .CheckItem 1, tFrm.DL_BgSound, False
  2250. ''    .CheckItem 2, tFrm.DL_Video, False
  2251. ''    .CheckItem 3, tFrm.DL_Script, False
  2252. ''    .CheckItem 4, tFrm.DL_ActiveX, False
  2253. ''    .CheckItem 5, tFrm.DL_JavaApplet, False
  2254. ''    .CheckItem 6, tFrm.Dl_DlActiveX, False
  2255. ''    tId = .Popup2(Me.hWnd, False, x, y)
  2256. ''
  2257. ''    Select Case tId
  2258. ''        Case 101
  2259. ''            tFrm.DL_Image = Not tFrm.DL_Image
  2260. ''        Case 102
  2261. ''            tFrm.DL_BgSound = Not tFrm.DL_BgSound
  2262. ''        Case 103
  2263. ''            tFrm.DL_Video = Not tFrm.DL_Video
  2264. ''        Case 104
  2265. ''            tFrm.DL_Script = Not tFrm.DL_Script
  2266. ''        Case 105
  2267. ''            tFrm.DL_ActiveX = Not tFrm.DL_ActiveX
  2268. ''        Case 106
  2269. ''            tFrm.DL_JavaApplet = Not tFrm.DL_JavaApplet
  2270. ''        Case 107
  2271. ''            tFrm.Dl_DlActiveX = Not tFrm.Dl_DlActiveX
  2272. ''        Case 201
  2273. ''            tFrm.Dl_EnableAll True
  2274. ''        Case 202
  2275. ''            tFrm.Dl_EnableAll False
  2276. ''    End Select
  2277. ''End With
  2278. 'End Sub
  2279. 'Private Sub ShowFontSizeMenu()
  2280. 'Dim tPt As POINTAPI
  2281. 'tPt = GetTbrDropDownPoint(mHwndTbrMain, tlbMe.Buttons(TbrK_Main_FontSize).index - 1)
  2282. 'pMnu_FontSize.Popup2 Me.hwnd, False, tPt.x, tPt.y, TPM_LEFTALIGN
  2283. ''ScreenToClient Me.hwnd, tpt
  2284. ''Me.PopupMenu mnuFontSize, , tpt.x * 15, tpt.y * 15
  2285. 'End Sub
  2286. ''获得toolbar按钮左下角屏幕坐标
  2287. 'Private Function GetTbrDropDownPoint(nHtbr As Long, nPos As Long) As POINTAPI
  2288. 'Dim tBifo As TBBUTTON
  2289. 'Dim trc As RECT
  2290. 'Dim tPt As POINTAPI
  2291. 'SendMessage nHtbr, TB_GETBUTTON, nPos, tBifo
  2292. 'SendMessage nHtbr, TB_GETRECT, tBifo.idCommand, trc
  2293. 'tPt.x = trc.Left: tPt.y = trc.Bottom
  2294. 'ClientToScreen nHtbr, tPt
  2295. 'GetTbrDropDownPoint = tPt
  2296. 'End Function
  2297. '替换地址栏,转换为预设的地址(自动完成地址,例如搜索,域名)
  2298. Private Sub ReplaceAddress(nIndex As Long)
  2299. Dim turl As String
  2300. If nIndex > 0 And nIndex <= SearchurlCount Then
  2301.     turl = Replace$(searchUrl(nIndex).url, SearchUrlKeywordFlag, cmbAdd.Text)
  2302.     Call OpenAddressUrl(True, , turl)
  2303.     'Call NewWebbrowser(tUrl)
  2304. End If
  2305. End Sub
  2306. '打开搜索页
  2307. Private Sub OpenSearchPage(nIndex As Long)
  2308. Dim turl As String
  2309. If nIndex > 0 And nIndex <= gSearchEgnCount Then
  2310.     If Trim(gSearchEgn(nIndex).url) <> "-" Then
  2311.         turl = Replace$(gSearchEgn(nIndex).url, SearchUrlKeywordFlag, cmbSearch.Text)
  2312.         Call NewWebbrowser(turl)
  2313.         Call AddSearchList(cmbSearch.Text)
  2314.     End If
  2315. End If
  2316. End Sub
  2317. '打开搜索页(多页面)
  2318. Private Sub OpenMulSearchPage(nIndex As Long)
  2319. On Error Resume Next
  2320. Dim i&
  2321. If nIndex > 0 And nIndex <= gMulSearchCount Then
  2322.     For i = 1 To gMulSearch(nIndex).Count
  2323.         If gMulSearch(nIndex).UseMul(i) Then
  2324.             Call OpenSearchPage(i)
  2325.         End If
  2326.     Next i
  2327. End If
  2328. End Sub
  2329. '设置"自动过滤"按钮状态
  2330. Public Sub SetTbrBtnState_AutoPvntPop(nValue As Long) 'MSComctlLib.ValueConstants)
  2331. 'tlbMe.Buttons(TbrK_Main_AutoPreventPop).Value = nValue
  2332. If Not m_cTbrMain Is Nothing Then
  2333.     m_cTbrMain.CheckButton TbrID_Main_AutoPreventPop, nValue = 1
  2334. End If
  2335. End Sub
  2336. '关闭页面,包括关闭被选择的页面
  2337. Public Sub ClosePage()
  2338. If loadedBrowserCount > 0 Then
  2339.        
  2340.     If selectedTabsCount <= 0 Then
  2341.         Call UnloadBrowser(gActiveWebIndex)
  2342.     ElseIf selectedTabsCount > 0 Then
  2343.         Call CloseMulTab
  2344.     End If
  2345. End If
  2346. End Sub
  2347. ''重新加载脚本
  2348. 'Private Sub ReloadScript()
  2349. 'Call LoadAllScriptFile
  2350. 'Call LoadScriptMenu
  2351. 'End Sub
  2352. ''加载脚本菜单
  2353. 'Private Sub LoadScriptMenu()
  2354. 'Dim i&, tcnt&
  2355. '
  2356. 'With pMnu_Plugin_Scripts
  2357. '    If .GetItemCount > 2 Then
  2358. '        .RemoveItems 0, .GetItemCount - 4
  2359. '    End If
  2360. '
  2361. '    For i = gScriptCnt To 1 Step -1
  2362. '        .Add2 gScripts(i).Title, 0, , , i + IdOffset_Plugin_Script
  2363. '    Next i
  2364. '
  2365. '    If gScriptCnt > 0 Then
  2366. '
  2367. '    Else
  2368. '        .Add2 "(空)", 0, , pmsString Or pmsDisabled
  2369. '    End If
  2370. '
  2371. 'End With
  2372. 'Dim tMenu As VB.Menu
  2373. 'mnuTabs_Scripts_Item(0).Visible = True
  2374. 'For Each tMenu In mnuTabs_Scripts_Item
  2375. '    If tMenu.index <> 0 Then
  2376. '        Unload tMenu
  2377. '    End If
  2378. 'Next tMenu
  2379. '
  2380. 'For i = 1 To gScriptCnt
  2381. '    Load mnuTabs_Scripts_Item(i)
  2382. '    With mnuTabs_Scripts_Item(i)
  2383. '        .Caption = gScripts(i).Title
  2384. '        .Visible = True
  2385. '        .Enabled = True
  2386. '    End With
  2387. 'Next i
  2388. '
  2389. 'If gScriptCnt > 0 Then
  2390. '    mnuTabs_Scripts_Item(0).Visible = False
  2391. 'Else
  2392. '    mnuTabs_Scripts_Item(0).Visible = True
  2393. '    mnuTabs_Scripts_Item(0).Enabled = False
  2394. 'End If
  2395. 'End Sub
  2396. ''弹出最近关闭下拉菜单
  2397. 'Private Sub ShowReopenButtonMenu(index&)
  2398. 'Dim tPt As POINTAPI
  2399. 'Dim rId&
  2400. '
  2401. 'tPt = GetTbrDropDownPoint(mHwndTbrMain, index - 1)
  2402. 'rId = pMnu_Reopen.Popup2(Me.hwnd, False, tPt.x, tPt.y, TPM_LEFTALIGN)
  2403. '
  2404. ''Call OpenReopen(rId)
  2405. '
  2406. ''Call ScreenToClient(Me.hwnd, tpt)
  2407. ''Me.PopupMenu mnuRecent_ClosePages, , tpt.X * 15, tpt.Y * 15
  2408. '
  2409. ''If rId > 0 Then
  2410. ''    Call NewWebbrowser(ClosedPages.GetUrl(rId))
  2411. ''End If
  2412. 'End Sub
  2413. '弹出选项按钮的下拉菜单
  2414. Private Sub ShowOptionButtonMenu(x&, y&)
  2415. Dim rId&
  2416. Dim i&
  2417. Const pgoffset As Long = 1000
  2418. With pMnu_Option_Dlctrl
  2419.     .CheckItem IDP_Opt_Dltl_Image, gDL_Image
  2420.     .CheckItem IDP_Opt_Dltl_ActiveX, gDL_ActiveX
  2421.     .CheckItem IDP_Opt_Dltl_JavaApplet, gDL_JavaApplet
  2422.     .CheckItem IDP_Opt_Dltl_Music, gDL_BgSound
  2423.     .CheckItem IDP_Opt_Dltl_DlActiveX, gDl_DlActiveX
  2424.     .CheckItem IDP_Opt_Dltl_Script, gDL_Script
  2425.     .CheckItem IDP_Opt_Dltl_Video, gDL_Video
  2426. End With
  2427. With pMnu_Option_Pagerule
  2428.     .ClearItems
  2429.     
  2430.     For i = 1 To PageRuleCnt
  2431.         .Add PageRule(i).Title, , pgoffset + i
  2432.         .CheckItem pgoffset + i, PageRule(i).Enabled = 1
  2433.     Next i
  2434.     
  2435.     .Add "", pmsSeparator
  2436.     .Add "开启", , IDP_Opt_Pgr_Enabled
  2437.     .CheckItem IDP_Opt_Pgr_Enabled, gEnablePageRule = 1
  2438. End With
  2439. With pMnu_Option_Main
  2440.     .CheckItem IDP_Opt_AutoPreventPop, PreventPopWindow > 0
  2441.     .CheckItem IDP_Opt_UrlFilter, EnableUrlFilter = 1
  2442.     .CheckItem IDP_Opt_EnableDragDrop, EnableDragLink = 1
  2443. End With
  2444. 'tPt = GetTbrDropDownPoint(mHwndTbrMain, index - 1)
  2445. rId = pMnu_Option_Main.Popup2(Me.hWnd, False, x, y)
  2446. Select Case rId
  2447.     Case IDP_Opt_Dltl_ActiveX
  2448.         gDL_ActiveX = Not gDL_ActiveX
  2449.     Case IDP_Opt_Dltl_Image
  2450.         gDL_Image = Not gDL_Image
  2451.     Case IDP_Opt_Dltl_JavaApplet
  2452.         gDL_JavaApplet = Not gDL_JavaApplet
  2453.     Case IDP_Opt_Dltl_Music
  2454.         gDL_BgSound = Not gDL_BgSound
  2455.     Case IDP_Opt_Dltl_DlActiveX
  2456.         gDl_DlActiveX = Not gDl_DlActiveX
  2457.     Case IDP_Opt_Dltl_Script
  2458.         gDL_Script = Not gDL_Script
  2459.     Case IDP_Opt_Dltl_Video
  2460.         gDL_Video = Not gDL_Video
  2461.     '=================================
  2462.     Case IDP_Opt_Pgr_Enabled
  2463.         If gEnablePageRule = 1 Then
  2464.             gEnablePageRule = 0
  2465.         Else
  2466.             gEnablePageRule = 1
  2467.         End If
  2468.     Case Is > pgoffset
  2469.         If PageRule(rId - pgoffset).Enabled = 1 Then
  2470.             PageRule(rId - pgoffset).Enabled = 0
  2471.         Else
  2472.             PageRule(rId - pgoffset).Enabled = 1
  2473.         End If
  2474.     '=================================
  2475.     Case IDP_Opt_AutoPreventPop
  2476.         If PreventPopWindow > 0 Then
  2477.             PreventPopWindow = 0
  2478.         Else
  2479.             PreventPopWindow = 2
  2480.         End If
  2481.     Case IDP_Opt_UrlFilter
  2482.         If EnableUrlFilter = 1 Then
  2483.             EnableUrlFilter = 0
  2484.         Else
  2485.             EnableUrlFilter = 1
  2486.         End If
  2487.     Case IDP_Opt_EnableDragDrop
  2488.         If EnableDragLink = 1 Then
  2489.             EnableDragLink = 0
  2490.         Else
  2491.             EnableDragLink = 1
  2492.         End If
  2493.     Case IDP_Opt_SaveNow
  2494.         Call SaveSettingsToIni(False)
  2495. End Select
  2496. End Sub
  2497. Public Sub EnableOptionButton(nEnabled As Boolean)
  2498. 'tlbMe.Buttons(TbrK_Main_Option).Enabled = nEnabled
  2499. On Error Resume Next
  2500. Call m_cTbrMain.EnableButton(TbrID_Main_Option, nEnabled)
  2501. End Sub
  2502. '改变主窗口标题
  2503. Public Sub ChangeCaption(Optional nTitle$)
  2504. Dim tTle$
  2505. nTitle = Trim(nTitle)
  2506. If nTitle <> "" Then
  2507.     tTle = nTitle & " - " & meCaption
  2508. Else
  2509.     tTle = meCaption
  2510. End If
  2511. If gFullScreenMode Then
  2512.     mTempCaption = tTle
  2513. Else
  2514.     Me.Caption = tTle
  2515. End If
  2516. End Sub
  2517. '将pcitruebox放到combo里
  2518. 'Private Sub HackCombobox(nHCmb&, nHPct&)
  2519. 'Dim hEdit&
  2520. 'Dim trc As RECT, tPt As POINTAPI
  2521. '
  2522. 'hEdit = FindWindowEx(nHCmb, 0, "EDIT", vbNullString)
  2523. '
  2524. 'GetWindowRect hEdit, trc
  2525. 'tPt.x = trc.Left: tPt.y = trc.Top
  2526. 'ScreenToClient nHCmb, tPt
  2527. 'If tPt.x < 20 Then
  2528. '    Call MoveWindow(hEdit, tPt.x + 20, tPt.y, trc.Right - trc.Left - 20, trc.Bottom - trc.Top, 1)
  2529. 'End If
  2530. '
  2531. 'If nHPct <> 0 Then
  2532. '    SetParent nHPct, nHCmb
  2533. '    If tPt.x < 20 Then
  2534. '        MoveWindow nHPct, tPt.x, tPt.y, 16, 16, 1
  2535. '    End If
  2536. 'End If
  2537. 'End Sub
  2538. '查找页面关键字,供外部使用
  2539. Public Sub FindKeyWord()
  2540. If loadedBrowserCount > 0 Then
  2541.     webbState(gActiveWebIndex).webForm.FindWord (cmbSearch.Text)
  2542. End If
  2543. End Sub
  2544. Private Sub TrnToBtnBar_MouseDown(Button As Integer, Shift As Integer, x As Long, y As Long, btn As cButton)
  2545. turntoX = x: turntoY = y
  2546. turntoCan = True
  2547. turntoButtonDown = True
  2548. End Sub
  2549. Private Sub TrnToBtnBar_MouseMove(Button As Integer, Shift As Integer, x As Long, y As Long, btn As cButton)
  2550. On Error Resume Next
  2551. Dim tXY As POINTAPI
  2552. Dim tWRC As RECT
  2553. Dim tId&
  2554. If Button = vbLeftButton Then
  2555.     If Abs(x - turntoX) > 4 Or Abs(y - turntoY) > 4 Then
  2556.         turntoCan = False
  2557.         
  2558.         Call GetWindowRect(pctTurnBtn.hWnd, tWRC)
  2559.         tXY.x = tWRC.Left: tXY.y = tWRC.Bottom + 1
  2560.         
  2561.         'Call ScreenToClient(Me.hwnd, tXY)
  2562.         
  2563.         'btn.ButtonState = cbtnNormal
  2564.         'Me.PopupMenu mnuTurnto, 0, tXY.x * 15, tXY.y * 15
  2565.         
  2566.         
  2567.         tId = mPopmnuTurnTo.Popup(False, tXY.x, tXY.y)
  2568.         Call DoTurntoMenu(tId)
  2569.         
  2570.         'cbnTurnto.Refresh
  2571.         btn.ButtonState = cbtnNormal
  2572.         turntoButtonDown = False
  2573.         addbarGetFocus = False
  2574.     End If
  2575. End If
  2576. End Sub
  2577. '处理"转到"按钮菜单
  2578. Private Sub DoTurntoMenu(id&)
  2579. Select Case id
  2580.     Case mIDM_Turnto_TT
  2581.         Call OpenAddressUrl(False)
  2582.     Case mIDM_Turnto_NewTab
  2583.         Call OpenAddressUrl(True)
  2584.     Case mIDM_Turnto_NewIE
  2585.         Call NewIE(cmbAdd.Text)
  2586.     Case mIDM_Turnto_GoUp
  2587.         Call Turnto_GoUp
  2588.     Case Else
  2589.         Call ReplaceAddress(CLng(id - mOffset_Turnto))
  2590. End Select
  2591. End Sub
  2592. Private Sub Turnto_GoUp()
  2593. Dim turl$
  2594. If GetUpUrl(cmbAdd.Text, turl) Then
  2595.     If vkPress(VK_SHIFT) Then
  2596.         cmbAdd.Text = turl
  2597.     Else
  2598.         If loadedBrowserCount > 0 Then
  2599.             webbState(gActiveWebIndex).webForm.Navigate turl
  2600.         Else
  2601.             cmbAdd.Text = turl
  2602.         End If
  2603.     End If
  2604. End If
  2605. End Sub
  2606. '---------------------------------------------------------------------------------------
  2607. ' Procedure : GetUpUrl
  2608. ' DateTime  : 2005-8-15 23:37
  2609. ' Author    : Lingll
  2610. ' Purpose   : 获取上一级地址
  2611. '---------------------------------------------------------------------------------------
  2612. Private Function GetUpUrl(ByVal vUrl$, vUperUrl$) As Boolean
  2613. Dim tPos&, tBPos&
  2614. Dim tPoPos&
  2615. Dim tRtn As Boolean
  2616. tBPos = InStr(1, vUrl, "//")
  2617. If Right$(vUrl, 1) = "/" Then
  2618.     tPos = InStrRev(vUrl, "/", Len(vUrl) - 1)
  2619. Else
  2620.     tPos = InStrRev(vUrl, "/")
  2621. End If
  2622. tRtn = False
  2623. If tPos > 0 Then
  2624.     If tPos > tBPos + 1 Or tBPos = 0 Then
  2625.         vUperUrl = Left$(vUrl, tPos)
  2626.         tRtn = True
  2627.     Else
  2628.         If tBPos > 0 Then
  2629.             tPoPos = InStr(tBPos, vUrl, ".")
  2630.             If tPoPos > 0 Then
  2631.                 If LCase(Mid(vUrl, tBPos + 2, tPoPos - tBPos - 2)) <> "www" Then
  2632.                     vUperUrl = Left$(vUrl, tBPos + 1) & "www" & Mid(vUrl, tPoPos)
  2633.                     tRtn = True
  2634.                 End If
  2635.             End If
  2636.         End If
  2637.     End If
  2638. End If
  2639. GetUpUrl = tRtn
  2640. End Function
  2641. Private Sub TrnToBtnBar_MouseUp(Button As Integer, Shift As Integer, x As Long, y As Long, btn As cButton)
  2642. If turntoCan Then
  2643.     If Button = vbLeftButton Then
  2644.         If Abs(x - turntoX) < 4 And Abs(y - turntoY) < 4 Then
  2645.             cmbAdd.AddItem cmbAdd.Text
  2646.             If loadedBrowserCount > 0 Then
  2647.                 webbState(gActiveWebIndex).webForm.Navigate cmbAdd.Text, False
  2648.             Else
  2649.                 Call NewWebbrowser(cmbAdd.Text)
  2650.             End If
  2651.             turntoButtonDown = False
  2652.             addbarGetFocus = False
  2653.         End If
  2654.     End If
  2655. End If
  2656. End Sub
  2657. '处理收藏夹菜单弹出子菜单时
  2658. Public Sub SubCls_INITMENUPOPUP(ByVal wParam As Long)
  2659. Dim i&, tcnt&
  2660. Select Case GetMenuParam(wParam)
  2661.     Case MenuData_MainMenu
  2662.         tcnt = GetMenuItemCount(gHMainMenu)
  2663.         For i = 0 To tcnt - 1
  2664.             If wParam = GetSubMenu(gHMainMenu, i) Then
  2665.                 Call SetMainMenuState(i)
  2666.                 Exit For
  2667.             End If
  2668.         Next i
  2669.     Case MenuData_FavoriteMenu
  2670.         For i = 1 To subMenuCount
  2671.             If wParam = loadSubInfo(i).hWnd And (Not loadSubInfo(i).isLoadSub) Then
  2672.                 'SeedFile loadSubInfo(i).path, loadSubInfo(i).hWnd, , , loadSubInfo(i).hNode
  2673.                 Call SeekFavoriteFolder(loadSubInfo(i).path, loadSubInfo(i).hWnd, , , loadSubInfo(i).hNode)
  2674.                 loadSubInfo(i).isLoadSub = True
  2675.                 Exit For
  2676.             End If
  2677.         Next i
  2678.     Case Else
  2679.         If wParam = pMnu_DlCtl.hWnd Then
  2680.             Call SetDlCtrlMenuState
  2681.         End If
  2682. End Select
  2683.     
  2684. mSelectedIsSubmenu = False
  2685. mSelectedMenu = wParam
  2686. End Sub
  2687. '
  2688. '---------------------------------------------------------------------------------------
  2689. ' Procedure : SetDlCtrlMenuState
  2690. ' DateTime  : 2005-6-21 12:39
  2691. ' Author    : Lingll
  2692. ' Purpose   : 处理DlCtrl菜单状态
  2693. '---------------------------------------------------------------------------------------
  2694. Private Sub SetDlCtrlMenuState()
  2695. Dim tFrm As frmBrowser
  2696. Set tFrm = webbState(gActiveWebIndex).webForm
  2697. With pMnu_DlCtl
  2698.     .CheckItem 0, tFrm.DL_Image, False
  2699.     .CheckItem 1, tFrm.DL_BgSound, False
  2700.     .CheckItem 2, tFrm.DL_Video, False
  2701.     .CheckItem 3, tFrm.DL_Script, False
  2702.     .CheckItem 4, tFrm.DL_ActiveX, False
  2703.     .CheckItem 5, tFrm.DL_JavaApplet, False
  2704.     .CheckItem 6, tFrm.Dl_DlActiveX, False
  2705. End With
  2706. End Sub
  2707. '处理收藏夹菜单选择时
  2708. Public Sub SubCls_MENUSELECT(ByVal wParam&, ByVal lParam&)
  2709. Dim tMnuStyle&, tMnuId&
  2710. Dim urlIndex&
  2711. tMnuStyle = (wParam And &HFFFF0000) / &H10000
  2712. If (tMnuStyle And MF_POPUP) <> MF_POPUP Then
  2713.     tMnuId = wParam And &HFFFF&
  2714.     urlIndex = tMnuId - MenuIDOffset
  2715.     If urlIndex >= 1 And urlIndex <= itemMenuCount Then
  2716.         ChangeStatusText favoriteInfo(urlIndex).url
  2717.     Else
  2718.         ChangeStatusText ""
  2719.     End If
  2720. Else
  2721.     ChangeStatusText ""
  2722. End If
  2723. mSelectedIsSubmenu = _
  2724.     (((wParam / &H10000) And MF_POPUP) <> 0) And _
  2725.     (((wParam / &H10000) And MF_GRAYED) = 0)
  2726. mSelectedMenu = lParam
  2727. End Sub
  2728. '处理 收藏夹菜单的 WM_COMMAND
  2729. Public Sub SubCls_COMMAND(ByVal wParam&, hSubMenu&)
  2730. Dim notRun As Boolean
  2731. Dim SelectIndex As Long
  2732. notRun = True
  2733. SelectIndex = wParam - MenuIDOffset
  2734. If SelectIndex >= 1 And SelectIndex <= itemMenuCount Then
  2735.     If (GetAsyncKeyState(VK_SHIFT) And &H8000) = 0 Then
  2736.         favConet favoriteInfo(SelectIndex).url
  2737.         ClickFavorite favoriteInfo(SelectIndex).Title, favoriteInfo(SelectIndex).url
  2738.     Else
  2739.         favConet favoriteInfo(SelectIndex).url, False
  2740.         ClickFavorite favoriteInfo(SelectIndex).Title, favoriteInfo(SelectIndex).url
  2741.     End If
  2742. Else
  2743.     Select Case wParam
  2744.         Case 9999
  2745.             Call ShowFloatSubFav(hSubMenu)
  2746.         Case 9998
  2747.             Call OpenAllLink(hSubMenu)
  2748.     End Select
  2749. End If
  2750. End Sub
  2751. '处理 WM_MOVE ,WM_SIZE
  2752. Public Sub SubCls_MoveSize()
  2753. If Not gFullScreenMode Then
  2754.     Dim tTitleBar As PTITLEBARINFO
  2755.     Dim bX As Long, bY As Long
  2756.     tTitleBar.cbSize = Len(tTitleBar)
  2757.     Call GetTitleBarInfo(Me.hWnd, tTitleBar)
  2758.     bX = GetSystemMetrics(SM_CXSIZE) - 2
  2759.     bY = GetSystemMetrics(SM_CYSIZE) - 4
  2760.     MoveWindow fraTitleButton.hWnd, tTitleBar.rcTitleBar.Right - 4 * bX - 2 - 2 - 3, tTitleBar.rcTitleBar.Top + 2, bX, bY, 1
  2761.     MoveWindow cmdTray.hWnd, 0, 0, bX, bY, 1
  2762. End If
  2763. End Sub
  2764. '系统颜色改变时
  2765. Public Sub UpdateButtonColor()
  2766. TabBar.Refresh
  2767. TrnToBtnBar.Refresh
  2768. TabGoLeftBar.Refresh
  2769. TabGoRightBar.Refresh
  2770. m_cRebar.UpdateSystemColor
  2771. End Sub
  2772. '##########################################
  2773. '====   主菜单 模拟菜单 相关函数 =========
  2774. Public Sub DropMenu_MouseMove(x&, y&)
  2775. Dim tPos&, tId&
  2776. 'Dim tTop&, tLeft&
  2777. If WindowFromPoint(x, y) = mcTbrMainMenu.hwndToolbar Then
  2778.     tPos = mcTbrMainMenu.Hittest(x, y)
  2779.     If tPos >= 0 Then
  2780.         tId = mcTbrMainMenu.GetButton(tPos, False)
  2781.         If mDropdownId <> tId Then
  2782.             If tId > 0 Then
  2783.                 mPopId = tId
  2784.                 PostMessage Me.hWnd, WM_CANCELMODE, 0, 0
  2785.             End If
  2786.         End If
  2787.     End If
  2788. End If
  2789. End Sub
  2790. Private Sub DropMenu_EnuDropDown(id&)
  2791. Dim tx&, ty&
  2792. mcTbrMainMenu.GetBtnRect id, tx, ty
  2793. PostMessage mcTbrMainMenu.hwndToolbar, WM_LBUTTONDOWN, MK_LBUTTON, ByVal (ty * &H10000 + tx)
  2794. PostMessage mcTbrMainMenu.hwndToolbar, WM_LBUTTONDOWN, MK_LBUTTON, ByVal (ty * &H10000 + tx)
  2795. End Sub
  2796. Private Sub DropMenu_EnuDropDown2(id&)
  2797. Dim tx&, ty&
  2798. mcTbrMainMenu.GetBtnRect id, tx, ty
  2799. PostMessage mcTbrMainMenu.hwndToolbar, WM_LBUTTONDOWN, MK_LBUTTON, ByVal (ty * &H10000 + tx)
  2800. End Sub
  2801. Public Sub DropMenu_ShowNextMenu(nNext As Boolean)
  2802. Dim tPos&, tcnt&
  2803. tPos = mcTbrMainMenu.GetButton(mDropdownId, True)
  2804. If tPos >= 0 Then
  2805.     tcnt = mcTbrMainMenu.ButtonCount
  2806.     If nNext Then
  2807.         tPos = tPos + 1
  2808.         If tPos >= tcnt Then tPos = 0
  2809.     Else
  2810.         tPos = tPos - 1
  2811.         If tPos < 0 Then tPos = tcnt - 1
  2812.     End If
  2813.     
  2814.     If mSelectedIsSubmenu And nNext Then
  2815.     ElseIf (mSelectedMenu <> mDropMenuHwnd) And (Not nNext) Then
  2816.     Else
  2817.         mPopId = mcTbrMainMenu.GetButton(tPos, False)
  2818.         
  2819.         PostMessage Me.hWnd, WM_CANCELMODE, 0, 0
  2820.     End If
  2821. End If
  2822. End Sub
  2823. Public Function DropMenu_KeyDown(KeyCode&, lParam&) As Long
  2824. Dim rtn&
  2825. Dim tId&
  2826. 'Dim tnr As NMTOOLBAR_id
  2827. tId = -1
  2828. rtn = 0
  2829. 'Debug.Print "keydown", KeyCode, (lParam And &H40000000) = 0
  2830. If KeyCode = VK_MENU Then
  2831.     Call GetAsyncKeyState(vbKeyTab)
  2832.     If vkPress(VK_CONTROL) Or vkPress(VK_SHIFT) Then
  2833.         mCanTrackPopMenu = False
  2834.     Else
  2835.         mCanTrackPopMenu = True
  2836.     End If
  2837. Else
  2838.     If (lParam And &H20000000) <> 0 Then
  2839.         mCanTrackPopMenu = False
  2840.     End If
  2841. End If
  2842. If mInDropDown Then
  2843.     If KeyCode = VK_MENU Then
  2844.         mDropDownPressMenu = True
  2845.     End If
  2846. Else
  2847.     If KeyCode = VK_MENU Or KeyCode = VK_ESCAPE Then
  2848.         If mInHotTack Then
  2849.             mcTbrMainMenu.SetHotButton (-1)
  2850.             mInHotTack = (KeyCode = VK_MENU)
  2851.             rtn = 1
  2852.         End If
  2853.     Else
  2854.         'If vkPress(VK_MENU) Then
  2855.         If (lParam And &H20000000) <> 0 Then
  2856.             
  2857.             If mcTbrMainMenu.GetAcceleratorButton(KeyCode, tId) Then
  2858.                 If tId > 0 Then
  2859.                     rtn = 1
  2860.                     DropMenu_EnuDropDown2 tId
  2861.                 End If
  2862.             End If
  2863.             
  2864.             
  2865.         Else
  2866.             If mInHotTack Then
  2867.                 Select Case KeyCode
  2868.                     Case VK_LEFT
  2869.                         Call DropMenu_HotTackNext(False)
  2870.                         rtn = 1
  2871.                     Case VK_RIGHT
  2872.                         Call DropMenu_HotTackNext(True)
  2873.                         rtn = 1
  2874.                     Case VK_UP, VK_DOWN, VK_RETURN
  2875.                         Call DropMenu_DropHotTack
  2876.                         rtn = 1
  2877.                     Case Else
  2878.                         If mcTbrMainMenu.GetAcceleratorButton(KeyCode, tId) Then
  2879.                             If tId > 0 Then
  2880.                                 mcTbrMainMenu.SetHotButton (-1)
  2881.                                 rtn = 1
  2882.                                 Call DropMenu_EnuDropDown2(tId)
  2883.                             End If
  2884.                         End If
  2885.                         
  2886.                 End Select
  2887.             Else
  2888.                 rtn = DropMenu_DoHotkey(KeyCode, lParam)
  2889.             End If
  2890.             
  2891.         End If
  2892.     End If
  2893. End If
  2894. If mInHotTack Then rtn = 1
  2895. DropMenu_KeyDown = rtn
  2896. End Function
  2897. Private Function DropMenu_DoHotkey(KeyCode&, lParam&) As Long
  2898. Dim rtn&
  2899. rtn = 0
  2900. Select Case KeyCode
  2901.     Case vbKeyF6
  2902.         If vkPress(VK_CONTROL) Then
  2903.             cmbSearch.SetFocus
  2904.             rtn = 1
  2905.         Else
  2906.             cmbAdd.SetFocus
  2907.             rtn = 1
  2908.         End If
  2909.     Case vbKeyF3
  2910.         If vkPress(VK_CONTROL) Then
  2911.             Call mnuViewSlide_Click
  2912.         Else
  2913.             Call FindKeyWord
  2914.         End If
  2915.     Case vbKeyF4
  2916.         Call mnuCloseTab_Click
  2917.     Case vbKeyF8
  2918.         If vkPress(VK_CONTROL) Then
  2919.             Call mnuViewHide_Click
  2920.         End If
  2921.     Case vbKeyF9
  2922.         Call mnuView_FullScreen_Click
  2923.     Case vbKeyB
  2924.         If vkPress(VK_CONTROL) Then
  2925.             Call mnuNewB_Click
  2926.         End If
  2927.     Case vbKeyO
  2928.         If vkPress(VK_CONTROL) Then
  2929.             Call mnuOpen_Click
  2930.         End If
  2931.     Case vbKeyS
  2932.         If vkPress(VK_CONTROL) Then
  2933.             Call mnuSaveAs_Click
  2934.         End If
  2935.     Case vbKeyE
  2936.         If vkPress(VK_CONTROL) Then
  2937.             Call mnuTabs_NoObject_Click
  2938.         End If
  2939.     Case vbKeyW
  2940.         If vkPress(VK_CONTROL) Then
  2941.             Call mnuTabs_NoFloat_Click
  2942.         End If
  2943.     Case vbKeyH
  2944.         If vkPress(VK_CONTROL) Then
  2945.             Call mnuClearMouseLimit_Click
  2946.         End If
  2947.     Case vbKeyTab
  2948.         If vkPress(VK_CONTROL) Then
  2949.             If vkPress(VK_SHIFT) Then
  2950.                 Call NextLastTab(False)
  2951.                 rtn = 1
  2952.             Else
  2953.                 Call NextLastTab(True)
  2954.                 rtn = 1
  2955.             End If
  2956.         End If
  2957. End Select
  2958. DropMenu_DoHotkey = rtn
  2959. End Function
  2960. Private Sub DropMenu_HotTackNext(isNext As Boolean)
  2961. Dim tPos&, tcnt&
  2962. tPos = mcTbrMainMenu.GetHotButton
  2963. If tPos >= 0 Then
  2964.     tcnt = mcTbrMainMenu.ButtonCount
  2965.     If isNext Then
  2966.         tPos = tPos + 1
  2967.         If tPos >= tcnt Then tPos = 0
  2968.     Else
  2969.         tPos = tPos - 1
  2970.         If tPos < 0 Then tPos = tcnt - 1
  2971.     End If
  2972.     mcTbrMainMenu.SetHotButton tPos
  2973. End If
  2974. End Sub
  2975. Private Sub DropMenu_DropHotTack()
  2976. Dim tPos& ', tId&
  2977. tPos = mcTbrMainMenu.GetHotButton
  2978. If tPos >= 0 Then
  2979.     mcTbrMainMenu.SetHotButton -1
  2980.     DropMenu_EnuDropDown2 mcTbrMainMenu.GetButton(tPos, False)
  2981. End If
  2982. End Sub
  2983. Public Function DropMenu_KeyUp(KeyCode&, lParam&) As Long
  2984. Dim rtn&
  2985. rtn = 0
  2986. If Not mInDropDown Then
  2987.     If mDropDownPressMenu Then
  2988.         mDropDownPressMenu = False
  2989.     Else
  2990.         If KeyCode = VK_MENU And mCanTrackPopMenu Then
  2991.             'Debug.Print GetAsyncKeyState(vbKeyTab) And &H1&
  2992.             If (GetAsyncKeyState(vbKeyTab) And &H1&) = 0 Then
  2993.                 If mInHotTack Then
  2994.                     mInHotTack = False
  2995.                     rtn = 1
  2996.                 Else
  2997.                     mcTbrMainMenu.SetHotButton (0)
  2998.                     mInHotTack = True
  2999.                     rtn = 1
  3000.                 End If
  3001.             End If
  3002.         End If
  3003.     End If
  3004. End If
  3005. DropMenu_KeyUp = rtn
  3006. End Function
  3007. '##########################################
  3008. '-------------------------------------------------------
  3009. '######################################################
  3010. '========  common controls ====================
  3011. '---------------------------------------------------------------------------------------
  3012. ' Procedure : IniStatusBar
  3013. ' DateTime  : 2005-3-27 23:37
  3014. ' Author    : Lingll
  3015. ' Purpose   :
  3016. '---------------------------------------------------------------------------------------
  3017. Private Sub IniStatusBar()
  3018.     pctHoldStatus.height = 18 * 15
  3019.     Set m_cSsbar = CreateCmmCtrl(strCLSID_cStatusbar32) '  New cStatusbar32
  3020.     With m_cSsbar
  3021.         .Create pctHoldStatus.hWnd, , False
  3022.         .SetMinHeight 16
  3023.         Call SetStatusParts
  3024.         
  3025.     End With
  3026. End Sub
  3027. Private Sub SetStatusParts()
  3028. Dim tRc As mAPIs.RECT
  3029. Dim tW(0 To 1) As Long
  3030. If Not m_cSsbar Is Nothing Then
  3031.     Call mAPIs.GetWindowRect(m_cSsbar.hWnd, tRc)
  3032.     tW(0) = tRc.Right - tRc.Left - 100
  3033.     If tW(0) < 0 Then
  3034.         tW(0) = (tRc.Right - tRc.Left) / 2
  3035.     End If
  3036.     tW(1) = -1
  3037.     m_cSsbar.SetParts 2, tW
  3038. End If
  3039. End Sub
  3040. '---------------------------------------------------------------------------------------
  3041. ' Procedure : IniRebar
  3042. ' DateTime  : 2005-8-2 01:05
  3043. ' Author    : Lingll
  3044. ' Purpose   :
  3045. '---------------------------------------------------------------------------------------
  3046. Private Sub IniRebar()
  3047. Dim tW&, tH&
  3048. Set m_cRebar = CreateCmmCtrl(strCLSID_cRebar)
  3049. With m_cRebar
  3050.     .Create pctReBar.hWnd, 0, 0, pctReBar.ScaleWidth, pctReBar.ScaleHeight, RBS_Default
  3051.     
  3052.     '菜单栏
  3053.     mcTbrMainMenu.GetTbrMaxSize tW, tH
  3054.     .AddBands ID_Band_MainMenu, mcTbrMainMenu.hwndToolbar, RBBS_USECHEVRON, _
  3055.             GetSystemMetrics(SM_CXSCREEN) - GetTbrWidth2(m_cTbrSmall) - 20, _
  3056.             tW
  3057.     
  3058.     '小工具栏
  3059.     m_cTbrSmall.GetTbrMaxSize tW, tH
  3060.     .AddBands ID_Band_SmallTbr, m_cTbrSmall.hwndMsgwin, RBBS_USECHEVRON, _
  3061.             GetSystemMetrics(SM_CXSCREEN), tW
  3062.     '主工具栏
  3063.     .AddBands ID_Band_MainTbr, m_cTbrMain.hwndMsgwin, RBBS_BREAK
  3064.     
  3065.     '地址栏
  3066.     .AddBands ID_Band_Address, pctAddress.hWnd, RBBS_BREAK, _
  3067.             GetSystemMetrics(SM_CXSCREEN) * 3 / 5, , "地址"
  3068.     '搜索栏
  3069.     .AddBands ID_Band_SearchTbr, mcTbrSearch.hwndMsgwin, , _
  3070.             GetSystemMetrics(SM_CXSCREEN) * 2 / 5, , "搜索"
  3071.     
  3072.     '标签栏
  3073.     .AddBands ID_Band_Tabs, pctTabs.hWnd, RBBS_BREAK
  3074.     
  3075.        
  3076.     .SetBandChildSize ID_Band_MainMenu, 50, 21, , , , False
  3077.     
  3078.     .SetBandChildSize ID_Band_MainTbr, 30, 26, , , , False
  3079.     
  3080.     .SetBandChildSize ID_Band_Address, 0, 22, , , , False
  3081.     .SetBandChildSize ID_Band_Tabs, 0, 20, , , , False
  3082.     .SetBandChildSize ID_Band_SearchTbr, 0, 22, , , , False
  3083.     
  3084.     Call ResizeTbr
  3085.     
  3086. End With
  3087. End Sub
  3088. '---------------------------------------------------------------------------------------
  3089. ' Procedure : IniFavoriteTree
  3090. ' DateTime  : 2005-3-28 18:12
  3091. ' Author    : Lingll
  3092. ' Purpose   :
  3093. '---------------------------------------------------------------------------------------
  3094. Private Sub IniFavoriteTree()
  3095. Set m_cTvwFav = CreateCmmCtrl(strCLSID_cTreeView32) ' New cTreeView32
  3096. With m_cTvwFav
  3097.     .Create pctSideBandHold.hWnd, _
  3098.            TVS_HASBUTTONS Or TVS_LINESATROOT Or TVS_SHOWSELALWAYS Or _
  3099.          TVS_INFOTIP Or TVS_HASLINES Or TVS_TRACKSELECT, _
  3100.         0, 0, 100, 100
  3101.     .SetImageList TVSIL_NORMAL, 0, 16, 16, LoadImageEx(IDB_MenuIcon, "gif").handle, &HFF00FF
  3102.     .SetToopTipTopMost
  3103. End With
  3104. End Sub
  3105. '---------------------------------------------------------------------------------------
  3106. ' Procedure : IniSideBarFavTbr
  3107. ' DateTime  : 2005-3-29 16:00
  3108. ' Author    : Lingll
  3109. ' Purpose   : 初始化边栏工具栏
  3110. '---------------------------------------------------------------------------------------
  3111. Private Sub IniSideBarTbr()
  3112. Set m_cTbrSidebar = CreateCmmCtrl(strCLSID_cToolBar) ' New cToolBar
  3113. With m_cTbrSidebar
  3114.     .CreateToolbar pctHoldFavorite.hWnd, True, True, 13, 13, , TBSTYLE_EX_Default Or TBSTYLE_EX_MIXEDBUTTONS
  3115.     .AddImages LoadImageEx(IDB_OtherBar, "gif").handle, &HFF00FF
  3116.     .AddButton 101, "float", 5, BTNS_AUTOSIZE Or BTNS_CHECK
  3117.     .SetButtonState 101, TBSTATE_CHECKED Or TBSTATE_ENABLED
  3118.     .AddButton 102, "关闭", 4
  3119.     .SetMaxSize
  3120.     .SetToopTipTopMost
  3121. End With
  3122. End Sub
  3123. '---------------------------------------------------------------------------------------
  3124. ' Procedure : IniSmallTbr
  3125. ' DateTime  : 2005-3-29 20:19
  3126. ' Author    : Lingll
  3127. ' Purpose   : 初始化小工具栏
  3128. '---------------------------------------------------------------------------------------
  3129. Private Sub IniSmallTbr()
  3130. Dim tPop As cPopMenu
  3131. Dim tDesc(0 To 7) As cButtonPosInfo ' String
  3132. Dim i&
  3133. Set m_cTbrSmall = CreateCmmCtrl(strCLSID_cToolBar) ' New cToolBar
  3134. With m_cTbrSmall
  3135.     .CreateToolbar pctReBar.hWnd, True, True, 13, 13, , TBSTYLE_EX_Default Or TBSTYLE_EX_MIXEDBUTTONS
  3136.     
  3137.     .AddImages LoadImageEx(IDB_OtherBar, "gif"), &HFF00FF
  3138.     .AddButton TbrID_Small_LastTab, "上一窗口", 0
  3139.     .AddButton TbrID_Small_NextTab, "下一窗口", 1
  3140.     .AddButton TbrID_Small_Min, "最小化|还原", 2
  3141.     .AddButton TbrID_Small_Max, "最大化|还原", 3, BTNS_DROPDOWN Or BTNS_AUTOSIZE
  3142.     .AddButton TbrID_Small_Close, "关闭当前页", 4, BTNS_DROPDOWN Or BTNS_AUTOSIZE
  3143.     .AddButton 106, vbNullString, 0, BTNS_SEP
  3144.     .AddButton TbrID_Small_LockPresent, "不激活新窗口", 5, BTNS_CHECK Or BTNS_AUTOSIZE
  3145.         .CheckButton TbrID_Small_LockPresent, isLockPresentWeb = 1
  3146.     .AddButton TbrID_Small_LockNew, "总在新窗口打开", 6, BTNS_AUTOSIZE Or BTNS_CHECK
  3147. End With
  3148. Set tPop = New cPopMenu
  3149. With tPop
  3150.     .Create
  3151.     .Add "还原所有(&R)", , 101
  3152.     .Add "最大化所有(&X)", , 102
  3153. End With
  3154. m_cTbrSmall.p_colBff.Add tPop, "max"
  3155. Set tPop = New cPopMenu
  3156. With tPop
  3157.     .Create
  3158.     .Add "反向", , 101
  3159.     .Add "类似", , 102
  3160.     .Add "所有", , 103
  3161.     .Add vbNullString, pmsSeparator
  3162.     .Add "当前", , 104, True
  3163. End With
  3164. m_cTbrSmall.p_colBff.Add tPop, "close"
  3165.     
  3166. For i = 0 To 7
  3167.     Set tDesc(i) = New cButtonPosInfo
  3168.     tDesc(i).o_Pos = i
  3169. Next i
  3170. Dim tArr() As Long
  3171. Call LoadTbrButtonPos("small", tArr)
  3172. tDesc(0).IniMe "上一窗口", TbrID_Small_LastTab, tArr(0)
  3173. tDesc(1).IniMe "下一窗口", TbrID_Small_NextTab, tArr(1)
  3174. tDesc(2).IniMe "最小化|还原", TbrID_Small_Min, tArr(2)
  3175. tDesc(3).IniMe "最大化|还原", TbrID_Small_Max, tArr(3)
  3176. tDesc(4).IniMe "关闭当前页", TbrID_Small_Close, tArr(4)
  3177. tDesc(5).IniMe "----", 106, tArr(5)
  3178. tDesc(6).IniMe "不激活新窗口", TbrID_Small_LockPresent, tArr(6)
  3179. tDesc(7).IniMe "总在新窗口打开", TbrID_Small_LockNew, tArr(7)
  3180. For i = 0 To gTbrSmallBtnCnt - 1
  3181.     m_cTbrSmall.ShowButton m_cTbrSmall.GetButton(i, False), gTbrSmallBtnShow(i) = 1
  3182. Next i
  3183.     
  3184. Dim tBif As New cButtonPosInfo
  3185. tBif.SortByPos tDesc
  3186. m_cTbrSmall.p_colBff.Add tDesc, "desarr"
  3187.     
  3188. For i = 0 To gTbrSmallBtnCnt - 1
  3189.     m_cTbrSmall.MoveButton m_cTbrSmall.GetButton(tDesc(i).id, True), i
  3190.     m_cTbrSmall.ShowButton tDesc(i).id, tDesc(i).vis
  3191. Next i
  3192. End Sub
  3193. '---------------------------------------------------------------------------------------
  3194. ' Procedure : IniMainTbr
  3195. ' DateTime  : 2005-3-29 20:20
  3196. ' Author    : Lingll
  3197. ' Purpose   : 初始化主工具栏
  3198. '---------------------------------------------------------------------------------------
  3199. Private Sub IniMainTbr()
  3200. Dim tPop As cPopMenu
  3201. Dim tDesc(0 To gTbrMainBtnCnt - 1) As cButtonPosInfo ' String
  3202. Dim i&
  3203. Set m_cTbrMain = CreateCmmCtrl(strCLSID_cToolBar) ' New cToolBar
  3204. With m_cTbrMain
  3205.     .CreateToolbar pctReBar.hWnd, True, True, 20, 20, , TBSTYLE_EX_Default Or TBSTYLE_EX_MIXEDBUTTONS
  3206.     .AddImages LoadImageEx(IDB_MainBar, "gif").handle, &HFF00FF
  3207.     .SetImageList TBI_ImglstType_Gray, 0, 20, 20, LoadImageEx(IDB_MainBar_Gray, "gif").handle, &HFF00FF
  3208.         
  3209.         
  3210.     .AddButton TbrID_Main_New, "新建", 0, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3211.     .AddButton TbrID_Main_Back, "后退", 1, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3212.     .AddButton TbrID_Main_Forward, "前进", 2, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3213.     .AddButton TbrID_Main_Stop, "停止", 3
  3214.     .AddButton TbrID_Main_Refresh, "刷新", 4
  3215.     .AddButton TbrID_Main_Favorites, "收藏", 5, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3216.     .AddButton TbrID_Main_Proxy, "代理", 6, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3217.     .AddButton TbrID_Main_FontSize, "文字大小", 7, BTNS_AUTOSIZE Or BTNS_WHOLEDROPDOWN
  3218.     .AddButton TbrID_Main_AutoPreventPop, "自动过滤(当前窗口)", 8, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3219.     .AddButton TbrID_Main_Reopen, "最近关闭的页面", 9, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3220.     .AddButton TbrID_Main_DLCtrl, "下载控制(当前窗口)", 10, BTNS_AUTOSIZE Or BTNS_WHOLEDROPDOWN
  3221.     .AddButton TbrID_Main_Option, "选项", 11, BTNS_AUTOSIZE Or BTNS_DROPDOWN
  3222.     .AddButton TbrID_Main_FullScreen, "全屏", 12
  3223.     .AddButton TbrID_Main_SideBand, "侧边栏", 13, BTNS_AUTOSIZE Or BTNS_WHOLEDROPDOWN
  3224. End With
  3225.     
  3226. Set tPop = New cPopMenu
  3227. With tPop
  3228.     .Create
  3229.     .Add "空白页", , 1, True
  3230.     .Add "当前页", , 2
  3231.     .Add "剪贴板", , 3
  3232.     .Add vbNullString, pmsSeparator
  3233.     .Add "IE(空白)", , 4
  3234.     .Add "IE(当前)", , 5
  3235. End With
  3236. m_cTbrMain.p_colBff.Add tPop, "new"
  3237. Set tPop = New cPopMenu
  3238. tPop.Create
  3239. m_cTbrMain.p_colBff.Add tPop, "back"
  3240. Set tPop = New cPopMenu
  3241. tPop.Create
  3242. m_cTbrMain.p_colBff.Add tPop, "forward"
  3243. For i = 0 To gTbrMainBtnCnt - 1
  3244.     Set tDesc(i) = New cButtonPosInfo
  3245.     tDesc(i).o_Pos = i
  3246. Next i
  3247. Dim tArr() As Long
  3248. Call LoadTbrButtonPos("main", tArr)
  3249. tDesc(0).IniMe "新建", TbrID_Main_New, tArr(0)
  3250. tDesc(1).IniMe "后退", TbrID_Main_Back, tArr(1)
  3251. tDesc(2).IniMe "前进", TbrID_Main_Forward, tArr(2)
  3252. tDesc(3).IniMe "停止", TbrID_Main_Stop, tArr(3)
  3253. tDesc(4).IniMe "刷新", TbrID_Main_Refresh, tArr(4)
  3254. tDesc(5).IniMe "收藏", TbrID_Main_Favorites, tArr(5)
  3255. tDesc(6).IniMe "代理", TbrID_Main_Proxy, tArr(6)
  3256. tDesc(7).IniMe "文字大小", TbrID_Main_FontSize, tArr(7)
  3257. tDesc(8).IniMe "自动过滤(当前窗口)", TbrID_Main_AutoPreventPop, tArr(8)
  3258. tDesc(9).IniMe "最近关闭的页面", TbrID_Main_Reopen, tArr(9)
  3259. tDesc(10).IniMe "下载控制(当前窗口)", TbrID_Main_DLCtrl, tArr(10)
  3260. tDesc(11).IniMe "选项", TbrID_Main_Option, tArr(11)
  3261. tDesc(12).IniMe "全屏", TbrID_Main_FullScreen, tArr(12)
  3262. tDesc(13).IniMe "侧边栏", TbrID_Main_SideBand, tArr(13)
  3263.     
  3264. Dim tBif As New cButtonPosInfo
  3265. tBif.SortByPos tDesc
  3266. m_cTbrMain.p_colBff.Add tDesc, "desarr"
  3267.     
  3268. For i = 0 To gTbrMainBtnCnt - 1
  3269.     m_cTbrMain.MoveButton m_cTbrMain.GetButton(tDesc(i).id, True), i
  3270.     m_cTbrMain.ShowButton tDesc(i).id, tDesc(i).vis
  3271. Next i
  3272.     
  3273. 'For i = 0 To gTbrMainBtnCnt - 1
  3274. '    m_cTbrMain.ShowButton m_cTbrMain.GetButton(i, False), gTbrMainBtnShow(i) = 1
  3275. 'Next i
  3276. End Sub
  3277. '#####################################################
  3278. '---------------------------------------------------------------------------------------
  3279. ' Procedure : LoadAddUrlz
  3280. ' DateTime  : 2005-4-15 21:34
  3281. ' Author    : Lingll
  3282. ' Purpose   : 添加地址栏输入历史记录
  3283. '---------------------------------------------------------------------------------------
  3284. Private Sub LoadAddUrlz()
  3285. Dim tCoN As Collection, tCoTy As Collection
  3286. Dim i&, tstr$, tType&
  3287. Dim tcnt&
  3288. cmbAdd.Clear
  3289. Call EnumRegValue(HKEY_CURRENT_USER, "SoftwareMicrosoftInternet ExplorerTypedUrls", _
  3290.         tCoN, tCoTy)
  3291. tcnt = tCoN.Count
  3292. For i = 1 To tcnt
  3293.     tstr = tCoN(i)
  3294.     tType = tCoTy(i)
  3295.     If tType = REG_SZ Then
  3296.         cmbAdd.AddItem QueryValue(HKEY_CURRENT_USER, "SoftwareMicrosoftInternet ExplorerTypedUrls", tstr)
  3297.     End If
  3298. Next i
  3299. gAddUrlCnt = cmbAdd.ListCount
  3300. ReDim gAddUrlz(0 To gAddUrlCnt)
  3301. For i = 1 To gAddUrlCnt
  3302.     gAddUrlz(i) = cmbAdd.List(i - 1)
  3303. Next i
  3304. End Sub
  3305. '---------------------------------------------------------------------------------------
  3306. ' Procedure : SaveAddUrlz
  3307. ' DateTime  : 2005-4-15 22:08
  3308. ' Author    : Lingll
  3309. ' Purpose   : 保存地址栏输入历史记录
  3310. '---------------------------------------------------------------------------------------
  3311. Private Sub SaveAddUrlz()
  3312. Dim i&
  3313. Dim hKey&
  3314. If RegOpenKey(HKEY_CURRENT_USER, "SoftwareMicrosoftInternet ExplorerTypedUrls", hKey) = 0 Then
  3315.     SHDeleteKey HKEY_CURRENT_USER, "SoftwareMicrosoftInternet ExplorerTypedUrls"
  3316. End If
  3317. RegCreateKey HKEY_CURRENT_USER, "SoftwareMicrosoftInternet ExplorerTypedUrls", hKey
  3318. If hKey <> 0 Then
  3319.     For i = 1 To gAddUrlCnt
  3320.         RegSetValueExString hKey, "url" & LTrim$(Str$(i)), 0, REG_SZ, gAddUrlz(i), LenB(gAddUrlz(i))
  3321.     Next i
  3322. End If
  3323. End Sub
  3324. '---------------------------------------------------------------------------------------
  3325. ' Procedure : AddAddbarUrl
  3326. ' DateTime  : 2005-4-15 22:31
  3327. ' Author    : Lingll
  3328. ' Purpose   : 添加地址栏历史记录
  3329. '---------------------------------------------------------------------------------------
  3330. Private Sub AddAddbarUrl(vUrl$)
  3331. Dim i&
  3332. Dim turl$
  3333. Dim inOldIndex&
  3334. vUrl = Trim$(vUrl)
  3335. If LenB(vUrl) = 0 Then Exit Sub
  3336. turl = LCase$(vUrl)
  3337. inOldIndex = 0
  3338. For i = 1 To gAddUrlCnt
  3339.     If LCase$(gAddUrlz(i)) = turl Then
  3340.         inOldIndex = i
  3341.     End If
  3342. Next i
  3343. If inOldIndex > 0 Then
  3344. Else
  3345.     gAddUrlCnt = gAddUrlCnt + 1
  3346.     ReDim Preserve gAddUrlz(0 To gAddUrlCnt)
  3347.     gAddUrlz(gAddUrlCnt) = vUrl
  3348.     inOldIndex = gAddUrlCnt
  3349. End If
  3350. For i = inOldIndex To 2 Step -1
  3351.     SwapData VarPtr(gAddUrlz(i)), VarPtr(gAddUrlz(i - 1))
  3352. Next i
  3353. If inOldIndex = 1 And gAddUrlCnt > 1 Then
  3354. Else
  3355.     cmbAdd.Clear
  3356.     For i = 1 To gAddUrlCnt
  3357.         cmbAdd.AddItem gAddUrlz(i)
  3358.     Next i
  3359. End If
  3360. End Sub
  3361. '---------------------------------------------------------------------------------------
  3362. ' Procedure : GetWindowOrder
  3363. ' DateTime  : 2005-4-16 12:06
  3364. ' Author    : Lingll
  3365. ' Purpose   : 获得窗口zorder表
  3366. '---------------------------------------------------------------------------------------
  3367. Private Sub GetWindowOrder(coOrder As Collection)
  3368. Dim tHwnd&
  3369. If coOrder Is Nothing Then
  3370.     Set coOrder = New Collection
  3371. End If
  3372. If loadedBrowserCount > 0 Then
  3373.     tHwnd = webbState(gActiveWebIndex).webForm.hWnd
  3374.     While tHwnd <> 0
  3375.         coOrder.Add tHwnd
  3376.         tHwnd = GetWindow(tHwnd, GW_HWNDNEXT)
  3377.     Wend
  3378. End If
  3379. End Sub
  3380. '---------------------------------------------------------------------------------------
  3381. ' Procedure : SideBandParentHwnd
  3382. ' DateTime  : 2005-5-30 00:47
  3383. ' Author    : Lingll
  3384. ' Purpose   : hwnd of side band
  3385. '---------------------------------------------------------------------------------------
  3386. Public Property Get SideBandParentHwnd() As Long
  3387.     SideBandParentHwnd = pctSideBandHold.hWnd
  3388. End Property
  3389. Public Sub SetSidebandSize(vBand As cPluginSideband)
  3390. vBand.Resize 0, 0, _
  3391.         pctSideBandHold.ScaleWidth, _
  3392.         pctSideBandHold.ScaleHeight
  3393. End Sub
  3394. '---------------------------------------------------------------------------------------
  3395. ' Procedure : UnloadPlugins
  3396. ' DateTime  : 2005-6-14 21:25
  3397. ' Author    : Lingll
  3398. ' Purpose   : 卸载插件
  3399. '---------------------------------------------------------------------------------------
  3400. Private Sub UnloadPlugins()
  3401. Dim i&
  3402. For i = 1 To gPluginCnt
  3403.     Set gPlugins(i) = Nothing
  3404. Next i
  3405. For i = 1 To gPluginSBCnt
  3406.     Set gPluginsSideBand(i) = Nothing
  3407. Next i
  3408. End Sub