+ 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);
+
+ 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);
+
+ if( fClearDirty )
+ _p_instance->setDirty(FALSE);