From c7dae1908fba5f709c83092179dd60a7ee443246 Mon Sep 17 00:00:00 2001 From: Underground78 Date: Sat, 28 Sep 2013 17:30:14 +0200 Subject: [MPC-HC] Tray icon: Add an optional custom callback for "show property page" events. --- demuxer/LAVSplitter/LAVSplitter.cpp | 11 +++++++++++ demuxer/LAVSplitter/LAVSplitter.h | 5 +++++ 2 files changed, 16 insertions(+) (limited to 'demuxer') diff --git a/demuxer/LAVSplitter/LAVSplitter.cpp b/demuxer/LAVSplitter/LAVSplitter.cpp index 100e2794..9fd647c0 100644 --- a/demuxer/LAVSplitter/LAVSplitter.cpp +++ b/demuxer/LAVSplitter/LAVSplitter.cpp @@ -115,6 +115,7 @@ STDMETHODIMP CLAVSplitter::CreateTrayIcon() if (CBaseTrayIcon::ProcessBlackList()) return S_FALSE; m_pTrayIcon = new CLAVSplitterTrayIcon(this, TEXT(LAV_SPLITTER), IDI_ICON1); + m_pTrayIcon->SetCustomOpenPropPage(m_fpPropPageCallback); return S_OK; } @@ -309,6 +310,7 @@ STDMETHODIMP CLAVSplitter::NonDelegatingQueryInterface(REFIID riid, void** ppv) QI(ISpecifyPropertyPages2) QI2(ILAVFSettings) QI2(ILAVFSettingsInternal) + QI2(ILAVFSettingsMPCHCCustom) QI(IObjectWithSite) QI(IBufferInfo) __super::NonDelegatingQueryInterface(riid, ppv); @@ -1847,6 +1849,15 @@ STDMETHODIMP_(std::set&) CLAVSplitter::GetInputFormats() return m_InputFormats; } +// ILAVFSettingsMPCHCCustom +STDMETHODIMP CLAVSplitter::SetPropertyPageCallback(HRESULT (*fpPropPageCallback)(IBaseFilter* pFilter)) +{ + m_fpPropPageCallback = fpPropPageCallback; + if (m_pTrayIcon) + m_pTrayIcon->SetCustomOpenPropPage(fpPropPageCallback); + return S_OK; +} + CLAVSplitterSource::CLAVSplitterSource(LPUNKNOWN pUnk, HRESULT* phr) : CLAVSplitter(pUnk, phr) { diff --git a/demuxer/LAVSplitter/LAVSplitter.h b/demuxer/LAVSplitter/LAVSplitter.h index 4c921456..7da0814d 100644 --- a/demuxer/LAVSplitter/LAVSplitter.h +++ b/demuxer/LAVSplitter/LAVSplitter.h @@ -62,6 +62,7 @@ class CLAVSplitter , public IAMStreamSelect , public IAMOpenProgress , public ILAVFSettingsInternal + , public ILAVFSettingsMPCHCCustom , public ISpecifyPropertyPages2 , public IObjectWithSite , public IBufferInfo @@ -174,6 +175,9 @@ public: STDMETHODIMP SetNetworkStreamAnalysisDuration(DWORD dwDuration); STDMETHODIMP_(DWORD) GetNetworkStreamAnalysisDuration(); + // ILAVFSettingsMPCHCCustom + STDMETHODIMP SetPropertyPageCallback(HRESULT (*fpPropPageCallback)(IBaseFilter* pFilter)); + // ILAVSplitterSettingsInternal STDMETHODIMP_(LPCSTR) GetInputFormat() { if (m_pDemuxer) return m_pDemuxer->GetContainerFormat(); return nullptr; } STDMETHODIMP_(std::set&) GetInputFormats(); @@ -295,6 +299,7 @@ private: IUnknown *m_pSite = nullptr; CBaseTrayIcon *m_pTrayIcon = nullptr; + HRESULT (*m_fpPropPageCallback)(IBaseFilter* pFilter) = nullptr; }; [uuid("B98D13E7-55DB-4385-A33D-09FD1BA26338")] -- cgit v1.2.3