// GuideDataProvider.cpp : Implementation of CGuideDataProvider #include "stdafx.h" #include "GuideDataProvider.h" ///////////////////////////////////////////////////////////////////////////// // CGuideDataProvider STDMETHODIMP CGuideDataProvider::get_Name(BSTR *pbstrName) { ENTER_API { ValidateOut(pbstrName); return m_pdb->DescriptionPropSet::_get_Name((IGuideDataProvider *) this, pbstrName); } LEAVE_API } STDMETHODIMP CGuideDataProvider::get_Description(BSTR *pbstrDescription) { ENTER_API { ValidateOut(pbstrDescription); return m_pdb->DescriptionPropSet::_get_OneParagraph((IGuideDataProvider *) this, pbstrDescription); } LEAVE_API } STDMETHODIMP CGuideDataProvider::put_Description(BSTR bstrDescription) { ENTER_API { ValidateIn(bstrDescription); return m_pdb->DescriptionPropSet::_put_OneParagraph((IGuideDataProvider *) this, bstrDescription); } LEAVE_API } ///////////////////////////////////////////////////////////////////////////// // CGuideDataProviders STDMETHODIMP CGuideDataProviders::get_ItemWithName(BSTR bstrName, IGuideDataProvider **ppdataprovider) { ENTER_API { ValidateIn(bstrName); ValidateOutPtr<IGuideDataProvider>(ppdataprovider, NULL); // UNDONE: Test CComPtr<IMetaPropertyType> pproptype= m_pdb->DescriptionPropSet::NameMetaPropertyType(); CComPtr<IMetaProperty> pprop; HRESULT hr; hr = pproptype->get_New(0, _variant_t(bstrName), &pprop); if (FAILED(hr)) return hr; CComPtr<IMetaPropertyCondition> ppropcond; hr = pprop->get_Cond(_bstr_t(_T("=")), &ppropcond); if (FAILED(hr)) return hr; CComQIPtr<IObjects> pobjsThis(GetControllingUnknown()); CComPtr<IObjects> pobjs; hr = pobjsThis->get_ItemsWithMetaPropertyCond(ppropcond, &pobjs); if (FAILED(hr)) return hr; CComPtr<IUnknown> pobj; hr = pobjs->get_Item(_variant_t(0L), &pobj); if (FAILED(hr)) return hr; hr = pobj->QueryInterface(__uuidof(IGuideDataProvider), (void **) ppdataprovider); return hr; } LEAVE_API }