|
|
#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
|