Module Hamlog50

    Declare Sub MoveMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As TJccgMas, ByVal Source As StringByVal Length As Integer)
    Public Declare Function ksort Lib "KSORT32.DLL" (ByVal DriveStr As StringByVal SzOutput As StringAs Short

    Declare Function dbf_open Lib "Hamlog50.dll" (ByVal s As StringByRef d As TDBFh) As Integer
    Declare Sub dbf_close Lib "Hamlog50.dll" (ByRef d As TDBFh)
    Declare Function dbf_rcount Lib "Hamlog50.dll" (ByRef d As TDBFh) As Integer
    Declare Function dbf_read Lib "Hamlog50.dll" (ByRef d As TDBFh, ByVal n As IntegerByVal s As StringAs Integer
    Declare Sub GetDxEntity Lib "Hamlog50.dll" (ByVal calls As StringByVal buff As String)
    Declare Sub Wget_bit Lib "Hamlog50.dll" (ByVal w As StringByRef wc As TJccgMas)
    Declare Sub Wput_bit Lib "Hamlog50.dll" (ByRef Th As TThLog, ByVal w As String)

    Declare Function HamlogOpen Lib "Hamlog50.dll" (ByVal h As IntegerByRef th As TThLog, ByVal f As StringByVal v As IntegerAs Integer
    Declare Sub HamlogClose Lib "Hamlog50.dll" (ByRef th As TThLog, ByVal i As Integer)
    Declare Function THW_read Lib "Hamlog50.dll" (ByRef h As TThLog, ByVal n As IntegerByVal i As IntegerAs Integer

    Declare Sub SetDbsShare Lib "Hamlog50.dll" ()
    Declare Function idx_open Lib "Hamlog50.dll" (ByVal s As StringByRef p As TIDXh) As Integer
    Declare Sub idx_close Lib "Hamlog50.dll" (ByRef p As TIDXh)
    Declare Function idx_search Lib "Hamlog50.dll" (ByRef p As TIDXh, ByVal s As StringByVal l As IntegerAs Integer
    Declare Function idx_next Lib "Hamlog50.dll" (ByRef p As TIDXh) As Integer

    'THW_append  
    '修正できない項目は、Hamlogのデータ項目名で表すと
    'My, Freq, Mode, Name, QTH, Remarks1, Remarks2の7項目です。
    'Call, Date, Time, His, Code, G.L, QSLの7項目は正しく修正できます
    Declare Function THW_append Lib "Hamlog50.dll" (ByRef Th As TThLog, ByVal f As IntegerByRef m As IntegerAs Integer

    Declare Function Vdbf_open Lib "Thdll2Vb.dll" (ByVal s As StringByRef d As TThLog) As Integer
    Declare Sub Vdbf_close Lib "Thdll2Vb.dll" (ByRef d As TThLog)
    Declare Function Vdbf_rcount Lib "Thdll2Vb.dll" (ByRef d As TThLog) As Integer
    Declare Sub SetThBuffer Lib "Thdll2Vb.dll" (ByRef p As TThLog, ByVal s As StringByVal n As Integer)
    Declare Function ThwString Lib "Thdll2Vb.dll" (ByVal s As StringByRef th As TThLog, ByVal n As ShortAs Integer
    Declare Sub VWget_bit Lib "Thdll2Vb.dll" (ByVal w As StringByRef p As TThLog)

    Structure TDBFh
        <VBFixedArray(4), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=4)> Dim lupdt() As Byte
        Dim Rcount As Integer
        Dim hsize As Integer
        Dim recnm As Integer
        Dim fHdl As Integer
        <VBFixedArray(260), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=260)> Dim Temp() As Byte
        Public Sub Initialize()
            ReDim lupdt(4)
            ReDim Temp(260)
        End Sub
    End Structure

    Structure TThLog
        <VBFixedArray(3927), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=3927)> Dim Qso() As Byte ' Ver5.03で変更
        Public Sub Initialize()
            ReDim Qso(3927)
        End Sub
    End Structure

    Structure TIDXh       ' インデックスファイル用
        Dim p As Integer
        Dim fHdl As Integer
        <VBFixedArray(260), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=260)> Dim Temp() As Byte
        Public Sub Initialize()
            ReDim Temp(260)
        End Sub
    End Structure

    Structure TJccgMas
        <VBFixedArray(55), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=55)> Dim buff() As Byte
        Public Sub Initialize()
            ReDim buff(55)
        End Sub
    End Structure

    Public th As TDBFh
    Public log As TThLog
    Public THindx As TIDXh
    Public TJccgMas_ As TJccgMas
    Public Const IsQSOdata = 16

End Module