2025-04-27 07:49:33 -04:00

38 lines
1.9 KiB
C

#ifndef XML_COMP_OPNS_H
#define XML_COMP_OPNS_H
// These Functions are for writing Some common XML tags into the output
static STDMETHODIMP MapCommonHeaders (FILE *fp, CXmlCompUI *pUI);
static STDMETHODIMP MapCommonTrailers (FILE *fp, CXmlCompUI *pUI);
static STDMETHODIMP MapDeclGroupHeaders (FILE *fp, CXmlCompUI *pUI );
static STDMETHODIMP MapDeclGroupTrailers (FILE *fp, CXmlCompUI *pUI);
// Helper functions
static HRESULT WriteOneDeclGroupNode(FILE *fp, IXMLDOMNode *pTopElement, CXmlCompUI *pUI );
static HRESULT WriteOneDeclGroupDocument(FILE *fp, IXMLDOMDocument *pDocument, CXmlCompUI *pUI );
static HRESULT GetFirstImmediateElement(IXMLDOMNode *pParent, IXMLDOMElement **ppChildElement, LPCWSTR pszName);
static HRESULT WriteNode(FILE *fp, IXMLDOMNode *pOutputNode, CXmlCompUI *pUI);
static HRESULT SaveStreamToBstrVariant (IStream *pStream, VARIANT *pVariant);
static HRESULT SaveStreamToUnkVariant (IStream *pStream, VARIANT *pVariant);
static HRESULT ConvertStreamToDOM(IStream *pStream, IXMLDOMElement **pInstanceName);
static void WriteOutputString(FILE *fp, BOOL bIsUTF8, LPCWSTR pszData, DWORD dwDataLen = 0);
// Functions for converting things to VALUE.NAMEDOBJECT
static HRESULT ConvertObjectToNamedObject(FILE *fp, IXMLDOMNode *pTopElement, CXmlCompUI *pUI );
static HRESULT ConvertNamedInstanceToNamedObject(FILE *fp, IXMLDOMNode *pTopElement, CXmlCompUI *pUI);
static HRESULT ConvertObjectWithPathToNamedObject(FILE *fp, IXMLDOMNode *pTopElement, CXmlCompUI *pUI);
static HRESULT ConvertObjectToObjectWithPath(FILE *fp, IXMLDOMNode *pTopElement, CXmlCompUI *pUI );
// Do the specified operation
HRESULT DoGetObject(CXmlCompUI *pUI);
HRESULT DoQuery(CXmlCompUI *pUI);
HRESULT DoEnumInstance(CXmlCompUI *pUI);
HRESULT DoEnumClass(CXmlCompUI *pUI);
HRESULT DoEnumInstNames(CXmlCompUI *pUI);
HRESULT DoEnumClassNames(CXmlCompUI *pUI);
HRESULT DoCompilation(IStream *pInputFile, CXmlCompUI *pUI);
#endif