WindowsXP/inetsrv/iis/svcs/infocomm/metadata/inc/writerglobalhelper.h
2025-04-27 07:49:33 -04:00

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_