//----------------------------------------------------------------------------- // // Musepack Demuxer // // Author : Igor Janos // //----------------------------------------------------------------------------- #pragma once //----------------------------------------------------------------------------- // // MediaContentSource class // //----------------------------------------------------------------------------- class MediaContentSource { public: MediaContentSource(); virtual ~MediaContentSource(); // to be overriden virtual int GetContentString(CString key, CString &value); }; //----------------------------------------------------------------------------- // // CAMMediaContent class // //----------------------------------------------------------------------------- class CAMMediaContent : public CUnknown, public IAMMediaContent { CBaseDispatch basedisp; MediaContentSource *source; public: CAMMediaContent(MediaContentSource *src, LPUNKNOWN pUnk); DECLARE_IUNKNOWN // override this to publicise our interfaces STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, __deref_out void **ppv); /* IDispatch methods */ STDMETHODIMP GetTypeInfoCount(__out UINT * pctinfo); STDMETHODIMP GetTypeInfo(UINT itinfo, LCID lcid, __deref_out ITypeInfo ** pptinfo); STDMETHODIMP GetIDsOfNames( REFIID riid, __in_ecount(cNames) LPOLESTR * rgszNames, UINT cNames, LCID lcid, __out_ecount(cNames) DISPID * rgdispid ); STDMETHODIMP Invoke( DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, __in DISPPARAMS * pdispparams, __out_opt VARIANT * pvarResult, __out_opt EXCEPINFO * pexcepinfo, __out_opt UINT * puArgErr ); /* IAMMediaContent methods */ STDMETHODIMP get_AuthorName(BSTR FAR* pbstrAuthorName); STDMETHODIMP get_Title(BSTR FAR* pbstrTitle); STDMETHODIMP get_Rating(BSTR FAR* pbstrRating); STDMETHODIMP get_Description(BSTR FAR* pbstrDescription); STDMETHODIMP get_Copyright(BSTR FAR* pbstrCopyright); STDMETHODIMP get_BaseURL(BSTR FAR* pbstrBaseURL); STDMETHODIMP get_LogoURL(BSTR FAR* pbstrLogoURL); STDMETHODIMP get_LogoIconURL(BSTR FAR* pbstrLogoURL); STDMETHODIMP get_WatermarkURL(BSTR FAR* pbstrWatermarkURL); STDMETHODIMP get_MoreInfoURL(BSTR FAR* pbstrMoreInfoURL); STDMETHODIMP get_MoreInfoBannerImage(BSTR FAR* pbstrMoreInfoBannerImage); STDMETHODIMP get_MoreInfoBannerURL(BSTR FAR* pbstrMoreInfoBannerURL); STDMETHODIMP get_MoreInfoText(BSTR FAR* pbstrMoreInfoText); // loadovanie HRESULT LoadContent(CString name, BSTR FAR *value); };