diff options
Diffstat (limited to 'src/engine/container.cpp')
| -rw-r--r-- | src/engine/container.cpp | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/src/engine/container.cpp b/src/engine/container.cpp index ada9025b..55a16afb 100644 --- a/src/engine/container.cpp +++ b/src/engine/container.cpp | |||
| @@ -17,7 +17,6 @@ static HRESULT GetAttachedContainerInfo( | |||
| 17 | // function definitions | 17 | // function definitions |
| 18 | 18 | ||
| 19 | extern "C" HRESULT ContainersParseFromXml( | 19 | extern "C" HRESULT ContainersParseFromXml( |
| 20 | __in BURN_SECTION* pSection, | ||
| 21 | __in BURN_CONTAINERS* pContainers, | 20 | __in BURN_CONTAINERS* pContainers, |
| 22 | __in IXMLDOMNode* pixnBundle | 21 | __in IXMLDOMNode* pixnBundle |
| 23 | ) | 22 | ) |
| @@ -128,14 +127,6 @@ extern "C" HRESULT ContainersParseFromXml( | |||
| 128 | ExitOnFailure(hr, "Failed to get @Hash."); | 127 | ExitOnFailure(hr, "Failed to get @Hash."); |
| 129 | } | 128 | } |
| 130 | 129 | ||
| 131 | // If the container is attached, make sure the information in the section matches what the | ||
| 132 | // manifest contained and get the offset to the container. | ||
| 133 | if (pContainer->fAttached) | ||
| 134 | { | ||
| 135 | hr = SectionGetAttachedContainerInfo(pSection, pContainer->dwAttachedIndex, pContainer->type, &pContainer->qwAttachedOffset, &pContainer->qwFileSize, &pContainer->fActuallyAttached); | ||
| 136 | ExitOnFailure(hr, "Failed to get attached container information."); | ||
| 137 | } | ||
| 138 | |||
| 139 | // prepare next iteration | 130 | // prepare next iteration |
| 140 | ReleaseNullObject(pixnNode); | 131 | ReleaseNullObject(pixnNode); |
| 141 | } | 132 | } |
| @@ -150,6 +141,33 @@ LExit: | |||
| 150 | return hr; | 141 | return hr; |
| 151 | } | 142 | } |
| 152 | 143 | ||
| 144 | extern "C" HRESULT ContainersInitialize( | ||
| 145 | __in BURN_CONTAINERS* pContainers, | ||
| 146 | __in BURN_SECTION* pSection | ||
| 147 | ) | ||
| 148 | { | ||
| 149 | HRESULT hr = S_OK; | ||
| 150 | |||
| 151 | if (pContainers->rgContainers) | ||
| 152 | { | ||
| 153 | for (DWORD i = 0; i < pContainers->cContainers; ++i) | ||
| 154 | { | ||
| 155 | BURN_CONTAINER* pContainer = &pContainers->rgContainers[i]; | ||
| 156 | |||
| 157 | // If the container is attached, make sure the information in the section matches what the | ||
| 158 | // manifest contained and get the offset to the container. | ||
| 159 | if (pContainer->fAttached) | ||
| 160 | { | ||
| 161 | hr = SectionGetAttachedContainerInfo(pSection, pContainer->dwAttachedIndex, pContainer->type, &pContainer->qwAttachedOffset, &pContainer->qwFileSize, &pContainer->fActuallyAttached); | ||
| 162 | ExitOnFailure(hr, "Failed to get attached container information."); | ||
| 163 | } | ||
| 164 | } | ||
| 165 | } | ||
| 166 | |||
| 167 | LExit: | ||
| 168 | return hr; | ||
| 169 | } | ||
| 170 | |||
| 153 | extern "C" void ContainersUninitialize( | 171 | extern "C" void ContainersUninitialize( |
| 154 | __in BURN_CONTAINERS* pContainers | 172 | __in BURN_CONTAINERS* pContainers |
| 155 | ) | 173 | ) |
