X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=activex%2Fpersistpropbag.cpp;h=b53c5113fc3631f718fa5a632deb3bac862d345e;hb=662a0037cee3ddaabfb0ce0c014d2421e1d9b227;hp=3fd06fbf28856877570401f9f4494f417ea6cc70;hpb=2fbbe6d56f9c9b15b506625e96e6e8682c165341;p=vlc diff --git a/activex/persistpropbag.cpp b/activex/persistpropbag.cpp index 3fd06fbf28..b53c5113fc 100644 --- a/activex/persistpropbag.cpp +++ b/activex/persistpropbag.cpp @@ -167,6 +167,44 @@ STDMETHODIMP VLCPersistPropertyBag::Load(LPPROPERTYBAG pPropBag, LPERRORLOG pErr _p_instance->setVolume(V_I4(&value)); VariantClear(&value); } + + V_VT(&value) = VT_I4; + if( S_OK == pPropBag->Read(OLESTR("starttime"), &value, pErrorLog) ) + { + _p_instance->setStartTime(V_I4(&value)); + VariantClear(&value); + } + + V_VT(&value) = VT_BSTR; + if( S_OK == pPropBag->Read(OLESTR("baseurl"), &value, pErrorLog) ) + { + _p_instance->setBaseURL(V_BSTR(&value)); + VariantClear(&value); + } + + V_VT(&value) = VT_I4; + if( S_OK == pPropBag->Read(OLESTR("backcolor"), &value, pErrorLog) ) + { + _p_instance->setBackColor(V_I4(&value)); + VariantClear(&value); + } + else + { + /* + ** try alternative syntax + */ + V_VT(&value) = VT_BSTR; + if( S_OK == pPropBag->Read(OLESTR("bgcolor"), &value, pErrorLog) ) + { + long backcolor; + if( swscanf(V_BSTR(&value), L"#%lX", &backcolor) ) + { + _p_instance->setBackColor(backcolor); + } + VariantClear(&value); + } + } + return _p_instance->onLoad(); }; @@ -212,9 +250,24 @@ STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirt pPropBag->Write(OLESTR("Volume"), &value); VariantClear(&value); + V_VT(&value) = VT_I4; + V_I4(&value) = _p_instance->getStartTime(); + pPropBag->Write(OLESTR("StartTime"), &value); + VariantClear(&value); + + V_VT(&value) = VT_BSTR; + V_BSTR(&value) = SysAllocStringLen(_p_instance->getBaseURL(), + SysStringLen(_p_instance->getBaseURL())); + pPropBag->Write(OLESTR("BaseURL"), &value); + VariantClear(&value); + + V_VT(&value) = VT_I4; + V_I4(&value) = _p_instance->getBackColor(); + pPropBag->Write(OLESTR("BackColor"), &value); + VariantClear(&value); + if( fClearDirty ) _p_instance->setDirty(FALSE); return S_OK; }; -