// Режимы перекодировки
#define OEM_TO_ANSI 1
#define ANSI_TO_OEM 2

// -----------------------------------------------------
// Описание функций
// -----------------------------------------------------
LRESULT WINAPI
WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

void WndProc_OnCommand(HWND hWnd, int id, 
  HWND hwndCtl, UINT codeNotify);

void WndProc_OnDestroy(HWND hWnd);

LRESULT WINAPI
DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);

BOOL DlgProc_OnInitDialog(HWND hwnd, HWND hwndFocus, 
                          LPARAM lParam);

void DlgProc_OnCommand(HWND hdlg, int id, 
  HWND hwndCtl, UINT codeNotify);

BOOL StartConversion(HWND hwnd);

// Выбираем разный прототип функции в зависимости
// от выбранного режима работы с файлами
#if FILEOP == MEMORYMAPPED_IO

  void Oem2Char(HANDLE hSrcFile);

#elif FILEOP == SYNCHRONOUS_IO

  void Oem2Char(HANDLE hSrcFile, HANDLE hDstFile);

#elif FILEOP == ASYNCHRONOUS_IO

  void Oem2Char(HANDLE hSrcFile, HANDLE hDstFile);

#endif