怎么用CreateFile以写的方式打开一个只读文件

如何用CreateFile以写的方式打开一个只读文件? - C++ Builder / Windows SDK/API
我要对一个文件进行写操作,但发现那个文件是只读属性,于是乎CreateFile就失败了。
我想问如何用CreateFile以写的方式打开一个只读文件?
CreateFile中有参数可以指定这种操作码?
还是要先用其他函数改变文件属性,再对文件进行写操作,然后再还原文件属性?那是用些什么函数呢?

------解决方案--------------------
C/C++ code
char szFileName[] = "C:\\ccrun\\123.dat";
HANDLE hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL,
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
    DWORD dwLastError = GetLastError();
    if (dwLastError == 5)
    {
        DWORD dwAttr = GetFileAttributes(szFileName);
        dwAttr &= ~FILE_ATTRIBUTE_READONLY;
        dwAttr &= ~FILE_ATTRIBUTE_SYSTEM;
        SetFileAttributes(szFileName, dwAttr);
    }
    hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL,
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
}

if (hFile != INVALID_HANDLE_VALUE)
{
    // 进行读写操作
    ....
    //
    ::CloseHandle(hFile);
    ShowMessage("ok");
}

------解决方案--------------------
引用楼主 kornberg206 的帖子:
我要对一个文件进行写操作,但发现那个文件是只读属性,于是乎CreateFile就失败了。
我想问如何用CreateFile以写的方式打开一个只读文件?
CreateFile中有参数可以指定这种操作码?
还是要先用其他函数改变文件属性,再对文件进行写操作,然后再还原文件属性?那是用些什么函数呢?