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
00046 #ifndef RECLS_INCL_RECLS_H_RECLS
00047 #define RECLS_INCL_RECLS_H_RECLS
00048
00049
00050 #ifndef RECLS_DOCUMENTATION_SKIP_SECTION
00051 # define RECLS_VER_RECLS_H_RECLS_MAJOR 3
00052 # define RECLS_VER_RECLS_H_RECLS_MINOR 8
00053 # define RECLS_VER_RECLS_H_RECLS_REVISION 8
00054 # define RECLS_VER_RECLS_H_RECLS_EDIT 83
00055 #endif
00056
00078
00079 #define RECLS_VER_MAJOR 1
00080 #define RECLS_VER_MINOR 8
00081 #define RECLS_VER_REVISION 11
00082 #define RECLS_VER_1_0_1 0x01000100
00083 #define RECLS_VER_1_1_1 0x01010100
00084 #define RECLS_VER_1_2_1 0x01020100
00085 #define RECLS_VER_1_3_1 0x01030100
00086 #define RECLS_VER_1_4_1 0x01040100
00087 #define RECLS_VER_1_4_2 0x01040200
00088 #define RECLS_VER_1_5_1 0x01050100
00089 #define RECLS_VER_1_5_2 0x01050200
00090 #define RECLS_VER_1_5_3 0x01050300
00091 #define RECLS_VER_1_6_1 0x01060100
00092 #define RECLS_VER_1_6_2 0x01060200
00093 #define RECLS_VER_1_6_3 0x01060300
00094 #define RECLS_VER_1_6_4 0x01060400
00095 #define RECLS_VER_1_6_5 0x01060500
00096 #define RECLS_VER_1_7_1 0x01070100
00097 #define RECLS_VER_1_7_2 0x01070200
00098 #define RECLS_VER_1_8_1 0x01080100
00099 #define RECLS_VER_1_8_2 0x01080200
00100 #define RECLS_VER_1_8_3 0x01080300
00101 #define RECLS_VER_1_8_4 0x01080400
00102 #define RECLS_VER_1_8_5 0x01080500
00103 #define RECLS_VER_1_8_6 0x01080600
00104 #define RECLS_VER_1_8_7 0x01080700
00105 #define RECLS_VER_1_8_8 0x01080800
00106 #define RECLS_VER_1_8_9 0x01080900
00107 #define RECLS_VER_1_8_10 0x01080a00
00108 #define RECLS_VER_1_8_11 0x01080b00
00109 #define RECLS_VER RECLS_VER_1_8_11
00110
00111
00112
00113
00114
00115 #ifndef RECLS_NO_STRICT
00116 # define RECLS_STRICT
00117 #endif
00118
00119
00120
00121
00122
00123
00124 #include <recls/internal/language.h>
00125
00126 #include <recls/internal/platform.h>
00127
00128 #include <recls/internal/compiler.h>
00129
00130 #include <recls/internal/platform_types.h>
00131
00132
00133
00134
00135
00136 #if !defined(RECLS_NO_NAMESPACE)
00137 namespace recls
00138 {
00139 #endif
00140
00141 #if !defined(RECLS_NO_NAMESPACE)
00142 # define RECLS_QUAL(x) ::recls::x
00143 #else
00144 # define RECLS_QUAL(x) x
00145 #endif
00146
00147
00148
00149
00150
00157 #if defined(RECLS_DOCUMENTATION_SKIP_SECTION)
00158 # define RECLS_ROOT_NAME_LEN (1) or (3)
00159 #elif defined(RECLS_PLATFORM_IS_WIN32)
00160 # define RECLS_ROOT_NAME_LEN (3)
00161 #elif defined(RECLS_PLATFORM_IS_UNIX)
00162 # define RECLS_ROOT_NAME_LEN (1)
00163 #elif defined(RECLS_OVERRIDE_PLATFORM)
00164
00165 #else
00166 # error Platform not recognised
00167 #endif
00168
00169
00170
00171
00172
00177 #define RECLS_FNDECL(rt) RECLS_LINKAGE_C rt RECLS_CALLCONV_DEFAULT
00178
00179
00180
00181
00182
00183
00184 #ifdef __cplusplus
00185
00190 typedef recls_sint32_t recls_rc_t;
00191
00196 const recls_rc_t RECLS_RC_OK(0);
00201 const recls_rc_t RECLS_RC_FAIL(-1);
00202
00207 inline bool RECLS_FAILED(recls_rc_t const &rc)
00208 {
00209 return rc < 0;
00210 }
00211
00216 inline bool RECLS_SUCCEEDED(recls_rc_t const &rc)
00217 {
00218 return !RECLS_FAILED(rc);
00219 }
00220
00221 #else
00222
00227 typedef recls_sint32_t recls_rc_t;
00228
00233 # define RECLS_RC_OK (0)
00234
00238 # define RECLS_RC_FAIL (-1)
00239
00244 # define RECLS_FAILED(rc) ((rc) < 0)
00245
00249 # define RECLS_SUCCEEDED(rc) (!RECLS_FAILED(rc))
00250
00251 #endif
00252
00253
00254 #if !defined(RECLS_DOCUMENTATION_SKIP_SECTION) && \
00255 defined(RECLS_COMPILER_IS_BORLAND) && \
00256 __BORLANDC__ < 0x0560
00257 struct hrecls_t_
00258 {
00259 int dummy;
00260 };
00261 #else
00262 struct hrecls_t_;
00263 #endif
00264
00269 typedef struct hrecls_t_ const * hrecls_t;
00270
00271
00272
00273
00274
00275 #if !defined(RECLS_NO_NAMESPACE)
00276 }
00277 #endif
00278
00279
00280
00281
00282
00283
00284 #include <recls/internal/retcodes.h>
00285
00286
00287
00288
00289
00290 #if !defined(RECLS_NO_NAMESPACE)
00291 namespace recls
00292 {
00293 #endif
00294
00295
00296
00297
00298
00306 enum RECLS_FLAG
00307 {
00308 RECLS_F_FILES = 0x00000001
00309 , RECLS_F_DIRECTORIES = 0x00000002
00310 , RECLS_F_LINKS = 0x00000004
00311 , RECLS_F_DEVICES = 0x00000008
00312 , RECLS_F_TYPEMASK = 0x00000FFF
00313 , RECLS_F_DIR_PROGRESS = 0x00001000
00314 , RECLS_F_RECURSIVE = 0x00010000
00315 , RECLS_F_NO_FOLLOW_LINKS = 0x00020000
00316 , RECLS_F_DIRECTORY_PARTS = 0x00040000
00317 , RECLS_F_DETAILS_LATER = 0x00080000
00318 , RECLS_F_PASSIVE_FTP = 0x00100000
00319 , RECLS_F_MARK_DIRS = 0x00200000
00320 , RECLS_F_ALLOW_REPARSE_DIRS = 0x00400000
00321 #if 0
00322 , RECLS_F_CALC_CHECKSUM = 0x00800000
00323 #endif
00324 , RECLS_F_CALLBACKS_STDCALL_ON_WIN32 = 0x01000000
00325 , RECLS_F_USE_TILDE_ON_NO_SEARCHROOT = 0x04000000
00326 #if 0
00327 , RECLS_F_DIR_SIZE_IS_NUM_FILES = 0x02000000
00328 #endif
00329 , RECLS_F_IGNORE_HIDDEN_ENTRIES_ON_WIN32 = 0x08000000
00331 #if !defined(FILES)
00332 , FILES = RECLS_F_FILES
00333 #endif
00334 #if !defined(DIRECTORIES)
00335 , DIRECTORIES = RECLS_F_DIRECTORIES
00336 #endif
00337 #if !defined(LINKS)
00338 , LINKS = RECLS_F_LINKS
00339 #endif
00340 #if !defined(DEVICES)
00341 , DEVICES = RECLS_F_DEVICES
00342 #endif
00343 #if !defined(TYPEMASK)
00344 , TYPEMASK = RECLS_F_TYPEMASK
00345 #endif
00346 #if !defined(DIR_PROGRESS)
00347 , DIR_PROGRESS = RECLS_F_DIR_PROGRESS
00348 #endif
00349 #if !defined(RECURSIVE)
00350 , RECURSIVE = RECLS_F_RECURSIVE
00351 #endif
00352 #if !defined(NO_FOLLOW_LINKS)
00353 , NO_FOLLOW_LINKS = RECLS_F_NO_FOLLOW_LINKS
00354 #endif
00355 #if !defined(DIRECTORY_PARTS)
00356 , DIRECTORY_PARTS = RECLS_F_DIRECTORY_PARTS
00357 #endif
00358 #if !defined(DETAILS_LATER)
00359 , DETAILS_LATER = RECLS_F_DETAILS_LATER
00360 #endif
00361 #if !defined(PASSIVE_FTP)
00362 , PASSIVE_FTP = RECLS_F_PASSIVE_FTP
00363 #endif
00364 #if !defined(MARK_DIRS)
00365 , MARK_DIRS = RECLS_F_MARK_DIRS
00366 #endif
00367 #if !defined(ALLOW_REPARSE_DIRS)
00368 , ALLOW_REPARSE_DIRS = RECLS_F_ALLOW_REPARSE_DIRS
00369 #endif
00370 #if 0
00371 #if !defined(CALC_CHECKSUM)
00372 , CALC_CHECKSUM = RECLS_F_CALC_CHECKSUM
00373 #endif
00374 #endif
00375 #if !defined(CALLBACKS_STDCALL_ON_WIN32)
00376 , CALLBACKS_STDCALL_ON_WIN32 = RECLS_F_CALLBACKS_STDCALL_ON_WIN32
00377 #endif
00378
00379 #if !defined(F_USE_TILDE_ON_NO_SEARCHROOT)
00380 , USE_TILDE_ON_NO_SEARCHROOT = RECLS_F_USE_TILDE_ON_NO_SEARCHROOT
00381 #endif
00382 , IGNORE_HIDDEN_ENTRIES_ON_WIN32 = RECLS_F_IGNORE_HIDDEN_ENTRIES_ON_WIN32
00383 #if !defined(IGNORE_HIDDEN_ENTRIES_ON_WIN32)
00384 #endif
00385 #if 0
00386 #if !defined(RECLS_F_DIR_SIZE_IS_NUM_FILES)
00387 , DIR_SIZE_IS_NUM_FILES = RECLS_F_DIR_SIZE_IS_NUM_FILES
00388 #endif
00389 #endif
00390 };
00391
00400 enum RECLS_ROOTS_FLAG
00401 {
00402 RECLS_ROOTS_F_FIXED_DRIVES = 0x0001
00403 , RECLS_ROOTS_F_NETWORK_DRIVES = 0x0002
00404 , RECLS_ROOTS_F_CDROM_DRIVES = 0x0004
00405 , RECLS_ROOTS_F_REMOVABLE_DRIVES = 0x0008
00406 , RECLS_ROOTS_F_RAM_DRIVES = 0x0010
00408 #ifdef __cplusplus
00409 , FixedDrives = RECLS_ROOTS_F_FIXED_DRIVES
00410 , NetworkDrives = RECLS_ROOTS_F_NETWORK_DRIVES
00411 , CDRomDrives = RECLS_ROOTS_F_CDROM_DRIVES
00412 , RemovableDrives = RECLS_ROOTS_F_REMOVABLE_DRIVES
00413 , RamDrives = RECLS_ROOTS_F_RAM_DRIVES
00414 #endif
00415
00416 #ifndef RECLS_DOCUMENTATION_SKIP_SECTION
00417 , RECLS_F_FIXED_DRIVES = RECLS_ROOTS_F_FIXED_DRIVES
00418 , RECLS_F_NETWORK_DRIVES = RECLS_ROOTS_F_NETWORK_DRIVES
00419 , RECLS_F_CDROM_DRIVES = RECLS_ROOTS_F_CDROM_DRIVES
00420 , RECLS_F_REMOVABLE_DRIVES = RECLS_ROOTS_F_REMOVABLE_DRIVES
00421 , RECLS_F_RAM_DRIVES = RECLS_ROOTS_F_RAM_DRIVES
00422 #endif
00423 };
00424
00425 #if !defined(__cplusplus) && \
00426 !defined(RECLS_DOCUMENTATION_SKIP_SECTION)
00427 typedef enum RECLS_FLAG RECLS_FLAG;
00428 typedef enum RECLS_ROOTS_FLAG RECLS_ROOTS_FLAG;
00429 #endif
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439 #ifndef RECLS_COMPILER_IS_CH
00440
00444 struct recls_root_t
00445 {
00453 recls_char_t name[1 + RECLS_ROOT_NAME_LEN];
00454 };
00455
00456 # ifdef __cplusplus
00457 typedef recls_root_t root_t;
00458 # else
00459 typedef struct recls_root_t recls_root_t;
00460 # endif
00461 #endif
00462
00463 #ifndef RECLS_COMPILER_IS_CH
00464 struct recls_fileinfo_t;
00465 #endif
00466
00471 typedef struct recls_fileinfo_t const* recls_info_t;
00472
00477 typedef void* recls_process_fn_param_t;
00478
00490 typedef int (RECLS_CALLCONV_DEFAULT *hrecls_process_fn_t)( recls_info_t hEntry
00491 , recls_process_fn_param_t param);
00492
00506 typedef int (RECLS_CALLCONV_DEFAULT *hrecls_progress_fn_t)( recls_char_t const* dir
00507 , size_t dirLen
00508 , recls_process_fn_param_t param
00509 , void* reserved0
00510 , recls_uint32_t reserved1);
00511
00512
00513
00514
00515
00516 #if !defined(RECLS_NO_NAMESPACE)
00517 typedef recls_info_t info_t;
00518 typedef recls_process_fn_param_t process_fn_param_t;
00519 #endif
00520
00521
00522
00523
00524
00525
00526
00527
00528
00535 #ifndef RECLS_COMPILER_IS_CH
00536
00562 RECLS_FNDECL(size_t) Recls_GetRoots( recls_root_t* roots
00563 , size_t cRoots);
00564
00577 RECLS_FNDECL(size_t) Recls_GetSelectedRoots( recls_root_t* roots
00578 , size_t cRoots
00579 , recls_uint32_t flags);
00580
00581 #endif
00582
00583 #if 0
00584
00585 RECLS_FNDECL(size_t) Recls1_FileSystem_GetRoots( recls_root_t* roots
00586 , size_t cRoots
00587 , recls_uint32_t flags);
00588 #endif
00589
00590
00605 RECLS_FNDECL(recls_char_t const*) Recls_GetPathNameSeparator(void);
00606
00607 #if 0
00608
00609 RECLS_FNDECL(recls_char_t const*) Recls1_FileSystem_GetPathNameSeparator(void);
00610 #endif
00611
00626 RECLS_FNDECL(recls_char_t const*) Recls_GetPathSeparator(void);
00627
00628 #if 0
00629
00630 RECLS_FNDECL(recls_char_t const*) Recls1_FileSystem_GetPathSeparator(void);
00631 #endif
00632
00647 RECLS_FNDECL(recls_char_t const*) Recls_GetWildcardsAll(void);
00648
00649 #if 0
00650
00651 RECLS_FNDECL(recls_char_t const*) Recls1_FileSystem_GetWildcardsAll(void);
00652 #endif
00653
00656
00657
00658
00659
00685 RECLS_FNDECL(recls_rc_t) Recls_Search( recls_char_t const* searchRoot
00686 , recls_char_t const* pattern
00687 , recls_uint32_t flags
00688 , hrecls_t* phSrch);
00689
00706 RECLS_FNDECL(recls_rc_t) Recls_SearchFeedback( recls_char_t const* searchRoot
00707 , recls_char_t const* pattern
00708 , recls_uint32_t flags
00709 , hrecls_progress_fn_t pfn
00710 , recls_process_fn_param_t param
00711 , hrecls_t* phSrch);
00712
00713
00714 #if 0
00715
00716 RECLS_FNDECL(recls_rc_t) Recls1_FileSystem_StartSearch( recls_char_t const* searchRoot
00717 , recls_char_t const* pattern
00718 , recls_uint32_t flags
00719 , Recls1_progress_fn_t pfnProgress
00720 , Recls1_process_fn_param_t paramProgress
00721 , Recls1_filter_fn_t pfnFilter
00722 , Recls1_filter_fn_param_t paramFilter
00723 , hrecls_t* phSrch);
00724 #endif
00725
00741 RECLS_FNDECL(recls_rc_t) Recls_SearchProcess( recls_char_t const* searchRoot
00742 , recls_char_t const* pattern
00743 , recls_uint32_t flags
00744 , hrecls_process_fn_t pfn
00745 , recls_process_fn_param_t param);
00746
00753 RECLS_FNDECL(void) Recls_SearchClose(hrecls_t hSrch);
00754
00755
00756 #if 0
00757
00758 RECLS_FNDECL(recls_rc_t) Recls1_FileSystem_CloseSearch(hrecls_t hSrch);
00759 #endif
00760
00761
00775 RECLS_FNDECL(recls_rc_t) Recls_Stat(recls_char_t const* path
00776 , recls_uint32_t flags
00777 , recls_info_t* phEntry);
00778
00779 #if 0
00780
00781 RECLS_FNDECL(recls_rc_t) Recls1_FileSystem_Stat(Recls1_char_t const* path
00782 , Recls1_uint32_t flags
00783 , Recls1_entry_t* pentry);
00784 #endif
00785
00786
00789
00790
00791
00792
00810 RECLS_FNDECL(recls_rc_t) Recls_GetNext(hrecls_t hSrch);
00811
00812 #if 0
00813
00814 RECLS_FNDECL(recls_rc_t) Recls1_Search_Next(hrecls_t hSrch);
00815 #endif
00816
00817
00830 RECLS_FNDECL(recls_rc_t) Recls_GetDetails( hrecls_t hSrch
00831 , recls_info_t* phEntry);
00832
00833 #if 0
00834
00835 #endif
00836
00848 RECLS_FNDECL(recls_rc_t) Recls_GetNextDetails( hrecls_t hSrch
00849 , recls_info_t* phEntry);
00850
00853
00854
00855
00856
00869 RECLS_FNDECL(void) Recls_CloseDetails(recls_info_t hEntry);
00870
00882 RECLS_FNDECL(recls_rc_t) Recls_CopyDetails( recls_info_t hEntry
00883 , recls_info_t* phEntry);
00884
00896 RECLS_FNDECL(recls_rc_t) Recls_OutstandingDetails( hrecls_t hSrch
00897 , recls_uint32_t* count);
00898
00901
00902
00903
00904
00919 RECLS_FNDECL(recls_rc_t) Recls_GetLastError(hrecls_t hSrch);
00920
00931 RECLS_FNDECL(size_t) Recls_GetErrorString( recls_rc_t rc
00932 , recls_char_t* buffer
00933 , size_t cchBuffer);
00934
00945 RECLS_FNDECL(size_t) Recls_GetLastErrorString( hrecls_t hSrch
00946 , recls_char_t* buffer
00947 , size_t cchBuffer);
00948
00951
00952
00953
00954
00971 RECLS_FNDECL(size_t) Recls_GetPathProperty( recls_info_t hEntry
00972 , recls_char_t* buffer
00973 , size_t cchBuffer);
00974
00985 RECLS_FNDECL(size_t) Recls_GetSearchRelativePathProperty( recls_info_t hEntry
00986 , recls_char_t* buffer
00987 , size_t cchBuffer);
00988
00999 RECLS_FNDECL(size_t) Recls_GetDirectoryProperty(recls_info_t hEntry
01000 , recls_char_t* buffer
01001 , size_t cchBuffer);
01002
01015 RECLS_FNDECL(size_t) Recls_GetDirectoryPathProperty(recls_info_t hEntry
01016 , recls_char_t* buffer
01017 , size_t cchBuffer);
01018
01029 RECLS_FNDECL(size_t) Recls_GetSearchDirectoryProperty( recls_info_t hEntry
01030 , recls_char_t* buffer
01031 , size_t cchBuffer);
01032
01045 RECLS_FNDECL(size_t) Recls_GetUNCDriveProperty( recls_info_t hEntry
01046 , recls_char_t* buffer
01047 , size_t cchBuffer);
01048
01059 RECLS_FNDECL(size_t) Recls_GetFileProperty( recls_info_t hEntry
01060 , recls_char_t* buffer
01061 , size_t cchBuffer);
01062
01075 RECLS_FNDECL(size_t) Recls_GetShortFileProperty(recls_info_t hEntry
01076 , recls_char_t* buffer
01077 , size_t cchBuffer);
01078
01089 RECLS_FNDECL(size_t) Recls_GetFileNameProperty( recls_info_t hEntry
01090 , recls_char_t* buffer
01091 , size_t cchBuffer);
01092
01103 RECLS_FNDECL(size_t) Recls_GetFileExtProperty( recls_info_t hEntry
01104 , recls_char_t* buffer
01105 , size_t cchBuffer);
01106
01120 RECLS_FNDECL(size_t) Recls_GetDirectoryPartProperty(recls_info_t hEntry
01121 , int part
01122 , recls_char_t* buffer
01123 , size_t cchBuffer);
01124
01125
01136 RECLS_FNDECL(recls_bool_t) Recls_IsFileReadOnly(recls_info_t hEntry);
01137
01148 RECLS_FNDECL(recls_bool_t) Recls_IsFileDirectory(recls_info_t hEntry);
01149
01160 RECLS_FNDECL(recls_bool_t) Recls_IsFileLink(recls_info_t hEntry);
01161
01172 RECLS_FNDECL(recls_bool_t) Recls_DoesEntryExist(recls_info_t hEntry);
01173
01184 RECLS_FNDECL(recls_bool_t) Recls_IsFileUNC(recls_info_t hEntry);
01185
01195 RECLS_FNDECL(void) Recls_GetSizeProperty( recls_info_t hEntry
01196 , recls_filesize_t* size);
01197
01202 RECLS_FNDECL(recls_time_t) Recls_GetCreationTime(recls_info_t hEntry);
01203
01208 RECLS_FNDECL(recls_time_t) Recls_GetModificationTime(recls_info_t hEntry);
01209
01214 RECLS_FNDECL(recls_time_t) Recls_GetLastAccessTime(recls_info_t hEntry);
01215
01220 RECLS_FNDECL(recls_time_t) Recls_GetLastStatusChangeTime(recls_info_t hEntry);
01221
01222 #if 0
01223
01230 RECLS_FNDECL(recls_uint32_t) Recls_GetChecksum(recls_info_t hEntry);
01231 #endif
01232
01235
01236
01237
01238
01251 RECLS_FNDECL(recls_bool_t) Recls_IsDirectoryEmpty(recls_char_t const* dir);
01252
01259 RECLS_FNDECL(recls_bool_t) Recls_IsDirectoryEntryEmpty(recls_info_t hEntry);
01260
01268 RECLS_FNDECL(recls_filesize_t) Recls_CalcDirectorySize(recls_char_t const* dir);
01269
01277 RECLS_FNDECL(recls_filesize_t) Recls_CalcDirectoryEntrySize(recls_info_t hEntry);
01278
01279
01292 RECLS_FNDECL(recls_filesize_t) Recls_CalcDirectorySizeFeedback( recls_char_t const* dir
01293 , recls_uint32_t flags
01294 , hrecls_progress_fn_t pfn
01295 , recls_process_fn_param_t param);
01296
01299
01300
01301
01302
01324 RECLS_FNDECL(size_t) Recls_CombinePaths(recls_char_t const* path1
01325 , recls_char_t const* path2
01326 , recls_char_t* result
01327 , size_t cchResult);
01328
01340 RECLS_FNDECL(size_t) Recls_DeriveRelativePath( recls_char_t const* origin
01341 , recls_char_t const* target
01342 , recls_char_t* result
01343 , size_t cchResult);
01344
01355 RECLS_FNDECL(size_t) Recls_SqueezePath( recls_char_t const* path
01356 , recls_char_t* result
01357 , size_t cchResult);
01358
01361
01362
01363
01364
01365 #if !defined(RECLS_NO_NAMESPACE)
01366 }
01367 #endif
01368
01369 #ifdef __cplusplus
01370
01371 # ifndef _STLSOFT_NO_NAMESPACE
01372 namespace stlsoft
01373 {
01374 # endif
01375
01376 # if defined(RECLS_NO_NAMESPACE)
01377 inline recls_char_t const* c_str_ptr(recls_root_t const &root)
01378 # else
01379 inline ::recls::recls_char_t const* c_str_ptr(::recls::recls_root_t const &root)
01380 # endif
01381 {
01382 return root.name;
01383 }
01384
01385 #ifdef RECLS_CHAR_TYPE_IS_CHAR
01386 inline ::recls::recls_char_t const* c_str_ptr_a(::recls::recls_root_t const &root)
01387 {
01388 return c_str_ptr(root);
01389 }
01390 #endif
01391
01392 #ifdef RECLS_CHAR_TYPE_IS_WCHAR
01393 inline ::recls::recls_char_t const* c_str_ptr_w(::recls::recls_root_t const &root)
01394 {
01395 return c_str_ptr(root);
01396 }
01397 #endif
01398
01399
01400 # ifndef _STLSOFT_NO_NAMESPACE
01401 }
01402 # endif
01403
01404 #endif
01405
01406
01407
01408
01409
01419 #ifdef RECLS_PLATFORM_API_WIN32
01420 # undef RECLS_PLATFORM_API_WIN32
01421 #endif
01422
01423 #ifdef RECLS_PLATFORM_API_UNIX
01424 # undef RECLS_PLATFORM_API_UNIX
01425 #endif
01426
01427 #if !defined(RECLS_PURE_API)
01428 # if defined(RECLS_PLATFORM_IS_WIN32)
01429 # include <recls/win32.h>
01430 # define RECLS_PLATFORM_API_WIN32
01431 # elif defined(RECLS_PLATFORM_IS_UNIX)
01432 # include <recls/unix.h>
01433 # define RECLS_PLATFORM_API_UNIX
01434 # else
01435 # error Platform not recognised
01436 # endif
01437 #endif
01438
01439
01440
01441
01442
01443 #ifdef RECLS_CF_PRAGMA_ONCE_SUPPORT
01444 # pragma once
01445 #endif
01446
01447
01448
01449
01450
01451 #ifdef RECLS_DOCUMENTATION_SKIP_SECTION
01452 # include <recls/internal/doc/includes.h>
01453 #endif
01454
01455
01456
01457 #endif
01458
01459