diff options
Diffstat (limited to 'src/burn/engine/relatedbundle.cpp')
-rw-r--r-- | src/burn/engine/relatedbundle.cpp | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/src/burn/engine/relatedbundle.cpp b/src/burn/engine/relatedbundle.cpp index 23e0f352..938b24d7 100644 --- a/src/burn/engine/relatedbundle.cpp +++ b/src/burn/engine/relatedbundle.cpp | |||
@@ -30,8 +30,8 @@ static HRESULT LoadIfRelatedBundle( | |||
30 | __in BURN_RELATED_BUNDLES* pRelatedBundles | 30 | __in BURN_RELATED_BUNDLES* pRelatedBundles |
31 | ); | 31 | ); |
32 | static HRESULT LoadRelatedBundleFromKey( | 32 | static HRESULT LoadRelatedBundleFromKey( |
33 | __in_z LPCWSTR wzRelatedBundleId, | 33 | __in_z LPCWSTR wzRelatedBundleCode, |
34 | __in HKEY hkBundleId, | 34 | __in HKEY hkBundleCode, |
35 | __in BOOL fPerMachine, | 35 | __in BOOL fPerMachine, |
36 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | 36 | __in BOOTSTRAPPER_RELATION_TYPE relationType, |
37 | __in BURN_RELATED_BUNDLE *pRelatedBundle | 37 | __in BURN_RELATED_BUNDLE *pRelatedBundle |
@@ -108,7 +108,7 @@ extern "C" HRESULT RelatedBundleFindById( | |||
108 | HRESULT hr = S_OK; | 108 | HRESULT hr = S_OK; |
109 | BURN_RELATED_BUNDLE* pRelatedBundle = NULL; | 109 | BURN_RELATED_BUNDLE* pRelatedBundle = NULL; |
110 | BURN_PACKAGE* pPackage = NULL; | 110 | BURN_PACKAGE* pPackage = NULL; |
111 | 111 | ||
112 | *ppRelatedBundle = NULL; | 112 | *ppRelatedBundle = NULL; |
113 | 113 | ||
114 | for (DWORD i = 0; i < pRelatedBundles->cRelatedBundles; ++i) | 114 | for (DWORD i = 0; i < pRelatedBundles->cRelatedBundles; ++i) |
@@ -180,7 +180,7 @@ static __callback int __cdecl CompareRelatedBundlesDetect( | |||
180 | const BURN_RELATED_BUNDLE* pBundleLeft = static_cast<const BURN_RELATED_BUNDLE*>(pvLeft); | 180 | const BURN_RELATED_BUNDLE* pBundleLeft = static_cast<const BURN_RELATED_BUNDLE*>(pvLeft); |
181 | const BURN_RELATED_BUNDLE* pBundleRight = static_cast<const BURN_RELATED_BUNDLE*>(pvRight); | 181 | const BURN_RELATED_BUNDLE* pBundleRight = static_cast<const BURN_RELATED_BUNDLE*>(pvRight); |
182 | 182 | ||
183 | // Sort by relation type, then version, then bundle id. | 183 | // Sort by relation type, then version, then bundle code. |
184 | if (pBundleLeft->detectRelationType != pBundleRight->detectRelationType) | 184 | if (pBundleLeft->detectRelationType != pBundleRight->detectRelationType) |
185 | { | 185 | { |
186 | // Upgrade bundles last, everything else according to the enum. | 186 | // Upgrade bundles last, everything else according to the enum. |
@@ -223,7 +223,7 @@ static __callback int __cdecl CompareRelatedBundlesPlan( | |||
223 | const BURN_RELATED_BUNDLE* pBundleLeft = *reinterpret_cast<BURN_RELATED_BUNDLE**>(const_cast<void*>(pvLeft)); | 223 | const BURN_RELATED_BUNDLE* pBundleLeft = *reinterpret_cast<BURN_RELATED_BUNDLE**>(const_cast<void*>(pvLeft)); |
224 | const BURN_RELATED_BUNDLE* pBundleRight = *reinterpret_cast<BURN_RELATED_BUNDLE**>(const_cast<void*>(pvRight)); | 224 | const BURN_RELATED_BUNDLE* pBundleRight = *reinterpret_cast<BURN_RELATED_BUNDLE**>(const_cast<void*>(pvRight)); |
225 | 225 | ||
226 | // Sort by relation type, then version, then bundle id. | 226 | // Sort by relation type, then version, then bundle code. |
227 | if (pBundleLeft->planRelationType != pBundleRight->planRelationType) | 227 | if (pBundleLeft->planRelationType != pBundleRight->planRelationType) |
228 | { | 228 | { |
229 | // Upgrade bundles last, everything else according to the enum. | 229 | // Upgrade bundles last, everything else according to the enum. |
@@ -266,7 +266,7 @@ static BUNDLE_QUERY_CALLBACK_RESULT CALLBACK QueryRelatedBundlesCallback( | |||
266 | BUNDLE_QUERY_CONTEXT* pContext = reinterpret_cast<BUNDLE_QUERY_CONTEXT*>(pvContext); | 266 | BUNDLE_QUERY_CONTEXT* pContext = reinterpret_cast<BUNDLE_QUERY_CONTEXT*>(pvContext); |
267 | 267 | ||
268 | hr = LoadIfRelatedBundle(pBundle, pContext->pRegistration, pContext->pRelatedBundles); | 268 | hr = LoadIfRelatedBundle(pBundle, pContext->pRegistration, pContext->pRelatedBundles); |
269 | ExitOnFailure(hr, "Failed to load related bundle: %ls", pBundle->wzBundleId); | 269 | ExitOnFailure(hr, "Failed to load related bundle: %ls", pBundle->wzBundleCode); |
270 | 270 | ||
271 | LExit: | 271 | LExit: |
272 | return result; | 272 | return result; |
@@ -283,8 +283,8 @@ static HRESULT LoadIfRelatedBundle( | |||
283 | BOOTSTRAPPER_RELATION_TYPE relationType = RelatedBundleConvertRelationType(pBundle->relationType); | 283 | BOOTSTRAPPER_RELATION_TYPE relationType = RelatedBundleConvertRelationType(pBundle->relationType); |
284 | BURN_RELATED_BUNDLE* pRelatedBundle = NULL; | 284 | BURN_RELATED_BUNDLE* pRelatedBundle = NULL; |
285 | 285 | ||
286 | // If we found our bundle id, it's not a related bundle. | 286 | // If we found our bundle code, it's not a related bundle. |
287 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, pBundle->wzBundleId, -1, pRegistration->sczId, -1)) | 287 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, pBundle->wzBundleCode, -1, pRegistration->sczCode, -1)) |
288 | { | 288 | { |
289 | ExitFunction1(hr = S_FALSE); | 289 | ExitFunction1(hr = S_FALSE); |
290 | } | 290 | } |
@@ -294,8 +294,8 @@ static HRESULT LoadIfRelatedBundle( | |||
294 | 294 | ||
295 | pRelatedBundle = pRelatedBundles->rgRelatedBundles + pRelatedBundles->cRelatedBundles; | 295 | pRelatedBundle = pRelatedBundles->rgRelatedBundles + pRelatedBundles->cRelatedBundles; |
296 | 296 | ||
297 | hr = LoadRelatedBundleFromKey(pBundle->wzBundleId, pBundle->hkBundle, fPerMachine, relationType, pRelatedBundle); | 297 | hr = LoadRelatedBundleFromKey(pBundle->wzBundleCode, pBundle->hkBundle, fPerMachine, relationType, pRelatedBundle); |
298 | ExitOnFailure(hr, "Failed to initialize package from related bundle id: %ls", pBundle->wzBundleId); | 298 | ExitOnFailure(hr, "Failed to initialize package from related bundle code: %ls", pBundle->wzBundleCode); |
299 | 299 | ||
300 | hr = DependencyDetectRelatedBundle(pRelatedBundle, pRegistration); | 300 | hr = DependencyDetectRelatedBundle(pRelatedBundle, pRegistration); |
301 | ExitOnFailure(hr, "Failed to detect dependencies for related bundle."); | 301 | ExitOnFailure(hr, "Failed to detect dependencies for related bundle."); |
@@ -307,8 +307,8 @@ LExit: | |||
307 | } | 307 | } |
308 | 308 | ||
309 | static HRESULT LoadRelatedBundleFromKey( | 309 | static HRESULT LoadRelatedBundleFromKey( |
310 | __in_z LPCWSTR wzRelatedBundleId, | 310 | __in_z LPCWSTR wzRelatedBundleCode, |
311 | __in HKEY hkBundleId, | 311 | __in HKEY hkBundleCode, |
312 | __in BOOL fPerMachine, | 312 | __in BOOL fPerMachine, |
313 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | 313 | __in BOOTSTRAPPER_RELATION_TYPE relationType, |
314 | __in BURN_RELATED_BUNDLE* pRelatedBundle | 314 | __in BURN_RELATED_BUNDLE* pRelatedBundle |
@@ -327,7 +327,7 @@ static HRESULT LoadRelatedBundleFromKey( | |||
327 | BURN_DEPENDENCY_PROVIDER* pBundleDependencyProvider = NULL; | 327 | BURN_DEPENDENCY_PROVIDER* pBundleDependencyProvider = NULL; |
328 | 328 | ||
329 | // Only support progress from engines that are compatible. | 329 | // Only support progress from engines that are compatible. |
330 | hr = RegReadNumber(hkBundleId, BURN_REGISTRATION_REGISTRY_ENGINE_PROTOCOL_VERSION, &dwEngineProtocolVersion); | 330 | hr = RegReadNumber(hkBundleCode, BURN_REGISTRATION_REGISTRY_ENGINE_PROTOCOL_VERSION, &dwEngineProtocolVersion); |
331 | if (SUCCEEDED(hr)) | 331 | if (SUCCEEDED(hr)) |
332 | { | 332 | { |
333 | fSupportsBurnProtocol = BURN_PROTOCOL_VERSION == dwEngineProtocolVersion; | 333 | fSupportsBurnProtocol = BURN_PROTOCOL_VERSION == dwEngineProtocolVersion; |
@@ -335,7 +335,7 @@ static HRESULT LoadRelatedBundleFromKey( | |||
335 | else | 335 | else |
336 | { | 336 | { |
337 | // Rely on version checking (aka: version greater than or equal to last protocol breaking change *and* versions that are older or the same as this engine) | 337 | // Rely on version checking (aka: version greater than or equal to last protocol breaking change *and* versions that are older or the same as this engine) |
338 | hr = RegReadVersion(hkBundleId, BURN_REGISTRATION_REGISTRY_ENGINE_VERSION, &qwEngineVersion); | 338 | hr = RegReadVersion(hkBundleCode, BURN_REGISTRATION_REGISTRY_ENGINE_VERSION, &qwEngineVersion); |
339 | if (SUCCEEDED(hr)) | 339 | if (SUCCEEDED(hr)) |
340 | { | 340 | { |
341 | fSupportsBurnProtocol = (FILEMAKEVERSION(3, 6, 2221, 0) <= qwEngineVersion && qwEngineVersion <= FILEMAKEVERSION(rmj, rmm, rup, rpr)); | 341 | fSupportsBurnProtocol = (FILEMAKEVERSION(3, 6, 2221, 0) <= qwEngineVersion && qwEngineVersion <= FILEMAKEVERSION(rmj, rmm, rup, rpr)); |
@@ -344,19 +344,19 @@ static HRESULT LoadRelatedBundleFromKey( | |||
344 | hr = S_OK; | 344 | hr = S_OK; |
345 | } | 345 | } |
346 | 346 | ||
347 | hr = RegReadString(hkBundleId, BURN_REGISTRATION_REGISTRY_BUNDLE_VERSION, &sczBundleVersion); | 347 | hr = RegReadString(hkBundleCode, BURN_REGISTRATION_REGISTRY_BUNDLE_VERSION, &sczBundleVersion); |
348 | ExitOnFailure(hr, "Failed to read version from registry for bundle: %ls", wzRelatedBundleId); | 348 | ExitOnFailure(hr, "Failed to read version from registry for bundle: %ls", wzRelatedBundleCode); |
349 | 349 | ||
350 | hr = VerParseVersion(sczBundleVersion, 0, FALSE, &pRelatedBundle->pVersion); | 350 | hr = VerParseVersion(sczBundleVersion, 0, FALSE, &pRelatedBundle->pVersion); |
351 | ExitOnFailure(hr, "Failed to parse pseudo bundle version: %ls", sczBundleVersion); | 351 | ExitOnFailure(hr, "Failed to parse pseudo bundle version: %ls", sczBundleVersion); |
352 | 352 | ||
353 | if (pRelatedBundle->pVersion->fInvalid) | 353 | if (pRelatedBundle->pVersion->fInvalid) |
354 | { | 354 | { |
355 | LogId(REPORT_WARNING, MSG_RELATED_PACKAGE_INVALID_VERSION, wzRelatedBundleId, sczBundleVersion); | 355 | LogId(REPORT_WARNING, MSG_RELATED_PACKAGE_INVALID_VERSION, wzRelatedBundleCode, sczBundleVersion); |
356 | } | 356 | } |
357 | 357 | ||
358 | hr = RegReadString(hkBundleId, BURN_REGISTRATION_REGISTRY_BUNDLE_CACHE_PATH, &sczCachePath); | 358 | hr = RegReadString(hkBundleCode, BURN_REGISTRATION_REGISTRY_BUNDLE_CACHE_PATH, &sczCachePath); |
359 | ExitOnFailure(hr, "Failed to read cache path from registry for bundle: %ls", wzRelatedBundleId); | 359 | ExitOnFailure(hr, "Failed to read cache path from registry for bundle: %ls", wzRelatedBundleCode); |
360 | 360 | ||
361 | if (FileExistsEx(sczCachePath, NULL)) | 361 | if (FileExistsEx(sczCachePath, NULL)) |
362 | { | 362 | { |
@@ -364,13 +364,13 @@ static HRESULT LoadRelatedBundleFromKey( | |||
364 | } | 364 | } |
365 | else | 365 | else |
366 | { | 366 | { |
367 | LogId(REPORT_STANDARD, MSG_DETECT_RELATED_BUNDLE_NOT_CACHED, wzRelatedBundleId, sczCachePath); | 367 | LogId(REPORT_STANDARD, MSG_DETECT_RELATED_BUNDLE_NOT_CACHED, wzRelatedBundleCode, sczCachePath); |
368 | } | 368 | } |
369 | 369 | ||
370 | pRelatedBundle->fPlannable = fCached; | 370 | pRelatedBundle->fPlannable = fCached; |
371 | 371 | ||
372 | hr = RegReadString(hkBundleId, BURN_REGISTRATION_REGISTRY_BUNDLE_PROVIDER_KEY, &dependencyProvider.sczKey); | 372 | hr = RegReadString(hkBundleCode, BURN_REGISTRATION_REGISTRY_BUNDLE_PROVIDER_KEY, &dependencyProvider.sczKey); |
373 | ExitOnPathFailure(hr, fExists, "Failed to read provider key from registry for bundle: %ls", wzRelatedBundleId); | 373 | ExitOnPathFailure(hr, fExists, "Failed to read provider key from registry for bundle: %ls", wzRelatedBundleCode); |
374 | 374 | ||
375 | if (dependencyProvider.sczKey && *dependencyProvider.sczKey) | 375 | if (dependencyProvider.sczKey && *dependencyProvider.sczKey) |
376 | { | 376 | { |
@@ -379,23 +379,23 @@ static HRESULT LoadRelatedBundleFromKey( | |||
379 | dependencyProvider.fImported = TRUE; | 379 | dependencyProvider.fImported = TRUE; |
380 | 380 | ||
381 | hr = StrAllocString(&dependencyProvider.sczVersion, pRelatedBundle->pVersion->sczVersion, 0); | 381 | hr = StrAllocString(&dependencyProvider.sczVersion, pRelatedBundle->pVersion->sczVersion, 0); |
382 | ExitOnFailure(hr, "Failed to copy version for bundle: %ls", wzRelatedBundleId); | 382 | ExitOnFailure(hr, "Failed to copy version for bundle: %ls", wzRelatedBundleCode); |
383 | 383 | ||
384 | hr = RegReadString(hkBundleId, BURN_REGISTRATION_REGISTRY_BUNDLE_DISPLAY_NAME, &dependencyProvider.sczDisplayName); | 384 | hr = RegReadString(hkBundleCode, BURN_REGISTRATION_REGISTRY_BUNDLE_DISPLAY_NAME, &dependencyProvider.sczDisplayName); |
385 | ExitOnPathFailure(hr, fExists, "Failed to copy display name for bundle: %ls", wzRelatedBundleId); | 385 | ExitOnPathFailure(hr, fExists, "Failed to copy display name for bundle: %ls", wzRelatedBundleCode); |
386 | } | 386 | } |
387 | 387 | ||
388 | hr = RegReadString(hkBundleId, BURN_REGISTRATION_REGISTRY_BUNDLE_TAG, &pRelatedBundle->sczTag); | 388 | hr = RegReadString(hkBundleCode, BURN_REGISTRATION_REGISTRY_BUNDLE_TAG, &pRelatedBundle->sczTag); |
389 | ExitOnPathFailure(hr, fExists, "Failed to read tag from registry for bundle: %ls", wzRelatedBundleId); | 389 | ExitOnPathFailure(hr, fExists, "Failed to read tag from registry for bundle: %ls", wzRelatedBundleCode); |
390 | 390 | ||
391 | pRelatedBundle->detectRelationType = relationType; | 391 | pRelatedBundle->detectRelationType = relationType; |
392 | 392 | ||
393 | hr = PseudoBundleInitializeRelated(&pRelatedBundle->package, fSupportsBurnProtocol, fPerMachine, wzRelatedBundleId, | 393 | hr = PseudoBundleInitializeRelated(&pRelatedBundle->package, fSupportsBurnProtocol, fPerMachine, wzRelatedBundleCode, |
394 | #ifdef DEBUG | 394 | #ifdef DEBUG |
395 | pRelatedBundle->detectRelationType, | 395 | pRelatedBundle->detectRelationType, |
396 | #endif | 396 | #endif |
397 | fCached, sczCachePath, qwFileSize, pBundleDependencyProvider); | 397 | fCached, sczCachePath, qwFileSize, pBundleDependencyProvider); |
398 | ExitOnFailure(hr, "Failed to initialize related bundle to represent bundle: %ls", wzRelatedBundleId); | 398 | ExitOnFailure(hr, "Failed to initialize related bundle to represent bundle: %ls", wzRelatedBundleCode); |
399 | 399 | ||
400 | LExit: | 400 | LExit: |
401 | DependencyUninitializeProvider(&dependencyProvider); | 401 | DependencyUninitializeProvider(&dependencyProvider); |