home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 4_2005-2006.ISO / data / Zips / Convert_It220542612011.psc / Class / cGetPutINI_v2.cls
Text File  |  2006-02-23  |  3KB  |  89 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsGetPutINI"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. '/**************************************/
  15. '/*     Author: Morgan Haueisen        */
  16. '/*             morganh@hartcom.net    */
  17. '/*     Copyright (c) 1996-2006        */
  18. '/*                                    */
  19. '/* Write/Read from an INI file        */
  20. '/**************************************/
  21.  
  22. Option Explicit
  23.  
  24. Private Declare Function GetPrivateProfileString Lib "kernel32" _
  25.       Alias "GetPrivateProfileStringA" ( _
  26.       ByVal lpAppName As String, _
  27.       ByVal lpKeyName As String, _
  28.       ByVal lpDefault As String, _
  29.       ByVal lpReturnedString As String, _
  30.       ByVal nSize As Long, _
  31.       ByVal Filename As String) As Long
  32.  
  33. Private Declare Function WritePrivateProfileString Lib "kernel32.dll" _
  34.       Alias "WritePrivateProfileStringA" ( _
  35.       ByVal lpAppName As String, _
  36.       ByVal lpKeyName As String, _
  37.       ByVal lpDefault As String, _
  38.       ByVal Filename As String) As Long
  39.  
  40. Private mstrINIFile As String
  41.  
  42. Private Sub Class_Initialize()
  43.  
  44.    mstrINIFile = App.Path & "\" & App.Title & ".dat"
  45.  
  46. End Sub
  47.  
  48. Public Function GetSetting(ByVal vSection As String, _
  49.                            ByVal vKey As String, _
  50.                            Optional ByVal vDefaultValue As String = vbNullString) As String
  51.  
  52.   Const C_BufferLen As Long = 255&   'Max Size of All Init
  53.   Dim strBuffer     As String * C_BufferLen
  54.   Dim lngR          As Long
  55.  
  56.    On Local Error Resume Next
  57.    lngR = GetPrivateProfileString(vSection, vKey, vbNullString, strBuffer, C_BufferLen, mstrINIFile)
  58.  
  59.    If lngR Then
  60.       GetSetting = Left$(strBuffer, lngR)
  61.    Else
  62.       GetSetting = vDefaultValue
  63.    End If
  64.  
  65.    On Local Error GoTo 0
  66.  
  67. End Function
  68.  
  69. Public Property Let INI_FileName(ByVal vNewValue As String)
  70.  
  71.    mstrINIFile = vNewValue
  72.  
  73. End Property
  74.  
  75. Public Property Get INI_FileName() As String
  76.  
  77.    INI_FileName = mstrINIFile
  78.  
  79. End Property
  80.  
  81. Public Sub SaveSetting(ByVal vSection As String, ByVal vKey As String, ByVal vNewValue As String)
  82.  
  83.    On Local Error Resume Next
  84.    Call WritePrivateProfileString(vSection, vKey, vNewValue, mstrINIFile)
  85.    On Local Error GoTo 0
  86.  
  87. End Sub
  88.  
  89.