Question:
I want to read the MSMAIL.INI file to get information for my program when it starts, and write information there when the program is terminated. I am looking at GetPrivateProfileString() and WritePrivateProfileString(). So far I can get the WritePrivateProfileString() to work, it writes the information I want into the Section and Key that I want to use. The problem is with the GetPrivateProfileString(); it is causing the program to crash. It is looking for a character string to fill with the desired information. How do I pass it a Visual Basic character string that it can us without causing a GPF, or should I be considering something else?
Answer:
There is an error in the declarations file. Several of the INI functions are missing ByVal prefixes before several of the parameters of the declaration. Take a look at the declaration, and add a ByVal in front of any parameters that are missing. Here are the declarations and the calls:
Declare Function GetPrivateProfileString Lib “Kernel” (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer iReturn = GetPrivateProfileString(ByVal isSection, ByVal isEntry, “No Value Read”, sReturn, Len(sReturn), ByVal isFilename)Declare Function WritePrivateProfileString Lib “Kernel” (ByVal lpApplicationName As String, lpKeyName As Any, lpString As Any, ByVal lplFileName As String) As Integer iRet = WritePrivateProfileString(ByVal isSection, ByVal isEntry, ByVal isValue, ByVal isFilename)