Función WritePrivateProfileStructW (winbase.h)
Copia los datos en una clave de la sección especificada de un archivo de inicialización. A medida que copia los datos, la función calcula una suma de comprobación y la anexa al final de los datos. La función getPrivateProfileStruct
Sintaxis
BOOL WritePrivateProfileStructW(
[in] LPCWSTR lpszSection,
[in] LPCWSTR lpszKey,
[in] LPVOID lpStruct,
[in] UINT uSizeStruct,
[in] LPCWSTR szFile
);
Parámetros
[in] lpszSection
Nombre de la sección a la que se copiarán los datos de estructura. Si la sección no existe, se crea. El nombre de la sección es independiente de mayúsculas y minúsculas.
[in] lpszKey
Nombre de la clave que se va a asociar a una estructura. Si la clave no existe en la sección especificada, se crea. Si este parámetro es NULL, se elimina toda la sección, incluidas todas las claves y entradas de la sección.
[in] lpStruct
Datos que se van a copiar. Si este parámetro es null, se elimina la clave.
[in] uSizeStruct
Tamaño del búfer al que apunta el parámetro lpStruct, en bytes.
[in] szFile
Nombre del archivo de inicialización. Si este parámetro es NULL, la información se copia en el archivo Win.ini.
Si el archivo se creó con caracteres Unicode, la función escribe caracteres Unicode en el archivo. De lo contrario, la función escribe caracteres ANSI.
Valor devuelto
Si la función copia correctamente la estructura en el archivo de inicialización, el valor devuelto es distinto de cero.
Si se produce un error en la función o si vacía la versión almacenada en caché del archivo de inicialización al que se accede más recientemente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Observaciones
Una sección del archivo de inicialización debe tener el siguiente formato:
[section]
key=struct
.
.
.
Si el parámetro szFile no contiene una ruta de acceso completa y un nombre de archivo para el archivo, WritePrivateProfileString busca el directorio de Windows para el archivo. Si el archivo no existe, esta función crea el archivo en el directorio de Windows.
Si szFile contiene una ruta de acceso completa y un nombre de archivo y el archivo no existe, writeProfileString crea el archivo. El directorio especificado ya debe existir.
El sistema mantiene una versión almacenada en caché de la asignación de archivos del Registro más reciente para mejorar el rendimiento. Si todos los parámetros se null, la función vacía la memoria caché. Mientras el sistema edita la versión almacenada en caché del archivo, los procesos que editan el propio archivo usarán el archivo original hasta que se haya borrado la memoria caché.
El sistema asigna la mayoría de las referencias de archivo .ini al registro mediante la asignación definida en la siguiente clave del Registro:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion IniFileMapping
Esta asignación es probable si una aplicación modifica los archivos de inicialización de componentes del sistema, como Control.ini, System.iniy Winfile.ini. En este caso, la función escribe información en el Registro, no en el 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 localizar la 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. Este será 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. 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 la 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 en el 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_USERy 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.
Nota
El encabezado winbase.h define WritePrivateProfileStruct como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winbase.h (incluya Windows.h) |
biblioteca de |
Kernel32.lib |
DLL de |
Kernel32.dll |