extern "C" void UpdateUninitialize( __in BURN_UPDATE* pUpdate ) { PackageUninitialize(&pUpdate->package); ReleaseStr(pUpdate->sczUpdateSource); memset(pUpdate, 0, sizeof(BURN_UPDATE)); }
extern "C" void DetectReset( __in BURN_REGISTRATION* pRegistration, __in BURN_PACKAGES* pPackages, __in BURN_UPDATE* /*pUpdate*/ ) { RelatedBundlesUninitialize(&pRegistration->relatedBundles); ReleaseNullStr(pRegistration->sczDetectedProviderKeyBundleId); pRegistration->fEnabledForwardCompatibleBundle = FALSE; PackageUninitialize(&pRegistration->forwardCompatibleBundle); for (DWORD iPackage = 0; iPackage < pPackages->cPackages; ++iPackage) { BURN_PACKAGE* pPackage = pPackages->rgPackages + iPackage; pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN; pPackage->cache = BURN_CACHE_STATE_NONE; for (DWORD iPayload = 0; iPayload < pPackage->cPayloads; ++iPayload) { BURN_PACKAGE_PAYLOAD* pPayload = pPackage->rgPayloads + iPayload; pPayload->fCached = FALSE; } if (BURN_PACKAGE_TYPE_MSI == pPackage->type) { for (DWORD iFeature = 0; iFeature < pPackage->Msi.cFeatures; ++iFeature) { BURN_MSIFEATURE* pFeature = pPackage->Msi.rgFeatures + iFeature; pFeature->currentState = BOOTSTRAPPER_FEATURE_STATE_UNKNOWN; } } else if (BURN_PACKAGE_TYPE_MSP == pPackage->type) { ReleaseNullMem(pPackage->Msp.rgTargetProducts); pPackage->Msp.cTargetProductCodes = 0; } } for (DWORD iPatchInfo = 0; iPatchInfo < pPackages->cPatchInfo; ++iPatchInfo) { MSIPATCHSEQUENCEINFOW* pPatchInfo = pPackages->rgPatchInfo + iPatchInfo; pPatchInfo->dwOrder = 0; pPatchInfo->uStatus = 0; } }