STDMETHODIMP CGPAXPlugin::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) { u16 wurl[MAXLEN_URL]; const char *sptr; u16 len; VARIANT value; if( pPropBag == NULL) return E_INVALIDARG; VariantInit(&value); V_VT(&value) = VT_BOOL; V_BOOL(&value) = m_bAutoStart ? VARIANT_TRUE : VARIANT_FALSE; pPropBag->Write(OLESTR("AutoStart"), &value); VariantClear(&value); V_VT(&value) = VT_BSTR; sptr = (const char *)m_url; len = gf_utf8_mbstowcs(wurl, MAXLEN_URL, &sptr); V_BSTR(&value) = SysAllocStringLen(NULL, len+1); memcpy(V_BSTR(&value) , wurl, len*sizeof(u16)); V_BSTR(&value) [len] = 0; pPropBag->Write(OLESTR("src"), &value); VariantClear(&value); return S_OK; }
STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirty, BOOL) { if( NULL == pPropBag ) return E_INVALIDARG; VARIANT value; VariantInit(&value); V_VT(&value) = VT_BOOL; V_BOOL(&value) = _p_instance->getAutoLoop()? VARIANT_TRUE : VARIANT_FALSE; pPropBag->Write(OLESTR("AutoLoop"), &value); VariantClear(&value); V_VT(&value) = VT_BOOL; V_BOOL(&value) = _p_instance->getAutoPlay()? VARIANT_TRUE : VARIANT_FALSE; pPropBag->Write(OLESTR("AutoPlay"), &value); VariantClear(&value); V_VT(&value) = VT_BOOL; V_BOOL(&value) = _p_instance->getShowToolbar()? VARIANT_TRUE : VARIANT_FALSE; pPropBag->Write(OLESTR("Toolbar"), &value); VariantClear(&value); SIZEL size = _p_instance->getExtent(); V_VT(&value) = VT_I4; V_I4(&value) = size.cx; pPropBag->Write(OLESTR("ExtentWidth"), &value); V_I4(&value) = size.cy; pPropBag->Write(OLESTR("ExtentHeight"), &value); V_VT(&value) = VT_BSTR; V_BSTR(&value) = SysAllocStringLen(_p_instance->getMRL(), SysStringLen(_p_instance->getMRL())); pPropBag->Write(OLESTR("MRL"), &value); VariantClear(&value); V_VT(&value) = VT_BOOL; V_BOOL(&value) = _p_instance->getVisible()? VARIANT_TRUE : VARIANT_FALSE; pPropBag->Write(OLESTR("Visible"), &value); VariantClear(&value); V_VT(&value) = VT_I4; V_I4(&value) = _p_instance->getVolume(); 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); V_VT(&value) = VT_BOOL; V_BOOL(&value) = _p_instance->get_options().get_enable_fs()? VARIANT_TRUE : VARIANT_FALSE; pPropBag->Write(OLESTR("FullscreenEnabled"), &value); VariantClear(&value); if( fClearDirty ) _p_instance->setDirty(FALSE); return S_OK; };