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

浏览器

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cAutoComplete"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. Option Explicit
  17. Private Declare Function SHAutoComplete Lib "Shlwapi.dll" (ByVal hwndEdit As Long, ByVal dwFlags As Long) As Long
  18. Private Declare Function DllGetVersion Lib "Shlwapi.dll" (ByRef dvi As DLLVERSIONINFO) As Long
  19. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
  20.      ByVal hWnd1 As Long, _
  21.      ByVal hWnd2 As Long, _
  22.      ByVal lpsz1 As String, _
  23.      ByVal lpsz2 As String) As Long
  24. Private Type DLLVERSIONINFO
  25.  cbSize As Long
  26.  dwMajorVersion As Long
  27.  dwMinorVersion As Long
  28.  dwBuildVersion As Long
  29.  dwPlatformID As Long
  30. End Type
  31. Private Const SHACF_AUTOSUGGEST_FORCE_ON = &H10000000
  32. Private Const SHACF_AUTOSUGGEST_FORCE_OFF = &H20000000
  33. Private Const SHACF_AUTOAPPEND_FORCE_ON = &H40000000
  34. Private Const SHACF_AUTOAPPEND_FORCE_OFF = &H80000000
  35. Private Const SHACF_DEFAULT = &H0
  36. Private Const SHACF_FILESYSTEM = &H1
  37. Private Const SHACF_URLHISTORY = &H2
  38. Private Const SHACF_URLMRU = &H4
  39. Private Const SHACF_URLALL = (SHACF_URLHISTORY Or SHACF_URLMRU)
  40. Private Const SHACF_USETAB As Long = &H8
  41. Private Const DLLVER_PLATFORM_WINDOWS = &H1
  42. Private Const DLLVER_PLATFORM_NT = &H2
  43. Private Const S_OK = &H0
  44. Private Const NOERROR = 0
  45. Public Enum SHACF_FLAGS
  46.     eSHACF_AUTOSUGGEST_FORCE_ON = SHACF_AUTOSUGGEST_FORCE_ON
  47.     eSHACF_AUTOSUGGEST_FORCE_OFF = SHACF_AUTOSUGGEST_FORCE_OFF
  48.     eSHACF_AUTOAPPEND_FORCE_ON = SHACF_AUTOAPPEND_FORCE_ON
  49.     eSHACF_AUTOAPPEND_FORCE_OFF = SHACF_AUTOAPPEND_FORCE_OFF
  50.     eSHACF_DEFAULT = SHACF_DEFAULT
  51.     eSHACF_FILESYSTE = SHACF_FILESYSTEM
  52.     eSHACF_URLHISTORY = SHACF_URLHISTORY
  53.     eSHACF_URLMRU = SHACF_URLMRU
  54.     eSHACF_URLALL = SHACF_URLALL
  55.     eSHACF_USETAB = SHACF_USETAB
  56. End Enum
  57. 'local variable(s) to hold property value(s)
  58. Private mvarErrDescription As String 'local copy
  59. Public Property Get ErrDescription() As String
  60. 'used when retrieving value of a property, on the right side of an assignment.
  61. 'Syntax: Debug.Print X.ErrDescription
  62.     ErrDescription = mvarErrDescription
  63. End Property
  64. Public Function Assign(hwndEdit As Long, Optional nFlags As SHACF_FLAGS = eSHACF_DEFAULT) As Boolean
  65. Attribute Assign.VB_Description = "指定需要""自动完成""的EDIT"
  66. Dim dvi As DLLVERSIONINFO
  67. dvi.cbSize = Len(dvi)
  68. If DllGetVersion(dvi) <> NOERROR Then
  69.     mvarErrDescription = "无法检测Shlwapi.dll的版本号"
  70.     Assign = False
  71.     Exit Function
  72. End If
  73. 'Debug.Print "dll version:", dvi.dwMajorVersion
  74. If dvi.dwMajorVersion >= 5 Then
  75.     If SHAutoComplete(hEdit(hwndEdit), nFlags) <> S_OK Then
  76.         mvarErrDescription = "无法开启自动完成功能"
  77.         Assign = False
  78.         Exit Function
  79.     End If
  80. Else
  81.     mvarErrDescription = "IE版本低于5"
  82.     Assign = False
  83.     Exit Function
  84. End If
  85. Assign = True
  86. End Function
  87. Private Function hEdit(nHwnd)
  88. hEdit = FindWindowEx(nHwnd, 0, "EDIT", vbNullString)
  89. End Function