main
h 87 lines 1.84 KB
Raw
1 #pragma once
2 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9 #define ReleaseApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
10 #define ReleaseNullApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
11
12
13 const LPCWSTR APPLICATION_SYNDICATION_NAMESPACE = L"http://appsyndication.org/2006/appsyn";
14
15 typedef enum APUP_HASH_ALGORITHM
16 {
17 APUP_HASH_ALGORITHM_UNKNOWN,
18 APUP_HASH_ALGORITHM_MD5,
19 APUP_HASH_ALGORITHM_SHA1,
20 APUP_HASH_ALGORITHM_SHA256,
21 APUP_HASH_ALGORITHM_SHA512,
22 } APUP_HASH_ALGORITHM;
23
24
25 struct APPLICATION_UPDATE_ENCLOSURE
26 {
27 LPWSTR wzUrl;
28 LPWSTR wzLocalName;
29 DWORD64 dw64Size;
30
31 BYTE* rgbDigest;
32 DWORD cbDigest;
33 APUP_HASH_ALGORITHM digestAlgorithm;
34
35 BOOL fInstaller;
36 };
37
38
39 struct APPLICATION_UPDATE_ENTRY
40 {
41 LPWSTR wzApplicationId;
42 LPWSTR wzApplicationType;
43 LPWSTR wzTitle;
44 LPWSTR wzSummary;
45 LPWSTR wzContentType;
46 LPWSTR wzContent;
47
48 LPWSTR wzUpgradeId;
49 BOOL fUpgradeExclusive;
50 VERUTIL_VERSION* pVersion;
51 VERUTIL_VERSION* pUpgradeVersion;
52
53 DWORD64 dw64TotalSize;
54
55 DWORD cEnclosures;
56 APPLICATION_UPDATE_ENCLOSURE* rgEnclosures;
57 };
58
59
60 struct APPLICATION_UPDATE_CHAIN
61 {
62 LPWSTR wzDefaultApplicationId;
63 LPWSTR wzDefaultApplicationType;
64
65 DWORD cEntries;
66 APPLICATION_UPDATE_ENTRY* rgEntries;
67 };
68
69
70 HRESULT DAPI ApupAllocChainFromAtom(
71 __in ATOM_FEED* pFeed,
72 __out APPLICATION_UPDATE_CHAIN** ppChain
73 );
74
75 HRESULT DAPI ApupFilterChain(
76 __in APPLICATION_UPDATE_CHAIN* pChain,
77 __in VERUTIL_VERSION* pVersion,
78 __out APPLICATION_UPDATE_CHAIN** ppFilteredChain
79 );
80
81 void DAPI ApupFreeChain(
82 __in APPLICATION_UPDATE_CHAIN* pChain
83 );
84
85 #ifdef __cplusplus
86 }
87 #endif