Операционная система Windows 95 для программиста



         

Исходные тексты приложения RtfPad - часть 7


if(!strncmp(&ofn.lpstrFile[ofn.nFileExtension],"RTF",3)) SendMessage(hwndEdit,EM_STREAMOUT,SF_RTF, (LPARAM)&es); else SendMessage(hwndEdit,EM_STREAMOUT,SF_TEXT, (LPARAM)&es);

// Закрываем файл _lclose(hFile);

// Сбрасываем признак изменения содержимого окна // редактора текста SendMessage(hwndEdit, EM_SETMODIFY, FALSE, 0L); } } }

// ----------------------------------------------------- // Функция SaveCallback // ----------------------------------------------------- DWORD CALLBACK SaveCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) { // Выполняем запись блока данных длиной cb байт cb = _lwrite((HFILE)dwCookie, pbBuff, cb); *pcb = cb; return 0; }

// ----------------------------------------------------- // Функция FileOpen // ----------------------------------------------------- void FileOpen(HWND hwnd) { OPENFILENAME ofn; char szFile[256]; char szDirName[256]; char szFileTitle[256]; char szFilter[256] = "Rich Text Files\0*.rtf\0Text Files\0*.txt\0" "Any Files\0*.*\0";

HFILE hFile; OFSTRUCT of; EDITSTREAM es;

memset(&ofn, 0, sizeof(OPENFILENAME)); GetCurrentDirectory(sizeof(szDirName), szDirName); szFile[0] = '\0';

// Подготавливаем структуру для выбора входного файла ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hwnd; ofn.lpstrFilter = szFilter; ofn.lpstrInitialDir = szDirName; ofn.nFilterIndex = 1; ofn.lpstrFile = szFile; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFileTitle = szFileTitle; ofn.nMaxFileTitle = sizeof(szFileTitle); ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

// Выводим на экран диалоговую панель, предназначенную // для выбора входного файла if(GetOpenFileName(&ofn)) { // Если файл выбран, открываем его для чтения if (*ofn.lpstrFile) { hFile = OpenFile(ofn.lpstrFile, &of, OF_READ);

// Устанавливаем параметры функции обратного вызова, // которая будет выполнять чтение es.dwCookie = (DWORD)hFile; es.dwError = 0; es.pfnCallback = OpenCallback;

// Если расширение файла rtf, файл загружается как // rtf-файл. В противном случае он загружается как // обычный текстовый файл _strupr(&ofn.lpstrFile[ofn.nFileExtension]); if(!strncmp(&ofn.lpstrFile[ofn.nFileExtension],"RTF",3)) SendMessage(hwndEdit,EM_STREAMIN,SF_RTF,(LPARAM)&es); else SendMessage(hwndEdit,EM_STREAMIN,SF_TEXT,(LPARAM)&es);




Содержание  Назад  Вперед