//------------------------------------------------------------------------------------------------- | |
// <copyright file="atomutil.h" company="Outercurve Foundation"> | |
// Copyright (c) 2004, Outercurve Foundation. | |
// This software is released under Microsoft Reciprocal License (MS-RL). | |
// The license and further copyright text can be found in the file | |
// LICENSE.TXT at the root directory of the distribution. | |
// </copyright> | |
// | |
// <summary> | |
// ATOM helper functions. | |
// </summary> | |
//------------------------------------------------------------------------------------------------- | |
#pragma once | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
#define ReleaseAtomFeed(p) if (p) { AtomFreeFeed(p); } | |
#define ReleaseNullAtomFeed(p) if (p) { AtomFreeFeed(p); p = NULL; } | |
struct ATOM_UNKNOWN_ATTRIBUTE | |
{ | |
LPWSTR wzNamespace; | |
LPWSTR wzAttribute; | |
LPWSTR wzValue; | |
ATOM_UNKNOWN_ATTRIBUTE* pNext; | |
}; | |
struct ATOM_UNKNOWN_ELEMENT | |
{ | |
LPWSTR wzNamespace; | |
LPWSTR wzElement; | |
LPWSTR wzValue; | |
ATOM_UNKNOWN_ATTRIBUTE* pAttributes; | |
ATOM_UNKNOWN_ELEMENT* pNext; | |
}; | |
struct ATOM_LINK | |
{ | |
LPWSTR wzRel; | |
LPWSTR wzTitle; | |
LPWSTR wzType; | |
LPWSTR wzUrl; | |
LPWSTR wzValue; | |
DWORD64 dw64Length; | |
ATOM_UNKNOWN_ATTRIBUTE* pUnknownAttributes; | |
ATOM_UNKNOWN_ELEMENT* pUnknownElements; | |
}; | |
struct ATOM_CONTENT | |
{ | |
LPWSTR wzType; | |
LPWSTR wzUrl; | |
LPWSTR wzValue; | |
ATOM_UNKNOWN_ELEMENT* pUnknownElements; | |
}; | |
struct ATOM_AUTHOR | |
{ | |
LPWSTR wzName; | |
LPWSTR wzEmail; | |
LPWSTR wzUrl; | |
}; | |
struct ATOM_CATEGORY | |
{ | |
LPWSTR wzLabel; | |
LPWSTR wzScheme; | |
LPWSTR wzTerm; | |
ATOM_UNKNOWN_ELEMENT* pUnknownElements; | |
}; | |
struct ATOM_ENTRY | |
{ | |
LPWSTR wzId; | |
LPWSTR wzSummary; | |
LPWSTR wzTitle; | |
FILETIME ftPublished; | |
FILETIME ftUpdated; | |
ATOM_CONTENT* pContent; | |
DWORD cAuthors; | |
ATOM_AUTHOR* rgAuthors; | |
DWORD cCategories; | |
ATOM_CATEGORY* rgCategories; | |
DWORD cLinks; | |
ATOM_LINK* rgLinks; | |
IXMLDOMNode* pixn; | |
ATOM_UNKNOWN_ELEMENT* pUnknownElements; | |
}; | |
struct ATOM_FEED | |
{ | |
LPWSTR wzGenerator; | |
LPWSTR wzIcon; | |
LPWSTR wzId; | |
LPWSTR wzLogo; | |
LPWSTR wzSubtitle; | |
LPWSTR wzTitle; | |
FILETIME ftUpdated; | |
DWORD cAuthors; | |
ATOM_AUTHOR* rgAuthors; | |
DWORD cCategories; | |
ATOM_CATEGORY* rgCategories; | |
DWORD cEntries; | |
ATOM_ENTRY* rgEntries; | |
DWORD cLinks; | |
ATOM_LINK* rgLinks; | |
IXMLDOMNode* pixn; | |
ATOM_UNKNOWN_ELEMENT* pUnknownElements; | |
}; | |
HRESULT DAPI AtomInitialize( | |
); | |
void DAPI AtomUninitialize( | |
); | |
HRESULT DAPI AtomParseFromString( | |
__in_z LPCWSTR wzAtomString, | |
__out ATOM_FEED **ppFeed | |
); | |
HRESULT DAPI AtomParseFromFile( | |
__in_z LPCWSTR wzAtomFile, | |
__out ATOM_FEED **ppFeed | |
); | |
HRESULT DAPI AtomParseFromDocument( | |
__in IXMLDOMDocument* pixdDocument, | |
__out ATOM_FEED **ppFeed | |
); | |
void DAPI AtomFreeFeed( | |
__in_xcount(pFeed->cItems) ATOM_FEED *pFEED | |
); | |
#ifdef __cplusplus | |
} | |
#endif |