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.
119 lines
2.2 KiB
119 lines
2.2 KiB
/*++
|
|
|
|
Copyright (c) 1991-2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
file.hxx
|
|
|
|
Abstract:
|
|
|
|
This module contains the declaration for the FSN_FILE class. FSN_FILE
|
|
is derived from the abstract FSNODE class. It offers an interface which
|
|
supports manipulation of the external (i.e. non data) portion of files.
|
|
|
|
Author:
|
|
|
|
David J. Gilman (davegi) 09-Jan-1991
|
|
|
|
Environment:
|
|
|
|
ULIB, User Mode
|
|
|
|
--*/
|
|
|
|
#if ! defined( _FSN_FILE_ )
|
|
|
|
#define _FSN_FILE_
|
|
|
|
#include "fsnode.hxx"
|
|
#include "filestrm.hxx"
|
|
|
|
//
|
|
// Forward references
|
|
//
|
|
|
|
DECLARE_CLASS( FSN_FILE );
|
|
DECLARE_CLASS( FSN_FILTER );
|
|
|
|
class FSN_FILE : public FSNODE {
|
|
|
|
friend FSN_FILTER;
|
|
friend SYSTEM;
|
|
|
|
public:
|
|
|
|
DECLARE_CAST_MEMBER_FUNCTION( FSN_FILE );
|
|
|
|
NONVIRTUAL
|
|
ULIB_EXPORT
|
|
BOOLEAN
|
|
Copy (
|
|
IN OUT PPATH NewFile,
|
|
OUT PCOPY_ERROR ErrorCode DEFAULT NULL,
|
|
IN ULONG CopyFlags DEFAULT 0,
|
|
IN LPPROGRESS_ROUTINE CallBack DEFAULT NULL,
|
|
IN VOID * Data DEFAULT NULL,
|
|
IN PBOOL Cancel DEFAULT NULL
|
|
) CONST;
|
|
|
|
|
|
VIRTUAL
|
|
BOOLEAN
|
|
DeleteFromDisk(
|
|
IN BOOLEAN Force DEFAULT FALSE
|
|
);
|
|
|
|
NONVIRTUAL
|
|
ULONG64
|
|
QuerySize (
|
|
) CONST;
|
|
|
|
ULIB_EXPORT
|
|
PFILE_STREAM
|
|
QueryStream (
|
|
IN STREAMACCESS Access,
|
|
IN DWORD Attributes DEFAULT 0
|
|
);
|
|
|
|
protected:
|
|
|
|
DECLARE_CONSTRUCTOR( FSN_FILE );
|
|
|
|
private:
|
|
|
|
};
|
|
|
|
|
|
|
|
INLINE
|
|
ULONG64
|
|
FSN_FILE::QuerySize (
|
|
) CONST
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Return the size of the file in bytes.
|
|
|
|
Arguments:
|
|
|
|
None.
|
|
|
|
Return Value:
|
|
|
|
ULONG - returns the file size
|
|
|
|
--*/
|
|
|
|
{
|
|
ULARGE_INTEGER x;
|
|
|
|
x.LowPart = _FileData.nFileSizeLow;
|
|
x.HighPart = _FileData.nFileSizeHigh;
|
|
|
|
return x.QuadPart;
|
|
}
|
|
|
|
#endif // _FSN_FILE_
|