Этот путь приложение передает функции
Этот путь приложение передает функции _lopen, открывающей файл на чтение. Затем функция GetSrcFile возвращает идентификатор открытого файла (точнее, результат, полученный при попытке открыть файл).
При ошибке или отказе от выбора файла функция GetSrcFile возвращает нулевое значение.
Для выбора файла, в который будет записан результат перекодировки, функция WinMain вызывает функцию GetDstFile. Эта функция вызывает функцию GetSaveFileName, которая выводит стандартную диалоговую панель "Save As..." (рис. 5.7).
Рис. 5.7. Диалоговая панель "Save As..."
Диалоговая панель "Save As..." используется многими стандартными приложениями Windows для выбора файла, в который будет записан результат работы приложения.
Функция GetSaveFileName описана в файле commdlg.h:
BOOL WINAPI GetSaveFileName(OPENFILENAME FAR* lpofn);
Она используется аналогично функции GetOpenFileName.
Вначале приложение подготавливает структуру OPENFILENAME:
szFile[0] = '\0'; memset(&ofn, 0, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = NULL; ofn.lpstrFilter = szFilter; ofn.nFilterIndex = 1; ofn.lpstrFile = szFile; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFileTitle = szFileTitle; ofn.nMaxFileTitle = sizeof(szFileTitle); ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_HIDEREADONLY;
При этом используется тот же фильтр, что и при поиске входного (перекодируемого) файла, но другое значение поля Flags.
Затем приложение вызывает функцию GetSaveFileName и проверяет возвращаемое ей значение:
if ((&ofn)) { hf = _lcreat(ofn.lpstrFile, 0); return hf; } else return 0;
Если выходной файл выбран правильно и не произошло никаких ошибок, приложение вызывает функцию _lcreat. Эта функция открывает на запись существующий файл или создает новый и затем также открывает его на запись.
Затем функция GetDstFile возвращает идентификатор открытого файла или ноль, если вы отказались от выбора файла или если произошла ошибка.
Для перекодирования файла функция WinMain вызывает функцию Oem2Ansi.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий