Knowledge Base

DOCERR: GetPrivateProfileString Declaration Incorrect in API

Article ID: 110826

Article Last Modified on 5/6/2003


APPLIES TO


This article was previously published under Q110826

SUMMARY

This article corrects a documentation error for the GetPrivateProfileString function call as described in the Windows version 3.1 API Reference help file that shipped with Microsoft Visual Basic version 3.0 for Windows.

This same documentation error occurs in Visual Basic version 4.0 in the WIN32API.TXT file.

MORE INFORMATION

The declaration is incorrectly shown as:
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
				

The correct declaration is as follows:
Declare Function GetPrivateProfileString Lib "Kernel"
                                 (ByVal lpApplicationName As String,
                                  ByVal lpKeyName As Any,
                                  ByVal lpDefault As String,
                                  ByVal lpReturnedString As String,
                                  ByVal nSize As Integer,
                                  ByVal lpFileName As String) As Integer
				

NOTE: Each Declare statement must be entered as one, single line.

Notice that the "ByVal" keyword was omitted from the second parameter in the online reference. This means that the function is passing the second parameter (lpKeyName) by reference. It needs to be passed by value.

The most common problem that occurs when using the incorrect declaration is that when the function is called, it returns a copy of "lpdefault" in the "lpReturnedString" parameter instead of the actual value referenced by KeyName.

Additional query words: 3.00 4.00

Keywords: KB110826