--- np2/common/profile.h 2003/10/16 17:57:10 1.1.1.1 +++ np2/common/profile.h 2005/03/20 06:09:16 1.9 @@ -1,13 +1,90 @@ +#if !defined(NP2_PROFILE_H__) +#define NP2_PROFILE_H__ + #ifdef __cplusplus extern "C" { #endif -BOOL profile_enum(const char *filename, void *arg, - BOOL (*proc)(void *arg, const char *para, - const char *key, const char *data)); +BOOL profile_enum(const OEMCHAR *filename, void *arg, + BOOL (*proc)(void *arg, const OEMCHAR *para, + const OEMCHAR *key, const OEMCHAR *data)); +const OEMCHAR *profile_getarg(const OEMCHAR *str, OEMCHAR *buf, UINT leng); + + + + +// ---- まだテスト + +enum { + PFILEH_READONLY = 0x0001, + PFILEH_MODIFY = 0x0002 +}; + +typedef struct { + OEMCHAR *buffer; + UINT buffers; + UINT size; + UINT8 hdr[4]; + UINT hdrsize; + UINT flag; + OEMCHAR path[MAX_PATH]; +} _PFILEH, *PFILEH; + +PFILEH profile_open(const OEMCHAR *filename, UINT flag); +void profile_close(PFILEH hdl); +BRESULT profile_read(const OEMCHAR *app, const OEMCHAR *key, + const OEMCHAR *def, OEMCHAR *ret, UINT size, PFILEH hdl); +BRESULT profile_write(const OEMCHAR *app, const OEMCHAR *key, + const OEMCHAR *data, PFILEH hdl); + + +enum { + PFTYPE_STR = 0, + PFTYPE_BOOL, + PFTYPE_BITMAP, + PFTYPE_BIN, + PFTYPE_SINT8, + PFTYPE_SINT16, + PFTYPE_SINT32, + PFTYPE_UINT8, + PFTYPE_UINT16, + PFTYPE_UINT32, + PFTYPE_HEX8, + PFTYPE_HEX16, + PFTYPE_HEX32, + PFTYPE_USER, + PFTYPE_MASK = 0xff, + + PFFLAG_RO = 0x0100, + PFFLAG_MAX = 0x0200, + PFFLAG_AND = 0x0400 +}; + +typedef struct { + OEMCHAR item[12]; + UINT itemtype; + void *value; + UINT32 arg; +} PFTBL; + +#define PFSTR(k, f, a) {OEMTEXT(k), f, a, NELEMENTS(a)} +#define PFVAL(k, f, a) {OEMTEXT(k), f, a, 0} +#define PFMAX(k, f, a, v) {OEMTEXT(k), f | PFFLAG_MAX, a, v} +#define PFAND(k, f, a, v) {OEMTEXT(k), f | PFFLAG_AND, a, v} +#define PFEXT(k, f, a, v) {OEMTEXT(k), f, a, v} + +typedef void (*PFREAD)(const PFTBL *item, const OEMCHAR *string); +typedef OEMCHAR *(*PFWRITE)(const PFTBL *item, OEMCHAR *string, UINT size); + +void profile_iniread(const OEMCHAR *path, const OEMCHAR *app, + const PFTBL *tbl, UINT count, PFREAD cb); +void profile_iniwrite(const OEMCHAR *path, const OEMCHAR *app, + const PFTBL *tbl, UINT count, PFWRITE cb); #ifdef __cplusplus } #endif +#endif // defined(NP2_PROFILE_H__) +