/// <summary> /// Update the ".wixburn" section data. /// </summary> /// <param name="stubSize">Size of the stub engine "burn.exe".</param> /// <param name="bundleId">Unique identifier for this bundle.</param> /// <returns></returns> public bool InitializeBundleSectionData(long stubSize, Guid bundleId) { if (this.invalidBundle) { return(false); } this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_MAGIC, BURN_SECTION_MAGIC); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_VERSION, BURN_SECTION_VERSION); this.messageHandler.OnMessage(WixVerboses.BundleGuid(bundleId.ToString("B"))); this.binaryWriter.BaseStream.Seek(this.wixburnDataOffset + BURN_SECTION_OFFSET_BUNDLEGUID, SeekOrigin.Begin); this.binaryWriter.Write(bundleId.ToByteArray()); this.StubSize = (uint)stubSize; this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_STUBSIZE, this.StubSize); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ORIGINALCHECKSUM, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ORIGINALSIGNATUREOFFSET, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ORIGINALSIGNATURESIZE, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_FORMAT, 1); // Hard-coded to CAB for now. this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_COUNT, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_UXSIZE, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ATTACHEDCONTAINERSIZE, 0); this.binaryWriter.BaseStream.Flush(); this.EngineSize = this.StubSize; return(true); }