diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2018-12-29 22:12:08 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2018-12-29 22:12:08 -0600 |
commit | 61847dddd4fd497057c780658e383c4627de19ec (patch) | |
tree | f85a845182922538ab9aa6ee85b0db3ab40c1f6e /src/engine/search.h | |
parent | 8295f5f8fd28042e1a0a172d5afbba79178064c2 (diff) | |
download | wix-61847dddd4fd497057c780658e383c4627de19ec.tar.gz wix-61847dddd4fd497057c780658e383c4627de19ec.tar.bz2 wix-61847dddd4fd497057c780658e383c4627de19ec.zip |
Import code from old v4 repo
Diffstat (limited to 'src/engine/search.h')
-rw-r--r-- | src/engine/search.h | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/src/engine/search.h b/src/engine/search.h new file mode 100644 index 00000000..65dfb18f --- /dev/null +++ b/src/engine/search.h | |||
@@ -0,0 +1,152 @@ | |||
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 | #if defined(__cplusplus) | ||
6 | extern "C" { | ||
7 | #endif | ||
8 | |||
9 | |||
10 | // constants | ||
11 | |||
12 | enum BURN_SEARCH_TYPE | ||
13 | { | ||
14 | BURN_SEARCH_TYPE_NONE, | ||
15 | BURN_SEARCH_TYPE_DIRECTORY, | ||
16 | BURN_SEARCH_TYPE_FILE, | ||
17 | BURN_SEARCH_TYPE_REGISTRY, | ||
18 | BURN_SEARCH_TYPE_MSI_COMPONENT, | ||
19 | BURN_SEARCH_TYPE_MSI_PRODUCT, | ||
20 | BURN_SEARCH_TYPE_MSI_FEATURE, | ||
21 | }; | ||
22 | |||
23 | enum BURN_DIRECTORY_SEARCH_TYPE | ||
24 | { | ||
25 | BURN_DIRECTORY_SEARCH_TYPE_NONE, | ||
26 | BURN_DIRECTORY_SEARCH_TYPE_EXISTS, | ||
27 | BURN_DIRECTORY_SEARCH_TYPE_PATH, | ||
28 | }; | ||
29 | |||
30 | enum BURN_FILE_SEARCH_TYPE | ||
31 | { | ||
32 | BURN_FILE_SEARCH_TYPE_NONE, | ||
33 | BURN_FILE_SEARCH_TYPE_EXISTS, | ||
34 | BURN_FILE_SEARCH_TYPE_VERSION, | ||
35 | BURN_FILE_SEARCH_TYPE_PATH, | ||
36 | }; | ||
37 | |||
38 | enum BURN_REGISTRY_SEARCH_TYPE | ||
39 | { | ||
40 | BURN_REGISTRY_SEARCH_TYPE_NONE, | ||
41 | BURN_REGISTRY_SEARCH_TYPE_EXISTS, | ||
42 | BURN_REGISTRY_SEARCH_TYPE_VALUE, | ||
43 | }; | ||
44 | |||
45 | enum BURN_MSI_COMPONENT_SEARCH_TYPE | ||
46 | { | ||
47 | BURN_MSI_COMPONENT_SEARCH_TYPE_NONE, | ||
48 | BURN_MSI_COMPONENT_SEARCH_TYPE_KEYPATH, | ||
49 | BURN_MSI_COMPONENT_SEARCH_TYPE_STATE, | ||
50 | BURN_MSI_COMPONENT_SEARCH_TYPE_DIRECTORY, | ||
51 | }; | ||
52 | |||
53 | enum BURN_MSI_PRODUCT_SEARCH_TYPE | ||
54 | { | ||
55 | BURN_MSI_PRODUCT_SEARCH_TYPE_NONE, | ||
56 | BURN_MSI_PRODUCT_SEARCH_TYPE_VERSION, | ||
57 | BURN_MSI_PRODUCT_SEARCH_TYPE_LANGUAGE, | ||
58 | BURN_MSI_PRODUCT_SEARCH_TYPE_STATE, | ||
59 | BURN_MSI_PRODUCT_SEARCH_TYPE_ASSIGNMENT, | ||
60 | }; | ||
61 | |||
62 | enum BURN_MSI_PRODUCT_SEARCH_GUID_TYPE | ||
63 | { | ||
64 | BURN_MSI_PRODUCT_SEARCH_GUID_TYPE_NONE, | ||
65 | BURN_MSI_PRODUCT_SEARCH_GUID_TYPE_PRODUCTCODE, | ||
66 | BURN_MSI_PRODUCT_SEARCH_GUID_TYPE_UPGRADECODE | ||
67 | }; | ||
68 | |||
69 | enum BURN_MSI_FEATURE_SEARCH_TYPE | ||
70 | { | ||
71 | BURN_MSI_FEATURE_SEARCH_TYPE_NONE, | ||
72 | BURN_MSI_FEATURE_SEARCH_TYPE_STATE, | ||
73 | }; | ||
74 | |||
75 | |||
76 | // structs | ||
77 | |||
78 | typedef struct _BURN_SEARCH | ||
79 | { | ||
80 | LPWSTR sczKey; | ||
81 | LPWSTR sczVariable; | ||
82 | LPWSTR sczCondition; | ||
83 | |||
84 | BURN_SEARCH_TYPE Type; | ||
85 | union | ||
86 | { | ||
87 | struct | ||
88 | { | ||
89 | BURN_DIRECTORY_SEARCH_TYPE Type; | ||
90 | LPWSTR sczPath; | ||
91 | } DirectorySearch; | ||
92 | struct | ||
93 | { | ||
94 | BURN_FILE_SEARCH_TYPE Type; | ||
95 | LPWSTR sczPath; | ||
96 | } FileSearch; | ||
97 | struct | ||
98 | { | ||
99 | BURN_REGISTRY_SEARCH_TYPE Type; | ||
100 | BURN_VARIANT_TYPE VariableType; | ||
101 | HKEY hRoot; | ||
102 | LPWSTR sczKey; | ||
103 | LPWSTR sczValue; | ||
104 | BOOL fWin64; | ||
105 | BOOL fExpandEnvironment; | ||
106 | } RegistrySearch; | ||
107 | struct | ||
108 | { | ||
109 | BURN_MSI_COMPONENT_SEARCH_TYPE Type; | ||
110 | LPWSTR sczProductCode; | ||
111 | LPWSTR sczComponentId; | ||
112 | } MsiComponentSearch; | ||
113 | struct | ||
114 | { | ||
115 | BURN_MSI_PRODUCT_SEARCH_TYPE Type; | ||
116 | BURN_MSI_PRODUCT_SEARCH_GUID_TYPE GuidType; | ||
117 | LPWSTR sczGuid; | ||
118 | } MsiProductSearch; | ||
119 | struct | ||
120 | { | ||
121 | BURN_MSI_FEATURE_SEARCH_TYPE Type; | ||
122 | LPWSTR sczProductCode; | ||
123 | LPWSTR sczFeatureId; | ||
124 | } MsiFeatureSearch; | ||
125 | }; | ||
126 | } BURN_SEARCH; | ||
127 | |||
128 | typedef struct _BURN_SEARCHES | ||
129 | { | ||
130 | BURN_SEARCH* rgSearches; | ||
131 | DWORD cSearches; | ||
132 | } BURN_SEARCHES; | ||
133 | |||
134 | |||
135 | // function declarations | ||
136 | |||
137 | HRESULT SearchesParseFromXml( | ||
138 | __in BURN_SEARCHES* pSearches, | ||
139 | __in IXMLDOMNode* pixnBundle | ||
140 | ); | ||
141 | HRESULT SearchesExecute( | ||
142 | __in BURN_SEARCHES* pSearches, | ||
143 | __in BURN_VARIABLES* pVariables | ||
144 | ); | ||
145 | void SearchesUninitialize( | ||
146 | __in BURN_SEARCHES* pSearches | ||
147 | ); | ||
148 | |||
149 | |||
150 | #if defined(__cplusplus) | ||
151 | } | ||
152 | #endif | ||