//+------------------------------------------------------------------------ // // Member: CDataStream::SaveCStr // // Synopsis: Saves a CStr into the stream // //------------------------------------------------------------------------- HRESULT CDataStream::SaveCStr(const CString* pcstr) { HRESULT hr; ULONG len; len = *pcstr ? pcstr->Length() : (DWORD)(-1); hr = SaveDword(DWORD_CSTR_COOKIE^len); if(hr) { goto Cleanup; } hr = SaveDword(len); if(hr) { goto Cleanup; } if(*pcstr) { hr = SaveData(*pcstr, sizeof(TCHAR)*len); if(hr) { goto Cleanup; } } Cleanup: RRETURN(hr); }
//+------------------------------------------------------------------------ // // Member: CDataStream::SaveString // // Synopsis: Saves a null-terminated string by prefixing // the length in the stream // //------------------------------------------------------------------------- HRESULT CDataStream::SaveString(TCHAR* pch) { HRESULT hr; ULONG len; len = pch ? _tcslen(pch) : (DWORD)(-1); hr = SaveDword(DWORD_STRING_COOKIE^len); if(hr) { goto Cleanup; } hr = SaveDword(len); if(hr) { goto Cleanup; } if(pch) { hr = SaveData(pch, sizeof(TCHAR)*len); if(hr) { goto Cleanup; } } Cleanup: RRETURN(hr); }
/*********************************************************************** * * NOTEPAD_SaveSettingsToRegistry * * Save settings to registry HKCU\Software\Microsoft\Notepad. */ void NOTEPAD_SaveSettingsToRegistry(void) { HKEY hKey; DWORD dwDisposition; GetWindowRect(Globals.hMainWnd, &Globals.main_rect); if (RegCreateKeyEx(HKEY_CURRENT_USER, s_szRegistryKey, 0, NULL, 0, KEY_SET_VALUE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS) { SaveDword(hKey, _T("lfCharSet"), Globals.lfFont.lfCharSet); SaveDword(hKey, _T("lfClipPrecision"), Globals.lfFont.lfClipPrecision); SaveDword(hKey, _T("lfEscapement"), Globals.lfFont.lfEscapement); SaveString(hKey, _T("lfFaceName"), Globals.lfFont.lfFaceName); SaveDword(hKey, _T("lfItalic"), Globals.lfFont.lfItalic); SaveDword(hKey, _T("lfOrientation"), Globals.lfFont.lfOrientation); SaveDword(hKey, _T("lfOutPrecision"), Globals.lfFont.lfOutPrecision); SaveDword(hKey, _T("lfPitchAndFamily"), Globals.lfFont.lfPitchAndFamily); SaveDword(hKey, _T("lfQuality"), Globals.lfFont.lfQuality); SaveDword(hKey, _T("lfStrikeOut"), Globals.lfFont.lfStrikeOut); SaveDword(hKey, _T("lfUnderline"), Globals.lfFont.lfUnderline); SaveDword(hKey, _T("lfWeight"), Globals.lfFont.lfWeight); SaveDword(hKey, _T("iPointSize"), PointSizeFromHeight(Globals.lfFont.lfHeight)); SaveDword(hKey, _T("fWrap"), Globals.bWrapLongLines ? 1 : 0); SaveDword(hKey, _T("fStatusBar"), Globals.bShowStatusBar ? 1 : 0); SaveString(hKey, _T("szHeader"), Globals.szHeader); SaveString(hKey, _T("szTrailer"), Globals.szFooter); SaveDword(hKey, _T("iMarginLeft"), Globals.lMarginLeft); SaveDword(hKey, _T("iMarginTop"), Globals.lMarginTop); SaveDword(hKey, _T("iMarginRight"), Globals.lMarginRight); SaveDword(hKey, _T("iMarginBottom"), Globals.lMarginBottom); SaveDword(hKey, _T("iWindowPosX"), Globals.main_rect.left); SaveDword(hKey, _T("iWindowPosY"), Globals.main_rect.top); SaveDword(hKey, _T("iWindowPosDX"), Globals.main_rect.right - Globals.main_rect.left); SaveDword(hKey, _T("iWindowPosDY"), Globals.main_rect.bottom - Globals.main_rect.top); RegCloseKey(hKey); } }