コード例 #1
0
ファイル: file.cpp プロジェクト: jdlugosz/repertoire
bool file::open (const open_spec& spec, wstring filename)
{
    close();
    filename.append (L'\0');
    ratwin::types::HANDLE new_h= CreateFile (filename.get_buffer(), spec.access, spec.share, spec.how, spec.even_more_flags);
    if (new_h == 0)  throw classics::exception ("Tomahawk", "That can't happen!", __FILE__, __LINE__);
    if (new_h == ratwin::types::HANDLE(0xffffffff)) {
        if (spec.CanFail)  return false;
        else {
            Error X (__LINE__);
            wFmt(X) << L"Can't open file named \"" << filename << L"\"." << endl;
            throw X;
        }
    }
    H= new_h;
    return true;
}