FILEIO.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * FILEIO.C
  3.  *
  4.  * Functions for low-level reading and writing of .COS files.
  5.  *
  6.  * Functions:
  7.  *  FCosFileRead, FCosFileWrite
  8.  *
  9.  * Copyright(c) Microsoft Corp. 1992-1994 All Rights Reserved
  10.  * Win32 version, January 1994
  11.  */
  12. #include <windows.h>
  13. #include "cosmo.h"
  14. /*
  15.  * FCosFileRead
  16.  *
  17.  * Purpose:
  18.  *  Reads a Cos file into the POLYLINE structure pointed to by lppl.
  19.  *  Clears pGlob->fDirty on success.
  20.  *
  21.  * Parameters:
  22.  *  pGlob           LPGLOBALS to the global variable block.
  23.  *  pszFile         LPSTR of the filename to read.
  24.  *  lppl            LPPOLYLINE to the structure to fill.
  25.  *
  26.  * Return Value:
  27.  *  BOOL            TRUE if the file was successfully read,
  28.  *                  FALSE otherwise.
  29.  */
  30. BOOL WINAPI FCosFileRead(LPGLOBALS pGlob, LPSTR pszFile, LPPOLYLINE lppl)
  31.     {
  32.     int         hFile;
  33.     OFSTRUCT    of;
  34.     UINT        cb;
  35.     hFile=OpenFile(pszFile, &of, OF_READ);
  36.     if (-1==hFile)
  37.         return FALSE;
  38.     cb=_lread(hFile, (LPSTR)lppl, CBPOLYLINE);
  39.     _lclose(hFile);
  40.     if (CBPOLYLINE==cb && VERSIONMAJOR==lppl->wVerMaj
  41.         && VERSIONMINOR==lppl->wVerMin)
  42.         {
  43.         pGlob->fDirty=FALSE;
  44.         return TRUE;
  45.         }
  46.     return FALSE;
  47.     }
  48. /*
  49.  * FCosFileWrite
  50.  *
  51.  * Purpose:
  52.  *  Writes a Cos file into the POLYLINE structure pointed to by lppl.
  53.  *  Clears pGlob->fDirty.
  54.  *
  55.  * Parameters:
  56.  *  pGlob           LPGLOBALS to the global variable block.
  57.  *  pszFile         LPSTR of the filename to read.
  58.  *  lppl            LPPOLYLINE to the structure to write from.
  59.  *
  60.  * Return Value:
  61.  *  BOOL            TRUE if the file was successfully written,
  62.  *                  FALSE otherwise.
  63.  */
  64. BOOL WINAPI FCosFileWrite(LPGLOBALS pGlob, LPSTR pszFile, LPPOLYLINE lppl)
  65.     {
  66.     int         hFile;
  67.     OFSTRUCT    of;
  68.     UINT        cb;
  69.     hFile=OpenFile(pszFile, &of, OF_CREATE | OF_WRITE);
  70.     if (-1==hFile)
  71.         return FALSE;
  72.     cb=_lwrite(hFile, (LPSTR)lppl, CBPOLYLINE);
  73.     _lclose(hFile);
  74.     if (CBPOLYLINE==cb)
  75.         {
  76.         pGlob->fDirty=FALSE;
  77.         return TRUE;
  78.         }
  79.     return FALSE;
  80.     }