CPPageTweaks::CPPageTweaks() : CPPageBase(CPPageTweaks::IDD, CPPageTweaks::IDD) , m_fDisabeXPToolbars(FALSE) , m_fUseWMASFReader(FALSE) , m_nJumpDistS(0) , m_nJumpDistM(0) , m_nJumpDistL(0) , m_fFreeWindowResizing(TRUE) , m_fNotifyMSN(TRUE) , m_fNotifyGTSdll(FALSE) , m_GTSdllLink(_T("https://sourceforge.net/project/showfiles.php?group_id=82303&package_id=169521&release_id=371114")) , m_fPreventMinimize(FALSE) { m_fWMASFReader = SUCCEEDED(CComPtr<IBaseFilter>().CoCreateInstance( GUIDFromCString(_T("{187463A0-5BB7-11D3-ACBE-0080C75E246E}")))); // WM ASF Reader }
CPPageTweaks::CPPageTweaks() : CPPageBase(CPPageTweaks::IDD, CPPageTweaks::IDD) , m_fDisableXPToolbars(FALSE) , m_fUseWMASFReader(FALSE) , m_nJumpDistS(0) , m_nJumpDistM(0) , m_nJumpDistL(0) , m_OSD_Size(0) , m_fNotifyMSN(TRUE) , m_fNotifyGTSdll(FALSE) , m_GTSdllLink(_T("http://www.gts-stuff.com/index.php/topic,1664.0.html")) , m_fPreventMinimize(FALSE) , m_fUseWin7TaskBar(TRUE) , m_fDontUseSearchInFolder(FALSE) { m_fWMASFReader = SUCCEEDED(CComPtr<IBaseFilter>().CoCreateInstance( GUIDFromCString(_T("{187463A0-5BB7-11D3-ACBE-0080C75E246E}")))); // WM ASF Reader }
void CBaseSplitterOutputPin::MakeISCRHappy() { CComPtr<IPin> pPinTo = this, pTmp; while (pPinTo && SUCCEEDED(pPinTo->ConnectedTo(&pTmp)) && (pPinTo = pTmp)) { pTmp = nullptr; CComPtr<IBaseFilter> pBF = GetFilterFromPin(pPinTo); if (GetCLSID(pBF) == GUIDFromCString(_T("{48025243-2D39-11CE-875D-00608CB78066}"))) { // ISCR CAutoPtr<Packet> p(DEBUG_NEW Packet()); p->TrackNumber = DWORD_ERROR; p->rtStart = -1; p->rtStop = 0; p->bSyncPoint = FALSE; p->SetData(" ", 2); QueuePacket(p); break; } pPinTo = GetFirstPin(pBF, PINDIR_OUTPUT); } }
bool CLibraryStream::Load(const WCHAR* fnw) { Clear(); CStringW url = CStringW(fnw); CAtlList<CStringW> sl; Explode(url, sl, ':'); CStringW protocol = sl.RemoveHead(); if (protocol != L"hsl") return false; try { yami::parameters params; params.set_long_long("local_channel", 37830072008705); params.set_string("destination", name()); params.set_string("endpoint", YC.endpoint()); std::auto_ptr<yami::outgoing_message> message(AGENT.send(DISCOVERY.get("dvb-source"), "dvb-source", "create_streaming_session", params)); message->wait_for_completion(); if (message->get_state() == yami::replied) { int session_id = message->get_reply().get_integer("session"); params.clear(); params.set_integer("session", session_id); AGENT.send(DISCOVERY.get("dvb-source"), "dvb-source", "start_streaming_session", params); } else { return false; } } catch (const home_system::service_not_found&) { return false; } if (sl.GetCount() != 2 || FAILED(GUIDFromCString(CString(sl.GetTail()), m_subtype))) { m_subtype = MEDIASUBTYPE_MPEG2_TRANSPORT; // TODO: detect subtype } m_len = 0; while(m_len < 1048576) { yami::parameters params; params.set_integer("len", 65535); params.set_long_long("pos", m_len); std::auto_ptr<yami::outgoing_message> message(AGENT.send(DISCOVERY.get("dvb-source"), "dvb-source", "read", params)); message->wait_for_completion(); size_t len = 0; PBYTE buf = (PBYTE)message->get_reply().get_binary("payload", len); m_len += len; for (size_t i = 0; i < len; ++i) { m_buffer.push_back(buf[i]); } Sleep(10); } boost::thread(boost::ref(*this)); return true; }
HRESULT WINAPI Mine_CoCreateInstance(IN REFCLSID rclsid, IN LPUNKNOWN pUnkOuter, IN DWORD dwClsContext, IN REFIID riid, OUT LPVOID FAR* ppv) { if(CFilterMapper2::m_pFilterMapper2) { CheckPointer(ppv, E_POINTER); if(rclsid == CLSID_FilterMapper) { TRACE_SVP5(_T("Mine_CoCreateInstance Unknown REGDB_E_CLASSNOTREG ") ); ASSERT(0); return REGDB_E_CLASSNOTREG; // sorry... } if(rclsid == CLSID_FilterMapper2) { if(pUnkOuter) { TRACE_SVP5(_T("Mine_CoCreateInstance Unknown CLASS_E_NOAGGREGATION ") ); return CLASS_E_NOAGGREGATION; } if(riid == __uuidof(IUnknown)) { CFilterMapper2::m_pFilterMapper2->AddRef(); *ppv = (IUnknown*)CFilterMapper2::m_pFilterMapper2; return S_OK; } else if(riid == __uuidof(IFilterMapper2)) { CFilterMapper2::m_pFilterMapper2->AddRef(); *ppv = (IFilterMapper2*)CFilterMapper2::m_pFilterMapper2; return S_OK; } else { TRACE_SVP5(_T("Mine_CoCreateInstance Unknown riid %s"), CStringFromGUID(riid) ); return E_NOINTERFACE; } } TRACE_SVP5(_T("Mine_CoCreateInstance Unknown %s"), CStringFromGUID(rclsid)); } /* if( GUIDFromCString(_T("{DB43B405-43AA-4F01-82D8-D84D47E6019C}")) == rclsid){ CFilterMapper2::m_pFilterMapper2->AddRef(); *ppv = (IUnknown*)CFilterMapper2::m_pFilterMapper2; return S_OK; }*/ /* else { if(rclsid == CLSID_FilterMapper2) { CFilterMapper2* pFM2 = new CFilterMapper2(true, false, pUnkOuter); CComPtr<IUnknown> pUnk = (IUnknown*)pFM2; return pUnk->QueryInterface(riid, ppv); } } */ if(!pUnkOuter) if(rclsid == CLSID_VideoMixingRenderer || rclsid == CLSID_VideoMixingRenderer9 || rclsid == CLSID_VideoRenderer || rclsid == CLSID_VideoRendererDefault || rclsid == CLSID_OverlayMixer)// || rclsid == CLSID_OverlayMixer2 - where is this declared?) { CMacrovisionKicker* pMK = new CMacrovisionKicker(NAME("CMacrovisionKicker"), NULL); CComPtr<IUnknown> pUnk = (IUnknown*)(INonDelegatingUnknown*)pMK; CComPtr<IUnknown> pInner; HRESULT hr; if(SUCCEEDED(hr = Real_CoCreateInstance(rclsid, pUnk, dwClsContext, __uuidof(IUnknown), (void**)&pInner))) { pMK->SetInner(pInner); return pUnk->QueryInterface(riid, ppv); } } //SVP_LogMsg5(_T("Mine_CoCreateInstance %s"), CStringFromGUID(rclsid) ); long ret = E_FAIL; CSVPToolBox svpTool; // TODO: more effective way to do this // maybe set a static array/map of GUID and dll files if (GUIDFromCString(_T("{083863F1-70DE-11D0-BD40-00A0C911CE86}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"haalis.ax"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{31345649-0000-0010-8000-00AA00389B71}")) == rclsid || GUIDFromCString(_T("{87CA6F02-49E4-11CF-A3FE-00AA003735BE}")) == rclsid || GUIDFromCString(_T("{BD323430-CE94-11CE-82DD-0800095A5B55}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"ir41_32.ax"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{1F73E9B1-8C3A-11D0-A3BE-00A0C9244436}")) == rclsid || GUIDFromCString(_T("{665A4448-D905-11D0-A30E-444553540000}")) == rclsid || GUIDFromCString(_T("{665A4443-D905-11D0-A30E-444553540000}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"ir50_32.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{DB43B405-43AA-4f01-82D8-D84D47E6019C}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"ogm.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{B841F346-4835-4de8-AA5E-2E7CD2D4C435}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"ts.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{B3DE7EDC-0CD4-4d07-B1C5-92219CD475CC}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"mp4.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{53D9DE0B-FC61-4650-9773-74D13CC7E582}")) == rclsid || GUIDFromCString(_T("{64F2005C-6CF5-4652-B94F-600360B15B27}")) == rclsid || GUIDFromCString(_T("{BD4FB4BE-809D-487b-ADD6-F7D164247E52}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"mkx.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{ACD23F8C-B37E-4B2D-BA08-86CB6E621D6A}")) == rclsid || GUIDFromCString(_T("{ACD23F8C-B37E-4B2D-BA08-86CB6E621D6A}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mtcontain.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{164A68B6-3F90-47C2-85A7-1E4D8952EF0A}")) == rclsid || GUIDFromCString(_T("{3BB3828F-9787-48A7-A894-6ADE46C64737}")) == rclsid || GUIDFromCString(_T("{BD4FB4BE-809D-487b-ADD6-F7D164247E52}")) == rclsid || GUIDFromCString(_T("{B4DAEDB7-7F0E-434F-9AA3-B82B549A3680}")) == rclsid || GUIDFromCString(_T("{164A68B6-3F90-47C2-85A7-1E4D8952EF0A}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mtcontrol.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{5BC26A00-5101-47d7-A5DB-AB6AAC44F51B}")) == rclsid || GUIDFromCString(_T("{E5960BC4-A76B-4211-BEEC-9AEE2AF8AAE6}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mxvideo.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{7E493C9A-2E54-4F25-9B9A-D3C4DEBFCB62}")) == rclsid || GUIDFromCString(_T("{AD92C6E6-997A-4E9E-9D7D-EDED6DE933FB}")) == rclsid || GUIDFromCString(_T("{D48D1EB2-BF95-4EE1-BD69-9AD0515F050D}")) == rclsid) { // have to do a real CoCreateInstance for this, or it will crash. not sure why // TODO: find out why //SVP_LogMsg5(_T("Mine_CoCreateInstance %x %x %s"),pUnkOuter, dwClsContext, CStringFromGUID(rclsid) , CStringFromGUID(riid)); //ret = Real_CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv); //ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mdssockc.dll"), rclsid, riid, ppv); //SVP_LogMsg5(_T("Mine_CoCreateInstance ret %x"), ret ); } else if (GUIDFromCString(_T("{86708513-5A2E-424f-AB46-F4BE3F82954F}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mxaudio.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{32E2BDD6-8812-42c3-A907-B9587C148EE3}")) == rclsid || GUIDFromCString(_T("{87BBB4ED-1767-4b7e-821C-7C4657E439D4}")) == rclsid || GUIDFromCString(_T("{F9D06915-85A0-442A-A465-5F3AAAFE059B}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mxscreen.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{2627A1B6-F8FF-4E9C-9422-4908E8D1DFE9}")) == rclsid || GUIDFromCString(_T("{3FD0479E-D6B9-4629-9496-509D3D070918}")) == rclsid || GUIDFromCString(_T("{99AA8908-FC7F-4815-B023-3BC2F5F8D372}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mxshbasu.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{32E2BDD6-8812-42c3-A907-B9587C148EE3}")) == rclsid || GUIDFromCString(_T("{87BBB4ED-1767-4b7e-821C-7C4657E439D4}")) == rclsid || GUIDFromCString(_T("{F9D06915-85A0-442A-A465-5F3AAAFE059B}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mxscreen.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{03D82D06-49E2-4E37-9670-BCAB4DBC642D}")) == rclsid || GUIDFromCString(_T("{03D82D06-49E2-4E37-9670-BCAB4DBC642D}")) == rclsid || GUIDFromCString(_T("{7B6F8B69-0925-48F1-AE78-7506D6C3972C}")) == rclsid || GUIDFromCString(_T("{B7BCE5B0-2112-420A-BDFF-178995FBFCA2}")) == rclsid || GUIDFromCString(_T("{BB9CDE7F-AF28-4205-9B3C-789FA7D0F29F}")) == rclsid || GUIDFromCString(_T("{C1630673-8C58-481C-9F15-83F11D8B89F0}")) == rclsid || GUIDFromCString(_T("{C7E094E1-A326-4E33-824D-6598D399DA13}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mxshmaiu.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{96CE7B0D-06B3-42E2-8DB7-CFC6CF0121F6}")) == rclsid || GUIDFromCString(_T("{E4C3B74F-0C02-4D4E-B932-F7A1889B3ABB}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mxshsour.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{B5A7D70F-AE96-4F83-B811-572CA3529323}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mcucltu.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{0C56B154-43F7-48A0-87B2-E9ACC8E1E471}")) == rclsid || GUIDFromCString(_T("{46E00789-37CA-4278-8907-02088898B6B0}")) == rclsid || GUIDFromCString(_T("{BAC04407-3588-42AA-93BE-6D3720E9FB28}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_mcufilecu.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{212CA6D1-E9BB-41cf-BF77-06E000F403A8}")) == rclsid || GUIDFromCString(_T("{57A5353F-2725-440c-BBBC-DB20A1C8A57D}")) == rclsid || GUIDFromCString(_T("{A94662D1-35FD-43d1-BDA3-172CE4D5C236}")) == rclsid || GUIDFromCString(_T("{D0430FE6-1621-41e4-A109-CA5B0C57FE1D}")) == rclsid || GUIDFromCString(_T("{D2598A88-4035-4556-84A2-B0F76A544E92}")) == rclsid || GUIDFromCString(_T("{D6D61C19-8563-4e8e-B755-0589DA6A3077}")) == rclsid || GUIDFromCString(_T("{E9203D3F-6404-40aa-99CC-5267215B81A7}")) == rclsid || GUIDFromCString(_T("{ECCBA771-92F2-497b-98AA-5FAA0BAA2DF6}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"csfcodec\\mpc_wtlvcl.dll"), rclsid, riid, ppv); else if (GUIDFromCString(_T("{2EEB4ADF-4578-4D10-BCA7-BB955F56320A}")) == rclsid) ret = LoadExternalObject( svpTool.GetPlayerPath(L"wmadmod.dll"), rclsid, riid, ppv); if (FAILED(ret)) ret = Real_CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv); return ret; }