Namespace App Namespace Native Public Class Ini ' API functions Private Declare Ansi Function GetPrivateProfileString _ Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, ByVal lpDefault As String, _ ByVal lpReturnedString As System.Text.StringBuilder, _ ByVal nSize As Integer, ByVal lpFileName As String) _ As Integer Private Declare Ansi Function WritePrivateProfileString _ Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, ByVal lpString As String, _ ByVal lpFileName As String) As Integer Private Declare Ansi Function GetPrivateProfileInt _ Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, ByVal nDefault As Integer, _ ByVal lpFileName As String) As Integer Private Declare Ansi Function FlushPrivateProfileString _ Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As Integer, _ ByVal lpKeyName As Integer, ByVal lpString As Integer, _ ByVal lpFileName As String) As Integer Dim strFilename As String ' Constructor, accepting a filename Public Sub New(ByVal Filename As String) strFilename = Filename End Sub ' Read-only filename property ReadOnly Property FileName() As String Get Return strFilename End Get End Property Public Function GetString(ByVal Section As String, ByVal Key As String, ByVal [Default] As String) As String ' Returns a string from your INI file Dim intCharCount As Integer Dim objResult As New System.Text.StringBuilder(256) intCharCount = GetPrivateProfileString(Section, Key, _ [Default], objResult, objResult.Capacity, strFilename) If intCharCount > 0 Then Return Left(objResult.ToString, intCharCount) Else Return "" End If End Function Public Function GetInteger(ByVal Section As String, ByVal Key As String, ByVal [Default] As Integer) As Integer ' Returns an integer from your INI file Return GetPrivateProfileInt(Section, Key, _ [Default], strFilename) End Function Public Function GetBoolean(ByVal Section As String, ByVal Key As String, ByVal [Default] As Boolean) As Boolean ' Returns a boolean from your INI file Return (GetPrivateProfileInt(Section, Key, _ CInt([Default]), strFilename) = 1) End Function Public Sub WriteString(ByVal Section As String, ByVal Key As String, ByVal Value As String) ' Writes a string to your INI file WritePrivateProfileString(Section, Key, Value, strFilename) Flush() End Sub Public Sub WriteInteger(ByVal Section As String, ByVal Key As String, ByVal Value As Integer) ' Writes an integer to your INI file WriteString(Section, Key, CStr(Value)) Flush() End Sub Public Sub WriteBoolean(ByVal Section As String, ByVal Key As String, ByVal Value As Boolean) ' Writes a boolean to your INI file WriteString(Section, Key, CStr(CInt(Value))) Flush() End Sub Private Sub Flush() ' Stores all the cached changes to your INI file FlushPrivateProfileString(0, 0, 0, strFilename) End Sub End Class End Namespace End Namespace