110 lines
3.3 KiB
C++
110 lines
3.3 KiB
C++
#ifndef _WRITER_GLOBAL_HELPER_H_
|
|
#define _WRITER_GLOBAL_HELPER_H_
|
|
|
|
enum eESCAPE{
|
|
eNoESCAPE=0,
|
|
eESCAPEgt,
|
|
eESCAPElt,
|
|
eESCAPEquote,
|
|
eESCAPEamp,
|
|
eESCAPEashex,
|
|
eESCAPEillegalxml
|
|
};
|
|
|
|
class CWriterGlobalHelper
|
|
{
|
|
public:
|
|
|
|
CWriterGlobalHelper();
|
|
~CWriterGlobalHelper();
|
|
HRESULT InitializeGlobals(BOOL i_bFailIfBinFileAbsent);//LPCWSTR i_wszBinFileForMeta);
|
|
|
|
private:
|
|
|
|
HRESULT GetInternalTableName(ISimpleTableDispenser2* i_pISTDisp,
|
|
LPCWSTR i_wszTableName,
|
|
LPWSTR* o_wszInternalTableName);
|
|
|
|
public:
|
|
|
|
HRESULT ToString(PBYTE pbData,
|
|
DWORD cbData,
|
|
DWORD dwIdentifier,
|
|
DWORD dwDataType,
|
|
DWORD dwAttributes,
|
|
LPWSTR* pwszData);
|
|
|
|
HRESULT FlagToString(DWORD dwValue,
|
|
LPWSTR* pwszData,
|
|
LPWSTR wszTable,
|
|
ULONG iColFlag);
|
|
|
|
HRESULT EnumToString(DWORD dwValue,
|
|
LPWSTR* pwszData,
|
|
LPWSTR wszTable,
|
|
ULONG iColEnum);
|
|
|
|
HRESULT EscapeString(LPCWSTR wszString,
|
|
ULONG cchString,
|
|
BOOL* pbEscaped,
|
|
LPWSTR* pwszEscapedString,
|
|
ULONG* pcchEscaped);
|
|
|
|
HRESULT GetUserType(DWORD i_dwUserType,
|
|
LPWSTR* o_pwszUserType,
|
|
ULONG* o_cchUserType,
|
|
BOOL* o_bAllocedUserType);
|
|
|
|
HRESULT GetPropertyName(ULONG i_dwPropertyID,
|
|
LPWSTR* o_wszName,
|
|
BOOL* o_bAlloced);
|
|
|
|
private:
|
|
|
|
HRESULT BoolToString(DWORD dwValue,
|
|
LPWSTR* pwszData);
|
|
|
|
|
|
HRESULT GetStartRowIndex(LPWSTR wszTable,
|
|
ULONG iColFlag,
|
|
ULONG* piStartRow);
|
|
|
|
inline int StringInsensitiveCompare(LPCWSTR wsz1, LPCWSTR wsz2) const {if(wsz1 == wsz2) return 0; else return _wcsicmp(wsz1, wsz2);}
|
|
|
|
eESCAPE GetEscapeType(WCHAR i_wChar);
|
|
|
|
HRESULT CreateUnknownName(DWORD dwID,
|
|
LPWSTR* pwszUnknownName);
|
|
|
|
|
|
public:
|
|
|
|
ISimpleTableRead2* m_pISTTagMetaByTableAndColumnIndexAndName;
|
|
ISimpleTableRead2* m_pISTTagMetaByTableAndColumnIndexAndValue;
|
|
ISimpleTableRead2* m_pISTTagMetaByTableAndColumnIndex;
|
|
ISimpleTableRead2* m_pISTTagMetaByTableAndID;
|
|
ISimpleTableRead2* m_pISTTagMetaByTableAndName;
|
|
ISimpleTableRead2* m_pISTColumnMeta;
|
|
ISimpleTableRead2* m_pISTColumnMetaByTableAndID;
|
|
ISimpleTableRead2* m_pISTColumnMetaByTableAndName;
|
|
ISimpleTableRead2* m_pISTTableMetaForMetabaseTables;
|
|
ULONG m_cColKeyTypeMetaData;
|
|
LPVOID m_apvKeyTypeMetaData[cCOLUMNMETA_NumberOfColumns];
|
|
LPWSTR m_wszTABLE_MBProperty;
|
|
LPWSTR m_wszTABLE_IIsConfigObject;
|
|
int m_iStartRowForAttributes;
|
|
LPWSTR m_wszBinFileForMeta;
|
|
ULONG m_cchBinFileForMeta;
|
|
LPWSTR m_wszIIS_MD_UT_SERVER;
|
|
ULONG m_cchIIS_MD_UT_SERVER;
|
|
LPWSTR m_wszIIS_MD_UT_FILE;
|
|
ULONG m_cchIIS_MD_UT_FILE;
|
|
LPWSTR m_wszIIS_MD_UT_WAM;
|
|
ULONG m_cchIIS_MD_UT_WAM;
|
|
LPWSTR m_wszASP_MD_UT_APP;
|
|
ULONG m_cchASP_MD_UT_APP;
|
|
|
|
}; // CWriterGlobalHelper
|
|
|
|
#endif _WRITER_GLOBAL_HELPER_H_
|