IniUninit

Записывает копию ini файла на диск. Обратная IniInit.

Вариант для ANSI/OEM кодировок в файле
int IniUninit(
    HANDLE hFile,
    const char *Buf,
    const size_t SzDat
);
Вариант для UTF-8 кодировок в файле
int IniUnWinit(
    HANDLE hFile,
    const wchar_t *WBuf,
    const size_t SzWDat
);

Параметры

hFile
[вых]
HANDLE открытого файла Win32 функцией CreateFile с атрибутами, допускающими запись.
Buf
[вх]
Адрес буфера в памяти с сформированным в нём ini файлом.
SzBuf
[вх] Число символов в этом буфере, которые нужно записать в файл. Типично значение Bufsz из прочих функций - 1. (или результат strlen())

Возвращаемые значения

0 при успехе.
Или код ошибки согласно кодам Win32.

Заметки

Функция сама не освобождает память в Buf. Данный буфер должен освобождаться пользователем способом, согласно которому под него была выделена память.

Быстрая справка

ОС Наличие стандартной библиотеки Си, Поддержка WinAPI v4
DLL 2fapShare.dll
Библиотека 2fapShare.lib
Заголовок ini.h

Смотри также

Работа с ini файлами

Исходные коды

Даны как наиболее сложный пример входной подготовки ini файла к работе
int IniUnWinit(HANDLE hFile, const wchar_t *WBuf, const size_t SzWDat)
{    //записывает ini файл на диск, вариант для UTF-8
    char *Buf;
    size_t SzBuf = 3 + WideCharToMultiByte(CP_UTF8, 0, WBuf, SzWDat, 0, 0, 0, 0);
    if(SzBuf < 4)
        return GetLastError();
    if((Buf = (char*) malloc(SzBuf)) == 0)
        return 8;
    Buf[0] = (char) 0xEF; Buf[1] = (char) 0xBB; Buf[2] = (char) 0xBF; //запиcь идентификатора кодировки UTF-8
    if(WideCharToMultiByte(CP_UTF8, 0, WBuf, SzWDat, Buf+3, SzBuf-3, 0, 0)==0)
    {
        free(Buf);
        return GetLastError();
    }
    {
        DWORD nbw=0;
        OVERLAPPED ovs = {0};
        WriteFile(hFile, Buf, SzBuf, &nbw, &ovs);
    }
    free(Buf);
    return GetLastError();
}