Attribute VB_Name = "modWHXAPI" ' WinHex API 1.1 Declarations for Visual Basic ' ' Copyright © 2001-2003 Stefan Fleischmann ' Modified by Alexander Asyabrik ' Requires an existing installation of WinHex 10.1 ' or later and a professional WinHex license. ' ' Needs to be included in another Visual Basic project. ' Cannot be used as a Visual Basic project on its own. ' ' May need adjustment depending on the Visual Basic ' version you are using. '---------------------------------------------------------------------- ' This declarations fully valid for VB5,VB6 ' Copyright © 2002 Alexander Asyabrik Public Declare Function WHX_Init Lib "whxapi.dll" (ByVal APIVersion As Long) As Long Public Declare Function WHX_Done Lib "whxapi.dll" () As Long Public Declare Function WHX_Open Lib "whxapi.dll" (ByVal lpResName As String) As Long Public Declare Function WHX_Create Lib "whxapi.dll" (ByVal lpResName As String, ByVal Count As Long) As Long Public Declare Function WHX_Close Lib "whxapi.dll" () As Long Public Declare Function WHX_CloseAll Lib "whxapi.dll" () As Long Public Declare Function WHX_NextObj Lib "whxapi.dll" () As Long Public Declare Function WHX_Save Lib "whxapi.dll" () As Long Public Declare Function WHX_SaveAll Lib "whxapi.dll" () As Long Public Declare Function WHX_SaveAs Lib "whxapi.dll" (ByVal lpNewFileName As String) As Long Public Declare Function WHX_OpenEx Lib "whxapi.dll" (ByVal lpResName As String, ByVal Param As Long) As Long Public Declare Function WHX_Read Lib "whxapi.dll" (ByRef lpBuffer As Byte, ByVal Bytes As Long) As Long Public Declare Function WHX_ReadString Lib "whxapi.dll" Alias "WHX_Read" (ByVal lpBuffer As String, ByVal Bytes As Long) As Long Public Declare Function WHX_Write Lib "whxapi.dll" (ByRef lpBuffer As Byte, ByVal Bytes As Long) As Long Public Declare Function WHX_WriteString Lib "whxapi.dll" Alias "WHX_Write" (ByVal lpBuffer As String, ByVal Bytes As Long) As Long Public Declare Function WHX_GetSize Lib "whxapi.dll" (ByRef Size As Currency) As Long Public Declare Function WHX_Goto Lib "whxapi.dll" (ByVal Ofs As Currency) As Long Public Declare Function WHX_Move Lib "whxapi.dll" (ByVal Ofs As Currency) As Long Public Declare Function WHX_CurrentPos Lib "whxapi.dll" (ByRef Ofs As Currency) As Long Public Declare Function WHX_SetBlock Lib "whxapi.dll" (ByVal Ofs1 As Currency, ByVal Ofs2 As Currency) As Long ' Public Declare Function WHX_Copy Lib "whxapi.dll" () As Long Public Declare Function WHX_CopyIntoNewFile Lib "whxapi.dll" (ByVal lpNewFileName As String) As Long Public Declare Function WHX_Cut Lib "whxapi.dll" () As Long Public Declare Function WHX_Remove Lib "whxapi.dll" () As Long Public Declare Function WHX_Paste Lib "whxapi.dll" () As Long Public Declare Function WHX_WriteClipboard Lib "whxapi.dll" () As Long Public Declare Function WHX_Find Lib "whxapi.dll" (ByVal Data As String, ByVal lpOptions As String) As Long Public Declare Function WHX_Replace Lib "whxapi.dll" (ByVal Data1 As String, ByVal Data2 As String, ByVal lpOptions As String) As Long Public Declare Function WHX_WasFound Lib "whxapi.dll" () As Long Public Declare Function WHX_WasFoundEx Lib "whxapi.dll" () As Long Public Declare Function WHX_Convert Lib "whxapi.dll" (ByVal Format1 As String, ByVal Format2 As String) As Long Public Declare Function WHX_Encrypt Lib "whxapi.dll" (ByVal Key As String, ByVal Algorithm As Long) As Long Public Declare Function WHX_Decrypt Lib "whxapi.dll" (ByVal Key As String, ByVal Algorithm As Long) As Long Public Declare Function WHX_GetCurObjName Lib "whxapi.dll" (ByVal ObjName As String) As Long Public Declare Function WHX_SetFeedbackLevel Lib "whxapi.dll" (ByVal Level As Long) As Long Public Declare Function WHX_GetLastError Lib "whxapi.dll" (ByVal MsgBuffer As String) As Long Public Declare Function WHX_SetLastError Lib "whxapi.dll" (ByVal MsgBuffer As String) As Long Public Declare Function WHX_GetStatus Lib "whxapi.dll" (ByVal lpInstPath As String, ByRef lpWHXVersion As Long, ByRef lpWHXSubVersion As Long, ByRef lpReserved As Long) As Long '===================================== 'Added for special conversion routines Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, ByVal pSrc As String, ByVal ByteLen As Long) Private Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (Destination As Any, ByVal Length As Long) 'This function put valid numbers for LONGLONG param ' My copyright :) Public Function VB2API(Pos As Currency) As Currency VB2API = Pos / 10000 End Function 'This function translate LONGLONG param to valid VB numbers ' My copyright :) Public Function API2VB(Pos As Currency) As Currency API2VB = Pos * 10000 End Function 'This function translate byte array to valid VB unicode string Public Function ChangeToStringUni(Bytes() As Byte) As String Dim temp As String temp = StrConv(Bytes, vbUnicode) ChangeToStringUni = temp End Function 'Changes a Visual Basic unicode string to the byte array 'Returns True if it truncates str Public Function ChangeBytes(ByVal str As String, Bytes() As Byte) As Boolean Dim lenBs As Long 'length of the byte array Dim lenStr As Long 'length of the string lenBs = UBound(Bytes) - LBound(Bytes) lenStr = LenB(StrConv(str, vbFromUnicode)) If lenBs > lenStr Then CopyMemory Bytes(0), str, lenStr ZeroMemory Bytes(lenStr), lenBs - lenStr ElseIf lenBs = lenStr Then CopyMemory Bytes(0), str, lenStr Else CopyMemory Bytes(0), str, lenBs ' string truncated ChangeBytes = True End If End Function