|
|
#ifndef _BROWBAND_H_
#define _BROWBAND_H_
class CBrowserBand : public CToolBand ,public IContextMenu ,public IWinEventHandler ,public IDispatch ,public IBrowserBand ,public IPersistPropertyBag {
public: // *** IUnknown ***
virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj); STDMETHODIMP_(ULONG) AddRef(void) { return CToolBand::AddRef(); }; STDMETHODIMP_(ULONG) Release(void) { return CToolBand::Release(); };
// *** IServiceProvider methods ***
virtual STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, LPVOID* ppvObj);
// *** IDockingWindow methods ***
virtual STDMETHODIMP CloseDW(DWORD dwReserved);
// *** IObjectWithSite methods ***
virtual STDMETHODIMP SetSite(IUnknown* punkSite);
// *** IInputObject methods ***
virtual STDMETHODIMP TranslateAcceleratorIO(LPMSG lpMsg); virtual STDMETHODIMP UIActivateIO(BOOL fActivate, LPMSG lpMsg); // *** IOleCommandTarget methods ***
virtual STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD rgCmds[], OLECMDTEXT *pcmdtext); virtual STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvarargIn, VARIANTARG *pvarargOut);
// *** IDeskBand methods ***
virtual STDMETHODIMP GetBandInfo(DWORD dwBandID, DWORD fViewMode, DESKBANDINFO* pdbi) ;
// *** IPersistPropertyBag methods ***
virtual STDMETHODIMP InitNew() { return E_NOTIMPL; }; virtual STDMETHODIMP Load(IPropertyBag* pPBag, IErrorLog *pErrLog); virtual STDMETHODIMP Save(IPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) { return E_NOTIMPL; };
// *** IPersistStream methods ***
// (others use base class implementation)
virtual STDMETHODIMP GetClassID(CLSID *pClassID); virtual STDMETHODIMP Load(IStream *pStm); virtual STDMETHODIMP Save(IStream *pStm, BOOL fClearDirty);
// *** IWinEventHandler methods ***
virtual STDMETHODIMP OnWinEvent(HWND hwnd, UINT dwMsg, WPARAM wParam, LPARAM lParam, LRESULT *plres); virtual STDMETHODIMP IsWindowOwner(HWND hwnd);
// *** IContextMenu methods ***
STDMETHOD(QueryContextMenu)(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO lpici); STDMETHOD(GetCommandString)(UINT_PTR idCmd, UINT uType, UINT * pwReserved, LPSTR pszName, UINT cchMax) { return E_NOTIMPL; };
// *** IDispatch methods ***
virtual STDMETHODIMP GetTypeInfoCount(UINT *pctinfo){return(E_NOTIMPL);} virtual STDMETHODIMP GetTypeInfo(UINT itinfo,LCID lcid,ITypeInfo **pptinfo){return(E_NOTIMPL);} virtual STDMETHODIMP GetIDsOfNames(REFIID riid,OLECHAR **rgszNames,UINT cNames, LCID lcid, DISPID * rgdispid){return(E_NOTIMPL);} virtual STDMETHODIMP Invoke(DISPID dispidMember,REFIID riid,LCID lcid,WORD wFlags, DISPPARAMS * pdispparams, VARIANT * pvarResult, EXCEPINFO * pexcepinfo,UINT * puArgErr);
// *** IBrowserBand methods ***
STDMETHOD(GetObjectBB)(THIS_ REFIID riid, LPVOID *ppv); STDMETHOD(SetBrowserBandInfo)(THIS_ DWORD dwMask, PBROWSERBANDINFO pbbi); STDMETHOD(GetBrowserBandInfo)(THIS_ DWORD dwMask, PBROWSERBANDINFO pbbi);
protected: CBrowserBand(); virtual ~CBrowserBand();
friend HRESULT CBrowserBand_CreateInstance(IUnknown *punkOuter, IUnknown **ppunk, LPCOBJECTINFO poi); // for ctor
friend IDeskBand* CBrowserBand_Create(LPCITEMIDLIST pidl);
virtual void _Connect(BOOL fConnect); HRESULT _CreateOCHost(); virtual void _InitBrowser(void); virtual HRESULT _NavigateOC(); LRESULT _OnNotify(LPNMHDR pnm); SIZE _GetCurrentSize();
#ifdef DEBUG
void _DebugTestCode(); #endif
void _MakeSizesConsistent(LPSIZE psizeCur);
IWebBrowser2 * _pauto; IOleInPlaceActiveObject * _poipao; LPITEMIDLIST _pidl; DWORD _dwcpCookie; WCHAR _wszTitle[40]; BOOL _fBlockSIDProxy:1; // SID_SProxyBrowser
BOOL _fBlockDrop:1; // should we block drop on contents
BOOL _fCustomTitle:1; DWORD _dwModeFlags; SIZE _sizeMin; SIZE _sizeMax; };
#endif // _BROWBAND_H_
|