00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170 #ifndef INC_MI32_INIDEFNS_H
00171 #define INC_MI32_INIDEFNS_H
00172
00173 #ifndef INC_MI32_INIBASE_H
00174 #include <mi32/inibase.h>
00175 #endif
00176
00177 #ifndef INC_MI32_STRING_H
00178 #include <mi32/string.h>
00179 #endif
00180
00181 #ifdef MISYSTEMDLL
00182 #define LIBEXPORT MI_DLLEXPORT
00183 #else
00184 #define LIBEXPORT MI_DLLIMPORT
00185 #endif
00186
00187
00188 class FILEPATH;
00189
00190
00192 #define INIFILE_Standard "tntproc.ini"
00193 #define INIFILE_Host "tnthost.ini"
00194
00196 #define INIFLAG_None 0
00197 #define INIFLAG_WriteRequired 0x00000002
00198 #define INIFLAG_ReadOnly 0x00000004
00199 #define INIFLAG_NoFlushOnWrite 0x00000008
00200 #define INIFLAG_InternalOnly 0x00000010
00201
00202
00204
00205
00206 extern "C" {
00207
00210
00213 LIBEXPORT void IniClose (
00214 INIHANDLE iniptr
00215 );
00216
00218 LIBEXPORT int IniDeleteField (
00219 INIHANDLE iniptr,
00220 const char* group,
00221 const char* field
00222 );
00223
00225 LIBEXPORT int IniDeleteGroup (
00226 INIHANDLE iniptr,
00227 const char* group
00228 );
00229
00231 LIBEXPORT ERRVALUE IniFlush (
00232 INIHANDLE iniptr
00233 );
00234
00237 LIBEXPORT int IniGetBuffer (
00238 INIHANDLE iniptr,
00239 MIUNICODE **buffer
00240 );
00241
00244 LIBEXPORT const FILEPATH& IniGetFilePath (
00245 INIHANDLE inihandle
00246 );
00247
00250 LIBEXPORT int IniIsWritable (
00251 INIHANDLE iniptr
00252 );
00253
00255 LIBEXPORT ERRVALUE IniListAdd (
00256 const FILEPATH& filepath
00257 );
00258
00260 LIBEXPORT void IniListClear (
00261 );
00262
00263
00277 LIBEXPORT int IniOpen (
00278 const char *basefilename,
00279 INIHANDLE *iniptr,
00280 UINT32 flags = INIFLAG_None
00281 );
00282
00284 LIBEXPORT void IniSetAppName (
00285 const char *AppName
00286 );
00287
00289 LIBEXPORT int IniSetBuffer (
00290 INIHANDLE iniptr,
00291 MIUNICODE *buffer
00292 );
00293
00299 LIBEXPORT int IniWriteBoolean (
00300 INIHANDLE iniptr,
00301 const char *group,
00302 const char *field,
00303 int value
00304 );
00305
00306 }
00307
00309 LIBEXPORT ERRVALUE IniOpen (
00310 const FILEPATH& filepath,
00311 INIHANDLE *iniptr,
00312 UINT32 flags = INIFLAG_None
00313 );
00314
00315
00316 #ifndef GENERATING_DOXYGEN_OUTPUT
00317
00318
00319 #if defined(MISYSTEMDLL)
00320
00321 extern "C" {
00322
00337 LIBEXPORT INT32 IniReadString (
00338 INIHANDLE iniptr,
00339 const char* group,
00340 const char*const field,
00341 UINT32 initype,
00342 void *data,
00343 INT32 len
00344 );
00345
00354 LIBEXPORT INT32 IniReadStringAlloc (
00355 INIHANDLE iniptr,
00356 const char* group,
00357 const char*const field,
00358 void **data,
00359 UINT32 initype
00360 );
00361
00367 LIBEXPORT INT32 IniReadStringAllocML (
00368 INIHANDLE iniptr,
00369 const char* group,
00370 const char*const field,
00371 UINT32 initype,
00372 void **data
00373 );
00374
00386 LIBEXPORT int IniWriteString (
00387 INIHANDLE iniptr,
00388 const char *group,
00389 const char *field,
00390 UINT32 initype,
00391 const void *data
00392 );
00393
00397 LIBEXPORT int IniWriteStringML (
00398 INIHANDLE iniptr,
00399 const char *group,
00400 const char *field,
00401 UINT32 initype,
00402 const void *data
00403 );
00404
00405 }
00406
00407 #endif
00408
00409 #endif // GENERATING_DOXYGEN_OUTPUT
00410
00411
00412
00415 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, bool& value) { return (_iniRead(hdl,group,field,INITYPE_Bool,&value,1)); }
00416
00419 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, bool& value, bool dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00420
00423 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, INT8& value) { return (_iniRead(hdl,group,field,INITYPE_INT8,&value,1)); }
00424
00427 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, INT8& value, INT8 dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00428
00431 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, INT8& value, INT8 dft, INT8 min, INT8 max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00432
00435 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, UINT8& value) { return (_iniRead(hdl,group,field,INITYPE_UINT8,&value,1)); }
00436
00439 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, UINT8& value, UINT8 dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00440
00443 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, UINT8& value, UINT8 dft, UINT8 min, UINT8 max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00444
00447 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, INT16& value) { return (_iniRead(hdl,group,field,INITYPE_INT16,&value,1)); }
00448
00451 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, INT16& value, INT16 dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00452
00455 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, INT16& value, INT16 dft, INT16 min, INT16 max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00456
00459 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, UINT16& value) { return (_iniRead(hdl,group,field,INITYPE_UINT16,&value,1)); }
00460
00463 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, UINT16& value, UINT16 dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00464
00467 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, UINT16& value, UINT16 dft, UINT16 min, UINT16 max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00468
00471 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, int& value) { return (_iniRead(hdl,group,field,INITYPE_INT32,&value,1)); }
00472
00475 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, int& value, int dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00476
00479 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, int& value, int dft, int min, int max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00480
00483 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, unsigned int& value) { return (_iniRead(hdl,group,field,INITYPE_UINT32,&value,1)); }
00484
00487 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, unsigned int& value, unsigned int dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00488
00491 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, unsigned int& value, unsigned int dft, unsigned int min, unsigned int max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00492
00493 #if !defined(LONGS_ARE_64_BIT) // longs are 32-bit
00494
00497 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, long& value) { return (_iniRead(hdl,group,field,INITYPE_INT32,&value,1)); }
00498
00501 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, long& value, long dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00502
00505 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, long& value, long dft, long min, long max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00506
00509 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, unsigned long& value) { return (_iniRead(hdl,group,field,INITYPE_UINT32,&value,1)); }
00510
00513 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, unsigned long& value, unsigned long dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00514
00517 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, unsigned long& value, unsigned long dft, unsigned long min, unsigned long max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00518
00519 #endif // longs are 32-bit
00520
00521 #if defined(PTRS_ARE_64_BIT)
00522
00525 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, MGUI::ID& value) { int temp = static_cast<int>(value); int result = IniRead(hdl,group,field,temp); value = temp; return (result); }
00526
00529 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, MGUI::ID& value, MGUI::ID dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00530
00531 #endif
00532
00535 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, float& value) { return (_iniRead(hdl,group,field,INITYPE_Float,&value,1)); }
00536
00539 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, float& value, float dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00540
00543 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, float& value, float dft, float min, float max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00544
00547 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, double& value) { return (_iniRead(hdl,group,field,INITYPE_Double,&value,1)); }
00548
00551 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, double& value, double dft) { value = dft; return (IniRead(hdl,group,field,value)); }
00552
00555 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, double& value, double dft, double min, double max) { value = dft; int err = IniRead(hdl,group,field,value); if (value < min) value = min; else if (value > max) value = max; return (err); }
00556
00558 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, char *str, int size) { return (_iniReadString(hdl,group,field,INITYPE_ASCII,str,size)); }
00559
00561 inline int IniRead (INIHANDLE hdl, const char *group, const char *field, MIUNICODE *str, int size) { return (_iniReadString(hdl,group,field,INITYPE_Unicode,str,size)); }
00562
00565 inline bool IniReadBoolean (INIHANDLE hdl, const char *group, const char *field, bool dft) { bool value; IniRead(hdl,group,field,value,dft); return (value); }
00566
00568 template <class _CT>
00569 inline int IniReadEnum (
00570 INIHANDLE hdl,
00571 const char *group,
00572 const char *field,
00573 _CT& value
00574 ) {
00575 int err, temp;
00576 if ((err = IniRead(hdl,group,field,temp)) >= 0) {
00577 value = static_cast<_CT>(temp);
00578 }
00579 return (err);
00580 }
00581
00583 template <class _CT>
00584 inline int IniReadEnum (
00585 INIHANDLE hdl,
00586 const char *group,
00587 const char *field,
00588 _CT& value,
00589 _CT dft
00590 ) {
00591 int err, temp;
00592 if ((err = IniRead(hdl,group,field,temp)) >= 0) {
00593 value = static_cast<_CT>(temp);
00594 }
00595 else {
00596 value = dft;
00597 }
00598 return (err);
00599 }
00600
00602 inline int IniReadStringMultiLine (
00603 INIHANDLE iniptr,
00604 const char *group,
00605 const char *field,
00606 char*& string
00607 ) {
00608 return (_iniReadStringAllocML(iniptr,group,field,INITYPE_ASCII,reinterpret_cast<void**>(&string)));
00609 }
00610
00612 inline int IniReadStringMultiLine (
00613 INIHANDLE iniptr,
00614 const char *group,
00615 const char *field,
00616 MIUNICODE*& string
00617 ) {
00618 return (_iniReadStringAllocML(iniptr,group,field,INITYPE_Unicode,reinterpret_cast<void**>(&string)));
00619 }
00620
00622 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, const bool& value) { return (IniWriteBoolean(hdl,group,field,value)); }
00623
00625 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, int value) { return (_iniWrite(hdl,group,field,INITYPE_INT32,&value,1)); }
00626
00628 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, unsigned int value) { return (_iniWrite(hdl,group,field,INITYPE_UINT32,&value,1)); }
00629
00630 #if !defined(LONGS_ARE_64_BIT) // longs are 32-bit
00631
00633 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, long value) { return (_iniWrite(hdl,group,field,INITYPE_INT32,&value,1)); }
00634
00636 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, unsigned long value) { return (_iniWrite(hdl,group,field,INITYPE_UINT32,&value,1)); }
00637
00638 #endif // longs are 32-bit
00639
00640 #if defined(PTRS_ARE_64_BIT)
00641
00643 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, MGUI::ID value) { return (IniWrite(hdl,group,field,static_cast<int>(value))); }
00644
00645 #endif
00646
00648 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, double value) { return (_iniWrite(hdl,group,field,INITYPE_Double,&value,1)); }
00649
00652 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, const char *str) { return (_iniWriteString(hdl,group,field,INITYPE_ASCII,str)); }
00653
00656 inline int IniWrite (INIHANDLE hdl, const char *group, const char *field, const MIUNICODE *str) { return (_iniWriteString(hdl,group,field,INITYPE_Unicode,str)); }
00657
00659 inline int IniWriteStringMultiLine (
00660 INIHANDLE iniptr,
00661 const char *group,
00662 const char *field,
00663 const char *string
00664 ) {
00665 return (_iniWriteStringML(iniptr,group,field,INITYPE_ASCII,string));
00666 }
00667
00669 inline int IniWriteStringMultiLine (
00670 INIHANDLE iniptr,
00671 const char *group,
00672 const char *field,
00673 const MIUNICODE *string
00674 ) {
00675 return (_iniWriteStringML(iniptr,group,field,INITYPE_Unicode,string));
00676 }
00677
00679
00680
00681
00682
00683 #undef LIBEXPORT
00684
00685 #endif // INC_MI32_INIDEFNS_H