下面的代码中,对CFILE的操作,正确吗?可以这样这次的读取接着上次的吗?HBITMAP CreateDIBsectionFromDibFile (PTSTR szFileName)
        
{
        
           BITMAPFILEHEADER                     bmfh ;
        
           BITMAPINFO            *     pbmi ;
        
           BYTE                  *     pBits ;
        
           BOOL                  bSuccess ;
        
           DWORD                 dwInfoSize, dwBytesRead ;
        
           HANDLE                hFile ;
        
           HBITMAP               hBitmap ;
                          // Open the file: read access, prohibit write access
            hFile = CreateFile (szFileName, GENERIC_READ, FILE_SHARE_READ,
        
                          NULL, OPEN_EXISTING, 0, NULL) ;
        
           if (hFile == INVALID_HANDLE_VALUE)
        
                         return NULL ;
        
                          // Read in the BITMAPFILEHEADER
        
           bSuccess = ReadFile (hFile, &bmfh, sizeof (BITMAPFILEHEADER),
        
                                         &dwBytesRead, NULL) ;
                   if (!bSuccess || (dwBytesRead != sizeof (BITMAPFILEHEADER))       
        
                         || (bmfh.bfType != * (WORD *) "BM"))
        
    {
        
                          CloseHandle (hFile) ;
        
                          return NULL ;
        
    }
                                  // Allocate memory for the BITMAPINFO structure & read it in
        
           dwInfoSize = bmfh.bfOffBits - sizeof (BITMAPFILEHEADER) ;
        
           pbmi = malloc (dwInfoSize) ;
        
           bSuccess = ReadFile (hFile, pbmi, dwInfoSize, &dwBytesRead, NULL) ;
        
           if (!bSuccess || (dwBytesRead != dwInfoSize))
        
           {
        
                          free (pbmi) ;
        
                          CloseHandle (hFile) ;
        
                          return NULL ;
        
    }
        
                          // Create the DIB Section
        
           hBitmap = CreateDIBSection (NULL, pbmi, DIB_RGB_COLORS, &pBits, NULL, 0) ;
        
           if (hBitmap == NULL)
        
           {
        
            free (pbmi) ;
        
            CloseHandle (hFile) ;
        
            return NULL ;
        
   }
                                  // Read in the bitmap bits
        
           ReadFile (hFile, pBits, bmfh.bfSize - bmfh.bfOffBits, &dwBytesRead, NULL) ;
        
           free (pbmi) ;
        
           CloseHandle (hFile) ;
                   return hBitmap ;
        
}