Операционная система Microsoft Windows 3.1 для программиста -том 2


Листинг 1.22. Файл oem3ansi\oem3ansi.cpp


// ---------------------------------------- // Перекодировка текстового файла // из OEM в ANSI с использованием // дополнительной таблицы перекодировки // ----------------------------------------

#define STRICT #include <windows.h> #include <commdlg.h> #include <mem.h>

// Прототипы функций HFILE GetSrcFile(void); HFILE GetDstFile(void); void Oem3Ansi(HFILE, HFILE);

// Указатель на таблицу перекодировки, // которая будет загружена из ресурсов char far * lpXlatTable;

// ------------------------------- // Функция WinMain // -------------------------------

#pragma argsused int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HFILE hfSrc, hfDst;

// Положение ресурса в файле HRSRC hResource;

// Идентификатор таблицы перекодировки HGLOBAL hXlatTable;

// Определяем расположение ресурса hResource = FindResource(hInstance, "XlatTable", "XLAT");

// Получаем идентификатор ресурса hXlatTable = LoadResource(hInstance, hResource);

// Фиксируем ресурс в памяти, получая его адрес lpXlatTable = (char far *)LockResource(hXlatTable);

// Если адрес равен NULL, при загрузке или // фиксации ресурса произошла ошибка if(lpXlatTable == NULL) { MessageBox(NULL, "Error", "Resource loading error", MB_OK); return(-1); }

// Открываем входной файл. hfSrc = GetSrcFile(); if(!hfSrc) return 0;

// Открываем выходной файл hfDst = GetDstFile(); if(!hfDst) return 0;

// Выполняем перекодировку файла Oem3Ansi(hfSrc, hfDst);

// Закрываем входной и выходной файлы _lclose(hfSrc); _lclose(hfDst);

UnlockResource(hXlatTable); FreeResource(hXlatTable);

return 0; }

// ------------------------------- // Функция GetSrcFile // Выбор файла для перекодировки // -------------------------------

HFILE GetSrcFile(void) { OPENFILENAME ofn;

char szFile[256]; char szFileTitle[256]; char szFilter[256] = "Text Files\0*.txt;*.doc\0Any Files\0*.*\0"; HFILE hf;

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




Начало  Назад  Вперед



Книжный магазин