diff options
Diffstat (limited to 'src/bextutil/BextBundleExtensionEngine.cpp')
-rw-r--r-- | src/bextutil/BextBundleExtensionEngine.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/bextutil/BextBundleExtensionEngine.cpp b/src/bextutil/BextBundleExtensionEngine.cpp index a78b3130..983782a9 100644 --- a/src/bextutil/BextBundleExtensionEngine.cpp +++ b/src/bextutil/BextBundleExtensionEngine.cpp | |||
@@ -185,26 +185,28 @@ public: // IBundleExtensionEngine | |||
185 | 185 | ||
186 | virtual STDMETHODIMP GetVariableVersion( | 186 | virtual STDMETHODIMP GetVariableVersion( |
187 | __in_z LPCWSTR wzVariable, | 187 | __in_z LPCWSTR wzVariable, |
188 | __out DWORD64* pqwValue | 188 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, |
189 | __inout DWORD* pcchValue | ||
189 | ) | 190 | ) |
190 | { | 191 | { |
191 | HRESULT hr = S_OK; | 192 | HRESULT hr = S_OK; |
192 | BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_ARGS args = { }; | 193 | BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_ARGS args = { }; |
193 | BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_RESULTS results = { }; | 194 | BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_RESULTS results = { }; |
194 | 195 | ||
195 | ExitOnNull(pqwValue, hr, E_INVALIDARG, "pqwValue is required"); | 196 | ExitOnNull(pcchValue, hr, E_INVALIDARG, "pcchValue is required"); |
196 | 197 | ||
197 | args.cbSize = sizeof(args); | 198 | args.cbSize = sizeof(args); |
198 | args.wzVariable = wzVariable; | 199 | args.wzVariable = wzVariable; |
199 | 200 | ||
200 | results.cbSize = sizeof(results); | 201 | results.cbSize = sizeof(results); |
202 | results.wzValue = wzValue; | ||
203 | results.cchValue = *pcchValue; | ||
201 | 204 | ||
202 | hr = m_pfnBundleExtensionEngineProc(BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLEVERSION, &args, &results, m_pvBundleExtensionEngineProcContext); | 205 | hr = m_pfnBundleExtensionEngineProc(BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLEVERSION, &args, &results, m_pvBundleExtensionEngineProcContext); |
203 | 206 | ||
204 | *pqwValue = results.qwValue; | 207 | *pcchValue = results.cchValue; |
205 | 208 | ||
206 | LExit: | 209 | LExit: |
207 | SecureZeroMemory(&results, sizeof(results)); | ||
208 | return hr; | 210 | return hr; |
209 | } | 211 | } |
210 | 212 | ||
@@ -263,7 +265,7 @@ public: // IBundleExtensionEngine | |||
263 | 265 | ||
264 | virtual STDMETHODIMP SetVariableVersion( | 266 | virtual STDMETHODIMP SetVariableVersion( |
265 | __in_z LPCWSTR wzVariable, | 267 | __in_z LPCWSTR wzVariable, |
266 | __in DWORD64 qwValue | 268 | __in_z_opt LPCWSTR wzValue |
267 | ) | 269 | ) |
268 | { | 270 | { |
269 | BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_ARGS args = { }; | 271 | BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_ARGS args = { }; |
@@ -271,7 +273,7 @@ public: // IBundleExtensionEngine | |||
271 | 273 | ||
272 | args.cbSize = sizeof(args); | 274 | args.cbSize = sizeof(args); |
273 | args.wzVariable = wzVariable; | 275 | args.wzVariable = wzVariable; |
274 | args.qwValue = qwValue; | 276 | args.wzValue = wzValue; |
275 | 277 | ||
276 | results.cbSize = sizeof(results); | 278 | results.cbSize = sizeof(results); |
277 | 279 | ||