|
|
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //
// xmlutil.h
//
// XML item helper functions.
//
// History:
//
// 4/1/97 edwardp Created.
//
////////////////////////////////////////////////////////////////////////////////
//
// Check for previous includes of this file.
//
#ifndef _XMLUTIL_H_
#define _XMLUTIL_H_
//
// Attribute enumeration. Contains the attributes supported by
// the XML_GetAttribute function.
//
typedef enum _tagXML_ATTRIBUTE { XML_TITLE = 0, XML_TITLE_ATTR = 1, XML_HREF = 2, XML_ABSTRACT = 3, XML_ABSTRACT_ATTR = 4, XML_ICON = 5, XML_LOGO = 6, XML_LOGO_DEFAULT = 7, XML_SELF = 8, XML_SELF_OLD = 9, XML_BASE = 10, XML_USAGE = 11, XML_USAGE_CHANNEL = 12, XML_USAGE_DSKCMP = 13, XML_WIDTH = 14, XML_HEIGHT = 15, XML_CANRESIZE = 16, XML_CANRESIZEX = 17, XML_CANRESIZEY = 18, XML_PREFERREDLEFT = 19, XML_PREFERREDTOP = 20, XML_OPENAS = 21, XML_SHOW = 22, XML_SHOW_CHANNEL = 23, XML_SHOW_DSKCMP = 24, XML_A_HREF = 25, XML_INFOURI = 26, XML_LOGO_WIDE = 27, XML_LOGIN = 28, XML_USAGE_SOFTWAREUPDATE = 29, XML_SHOW_SOFTWAREUPDATE = 30, XML_ITEMSTATE = 31, XML_NULL = 99 } XML_ATTRIBUTE;
//
// XML document types.
//
typedef enum _tagXMLDOCTYPE { DOC_CHANNEL, DOC_DESKTOPCOMPONENT, DOC_SOFTWAREUPDATE, DOC_UNKNOWN } XMLDOCTYPE;
//
// Cdf string constants used in XML files.
//
#define WSTR_EMPTY L""
// Elements
#define WSTR_A L"A"
#define WSTR_ABSTRACT L"ABSTRACT"
#define WSTR_RESIZE L"CANRESIZE"
#define WSTR_RESIZEX L"CANRESIZEX"
#define WSTR_RESIZEY L"CANRESIZEY"
#define WSTR_CHANNEL L"CHANNEL"
#define WSTR_DSKCMP L"DESKTOPCOMPONENT"
#define WSTR_HEIGHT L"HEIGHT"
#define WSTR_ITEM L"ITEM"
#define WSTR_LOGIN L"LOGIN"
#define WSTR_LOGO L"LOGO"
#define WSTR_OPENAS L"OPENAS"
#define WSTR_PREFLEFT L"PREFERREDLEFT"
#define WSTR_PREFTOP L"PREFERREDTOP"
#define WSTR_SCRNSAVE L"SCREENSAVER"
#define WSTR_SELF L"SELF"
#define WSTR_SHOW L"SHOW"
#define WSTR_SMARTSCRN L"SMARTSCREEN"
#define WSTR_SOFTDIST L"SOFTPKG"
#define WSTR_TITLE L"TITLE"
#define WSTR_USAGE L"USAGE"
#define WSTR_WIDTH L"WIDTH"
#define WSTR_SOFTWAREUPDATE L"SOFTWAREUPDATE"
#define WSTR_ITEMSTATE L"ITEMSTATE"
// Attributes
#define WSTR_BASE L"BASE"
#define WSTR_HREF L"HREF"
#define WSTR_INFOURI L"INFOURI"
#define WSTR_STYLE L"STYLE"
#define WSTR_VALUE L"VALUE"
// Attribute values.
#define WSTR_ICON L"ICON"
#define WSTR_IMAGE L"IMAGE"
#define WSTR_IMAGEW L"IMAGE-WIDE"
#define WSTR_ZERO L"0"
#define WSTR_YES L"YES"
#define WSTR_HTML L"HTML"
#define WSTR_NORMAL L"NORMAL"
#define WSTR_SPLITSCREEN L"SPLITSCREEN"
#define WSTR_FULLSCREEN L"FULLSCREEN"
//
// Function protoypes.
//
HRESULT XML_SynchronousParse(IXMLDocument* pIXMLDocument, LPTSTR szPath);
HRESULT XML_DownloadLogo(IXMLDocument* pIXMLDocument); HRESULT XML_DownloadImages(IXMLDocument* pIXMLDocument); HRESULT XML_RecursiveImageDownload(IXMLElement* pIXMLElement); HRESULT XML_DownloadImage(LPCWSTR pwszURL);
XMLDOCTYPE XML_GetDocType(IXMLDocument* pIXMLDocument);
HRESULT XML_GetChildElementCollection( IXMLElementCollection *pParentIXMLElementCollection, LONG nIndex, IXMLElementCollection** ppIXMLElementCollection);
HRESULT XML_GetFirstChannelElement(IXMLDocument* pIXMLDocument, IXMLElement** ppIXMLElement, PLONG pnIndex);
HRESULT XML_GetDesktopElementFromChannelElement( IXMLElement* pChannelIXMLElement, IXMLElement** ppIXMLElement, PLONG pnIndex);
HRESULT XML_GetFirstDesktopComponentElement(IXMLDocument* pIXMLDocument, IXMLElement** ppIXMLElement, PLONG pnIndex);
HRESULT XML_GetFirstDesktopComponentUsageElement( IXMLDocument* pIXMLDocument, IXMLElement** ppIXMLElement);
HRESULT XML_GetDesktopComponentInfo(IXMLDocument* pIXMLDocument, COMPONENT* pInfo);
HRESULT XML_GetElementByIndex(IXMLElementCollection* pIXMLElementCollection, LONG nIndex, IXMLElement** ppIXMLElement);
HRESULT XML_GetElementByName(IXMLElementCollection* pIXMLElementCollection, LPWSTR szNameW, IXMLElement** ppIXMLElement);
BSTR XML_GetAttribute(IXMLElement *pIXMLElement, XML_ATTRIBUTE attribute);
BSTR XML_GetChildAttribute(IXMLElement *pIXMLElement, LPWSTR szChildW, LPWSTR szAttributeW, LPWSTR szQualifierW, LPWSTR szQualifierValueW);
BSTR XML_GetElementAttribute(IXMLElement *pIXMLElement, LPWSTR szAttributeW, LPWSTR szQualifierW, LPWSTR szQualifierValueW);
HRESULT XML_GetSubscriptionInfo(IXMLElement* pIXMLElement, SUBSCRIPTIONINFO* psi);
HRESULT XML_GetScreenSaverElement(IXMLElement* pIXMLElement, IXMLElement** ppScreenSaverElement);
BSTR XML_GetBaseURL(IXMLElement* pIXMLElement); BSTR XML_CombineURL(BSTR bstrBaseURL, BSTR bstrRelURL); BOOL XML_IsCdfDisplayable(IXMLElement* pIXMLElement); BOOL XML_IsSoftDistDisplayable(IXMLElement* pIXMLEelement); BOOL XML_IsUsageChannel(IXMLElement* pIXMLElement); BOOL XML_IsScreenSaver(IXMLElement* pIXMLElement); BOOL XML_IsFolder(IXMLElement* pIXMLElement); BOOL XML_ContainsFolder(IXMLElementCollection* pIXMLElementCollection);
BOOL XML_ChildContainsFolder( IXMLElementCollection* pIXMLElementCollectionParent, ULONG nIndexChild);
BOOL XML_IsChannel(IXMLElement* pIXMLElement); BOOL XML_IsDesktopComponent(IXMLElement* pIXMLElement); BOOL XML_IsDesktopComponentUsage(IXMLElement* pIXMLElement);
BOOL XML_IsCdfidlMemberOf(IXMLElementCollection* pIXMLElementCollection, PCDFITEMIDLIST pcdfidl);
BSTR XML_GetGrandChildContent(IXMLElement* pIXMLElement, LPWSTR szChildW);
BOOL inline XML_IsStrEqualW(LPWSTR p1, LPWSTR p2);
HRESULT XML_MarkCacheEntrySticky(LPTSTR lpszURL);
HRESULT XML_GetScreenSaverURL(IXMLDocument* pXMLDocument, BSTR* pbstrSSURL);
#endif // _XMLUTIL_H_
|