00001
00012 #ifndef P6WSPLIT_H__
00013 #define P6WSPLIT_H__ 1
00014
00015 #include "p6err.h"
00016 #include "p6comdef.h"
00017 #include "p6wregex.h"
00018
00019
00020 namespace P6R {
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00032 typedef P6UINT32 P6WSPLITFLAGS;
00033 const P6WSPLITFLAGS P6WSPLIT_NOFLAGS = 0x00000000;
00034
00042 typedef struct
00043 {
00044 P6UINT32 offset;
00045 P6UINT32 length;
00046 } P6WSPLITCHUNK;
00047
00048
00057 interface p6IEnumWSplitChunks : p6ICom
00058 {
00073 P6COMMETHOD next( P6UINT32 cElements, P6WSPLITCHUNK* parElements, P6UINT32* pcReturned ) = 0;
00074
00083 P6COMMETHOD reset() = 0;
00084 };
00085 #define IF_p6IEnumWSplitChunks {0xd789c4b9,0x4818,0x4e94,{0xad,0x5a,0x9b,0x47,0x60,0x8b,0xe4,0x70}}
00086
00087
00097 interface p6IWSplit : p6ICom
00098 {
00109 P6COMMETHOD initialize( P6WSPLITFLAGS flags ) = 0;
00110
00125 P6COMMETHOD setLocale( const P6CHAR* pLocale ) = 0;
00126
00155 P6COMMETHOD split( const P6WCHAR* pRegex,
00156 P6WREGEXMODIFIER modifiers,
00157 const P6WCHAR* pTargetStr,
00158 P6UINT32 chunkLimit,
00159 p6IEnumWSplitChunks** ppEnum ) = 0;
00160
00179 P6COMMETHOD explode( const P6WCHAR* pDelimiter,
00180 const P6WCHAR* pString,
00181 P6UINT32 limit,
00182 p6IEnumWSplitChunks** ppEnum ) = 0;
00183 };
00184
00185
00186
00187 #define IF_p6IWSplit {0x148cdf2,0xe5f4,0x4067,{0x97,0xd0,0xf4,0xcd,0x43,0x7f,0xb1,0x8}}
00188
00189
00190 #define COMP_p6WSplit {0x9b16b3ad,0x3fe5,0x4c74,{0x96,0xa9,0x50,0x67,0x44,0x4b,0x8e,0xbd}}
00191
00192 #ifdef __cplusplus
00193 }
00194 #endif
00195
00196 }
00197
00198 #endif
00199
00200
00201