Release 970415
[wine/multimedia.git] / include / file.h
blobbb33157f50a83df26844ea9369e9580cdb3f54c7
1 /*
2 * File handling declarations
4 * Copyright 1996 Alexandre Julliard
5 */
7 #ifndef __WINE_FILE_H
8 #define __WINE_FILE_H
10 #include <time.h>
11 #include "windows.h"
12 #include "handle32.h"
14 #define MAX_PATHNAME_LEN 1024
16 /* The file object */
17 typedef struct
19 K32OBJ header;
20 int unix_handle;
21 int mode;
22 char *unix_name;
23 DWORD type; /* Type for win32 apps */
24 } FILE_OBJECT;
26 /* Definition of a full DOS file name */
27 typedef struct
29 char long_name[MAX_PATHNAME_LEN]; /* Long pathname in Unix format */
30 char short_name[MAX_PATHNAME_LEN]; /* Short pathname in DOS 8.3 format */
31 int drive;
32 } DOS_FULL_NAME;
34 #define IS_END_OF_NAME(ch) (!(ch) || ((ch) == '/') || ((ch) == '\\'))
37 /* files/file.c */
38 extern void FILE_Destroy( K32OBJ *ptr );
39 extern void FILE_SetDosError(void);
40 extern HFILE32 FILE_DupUnixHandle( int fd );
41 extern BOOL32 FILE_Stat( LPCSTR unixName, BY_HANDLE_FILE_INFORMATION *info );
42 extern HFILE32 FILE_Dup( HFILE32 hFile );
43 extern HFILE32 FILE_Dup2( HFILE32 hFile1, HFILE32 hFile2 );
44 extern HFILE32 FILE_Open( LPCSTR path, INT32 mode );
45 extern BOOL32 FILE_SetFileType( HFILE32 hFile, DWORD type );
46 extern LPVOID FILE_mmap( FILE_OBJECT *file, LPVOID start,
47 DWORD size_high, DWORD size_low,
48 DWORD offset_high, DWORD offset_low,
49 int prot, int flags );
50 extern HFILE32 _lcreat_uniq( LPCSTR path, INT32 attr );
52 /* files/directory.c */
53 extern int DIR_Init(void);
54 extern UINT32 DIR_GetWindowsUnixDir( LPSTR path, UINT32 count );
55 extern UINT32 DIR_GetSystemUnixDir( LPSTR path, UINT32 count );
56 extern UINT32 DIR_GetTempUnixDir( LPSTR path, UINT32 count );
57 extern UINT32 DIR_GetDosPath( INT32 element, LPSTR path, UINT32 count );
58 extern UINT32 DIR_GetUnixPath( INT32 element, LPSTR path, UINT32 count );
59 extern DWORD DIR_SearchPath( LPCSTR path, LPCSTR name, LPCSTR ext,
60 DOS_FULL_NAME *full_name, BOOL32 win32 );
62 /* files/dos_fs.c */
63 extern void DOSFS_UnixTimeToFileTime( time_t unixtime, LPFILETIME ft,
64 DWORD remainder );
65 extern time_t DOSFS_FileTimeToUnixTime( const FILETIME *ft, DWORD *remainder );
66 extern BOOL32 DOSFS_ToDosFCBFormat( LPCSTR name, LPSTR buffer );
67 extern const char *DOSFS_IsDevice( const char *name );
68 extern BOOL32 DOSFS_FindUnixName( LPCSTR path, LPCSTR name, LPSTR long_buf,
69 INT32 long_len, LPSTR short_buf,
70 BOOL32 ignore_case );
71 extern BOOL32 DOSFS_GetFullName( LPCSTR name, BOOL32 check_last,
72 DOS_FULL_NAME *full );
73 extern int DOSFS_FindNext( const char *path, const char *short_mask,
74 const char *long_mask, int drive, BYTE attr,
75 int skip, WIN32_FIND_DATA32A *entry );
77 #endif /* __WINE_FILE_H */