diff options
Diffstat (limited to 'src/api/burn/bextutil')
-rw-r--r-- | src/api/burn/bextutil/BextBundleExtensionEngine.cpp | 29 | ||||
-rw-r--r-- | src/api/burn/bextutil/inc/IBundleExtensionEngine.h | 7 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/api/burn/bextutil/BextBundleExtensionEngine.cpp b/src/api/burn/bextutil/BextBundleExtensionEngine.cpp index 6043e2db..2c854817 100644 --- a/src/api/burn/bextutil/BextBundleExtensionEngine.cpp +++ b/src/api/burn/bextutil/BextBundleExtensionEngine.cpp | |||
@@ -306,6 +306,35 @@ public: // IBundleExtensionEngine | |||
306 | return hr; | 306 | return hr; |
307 | } | 307 | } |
308 | 308 | ||
309 | virtual STDMETHODIMP GetRelatedBundleVariable( | ||
310 | __in_z LPCWSTR wzBundleId, | ||
311 | __in_z LPCWSTR wzVariable, | ||
312 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, | ||
313 | __inout SIZE_T* pcchValue | ||
314 | ) | ||
315 | { | ||
316 | HRESULT hr = S_OK; | ||
317 | BUNDLE_EXTENSION_ENGINE_GETRELATEDBUNDLEVARIABLE_ARGS args = { }; | ||
318 | BUNDLE_EXTENSION_ENGINE_GETRELATEDBUNDLEVARIABLE_RESULTS results = { }; | ||
319 | |||
320 | ExitOnNull(pcchValue, hr, E_INVALIDARG, "pcchValue is required"); | ||
321 | |||
322 | args.cbSize = sizeof(args); | ||
323 | args.wzBundleId = wzBundleId; | ||
324 | args.wzVariable = wzVariable; | ||
325 | |||
326 | results.cbSize = sizeof(results); | ||
327 | results.wzValue = wzValue; | ||
328 | results.cchValue = *pcchValue; | ||
329 | |||
330 | hr = m_pfnBundleExtensionEngineProc(BUNDLE_EXTENSION_ENGINE_MESSAGE_GETRELATEDBUNDLEVARIABLE, &args, &results, m_pvBundleExtensionEngineProcContext); | ||
331 | |||
332 | *pcchValue = results.cchValue; | ||
333 | |||
334 | LExit: | ||
335 | return hr; | ||
336 | } | ||
337 | |||
309 | public: | 338 | public: |
310 | CBextBundleExtensionEngine( | 339 | CBextBundleExtensionEngine( |
311 | __in PFN_BUNDLE_EXTENSION_ENGINE_PROC pfnBundleExtensionEngineProc, | 340 | __in PFN_BUNDLE_EXTENSION_ENGINE_PROC pfnBundleExtensionEngineProc, |
diff --git a/src/api/burn/bextutil/inc/IBundleExtensionEngine.h b/src/api/burn/bextutil/inc/IBundleExtensionEngine.h index 63dadb06..0053a71e 100644 --- a/src/api/burn/bextutil/inc/IBundleExtensionEngine.h +++ b/src/api/burn/bextutil/inc/IBundleExtensionEngine.h | |||
@@ -64,4 +64,11 @@ DECLARE_INTERFACE_IID_(IBundleExtensionEngine, IUnknown, "9D027A39-F6B6-42CC-973 | |||
64 | __in_z LPCWSTR wzVersion2, | 64 | __in_z LPCWSTR wzVersion2, |
65 | __out int* pnResult | 65 | __out int* pnResult |
66 | ) = 0; | 66 | ) = 0; |
67 | |||
68 | STDMETHOD(GetRelatedBundleVariable)( | ||
69 | __in_z LPCWSTR wzBundleId, | ||
70 | __in_z LPCWSTR wzVariable, | ||
71 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, | ||
72 | __inout SIZE_T * pcchValue | ||
73 | ) = 0; | ||
67 | }; | 74 | }; |