BOOL ATEIniFile::WriteKey(const ATEStr& szSection, const ATEStr& szKey, const INIKey& key) { if(szSection.IsEmpty()) { return FALSE; } if(szKey.IsEmpty()) { return FALSE; } switch(key.type) { case KEY_DWORD: { // ATEStr szKeyValPair; // szKeyValPair.Format(L"%s=%u", szKey.GetHead(), key.val.dwVal); // BOOL bRet = WritePrivateProfileSectionW(szSection.GetHead(), // szKeyValPair.GetHead(), // m_szFilePath.GetHead()); // if (!bRet) { return FALSE; } // return TRUE; //function have bugs for only one entry. ATEStr szKeyVal; szKeyVal.Format(L"%d", key.val.dwVal); BOOL bRet = WritePrivateProfileStringW(szSection.GetHead(), szKey.GetHead(), szKeyVal.GetHead(), m_szFilePath.GetHead()); if (!bRet) { return FALSE; } return TRUE; } break; case KEY_STRING: { //function have bugs for only one entry. BOOL bRet = WritePrivateProfileStringW(szSection.GetHead(), szKey.GetHead(), key.val.szVal, m_szFilePath.GetHead()); if (!bRet) { return FALSE; } return TRUE; } break; case KEY_STRUCT: { BOOL bRet = WritePrivateProfileStructW(szSection.GetHead(), szKey.GetHead(), (LPVOID)&(key.val.binVal[0]), key.valSize, m_szFilePath.GetHead()); if (!bRet) { return FALSE; } return TRUE; } break; default: return FALSE; break; } return FALSE; }
BOOL CIniFile::SetStruct(const wchar_t *const pwchSection, const wchar_t *const pwchKeyWord, void *const pvStruct, const UINT unStructSize) { assert(NULL != pwchSection); assert(NULL != pwchKeyWord); assert(NULL != pvStruct); assert(unStructSize > 0); return WritePrivateProfileStructW(pwchSection, pwchKeyWord, pvStruct, unStructSize, m_wchPath); }