メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcGenericFileSystem.h

説明を見る。
00001 
00010 #ifndef DKUTIL_C_GENERIC_FILE_SYSTEM_H
00011 #define DKUTIL_C_GENERIC_FILE_SYSTEM_H
00012 
00013 
00014 #include "dkcOSIndependent.h"
00015 #include "dkcDLL.h"
00016 
00017 typedef struct dkc_GenericFileSystemSeekArg{
00019     DKC_UINT64_STRUCT Point;
00021     int origin;
00022 }DKC_GFS_SEEK_ARG;
00023 
00024 //Genericなファイル操作関数の型を定義する
00025 typedef void *(*DKC_FILE_OPEN_F_TYPE)(void *,uint32,const void *);
00026 typedef int (*DKC_FILE_READ_F_TYPE)(void *,void *,size_t,size_t *);
00027 typedef int (*DKC_FILE_WRITE_F_TYPE)(void *,const void *,size_t,size_t *);
00028 typedef int (*DKC_FILE_CLOSE_F_TYPE)(void *);
00029 typedef int (*DKC_FILE_SEEK_F_TYPE)(void *,const DKC_GFS_SEEK_ARG *);
00030 typedef int (*DKC_FILE_TELL_F_TYPE)(void *,DKC_UINT64_STRUCT *);
00031 typedef int (*DKC_GFS_FREE_F_TYPE)(void *);
00032 
00033 typedef int (*DKC_FILE_DELETE_F_TYPE)(void *,void *);
00034 #ifdef WIN32
00035 
00036 typedef struct dkc_open_arg_data{
00037     DWORD DesiredAccess; // access (read-write) mode
00038 
00039     DWORD ShareMode; // share mode
00040 
00041     LPSECURITY_ATTRIBUTES lpSecurityAttributes;// pointer to security attributes
00042 
00043     DWORD CreationDisposition; // how to create
00044 
00045     DWORD FlagsAndAttributes; // file attributes
00046 
00047     HANDLE TemplateFile; // handle to file with 
00048 }DKC_OPEN_ARG_DATA;
00049 
00050 DKC_EXTERN void dkc_to_CreateFile_arg_data(DKC_OPEN_ARG_DATA *data,uint32 flag);
00051 
00052 typedef struct dkc_win32_fs{
00053     HANDLE mHandle;
00054     void* CreateFile;
00055     void* SetFileAttributes;
00056     void* GetFileAttributes;
00057     void* DeleteFile;
00058     DKC_OPEN_ARG_DATA mArg;
00059     DKC_DLL *mdllobj;
00060 
00061     DWORD mLastError;
00063     int mFlag;
00064 
00065 }DKC_WIN32_FS;
00066 
00067 #endif
00068 
00069 
00070 
00071 typedef struct dkc_GenericFileSystem{
00072     //DKC_UINT64_STRUCT now_point;
00073 
00075 #ifdef WIN32
00076     DKC_WIN32_FS *mfp;
00077 #else
00078     void *mfp;
00079 #endif
00080     size_t char_size;
00081 
00082     //関数
00083     DKC_FILE_OPEN_F_TYPE mfOpen;
00084     DKC_FILE_CLOSE_F_TYPE mfClose;
00085     DKC_FILE_READ_F_TYPE mfRead;
00086     DKC_FILE_WRITE_F_TYPE mfWrite;
00087     DKC_FILE_SEEK_F_TYPE mfSeek;
00088     DKC_FILE_TELL_F_TYPE mfTell;
00089 
00090     DKC_GFS_FREE_F_TYPE mfObjFree;
00091 
00092     //ファイル操作系関数
00093     DKC_FILE_DELETE_F_TYPE mfDeleteFile;
00094 
00095 }DKC_GENERIC_FILESYSTEM;
00096 
00097 
00098 /*
00099 
00100 typedef struct dkc_GFS_Win32
00101 {
00102 
00103     //pPathに使うパスはGetTempPath()とかで得てください。
00104     //GetTempFileName
00105 }DKC_GFS_WIN32;
00106 */
00107 enum{
00108     edkcSeekCurrent = SEEK_CUR,
00110     edkcSeekEnd = SEEK_END,
00112     edkcSeekSet = SEEK_SET,
00114     edkcReadMode = 1,
00116     edkcWriteMode = 2,
00118     edkcPostScriptMode = 4,
00120     edkcBinaryMode = 64,
00122     edkcTextMode = 128,
00123 };
00124 
00125 DKC_GENERIC_FILESYSTEM *WINAPI dkcAlloc_SJIS_FileSystem();
00126 
00127 DKC_GENERIC_FILESYSTEM *WINAPI dkcAlloc_UNICODE_FileSystem();
00128 
00129 DKC_EXTERN int WINAPI dkcFreeGenericFileSystem(DKC_GENERIC_FILESYSTEM **);
00130 
00131 DKC_EXTERN int WINAPI dkcGenericFileSystemOpen(DKC_GENERIC_FILESYSTEM *,uint32 flags,const void *filename);
00132 
00133 DKC_EXTERN int WINAPI dkcGenericFileSystemClose(DKC_GENERIC_FILESYSTEM *);
00134 
00135 DKC_EXTERN int WINAPI dkcGenericFileSystemRead(DKC_GENERIC_FILESYSTEM *,void *pbuff,size_t size,size_t *read_size);
00136 
00137 DKC_EXTERN int WINAPI dkcGenericFileSystemWrite(DKC_GENERIC_FILESYSTEM *,const void *pbuff,size_t size,size_t *write_size);
00138 
00139 DKC_EXTERN int WINAPI dkcGenericFileSystemSeek(DKC_GENERIC_FILESYSTEM *,const DKC_GFS_SEEK_ARG *);
00140 
00141 DKC_EXTERN int WINAPI dkcGenericFileSystemTell(DKC_GENERIC_FILESYSTEM *,DKC_UINT64_STRUCT *);
00142 
00143 DKC_EXTERN int WINAPI dkcGenericFileSystemDeleteFile(DKC_GENERIC_FILESYSTEM *,const void *filename);
00144 
00145 
00146 
00147 
00148 #endif //end of include once
00149 
00150 

dkutil_cに対してTue Feb 22 02:01:47 2005に生成されました。 doxygen 1.3.6