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

# 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{
    00109     edkcReadMode = 1,
    00111     edkcWriteMode = 2,
    00113     edkcPostScriptMode = 4,
    00115     edkcBinaryMode = 64,
    00117     edkcTextMode = 128,
    00118 };
    00119
    00120 //その時に応じた差異的なファイルシステムを構築する。
    00121 //DKC_GENERIC_FILESYSTEM *WINAPI dkcAllocGenericFileSystem();
    00122
    00123 DKC_GENERIC_FILESYSTEM *WINAPI dkcAlloc_SJIS_FileSystem();
    00124
    00125 DKC_GENERIC_FILESYSTEM *WINAPI dkcAlloc_UNICODE_FileSystem();
    00126
    00127 DKC_EXTERN int WINAPI dkcFreeGenericFileSystem(DKC_GENERIC_FILESYSTEM **);
    00128
    00129 DKC_EXTERN int WINAPI dkcGenericFileSystemOpen(DKC_GENERIC_FILESYSTEM *,uint32 flags,const void *filename);
    00130
    00131 DKC_EXTERN int WINAPI dkcGenericFileSystemClose(DKC_GENERIC_FILESYSTEM *);
    00132
    00133 DKC_EXTERN int WINAPI dkcGenericFileSystemRead(DKC_GENERIC_FILESYSTEM *,void *pbuff,size_t size,size_t *read_size);
    00134
    00135 DKC_EXTERN int WINAPI dkcGenericFileSystemWrite(DKC_GENERIC_FILESYSTEM *,const void *pbuff,size_t size,size_t *write_size);
    00136
    00137 DKC_EXTERN int WINAPI dkcGenericFileSystemSeek(DKC_GENERIC_FILESYSTEM *,const DKC_GFS_SEEK_ARG *);
    00138
    00139 DKC_EXTERN int WINAPI dkcGenericFileSystemTell(DKC_GENERIC_FILESYSTEM *,DKC_UINT64_STRUCT *);
    00140
    00141 DKC_EXTERN int WINAPI dkcGenericFileSystemDeleteFile(DKC_GENERIC_FILESYSTEM *,const void *filename);
    00142
    00143
    00144
    00145 #endif //end of include once
    00146
    00147