diff options
Diffstat (limited to 'src/engine/burnextension.cpp')
-rw-r--r-- | src/engine/burnextension.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/engine/burnextension.cpp b/src/engine/burnextension.cpp index 99673cd9..68d34123 100644 --- a/src/engine/burnextension.cpp +++ b/src/engine/burnextension.cpp | |||
@@ -182,3 +182,52 @@ EXTERN_C void BurnExtensionUnload( | |||
182 | } | 182 | } |
183 | } | 183 | } |
184 | } | 184 | } |
185 | |||
186 | EXTERN_C HRESULT BurnExtensionFindById( | ||
187 | __in BURN_EXTENSIONS* pBurnExtensions, | ||
188 | __in_z LPCWSTR wzId, | ||
189 | __out BURN_EXTENSION** ppExtension | ||
190 | ) | ||
191 | { | ||
192 | HRESULT hr = S_OK; | ||
193 | BURN_EXTENSION* pExtension = NULL; | ||
194 | |||
195 | for (DWORD i = 0; i < pBurnExtensions->cExtensions; ++i) | ||
196 | { | ||
197 | pExtension = &pBurnExtensions->rgExtensions[i]; | ||
198 | |||
199 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pExtension->sczId, -1, wzId, -1)) | ||
200 | { | ||
201 | *ppExtension = pExtension; | ||
202 | ExitFunction1(hr = S_OK); | ||
203 | } | ||
204 | } | ||
205 | |||
206 | hr = E_NOTFOUND; | ||
207 | |||
208 | LExit: | ||
209 | return hr; | ||
210 | } | ||
211 | |||
212 | EXTERN_C BEEAPI BurnExtensionPerformSearch( | ||
213 | __in BURN_EXTENSION* pExtension, | ||
214 | __in LPWSTR wzSearchId, | ||
215 | __in LPWSTR wzVariable | ||
216 | ) | ||
217 | { | ||
218 | HRESULT hr = S_OK; | ||
219 | BUNDLE_EXTENSION_SEARCH_ARGS args = { }; | ||
220 | BUNDLE_EXTENSION_SEARCH_RESULTS results = { }; | ||
221 | |||
222 | args.cbSize = sizeof(args); | ||
223 | args.wzId = wzSearchId; | ||
224 | args.wzVariable = wzVariable; | ||
225 | |||
226 | results.cbSize = sizeof(results); | ||
227 | |||
228 | hr = pExtension->pfnBurnExtensionProc(BUNDLE_EXTENSION_MESSAGE_SEARCH, &args, &results, pExtension->pvBurnExtensionProcContext); | ||
229 | ExitOnFailure(hr, "BundleExtension '%ls' Search '%ls' failed.", pExtension->sczId, wzSearchId); | ||
230 | |||
231 | LExit: | ||
232 | return hr; | ||
233 | } | ||