Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

315 lines
6.6 KiB

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
basefile.c
Abstract:
Contains simple wrappers for commonly used file i/o functions.
Author:
Marc R. Whitten (marcw) 02-Sep-1999
Revision History:
<alias> <date> <comments>
--*/
#define INVALID_ATTRIBUTES 0xFFFFFFFF
BOOL
DoesFileExistExA (
IN PCSTR Path,
OUT PWIN32_FIND_DATAA FindData OPTIONAL
);
#define DoesFileExistA(x) DoesFileExistExA (x, NULL)
BOOL
DoesFileExistExW (
IN PCWSTR Path,
OUT PWIN32_FIND_DATAW FindData OPTIONAL
);
#define DoesFileExistW(x) DoesFileExistExW (x, NULL)
BOOL
BfPathIsDirectoryA (
IN PCSTR PathSpec
);
BOOL
BfPathIsDirectoryW (
IN PCWSTR PathSpec
);
BOOL
WriteFileStringA (
IN HANDLE File,
IN PCSTR String
);
BOOL
WriteFileStringW (
IN HANDLE File,
IN PCWSTR String
);
PVOID
MapFileIntoMemoryExA (
IN PCSTR FileName,
OUT PHANDLE FileHandle,
OUT PHANDLE MapHandle,
IN BOOL WriteAccess
);
PVOID
MapFileIntoMemoryExW (
IN PCWSTR FileName,
OUT PHANDLE FileHandle,
OUT PHANDLE MapHandle,
IN BOOL WriteAccess
);
#define MapFileIntoMemoryA(FileName,FileHandle,MapHandle) MapFileIntoMemoryExA(FileName,FileHandle,MapHandle,FALSE)
#define MapFileIntoMemoryW(FileName,FileHandle,MapHandle) MapFileIntoMemoryExW(FileName,FileHandle,MapHandle,FALSE)
BOOL
UnmapFile (
IN PCVOID FileImage,
IN HANDLE MapHandle,
IN HANDLE FileHandle
);
BOOL
BfGetTempFileNameExA (
OUT PSTR Buffer,
IN UINT BufferTchars,
IN PCSTR Prefix
);
#define BfGetTempFileNameA(b,c) BfGetTempFileNameExA(b,c,"temp")
BOOL
BfGetTempFileNameExW (
OUT PWSTR Buffer,
IN UINT BufferTchars,
IN PCWSTR Prefix
);
#define BfGetTempFileNameW(b,c) BfGetTempFileNameExW(b,c,L"temp")
BOOL
BfGetTempDirectoryExA (
OUT PSTR Buffer,
IN UINT BufferTchars,
IN PCSTR Prefix
);
#define BfGetTempDirectoryA(b,c) BfGetTempDirectoryExA(b,c,"dir")
BOOL
BfGetTempDirectoryExW (
OUT PWSTR Buffer,
IN UINT BufferTchars,
IN PCWSTR Prefix
);
#define BfGetTempDirectoryW(b,c) BfGetTempDirectoryExW(b,c,L"dir")
HANDLE
BfGetTempFile (
VOID
);
BOOL
BfSetFilePointer (
IN HANDLE File,
IN LONGLONG Offset
);
HANDLE
BfOpenReadFileA (
IN PCSTR FileName
);
HANDLE
BfOpenReadFileW (
IN PCWSTR FileName
);
HANDLE
BfOpenFileA (
IN PCSTR FileName
);
HANDLE
BfOpenFileW (
IN PCWSTR FileName
);
HANDLE
BfCreateFileA (
IN PCSTR FileName
);
HANDLE
BfCreateFileW (
IN PCWSTR FileName
);
HANDLE
BfCreateSharedFileA (
IN PCSTR FileName
);
HANDLE
BfCreateSharedFileW (
IN PCWSTR FileName
);
BOOL
BfSetSizeOfFile (
HANDLE File,
LONGLONG Size
);
BOOL
BfGoToEndOfFile (
IN HANDLE File,
OUT PLONGLONG FileSize OPTIONAL
);
BOOL
BfGetFilePointer (
IN HANDLE File,
OUT PLONGLONG FilePointer OPTIONAL
);
BOOL
BfReadFile (
IN HANDLE File,
OUT PBYTE Buffer,
IN UINT BytesToRead
);
BOOL
BfWriteFile (
IN HANDLE File,
OUT PCBYTE Buffer,
IN UINT BytesToWrite
);
BOOL
BfCreateDirectoryExA (
IN PCSTR FullPath,
IN BOOL CreateLastSegment
);
#define BfCreateDirectoryA(d) BfCreateDirectoryExA(d,TRUE)
BOOL
BfCreateDirectoryExW (
IN PCWSTR FullPath,
IN BOOL CreateLastSegment
);
#define BfCreateDirectoryW(d) BfCreateDirectoryExW(d,TRUE)
LONGLONG
BfGetFileSizeA (
IN PCSTR FileName
);
LONGLONG
BfGetFileSizeW (
IN PCWSTR FileName
);
PCSTR
BfGetLongFileNameA (
IN PCSTR SrcFileName
);
BOOL
BfGetLongFileNameExA (
IN PCSTR SrcFileName,
IN PGROWBUFFER GrowBuff
);
PCWSTR
BfGetLongFileNameW (
IN PCWSTR SrcFileName
);
BOOL
BfGetLongFileNameExW (
IN PCWSTR SrcFileName,
IN PGROWBUFFER GrowBuff
);
BOOL
BfCopyAndFlushFileA (
IN PCSTR SrcFileName,
IN PCSTR DestFileName,
IN BOOL FailIfExists
);
BOOL
BfCopyAndFlushFileW (
IN PCWSTR SrcFileName,
IN PCWSTR DestFileName,
IN BOOL FailIfExists
);
#ifdef UNICODE
#define DoesFileExist DoesFileExistW
#define DoesFileExistEx DoesFileExistExW
#define BfPathIsDirectory BfPathIsDirectoryW
#define WriteFileString WriteFileStringW
#define MapFileIntoMemory MapFileIntoMemoryW
#define MapFileIntoMemoryEx MapFileIntoMemoryExW
#define BfGetTempFileName BfGetTempFileNameW
#define BfGetTempFileNameEx BfGetTempFileNameExW
#define BfGetTempDirectory BfGetTempDirectoryW
#define BfGetTempDirectoryEx BfGetTempDirectoryExW
#define BfOpenReadFile BfOpenReadFileW
#define BfOpenFile BfOpenFileW
#define BfCreateFile BfCreateFileW
#define BfCreateSharedFile BfCreateSharedFileW
#define BfCreateDirectoryEx BfCreateDirectoryExW
#define BfCreateDirectory BfCreateDirectoryW
#define BfGetFileSize BfGetFileSizeW
#define BfGetLongFileName BfGetLongFileNameW
#define BfGetLongFileNameEx BfGetLongFileNameExW
#define BfCopyAndFlushFile BfCopyAndFlushFileW
#else
#define DoesFileExist DoesFileExistA
#define DoesFileExistEx DoesFileExistExA
#define BfPathIsDirectory BfPathIsDirectoryA
#define WriteFileString WriteFileStringA
#define MapFileIntoMemory MapFileIntoMemoryA
#define MapFileIntoMemoryEx MapFileIntoMemoryExA
#define BfGetTempFileName BfGetTempFileNameA
#define BfGetTempFileNameEx BfGetTempFileNameExA
#define BfGetTempDirectory BfGetTempDirectoryA
#define BfGetTempDirectoryEx BfGetTempDirectoryExA
#define BfOpenReadFile BfOpenReadFileA
#define BfOpenFile BfOpenFileA
#define BfCreateFile BfCreateFileA
#define BfCreateSharedFile BfCreateSharedFileA
#define BfCreateDirectoryEx BfCreateDirectoryExA
#define BfCreateDirectory BfCreateDirectoryA
#define BfGetFileSize BfGetFileSizeA
#define BfGetLongFileName BfGetLongFileNameA
#define BfGetLongFileNameEx BfGetLongFileNameExA
#define BfCopyAndFlushFile BfCopyAndFlushFileA
#endif