Imports System.Runtime.InteropServices Imports System.Security Public Module EgtInterface #If DEBUG Then Const EgtIntDll32 As String = "EgtBasisD32.dll" Const EgtIntDll64 As String = "EgtBasisD64.dll" #Else Const EgtIntDll32 As String = "EgtBasisR32.dll" Const EgtIntDll64 As String = "EgtBasisR64.dll" #End If Private Function EgtSetKey_32(sKey As String) As Boolean End Function Private Function EgtSetKey_64(sKey As String) As Boolean End Function Public Function EgtSetKey(sKey As String) As Boolean If IntPtr.Size = 4 Then Return EgtSetKey_32(sKey) Else Return EgtSetKey_64(sKey) End If End Function Private Function EgtGetKeyLevel_32(nProd As Integer, nVer As Integer, nLev As Integer, ByRef nKLev As Integer) As Boolean End Function Private Function EgtGetKeyLevel_64(nProd As Integer, nVer As Integer, nLev As Integer, ByRef nKLev As Integer) As Boolean End Function Public Function EgtGetKeyLevel(nProd As Integer, nVer As Integer, nLev As Integer, ByRef nKLev As Integer) As Boolean If IntPtr.Size = 4 Then Return EgtGetKeyLevel_32(nProd, nVer, nLev, nKLev) Else Return EgtGetKeyLevel_64(nProd, nVer, nLev, nKLev) End If End Function Private Function EgtGetKeyOptions_32(nProd As Integer, nVer As Integer, nLev As Integer, ByRef nOpt1 As UInteger, ByRef nOpt2 As UInteger) As Boolean End Function Private Function EgtGetKeyOptions_64(nProd As Integer, nVer As Integer, nLev As Integer, ByRef nOpt1 As UInteger, ByRef nOpt2 As UInteger) As Boolean End Function Public Function EgtGetKeyOptions(nProd As Integer, nVer As Integer, nLev As Integer, ByRef nOpt1 As UInteger, ByRef nOpt2 As UInteger) As Boolean If IntPtr.Size = 4 Then Return EgtGetKeyOptions_32(nProd, nVer, nLev, nOpt1, nOpt2) Else Return EgtGetKeyOptions_64(nProd, nVer, nLev, nOpt1, nOpt2) End If End Function Public Function EgtGetKeyOptions(nProd As Integer, nVer As Integer, nLev As Integer, ByRef nOpt2 As UInteger) As Boolean Return EgtGetKeyOptions(nProd, nVer, nLev, nOpt2) End Function Private Function EgtGetKeyLeftDays_32(ByRef nLeftDays As Integer) As Boolean End Function Private Function EgtGetKeyLeftDays_64(ByRef nLeftDays As Integer) As Boolean End Function Public Function EgtGetKeyLeftDays(ByRef nLeftDays As Integer) As Boolean If IntPtr.Size = 4 Then Return EgtGetKeyLeftDays_32(nLeftDays) Else Return EgtGetKeyLeftDays_64(nLeftDays) End If End Function Private Function EgtGetKeyAssLeftDays_32(ByRef nAssLeftDays As Integer) As Boolean End Function Private Function EgtGetKeyAssLeftDays_64(ByRef nAssLeftDays As Integer) As Boolean End Function Public Function EgtGetKeyAssLeftDays(ByRef nAssLeftDays As Integer) As Boolean If IntPtr.Size = 4 Then Return EgtGetKeyAssLeftDays_32(nAssLeftDays) Else Return EgtGetKeyAssLeftDays_64(nAssLeftDays) End If End Function Private Function EgtGetKeyOptLeftDays_32(ByRef nOptLeftDays As Integer) As Boolean End Function Private Function EgtGetKeyOptLeftDays_64(ByRef nOptLeftDays As Integer) As Boolean End Function Public Function EgtGetKeyOptLeftDays(ByRef nOptLeftDays As Integer) As Boolean If IntPtr.Size = 4 Then Return EgtGetKeyOptLeftDays_32(nOptLeftDays) Else Return EgtGetKeyOptLeftDays_64(nOptLeftDays) End If End Function Private Function EgtFreeMemory_32(sB As IntPtr) As Boolean End Function Private Function EgtFreeMemory_64(sB As IntPtr) As Boolean End Function Public Function EgtFreeMemory(sB As IntPtr) As Boolean If IntPtr.Size = 4 Then Return EgtFreeMemory_32(sB) Else Return EgtFreeMemory_64(sB) End If End Function Private Function EgtLoadMessages_32(sMsgFilePath As String) As Boolean End Function Private Function EgtLoadMessages_64(sMsgFilePath As String) As Boolean End Function Public Function EgtLoadMessages(sMsgFilePath As String) As Boolean If IntPtr.Size = 4 Then Return EgtLoadMessages_32(sMsgFilePath) Else Return EgtLoadMessages_64(sMsgFilePath) End If End Function Private Function EgtGetMsg_32(nId As Integer) As IntPtr End Function Private Function EgtGetMsg_64(nId As Integer) As IntPtr End Function Public Function EgtMsg(nId As Integer) As String If IntPtr.Size = 4 Then Return Marshal.PtrToStringUni(EgtGetMsg_32(nId)) Else Return Marshal.PtrToStringUni(EgtGetMsg_64(nId)) End If ' Non è necessario liberare la memoria nativa perchè usa un buffer statico End Function Private Function EgtInitLogger_32(nDebug As Integer, sLogFilePath As String) As Boolean End Function Private Function EgtInitLogger_64(nDebug As Integer, sLogFilePath As String) As Boolean End Function Public Function EgtInitLogger(nDebug As Integer, sLogFilePath As String) As Boolean If IntPtr.Size = 4 Then Return EgtInitLogger_32(nDebug, sLogFilePath) Else Return EgtInitLogger_64(nDebug, sLogFilePath) End If End Function Private Function EgtOutLog_32(sMsg As String, nDebugLevel As Integer) As Boolean End Function Private Function EgtOutLog_64(sMsg As String, nDebugLevel As Integer) As Boolean End Function Public Function EgtOutLog(sMsg As String, nDebugLevel As Integer) As Boolean If IntPtr.Size = 4 Then Return EgtOutLog_32(sMsg, nDebugLevel) Else Return EgtOutLog_64(sMsg, nDebugLevel) End If End Function Public Function EgtOutLog(sMsg As String) As Boolean Return EgtOutLog(sMsg, 0) End Function Private Function EgtGetStringUtf8FromIni_32(sSec As String, sKey As String, sDef As String, ByRef sVal As IntPtr, sIniFile As String) As Boolean End Function Private Function EgtGetStringUtf8FromIni_64(sSec As String, sKey As String, sDef As String, ByRef sVal As IntPtr, sIniFile As String) As Boolean End Function Public Function EgtGetStringUtf8FromIni(sSec As String, sKey As String, sDef As String, ByRef sVal As String, sIniFile As String) As Boolean Dim psVal As IntPtr Dim bOk As Boolean = False If IntPtr.Size = 4 Then bOk = EgtGetStringUtf8FromIni_32(sSec, sKey, sDef, psVal, sIniFile) Else bOk = EgtGetStringUtf8FromIni_64(sSec, sKey, sDef, psVal, sIniFile) End If If bOk Then sVal = Marshal.PtrToStringUni(psVal) EgtFreeMemory(psVal) Else sVal = String.Empty End If Return bOk End Function Public Function EgtWriteStringUtf8toIni_32(sSec As String, sKey As String, sVal As String, sIniFile As String) As Boolean End Function Public Function EgtWriteStringUtf8toIni_64(sSec As String, sKey As String, sVal As String, sIniFile As String) As Boolean End Function Public Function EgtWriteStringUtf8toIni(sSec As String, sKey As String, sVal As String, sIniFile As String) As Boolean If IntPtr.Size = 4 Then Return EgtWriteStringUtf8toIni_32(sSec, sKey, sVal, sIniFile) Else Return EgtWriteStringUtf8toIni_64(sSec, sKey, sVal, sIniFile) End If End Function Public Function EgtInit(nDebug As Integer, sLogFile As String, Optional sLogMsg As String = "") As Boolean Dim MyDll As System.Reflection.AssemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName() sLogMsg &= vbLf & "EgtUILib.dll ver. " & MyDll.Version.Major.ToString() & "." & MyDll.Version.Minor.ToString() & (ChrW(97 - 1 + MyDll.Version.Build)).ToString() & MyDll.Version.Revision.ToString() Dim bOk As Boolean = EgtInitLogger(nDebug, sLogFile) If bOk Then EgtOutLog(sLogMsg) Return bOk End Function End Module