@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: Retrieves all the keys and values for the specified section of an initialization file. Note: This function is provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry. !!!!VB.Net Signature <DllImport("kernel32.dll")> _ Shared Function GetPrivateProfileSection( ByVal lpAppName As String, _ ByVal lpszReturnBuffer As IntPtr, ByVal nSize As System.Int32, ByVal lpFileName As String) As System.Int32 End Function !!!!C# Signature: [DllImport("kernel32.dll")] static extern uint GetPrivateProfileSection(string lpAppName, IntPtr lpszReturnBuffer, uint nSize, string lpFileName); !!!!Sample Code: Dim profiles As New Collections.Specialized.StringCollection Dim ptr As IntPtr = Marshal.StringToHGlobalAnsi(New String(vbNullChar, 1024)) Dim len As Int32 = GetPrivateProfileSection("AppName", ptr, 1024, IniPath) Dim buff As String = Marshal.PtrToStringAnsi(ptr, len) Marshal.FreeHGlobal(ptr) Dim sb As New StringBuilder ' ' I can't believe people write shit code like this. ' For ii As Integer = 0 To len - 1 Dim c As Char = buff.Chars(ii) If c = vbNullChar Then profiles.Add(sb.ToString) sb.Length = 0 Else sb.Append(c) End If Next !!!!Alternative C# Signature: [DllImport("kernel32.dll",CharSet=CharSet.Auto)] static extern uint GetPrivateProfileSection(string lpAppName, IntPtr lpszReturnBuffer, uint nSize, string lpFileName); !!!!Alternative Sample Code: //similar to above, but use of CharSet in DllImport allows use of Marshal.PtrToStringAuto public string[] Section() { uint MAX_BUFFER = 32767; IntPtr pReturnedString = Marshal.AllocCoTaskMem((int)MAX_BUFFER); uint bytesReturned = GetPrivateProfileSection("AppName", pReturnedString, MAX_BUFFER, m_iniFile); if (bytesReturned == 0) { Marshal.FreeCoTaskMem(pReturnedString); return null; } string local = Marshal.PtrToStringAnsi(pReturnedString, (int)bytesReturned).ToString(); Marshal.FreeCoTaskMem(pReturnedString); //use of Substring below removes terminating null for split return local.Substring(0, local.Length - 1).Split('\0'); } !!!!Alternative Managed API: Do you know one? Please contribute it! Documentation: GetPrivateProfileSection@msdn on MSDN
Edit kernel32.GetPriva...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.