You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.7 KiB
97 lines
3.7 KiB
#ifndef _ADBAR_H
|
|
#define _ADBAR_H
|
|
|
|
#include "mehost.h"
|
|
|
|
//Util functions used only in Ads
|
|
HRESULT HrEscapeOtherAdToken(LPSTR pszAdOther, LPSTR pszEncodedString, DWORD cch, DWORD *cchRetCount);
|
|
HRESULT HrProcessAdTokens(LPSTR pszAdInfo, LPCSTR pszToken, LPSTR pszretval, DWORD cch, DWORD *pcchCount);
|
|
|
|
//Strings for Ads
|
|
const CHAR c_szAdPaneOn[] = "On";
|
|
const CHAR c_szAdPaneOff[] = "Off";
|
|
const CHAR c_szAdOther[] = "Other";
|
|
const CHAR c_szRedirectAdUrl[] = "http://services.msn.com/svcs/oe/ads.asp?Version=";
|
|
const CHAR c_szAdSvrFormat[] = "&AdSvr=";
|
|
const CHAR c_szAdOtherFormat[] = "&Other=";
|
|
const CHAR c_szAdRedirectFormat[] = "%s%s%s%s%s%s";
|
|
|
|
const CHAR c_szAdPane[] = "AdPane";
|
|
const CHAR c_szAdSvr[] = "AdSvr";
|
|
const CHAR c_szEqualSign[] = "%3d";
|
|
const CHAR c_szAmpersandSign[] = "%20";
|
|
const CHAR c_szSpaceSign[] = "%26";
|
|
|
|
//Constants used only for Ads
|
|
#define CCH_ADPANE_OFF (sizeof(c_szAdPaneOff) / sizeof(*c_szAdPaneOff))
|
|
#define CCH_ADPANE_ON (sizeof(c_szAdPaneOn) / sizeof(*c_szAdPaneOn))
|
|
#define CCH_REDIRECT_ADURL (sizeof(c_szRedirectAdUrl) / sizeof(*c_szRedirectAdUrl))
|
|
#define CCH_ADSVR_TOKEN_FORMAT (sizeof(c_szAdSvrFormat) / sizeof(*c_szAdSvrFormat))
|
|
#define CCH_OTHER_FORMAT (sizeof(c_szAdOther) / sizeof(*c_szAdOther))
|
|
#define CCH_AD_OTHER_FORMAT (sizeof(c_szAdOtherFormat) / sizeof(*c_szAdOtherFormat))
|
|
|
|
class CAdBar :
|
|
public IDockingWindow,
|
|
public IObjectWithSite,
|
|
public IInputObject
|
|
{
|
|
public:
|
|
CAdBar();
|
|
virtual ~CAdBar();
|
|
|
|
// IUnknown
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID FAR *);
|
|
virtual ULONG STDMETHODCALLTYPE AddRef();
|
|
virtual ULONG STDMETHODCALLTYPE Release();
|
|
|
|
// IOleWindow methods
|
|
virtual STDMETHODIMP GetWindow(HWND *phwnd);
|
|
virtual STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode);
|
|
|
|
// IDockingWindow
|
|
virtual STDMETHODIMP ShowDW(BOOL fShow);
|
|
virtual STDMETHODIMP CloseDW(DWORD dwReserved);
|
|
virtual STDMETHODIMP ResizeBorderDW(LPCRECT prcBorder,
|
|
IUnknown* punkToolbarSite,
|
|
BOOL fReserved);
|
|
|
|
// IObjectWithSite
|
|
virtual STDMETHODIMP SetSite(IUnknown* punkSite);
|
|
virtual STDMETHODIMP GetSite(REFIID riid, LPVOID * ppvSite);
|
|
|
|
// IInputObject
|
|
virtual STDMETHODIMP UIActivateIO(BOOL fActivate, LPMSG lpMsg);
|
|
virtual STDMETHODIMP HasFocusIO();
|
|
virtual STDMETHODIMP TranslateAcceleratorIO(LPMSG lpmsg);
|
|
|
|
// overrides of CBody
|
|
virtual HRESULT STDMETHODCALLTYPE OnUIActivate();
|
|
virtual HRESULT STDMETHODCALLTYPE GetDropTarget(IDropTarget * pDropTarget, IDropTarget ** ppDropTarget);
|
|
|
|
HRESULT HrInit(BSTR bstr);
|
|
HRESULT SetUrl(LPSTR pszUrl);
|
|
BOOL fValidUrl();
|
|
|
|
int GetAdBar_Top() { return( (int) HIWORD(m_dwAdBarPos));}
|
|
int GetAdBar_Bottom() { return( (int) LOWORD(m_dwAdBarPos));}
|
|
|
|
protected:
|
|
LRESULT AdBarWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
static LRESULT CALLBACK ExtAdBarWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
BOOL OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct);
|
|
void OnSize(HWND hwnd, UINT state, int cxClient, int cyClient);
|
|
|
|
private:
|
|
IDockingWindowSite *m_ptbSite;
|
|
HWND m_hwnd;
|
|
HWND m_hwndParent;
|
|
int m_cSize;
|
|
DWORD m_dwAdBarPos;
|
|
LPSTR m_pszUrl;
|
|
BOOL m_fFirstPos;
|
|
BOOL m_fDragging;
|
|
ULONG m_cRef;
|
|
CMimeEditDocHost *m_pMehost;
|
|
};
|
|
|
|
#endif // _ADBAR_H
|