#pragma once //------------------------------------------------------------------------------------------------- // // 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. // // // // Header for Application Update helper functions. // //------------------------------------------------------------------------------------------------- #ifdef __cplusplus extern "C" { #endif #define ReleaseApupChain(p) if (p) { ApupFreeChain(p); p = NULL; } #define ReleaseNullApupChain(p) if (p) { ApupFreeChain(p); p = NULL; } const LPCWSTR APPLICATION_SYNDICATION_NAMESPACE = L"http://appsyndication.org/2006/appsyn"; enum APUP_HASH_ALGORITHM { APUP_HASH_ALGORITHM_UNKNOWN, APUP_HASH_ALGORITHM_MD5, APUP_HASH_ALGORITHM_SHA1, APUP_HASH_ALGORITHM_SHA256, }; struct APPLICATION_UPDATE_ENCLOSURE { LPWSTR wzUrl; LPWSTR wzLocalName; DWORD64 dw64Size; BYTE* rgbDigest; DWORD cbDigest; APUP_HASH_ALGORITHM digestAlgorithm; BOOL fInstaller; }; struct APPLICATION_UPDATE_ENTRY { LPWSTR wzApplicationId; LPWSTR wzApplicationType; LPWSTR wzUpgradeId; BOOL fUpgradeExclusive; DWORD64 dw64Version; DWORD64 dw64UpgradeVersion; DWORD64 dw64TotalSize; DWORD cEnclosures; APPLICATION_UPDATE_ENCLOSURE* rgEnclosures; }; struct APPLICATION_UPDATE_CHAIN { LPWSTR wzDefaultApplicationId; LPWSTR wzDefaultApplicationType; DWORD cEntries; APPLICATION_UPDATE_ENTRY* rgEntries; }; HRESULT DAPI ApupAllocChainFromAtom( __in ATOM_FEED* pFeed, __out APPLICATION_UPDATE_CHAIN** ppChain ); HRESULT DAPI ApupFilterChain( __in APPLICATION_UPDATE_CHAIN* pChain, __in DWORD64 dw64Version, __out APPLICATION_UPDATE_CHAIN** ppFilteredChain ); void DAPI ApupFreeChain( __in APPLICATION_UPDATE_CHAIN* pChain ); #ifdef __cplusplus } #endif