Función GetPrivateProfileSectionNames (winbase.h)
Recupera los nombres de todas las secciones de un archivo de inicialización.
Sintaxis
DWORD GetPrivateProfileSectionNames(
[out] LPTSTR lpszReturnBuffer,
[in] DWORD nSize,
[in] LPCTSTR lpFileName
);
Parámetros
[out] lpszReturnBuffer
Puntero a un búfer que recibe los nombres de sección asociados al archivo con nombre. El búfer se rellena con una o varias cadenas terminadas en NULL; la última cadena va seguida de un segundo carácter NULO .
[in] nSize
Tamaño del búfer al que apunta el parámetro lpszReturnBuffer , en caracteres.
[in] lpFileName
Nombre del archivo de inicialización. Si este parámetro es NULL, la función busca en el archivo Win.ini. Si este parámetro no contiene una ruta de acceso completa al archivo, el sistema busca el archivo en el directorio de Windows.
Valor devuelto
El valor devuelto especifica el número de caracteres copiados en el búfer especificado, sin incluir el carácter nulo de terminación. Si el búfer no es lo suficientemente grande como para contener todos los nombres de sección asociados al archivo de inicialización especificado, el valor devuelto es igual al tamaño especificado por nSize menos dos.
Comentarios
Esta operación es atómica; no se permiten actualizaciones del archivo de inicialización mientras se copian los nombres de sección en el búfer.
El sistema asigna la mayoría de .ini referencias de archivo al registro, utilizando la asignación definida en la siguiente clave del Registro:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
Esta asignación es probable que si una aplicación modifica los archivos de inicialización del componente del sistema, como Control.ini, System.ini y Winfile.ini. En estos casos, la función recupera información del Registro, no del archivo de inicialización; el cambio en la ubicación de almacenamiento no tiene ningún efecto en el comportamiento de la función.
Las funciones de perfil usan los pasos siguientes para buscar información de inicialización:
- Busque en el Registro el nombre del archivo de inicialización en la clave IniFileMapping .
- Busque el nombre de sección especificado por lpAppName. Se trata de un valor con nombre bajo la clave que tiene el nombre del archivo de inicialización, o una subclave con este nombre, o bien el nombre no existirá como un valor o una subclave.
- Si el nombre de sección especificado por lpAppName es un valor con nombre, ese valor especifica dónde en el Registro encontrará las claves de la sección.
- Si el nombre de sección especificado por lpAppName es una subclave, los valores con nombre de esa subclave especifican dónde encontrará las claves de la sección en el Registro. Si la clave que busca no existe como un valor con nombre, habrá un valor sin nombre (que se muestra como <Sin nombre>) que especifica la ubicación predeterminada en el Registro donde encontrará la clave.
- Si el nombre de sección especificado por lpAppName no existe como un valor con nombre o como una subclave, habrá un valor sin nombre (que se muestra como <Sin nombre>) que especifica la ubicación predeterminada en el Registro donde encontrará las claves de la sección.
- Si no hay ninguna subclave o entrada para el nombre de sección, busque el archivo de inicialización real en el disco y lea su contenido.
- ! : este carácter obliga a todas las escrituras a ir al registro y al archivo .ini en el disco.
- # : este carácter hace que el valor del Registro se establezca en el valor del archivo de .ini de Windows 3.1 cuando un nuevo usuario inicie sesión por primera vez después de la instalación.
- @ : este carácter impide que las lecturas vayan al archivo .ini en el disco si los datos solicitados no se encuentran en el registro.
- USR: : este prefijo significa HKEY_CURRENT_USER y el texto después del prefijo es relativo a esa clave.
- SYS: : este prefijo significa HKEY_LOCAL_MACHINE\SOFTWAREy el texto después del prefijo es relativo a esa clave.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |