diff options
Diffstat (limited to 'src/engine/externalengine.cpp')
-rw-r--r-- | src/engine/externalengine.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/engine/externalengine.cpp b/src/engine/externalengine.cpp index d881544c..fffd96bf 100644 --- a/src/engine/externalengine.cpp +++ b/src/engine/externalengine.cpp | |||
@@ -733,6 +733,38 @@ LExit: | |||
733 | return hr; | 733 | return hr; |
734 | } | 734 | } |
735 | 735 | ||
736 | HRESULT ExternalEngineSetUpdateSource( | ||
737 | __in BURN_ENGINE_STATE* pEngineState, | ||
738 | __in_z LPCWSTR wzUrl | ||
739 | ) | ||
740 | { | ||
741 | HRESULT hr = S_OK; | ||
742 | BOOL fLeaveCriticalSection = FALSE; | ||
743 | |||
744 | ::EnterCriticalSection(&pEngineState->userExperience.csEngineActive); | ||
745 | fLeaveCriticalSection = TRUE; | ||
746 | hr = UserExperienceEnsureEngineInactive(&pEngineState->userExperience); | ||
747 | ExitOnFailure(hr, "Engine is active, cannot change engine state."); | ||
748 | |||
749 | if (wzUrl && *wzUrl) | ||
750 | { | ||
751 | hr = StrAllocString(&pEngineState->update.sczUpdateSource, wzUrl, 0); | ||
752 | ExitOnFailure(hr, "Failed to set feed download URL."); | ||
753 | } | ||
754 | else // no URL provided means clear out the whole download source. | ||
755 | { | ||
756 | ReleaseNullStr(pEngineState->update.sczUpdateSource); | ||
757 | } | ||
758 | |||
759 | LExit: | ||
760 | if (fLeaveCriticalSection) | ||
761 | { | ||
762 | ::LeaveCriticalSection(&pEngineState->userExperience.csEngineActive); | ||
763 | } | ||
764 | |||
765 | return hr; | ||
766 | } | ||
767 | |||
736 | // TODO: callers need to provide the original size (at the time of first public release) of the struct instead of the current size. | 768 | // TODO: callers need to provide the original size (at the time of first public release) of the struct instead of the current size. |
737 | HRESULT WINAPI ExternalEngineValidateMessageParameter( | 769 | HRESULT WINAPI ExternalEngineValidateMessageParameter( |
738 | __in_opt const LPVOID pv, | 770 | __in_opt const LPVOID pv, |