00001
00011 #ifndef P6DOMNODESETSORT_H__
00012 #define P6DOMNODESETSORT_H__ 1
00013
00014 #include "p6xmlnode.h"
00015 #include "p6xpathexpression.h"
00016
00017 namespace P6R {
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00030 typedef enum {
00031 P6DOMNODE_ASCENDING = 0x00,
00032 P6DOMNODE_DESCENDING = 0x01,
00033 P6DOMNODE_SORTNUM_ASCENDING = 0x02,
00034 P6DOMNODE_SORTNUM_DESCENDING = 0x03,
00035 P6DOMNODE_SORTSTR_ASCENDING = 0x04,
00036 P6DOMNODE_SORTSTR_DESCENDING = 0x05,
00037 P6DOMNODE_SORTTIME_ASCENDING = 0x06,
00038 P6DOMNODE_SORTTIME_DESCENDING = 0x07,
00039 P6DOMNODE_SORTFLOAT_ASCENDING = 0x08,
00040 P6DOMNODE_SORTFLOAT_DESCENDING = 0x09,
00041 P6DOMNODE_SORTLONG_ASCENDING = 0x0A,
00042 P6DOMNODE_SORTLONG_DESCENDING = 0x0B
00043 } P6DOMNODE_SORT;
00044
00064 interface p6IDOMNodesetSort : public p6ICom
00065 {
00081 P6COMMETHOD setLanguageProperties( const P6CHAR* pLang, const P6CHAR* pCollate ) = 0;
00082
00092 P6COMMETHOD reverseOrder() = 0;
00093
00104 P6COMMETHOD documentOrder() = 0;
00105
00126 P6COMMETHOD sortByExpression( p6IDOMXML* pXMLTree,
00127 P6DOMNODE_SORT type,
00128 p6IXpathExpression* pExp ) = 0;
00129
00140 P6COMMETHOD distinctValues() = 0;
00141
00152 P6COMMETHOD distinctNodes() = 0;
00153
00167 P6COMMETHOD getMaximumEntry( p6IXMLNode** pNode ) = 0;
00168
00182 P6COMMETHOD getMinimumEntry( p6IXMLNode** pNode ) = 0;
00183 };
00184
00185
00186 #define IF_p6IDOMNodesetSort {0xd7f8b3e5,0x50e2,0x428f,{0xb9,0x6e,0x83,0x75,0xdd,0x26,0x6d,0x29}}
00187
00188 #ifdef __cplusplus
00189 }
00190 #endif
00191
00192 }
00193
00194
00195 #endif
00196
00197
00198
00199
00200
00201
00202