mirror of https://github.com/lianthony/NT4.0
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.
79 lines
2.1 KiB
79 lines
2.1 KiB
/* lfn.h -
|
|
*
|
|
* declaration of lfn aware functions
|
|
*/
|
|
|
|
#ifdef LFN
|
|
|
|
#define CCHMAXFILE 260 // max size of a long name
|
|
|
|
#define FILE_83_CI 0
|
|
#define FILE_83_CS 1
|
|
#define FILE_LONG 2
|
|
|
|
#define ERROR_OOM 8
|
|
|
|
/* we need to add an extra field to distinguish DOS vs. LFNs
|
|
*/
|
|
typedef struct
|
|
{
|
|
#ifdef OLD
|
|
BOOL fLong; // TRUE = non DOS file system, uses long names
|
|
HANDLE hMem; // handle to FIND structure
|
|
BYTE rgbReserved[21]; // Begining of Dos Find structure.
|
|
BYTE Attrib;
|
|
WORD Time;
|
|
WORD Date;
|
|
DWORD Length;
|
|
BYTE szName[CCHMAXFILE];
|
|
#else // NEW
|
|
HANDLE hFindFile; // handle returned by FindFirstFile()
|
|
DWORD dwAttrFilter; // search attribute mask.
|
|
DWORD err; // error info if failure.
|
|
WIN32_FIND_DATA fd; // FindFirstFile() data strucrure;
|
|
#endif // NEW
|
|
} LFNDTA, FAR * LPLFNDTA, * PLFNDTA;
|
|
|
|
VOID APIENTRY LFNInit( VOID );
|
|
VOID APIENTRY InvalidateVolTypes( VOID );
|
|
|
|
WORD APIENTRY GetNameType(LPSTR);
|
|
BOOL APIENTRY IsLFN(LPSTR pName);
|
|
BOOL APIENTRY IsLFNDrive(WORD);
|
|
|
|
BOOL APIENTRY WFFindFirst(LPLFNDTA lpFind, LPSTR lpName, DWORD dwAttrFilter);
|
|
BOOL APIENTRY WFFindNext(LPLFNDTA);
|
|
BOOL APIENTRY WFFindClose(LPLFNDTA);
|
|
|
|
BOOL APIENTRY WFIsDir(LPSTR);
|
|
BOOL APIENTRY LFNMergePath(LPSTR,LPSTR);
|
|
|
|
BOOL APIENTRY IsLFNSelected(VOID);
|
|
|
|
#else
|
|
|
|
// DOS lfn crap
|
|
|
|
/* dos crap */
|
|
|
|
#define LFNDTA DOSDTA
|
|
#define PLFNDTA PDOSDTA
|
|
#define LPLFNDTA LPDOSDTA
|
|
|
|
#define WFFindFirst(dta, str, w) DosFindFirst(dta, str, w)
|
|
#define WFFindNext(dta) DosFindNext(dta)
|
|
#define WFFindClose(dta)
|
|
#define LFNInit()
|
|
#define InvalidateVolTypes()
|
|
#define GetNameType(path) FILE_83_CI
|
|
#define IsLFN(foo) FALSE
|
|
#define WFMKDir(lp) MKDir(lp)
|
|
#define WFRMDir(lp) RMDir(lp)
|
|
#define WFRemove(lp) FileRemove(lp)
|
|
#define WFMove(from,to) FileMove(from,to)
|
|
#define WFCopy(from,to) FileCopy(from,to)
|
|
#define WFGetAttr(lp) GetFileAttributes(lp)
|
|
#define WFSetAttr(lp,w) SetFileAttributes(lp,w)
|
|
#define WFIsDir(lp) IsDirectory(lp)
|
|
|
|
#endif
|