//Copyright (c) 1997-2000 Microsoft Corporation #include "pch.hxx" // pch #pragma hdrstop #include "resource.h" #include "pgSveFil.h" CSaveToFilePg::CSaveToFilePg( LPPROPSHEETPAGE ppsp ) : WizardPage(ppsp, IDS_WIZSAVETOFILETITLE, IDS_WIZSAVETOFILESUBTITLE) { m_dwPageId = IDD_WIZSAVETOFILE; ppsp->pszTemplate = MAKEINTRESOURCE(m_dwPageId); } CSaveToFilePg::~CSaveToFilePg( VOID ) { } LRESULT CSaveToFilePg::OnInitDialog( HWND hwnd, WPARAM wParam, LPARAM lParam ) { UpdateControls(); return 1; } void CSaveToFilePg::UpdateControls() { // No options } LRESULT CSaveToFilePg::OnCommand( HWND hwnd, WPARAM wParam, LPARAM lParam ) { LRESULT lResult = 1; WORD wNotifyCode = HIWORD(wParam); WORD wCtlID = LOWORD(wParam); HWND hwndCtl = (HWND)lParam; switch(wCtlID) { case IDC_BTNBROWSE: { // These commands require us to re-enable/disable the appropriate controls TCHAR szBuf[_MAX_PATH]; TCHAR szBuf2[_MAX_PATH]; TCHAR szDefaultName[_MAX_PATH]; LoadString(g_hInstDll, IDS_DEFAULTSAVEFILENAME, szDefaultName, ARRAYSIZE(szDefaultName)); TCHAR szFilterName[_MAX_PATH]; TCHAR szTemp[_MAX_PATH]; ZeroMemory(szFilterName, _MAX_PATH); LoadString(g_hInstDll, IDS_FILTERNAME, szFilterName, ARRAYSIZE(szFilterName)); LoadString(g_hInstDll, IDS_FILTER, szTemp, ARRAYSIZE(szTemp)); // Copy the extension to after the filter name lstrcpy(&szFilterName[lstrlen(szFilterName) + 1], szTemp); // Double NULL terminate it szFilterName[lstrlen(szFilterName) + 1 + lstrlen(szTemp) + 1] = 0; szFilterName[lstrlen(szFilterName) + 1 + lstrlen(szTemp) + 2] = 0; memset(szBuf, 0, ARRAYSIZE(szBuf)); memset(szBuf2, 0, ARRAYSIZE(szBuf)); wsprintf(szBuf, szDefaultName); OPENFILENAME ofn; memset(&ofn, 0, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = m_hwnd; ofn.hInstance = g_hInstDll; ofn.lpstrFilter = szFilterName; ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = 0; ofn.nFilterIndex = 0; ofn.lpstrFile = szBuf; ofn.nMaxFile = _MAX_PATH; ofn.lpstrFileTitle = szBuf2; ofn.nMaxFileTitle = _MAX_PATH; ofn.lpstrInitialDir = NULL; ofn.lpstrTitle = NULL; ofn.Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST; ofn.nFileOffset = 0; ofn.nFileExtension = 0; ofn.lpstrDefExt = __TEXT("acw"); ofn.lCustData = NULL; ofn.lpfnHook = NULL; ofn.lpTemplateName = NULL; BOOL bOk = GetSaveFileName(&ofn); if(bOk) { // Save the file to disk. HANDLE hFile = CreateFile(ofn.lpstrFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile != INVALID_HANDLE_VALUE) { DWORD dwWritten; WriteFile(hFile, (LPCVOID)&g_Options.m_schemePreview, sizeof(g_Options.m_schemePreview), &dwWritten, NULL); CloseHandle(hFile); // TODO: Maybe go to the next page } else StringTableMessageBox(m_hwnd, IDS_WIZERRORSAVINGFILETEXT, IDS_WIZERRORSAVINGFILETITLE, MB_OK); } UpdateControls(); lResult = 0; } break; default: break; } return lResult; }