00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FDMCustIEBtn.h"
00008 #include "FDMCustButton.h"
00009 #include <shlguid.h>
00010
00011 STDMETHODIMP CFDMCustButton::QueryStatus(const GUID *pCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
00012 {
00013 prgCmds[0].cmdf = OLECMDF_ENABLED;
00014 return S_OK;
00015 }
00016
00017 STDMETHODIMP CFDMCustButton::Exec(const GUID *pCmdGroup, DWORD nCmdID, DWORD nCmdExecOpt, VARIANTARG *pvaIn, VARIANTARG *pvaOut)
00018 {
00019 HKEY key;
00020 DWORD dwSize;
00021 char szURL [10000];
00022 if (ERROR_SUCCESS != RegOpenKey (HKEY_CURRENT_USER, "Software\\OpenDownloadManager.ORG\\Open Download Manager", &key))
00023 return E_FAIL;
00024 dwSize = 10000;
00025 if (ERROR_SUCCESS != RegQueryValueEx (key, "CustSite", NULL, NULL, (LPBYTE) szURL, &dwSize))
00026 return E_FAIL;
00027 szURL [dwSize] = 0;
00028
00029 CComBSTR bstr = szURL;
00030 return m_spBrowser->Navigate (bstr, NULL, NULL, NULL, NULL);
00031 }
00032
00033 STDMETHODIMP CFDMCustButton::SetSite(IUnknown *pUnkSite)
00034 {
00035 if (pUnkSite == NULL)
00036 {
00037 if (m_spBrowser != NULL)
00038 m_spBrowser = NULL;
00039
00040 return S_OK;
00041 }
00042
00043 CComQIPtr <IServiceProvider> spServProv (pUnkSite);
00044
00045 return spServProv->QueryService (SID_SWebBrowserApp, IID_IWebBrowser2,
00046 (void**)&m_spBrowser);
00047 }
00048
00049 STDMETHODIMP CFDMCustButton::GetSite(REFIID riid, void **ppvSite)
00050 {
00051 return m_spBrowser->QueryInterface (riid, ppvSite);
00052 }