00001 #ifndef _XMLTK_H
00002 #define _XMLTK_H
00003
00004 #ifdef WIN32
00005 #pragma warning(disable:4786)
00006 #endif
00007
00008 #include <stdlib.h>
00009 #include <stdio.h>
00010 #include <memory.h>
00011 #include <assert.h>
00012 #include "stl.h"
00013 #include "xmltkobj.h"
00014
00015
00016 #ifdef XMILL
00017 #include "SAXClient.hpp"
00018 #endif
00019
00020
00021
00022
00023
00024
00025 #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))
00026 #define min(a, b) (((a) < (b)) ? (a) : (b))
00027 #define max(a, b) (((a) > (b)) ? (a) : (b))
00028 #define ATOMICRELEASE(punk) { if (punk) { (punk)->Release(); (punk) = NULL; } }
00029
00030
00031 #ifdef XDEMILL
00032 bool CreateTSAX2Bin(RCLIID riid, void **ppvObj);
00033 bool CreateBXMLOutput(RCLIID riid, void **ppvObj);
00034 #endif
00035
00036 #ifdef XMILL
00037 bool CreateTSAX2SAX(RCLIID riid, void **ppvObj, SAXClient *psc);
00038 bool CreateBin2TSAX(RCLIID riid, void **ppvObj);
00039 #endif
00040
00041 bool CreateFileStream(RCLIID rcliid, void **ppvObj);
00042 bool CreateMemoryStream(RCLIID rcliid, void **ppvObj);
00043 bool CreateTypeFilter(RCLIID rcliid, void **ppvObj);
00044 bool CreateTSAX2Nil(RCLIID rcliid, void **ppvObj);
00045
00046 extern ITokenTable *g_ptt;
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 IClassFactoryCL *CreateXPathSMFactory(char *pszXPath);
00057
00058 BOOL IsEqualCLIID(const CLIID *riid1, const CLIID *riid2);
00059
00060 bool freadMultiByteUINT(IStream *pstm, unsigned int *puInt);
00061 void fwriteMultiByteUINT(IStream *pstm, unsigned int uInt);
00062
00063 void funread(void *buffer, size_t size, size_t count, FILE *stream);
00064
00065 #ifdef DEBUG
00066 void myassert(bool bCondition);
00067 #else
00068 #define myassert(b)
00069 #endif // DEBUG
00070
00071 int mystrcmp(char *psz1, char *psz2);
00072 char* mystrdup(char *psz);
00073 size_t mystrlen(char *psz);
00074
00075 int QueryProcessMemoryUsage();
00076
00077 void ParseUnknownStream(IStream *pstm, ITSAXContentHandler *pch);
00078 ITSAXContentHandler *CreateStdoutStream(bool bBinary);
00079 IFileStream *_CreateFileStream(char *psz);
00080
00081 bool IUnknownCL_SetHandler(IUnknownCL *punk, IUnknownCL *punkHandler);
00082
00083 #endif // _XMLTK_H