Public Enum CompareMethod ' ŠŠµŃоГ ŃŃŠ°Š²Š½ŠµŠ½ŠøŃ
Public Enum CompareMethod ' ŠŠµŃоГ ŃŃŠ°Š²Š½ŠµŠ½ŠøŃ
BinaryCompare
BinaryCompare
TextCompare
TextCompare
End Enum
End Enum
Public Enum EnumMethod ' ŠŠµŃоГ ŠæŠµŃŠµŃŠøŃŠ»ŠµŠ½ŠøŃ Š“Š»Ń For each
Public Enum EnumMethod ' ŠŠµŃоГ ŠæŠµŃŠµŃŠøŃŠ»ŠµŠ½ŠøŃ Š“Š»Ń For each
ENUM_BY_KEY
ENUM_BY_KEY
ENUM_BY_VALUE
ENUM_BY_VALUE
End Enum
End Enum
Private Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableW" (ByVal lpName As Long, ByVal lpValue As Long) As Long
Private Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableW" (ByVal lpName As Long, ByVal lpValue As Long) As Long
Private Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableW" (ByVal lpName As Long, ByVal lpBuffer As Long, ByVal nSize As Long) As Long
Private Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableW" (ByVal lpName As Long, ByVal lpBuffer As Long, ByVal nSize As Long) As Long
Private Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFree Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function VirtualFree Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function HeapAlloc Lib "kernel32" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function HeapAlloc Lib "kernel32" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GetProcessHeap Lib "kernel32" () As Long
Private Declare Function GetProcessHeap Lib "kernel32" () As Long
Private Declare Function GetMem8 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetMem8 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetMem4 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetMem4 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetMem2 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetMem2 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetMem1 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetMem1 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleW" (ByVal lpModuleName As Long) As Long
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleW" (ByVal lpModuleName As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function memcpy Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal length As Long) As Long
Private Declare Function memcpy Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal length As Long) As Long
Private Declare Function VarCmp Lib "oleaut32" (pvarLeft As Any, pvarRight As Any, ByVal lcid As Long, ByVal dwFlags As Long) As Long
Private Declare Function VarCmp Lib "oleaut32" (pvarLeft As Any, pvarRight As Any, ByVal lcid As Long, ByVal dwFlags As Long) As Long
Private Declare Function VariantCopy Lib "oleaut32" (pvargDest As Any, pvargSrc As Any) As Long
Private Declare Function VariantCopy Lib "oleaut32" (pvargDest As Any, pvargSrc As Any) As Long
Private Declare Function VariantCopyInd Lib "oleaut32" (pvarDest As Any, pvargSrc As Any) As Long
Private Declare Function VariantCopyInd Lib "oleaut32" (pvarDest As Any, pvargSrc As Any) As Long
Private Declare Function LCMapString Lib "kernel32" Alias "LCMapStringW" (ByVal Locale As Long, ByVal dwMapFlags As Long, lpSrcStr As Any, ByVal cchSrc As Long, lpDestStr As Any, ByVal cchDest As Long) As Long
Private Declare Function LCMapString Lib "kernel32" Alias "LCMapStringW" (ByVal Locale As Long, ByVal dwMapFlags As Long, lpSrcStr As Any, ByVal cchSrc As Long, lpDestStr As Any, ByVal cchDest As Long) As Long
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Private Declare Function VarR4FromUI1 Lib "oleaut32" (value As Any, R4 As Any) As Long
Private Declare Function VarR4FromUI1 Lib "oleaut32" (value As Any, R4 As Any) As Long
Private Declare Function VarR4FromI2 Lib "oleaut32" (value As Any, R4 As Any) As Long
Private Declare Function VarR4FromI2 Lib "oleaut32" (value As Any, R4 As Any) As Long
Private Declare Function VarR4FromI4 Lib "oleaut32" (value As Any, R4 As Any) As Long
Private Declare Function VarR4FromI4 Lib "oleaut32" (value As Any, R4 As Any) As Long
Private Const LCMAP_LOWERCASE As Long = &H100
Private Const LCMAP_LOWERCASE As Long = &H100
Private Const PAGE_EXECUTE_READWRITE As Long = &H40&
Private Const PAGE_EXECUTE_READWRITE As Long = &H40&
Private Const MEM_COMMIT As Long = &H1000&
Private Const MEM_COMMIT As Long = &H1000&
Private Const MEM_RESERVE As Long = &H2000&
Private Const MEM_RESERVE As Long = &H2000&
Private Const MEM_RELEASE As Long = &H8000&
Private Const MEM_RELEASE As Long = &H8000&
Private Const HEAP_NO_SERIALIZE As Long = &H1
Private Const HEAP_NO_SERIALIZE As Long = &H1
Private Const GRANULARITY As Long = &H20
Private Const GRANULARITY As Long = &H20
Private Const HASH_SIZE As Long = 2999
Private Const HASH_SIZE As Long = 2999
Private Type tPointer ' ŠŠ½Š“ŠµŠŗŃ Š² ŃŠ°Š±Š»ŠøŃе Š¾Š±ŃекŃов
Private Type tPointer ' ŠŠ½Š“ŠµŠŗŃ Š² ŃŠ°Š±Š»ŠøŃе Š¾Š±ŃекŃов
hash As Integer ' Š„ŃŃ
hash As Integer ' Š„ŃŃ
Index As Integer ' ŠŠ½Š“екŃ
Index As Integer ' ŠŠ½Š“екŃ
End Type
End Type
Private Type tElement ' ŠŠ¾Š»Š¾Š½ŠŗŠ° Ń ŃŃ ŃŠ°Š±Š»ŠøŃŃ
Private Type tElement ' ŠŠ¾Š»Š¾Š½ŠŗŠ° Ń ŃŃ ŃŠ°Š±Š»ŠøŃŃ
Key As Variant ' ŠŠ»ŃŃ
Key As Variant ' ŠŠ»ŃŃ
value As Variant ' ŠŠ½Š°Ńение
value As Variant ' ŠŠ½Š°Ńение
Next As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŃŠ»ŠµŠ“ŃŃŃŠµŠ³Š¾ ŃŠ»ŠµŠ¼ŠµŠ½Ńа
Next As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŃŠ»ŠµŠ“ŃŃŃŠµŠ³Š¾ ŃŠ»ŠµŠ¼ŠµŠ½Ńа
Prev As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŠæŃŠµŠ“ŃŠ“ŃŃŠµŠ³Š¾ ŃŠ»ŠµŠ¼ŠµŠ½Ńа
Prev As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŠæŃŠµŠ“ŃŠ“ŃŃŠµŠ³Š¾ ŃŠ»ŠµŠ¼ŠµŠ½Ńа
End Type
End Type
Private Type tItem ' Š”ŃŃŠ¾ŠŗŠ° Ń ŃŃ ŃŠ°Š±Š»ŠøŃŃ
Private Type tItem ' Š”ŃŃŠ¾ŠŗŠ° Ń ŃŃ ŃŠ°Š±Š»ŠøŃŃ
ElementsCount As Long ' ŠŠ¾Š»ŠøŃеŃŃŠ²Š¾ коллизий+1
ElementsCount As Long ' ŠŠ¾Š»ŠøŃеŃŃŠ²Š¾ коллизий+1
Elements() As tElement ' ŠŠ»ŠµŠ¼ŠµŠ½ŃŃ
Elements() As tElement ' ŠŠ»ŠµŠ¼ŠµŠ½ŃŃ
End Type
End Type
Private Type enumObject ' ŠŠ±ŃекŃ-ŠæŠµŃŠµŃŠøŃŠ»ŠøŃелŃ
Private Type enumObject ' ŠŠ±ŃекŃ-ŠæŠµŃŠµŃŠøŃŠ»ŠøŃелŃ
vTablePtr As Long ' Š£ŠŗŠ°Š·Š°ŃŠµŠ»Ń на ŠøŠ½ŃеŃŃŠµŠ¹Ń IEnumVariant
vTablePtr As Long ' Š£ŠŗŠ°Š·Š°ŃŠµŠ»Ń на ŠøŠ½ŃеŃŃŠµŠ¹Ń IEnumVariant
Counter As Long ' Š”ŃŠµŃŃŠøŠŗ ŃŃŃŠ»Š¾Šŗ
Counter As Long ' Š”ŃŠµŃŃŠøŠŗ ŃŃŃŠ»Š¾Šŗ
Pointer As tPointer ' ŠŠ½Š“ŠµŠŗŃ Š½Š° ŃŠµŠŗŃŃŠøŠ¹ ŃŠ»ŠµŠ¼ŠµŠ½Ń
Pointer As tPointer ' ŠŠ½Š“ŠµŠŗŃ Š½Š° ŃŠµŠŗŃŃŠøŠ¹ ŃŠ»ŠµŠ¼ŠµŠ½Ń
DataPtr As Long ' Š£ŠŗŠ°Š·Š°ŃŠµŠ»Ń на List
DataPtr As Long ' Š£ŠŗŠ°Š·Š°ŃŠµŠ»Ń на List
First As tPointer ' ŠŠ½Š“ŠµŠŗŃ Š½Š° ŠæŠµŃŠ²Ńй ŃŠ»ŠµŠ¼ŠµŠ½Ń
First As tPointer ' ŠŠ½Š“ŠµŠŗŃ Š½Š° ŠæŠµŃŠ²Ńй ŃŠ»ŠµŠ¼ŠµŠ½Ń
OffsetVariant As Long ' Š”Š¼ŠµŃŠµŠ½ŠøŠµ ŠæŠµŃŠµŃŠøŃŠ»Ńемой ŠæŠµŃŠµŠ¼ŠµŠ½Š½Š¾Š¹ (key/value)
OffsetVariant As Long ' Š”Š¼ŠµŃŠµŠ½ŠøŠµ ŠæŠµŃŠµŃŠøŃŠ»Ńемой ŠæŠµŃŠµŠ¼ŠµŠ½Š½Š¾Š¹ (key/value)
End Type
End Type
Private List() As tItem ' Š¢Š°Š±Š»ŠøŃŠ°
Private List() As tItem ' Š¢Š°Š±Š»ŠøŃŠ°
Private mEnumMode As EnumMethod ' ТекŃŃŠøŠ¹ ŃŠµŠ¶ŠøŠ¼ ŠæŠµŃŠµŃŠøŃŠ»ŠµŠ½ŠøŃ
Private mEnumMode As EnumMethod ' ТекŃŃŠøŠ¹ ŃŠµŠ¶ŠøŠ¼ ŠæŠµŃŠµŃŠøŃŠ»ŠµŠ½ŠøŃ
Private mCount As Long ' ŠŠ¾Š»-во ŃŠ»ŠµŠ¼ŠµŠ½Ńов
Private mCount As Long ' ŠŠ¾Š»-во ŃŠ»ŠµŠ¼ŠµŠ½Ńов
Private mCompareMode As VbCompareMethod ' Режим ŃŃŠ°Š²Š½ŠµŠ½ŠøŃ ŠŗŠ»ŃŃŠµŠ¹
Private mCompareMode As VbCompareMethod ' Режим ŃŃŠ°Š²Š½ŠµŠ½ŠøŃ ŠŗŠ»ŃŃŠµŠ¹
Private First As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŠæŠµŃŠ²Š¾Š³Š¾ ŃŠ»ŠµŠ¼ŠµŠ½Ńа
Private First As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŠæŠµŃŠ²Š¾Š³Š¾ ŃŠ»ŠµŠ¼ŠµŠ½Ńа
Private Last As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŠæŠ¾ŃŠ»ŠµŠ“него ŃŠ»ŠµŠ¼ŠµŠ½Ńа
Private Last As tPointer ' ŠŠ½Š“ŠµŠŗŃ ŠæŠ¾ŃŠ»ŠµŠ“него ŃŠ»ŠµŠ¼ŠµŠ½Ńа
Private locbuf() As Integer ' ŠŃŃŠµŃ ŃŠµŠŗŃŃŠ¾Š²Š¾Š¹ ŃŃŃŠ¾ŠŗŠø
Private locbuf() As Integer ' ŠŃŃŠµŃ ŃŠµŠŗŃŃŠ¾Š²Š¾Š¹ ŃŃŃŠ¾ŠŗŠø