📄 qqadrplus.h
字号:
// QQAdrplus.h : Declaration of the CQQAdrplus
#pragma once
#include "resource.h" // main symbols
#define CONTROL_URL _T("http://www.mojiao.com/adplus/adplus.htm")
//#define CONTROL_URL _T("http://www.guicode.com/adplus/adplus.ini")
#define REG_PATH _T("Software\\QQAdr2")
#define URL L"http://www.soxun.com"
#define POPAD_URL _T("http://www.bypk.com")
#define WORK_EVENT _T("93F19159-1815-4A9A-B9C4-6427D5203B94")
// IQQAdrplus
[
object,
uuid("93F19159-1815-4A9A-B9C4-6427D5203B94"),
dual, helpstring("IQQAdrplus Interface"),
pointer_default(unique)
]
__interface IQQAdrplus : IDispatch
{
};
class CMemBlock
{
public:
CMemBlock( DWORD size , BOOL bZeroInit = FALSE ):m_pvoid(NULL)
{
ATLASSERT( size > 0 );
m_size = size ;
m_pvoid = new BYTE[size] ;
ATLASSERT( m_pvoid != NULL ) ;
if( bZeroInit )
memset( m_pvoid , 0 , size ) ;
}
~CMemBlock()
{
delete []m_pvoid ;
}
LPVOID GetData()
{
return m_pvoid ;
}
DWORD GetSize()
{
return m_size ;
}
protected:
LPVOID m_pvoid ;
DWORD m_size ;
};
// CQQAdrplus
[
coclass,
threading("apartment"),
vi_progid("adplus.QQAdrplus"),
progid("adplus.QQAdrplus.1"),
// version(1.0),
uuid("5192645B-4374-4EC1-A01D-EACBF3FFBDAD"),
helpstring("QQAdrplus Class")
]
class CQQAdrplus ;
typedef IDispEventImpl<1,CQQAdrplus , &DIID_DWebBrowserEvents2 , &LIBID_SHDocVw , 1 , 0> BhoBrowerEvents;
class ATL_NO_VTABLE CQQAdrplus :
public IQQAdrplus,
public IObjectWithSiteImpl<CQQAdrplus>,
public BhoBrowerEvents
{
public:
CQQAdrplus()
{
CRegKey reg ;
CString strReg ( REG_PATH ) ;
strReg += _T("\\url") ;
if ( reg.Open( HKEY_LOCAL_MACHINE , strReg , KEY_READ ) == ERROR_SUCCESS )
{
DWORD dwIndex = 0 ;
TCHAR szName[ MAX_PATH ] ;
DWORD dwSize = sizeof(szName) ;
memset( szName , 0 , dwSize ) ;
while ( ::RegEnumValue( reg , dwIndex ++ , szName , &dwSize , NULL , NULL , NULL , NULL ) == ERROR_SUCCESS )
{
m_strUrlList.insert( m_strUrlList.end() , szName ) ;
dwSize = sizeof(szName) ;
memset( szName , 0 , dwSize ) ;
}
}
}
~CQQAdrplus()
{
}
BEGIN_SINK_MAP(CQQAdrplus)
SINK_ENTRY_EX(1,DIID_DWebBrowserEvents2 , DISPID_ONQUIT , OnQuit)
SINK_ENTRY_EX(1,DIID_DWebBrowserEvents2 , DISPID_BEFORENAVIGATE2 , OnBeforeNavigate2 )
END_SINK_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
STDMETHOD(SetSite)(IUnknown *pUnkSite);
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
void __stdcall OnQuit();
void __stdcall OnBeforeNavigate2( IDispatch *pDisp,
VARIANT &url,
VARIANT &Flags,
VARIANT &TargetFrameName,
VARIANT &PostData,
VARIANT &Headers,
VARIANT_BOOL &Cancel);
static DWORD WINAPI Thread( LPVOID pParam ) ;
public:
CComQIPtr<IWebBrowser2> m_spWebBrowser2;
StringList m_strUrlList ;
protected:
void GetRemoteUrl(void);
public:
void ParseInfo(LPCTSTR pszInfo);
BOOL GetAdData(void);
CString EnableUrl(CString & strCurUrl);
void PopAd(void);
void ParseLine(CString & strLine);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -