125 lines
1.6 KiB
C
125 lines
1.6 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1997 Microsoft Corporation
|
||
|
All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
FileIo.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Routines to do File IO for the migration of Win95 printing to NT
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Muhunthan Sivapragasam (MuhuntS) 24-Aug-1998
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#include "precomp.h"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
|
||
|
CHAR
|
||
|
My_fgetc(
|
||
|
HANDLE hFile
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
Gets a character from the file
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
CHAR c;
|
||
|
DWORD cbRead;
|
||
|
|
||
|
if ( ReadFile(hFile, (LPBYTE)&c, sizeof(c), &cbRead, NULL) &&
|
||
|
cbRead == sizeof(c) )
|
||
|
return c;
|
||
|
else
|
||
|
return (CHAR) EOF;
|
||
|
}
|
||
|
|
||
|
|
||
|
LPSTR
|
||
|
My_fgets(
|
||
|
LPSTR pszBuf,
|
||
|
DWORD dwSize,
|
||
|
HANDLE hFile
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
Gets a line, or at most n characters from the file
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
CHAR c;
|
||
|
DWORD dwRead;
|
||
|
LPSTR ptr;
|
||
|
|
||
|
ptr = pszBuf;
|
||
|
while ( --dwSize > 0 && (c = My_fgetc(hFile)) != EOF )
|
||
|
if ( (*ptr++ = c) == '\n' )
|
||
|
break;
|
||
|
|
||
|
*ptr = '\0';
|
||
|
return ( c == EOF && ptr == pszBuf ) ? NULL : pszBuf;
|
||
|
}
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
My_fread(
|
||
|
LPBYTE pBuf,
|
||
|
DWORD dwSize,
|
||
|
HANDLE hFile
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
Read at most dwSize bytes to buffer
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
Return Value:
|
||
|
Number of bytes read
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
DWORD cbRead;
|
||
|
|
||
|
return ReadFile(hFile, pBuf, dwSize, &cbRead, NULL) ? cbRead : 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
My_ungetc(
|
||
|
HANDLE hFile
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
Unread one character
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
return SetFilePointer(hFile, -1, NULL, FILE_CURRENT) != 0xFFFFFFFF;
|
||
|
}
|