| Index: src/plugin/PluginUserSettings.cpp |
| =================================================================== |
| --- a/src/plugin/PluginUserSettings.cpp |
| +++ b/src/plugin/PluginUserSettings.cpp |
| @@ -14,8 +14,9 @@ |
| static const CString s_GetWhitelistDomains = L"GetWhitelistDomains"; |
| static const CString s_AddWhitelistDomain = L"AddWhitelistDomain"; |
| static const CString s_RemoveWhitelistDomain = L"RemoveWhitelistDomain"; |
| +static const CString s_Require = L"require"; |
| -static const CString s_Methods[] = {s_GetMessage, s_GetLanguageCount, s_GetLanguageByIndex, s_GetLanguageTitleByIndex, s_SetLanguage, s_GetLanguage, s_GetWhitelistDomains, s_AddWhitelistDomain, s_RemoveWhitelistDomain}; |
| +static const CString s_Methods[] = {s_GetMessage, s_GetLanguageCount, s_GetLanguageByIndex, s_GetLanguageTitleByIndex, s_SetLanguage, s_GetLanguage, s_GetWhitelistDomains, s_AddWhitelistDomain, s_RemoveWhitelistDomain, s_Require}; |
| CPluginUserSettings::CPluginUserSettings() |
| { |
| @@ -305,6 +306,25 @@ |
| settings->RemoveWhiteListedDomain((BSTR)domain); |
| } |
| } |
| + else if (s_Require == method) |
| + { |
| + if (1 != pDispparams->cArgs) |
| + return DISP_E_BADPARAMCOUNT; |
| + |
| + if (VT_BSTR != pDispparams->rgvarg[0].vt) |
| + return DISP_E_TYPEMISMATCH; |
| + |
| + pVarResult->vt = VT_BSTR; |
| + CComBSTR name = pDispparams->rgvarg[0].bstrVal; |
| + if (name.Length()) |
| + { |
| + pVarResult->bstrVal = SysAllocString(settings->GetRequire(std::wstring(name))); |
| + } |
| + else |
| + { |
| + pVarResult->bstrVal = SysAllocString(L""); |
| + } |
| + } |
| else |
| return DISP_E_MEMBERNOTFOUND; |