84 lines
2.8 KiB
C++
84 lines
2.8 KiB
C++
/**************************************************************\
|
|
FILE: bandprxy.h
|
|
|
|
DESCRIPTION:
|
|
The CBandProxy class will allow bands to navigate a
|
|
generic browser window. This will work correctly if the
|
|
band is tied to the Browser Window because it's a ToolBar.
|
|
Or if it's a toolband, each time a navigation happens,
|
|
the top most browser window needs to be found or a new window
|
|
created.
|
|
\**************************************************************/
|
|
|
|
#ifndef _BANDPRXY_H
|
|
#define _BANDPRXY_H
|
|
|
|
#include "bands.h"
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
// #DEFINEs
|
|
#define SEC_DEFAULT 0x0000
|
|
#define SEC_WAIT 0x0002
|
|
#define SEC_SHELLSERVICEOBJECTS 0x0004
|
|
#define SEC_NOUI 0x0008
|
|
|
|
|
|
/**************************************************************\
|
|
CLASS: CBandProxy
|
|
|
|
DESCRIPTION:
|
|
The CBandProxy class will allow bands to navigate a
|
|
generic browser window. This will work correctly if the
|
|
band is tied to the Browser Window because it's a ToolBar.
|
|
Or if it's a toolband, each time a navigation happens,
|
|
the top most browser window needs to be found or a new window
|
|
created.
|
|
\**************************************************************/
|
|
class CBandProxy
|
|
: public IBandProxy // (Includes IUnknown)
|
|
{
|
|
public:
|
|
//////////////////////////////////////////////////////
|
|
// Public Interfaces
|
|
//////////////////////////////////////////////////////
|
|
|
|
// *** IUnknown ***
|
|
virtual STDMETHODIMP_(ULONG) AddRef(void);
|
|
virtual STDMETHODIMP_(ULONG) Release(void);
|
|
virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
|
|
|
|
// *** IBandProxy methods ***
|
|
virtual STDMETHODIMP SetSite(IUnknown* punkSite);
|
|
virtual STDMETHODIMP CreateNewWindow(IUnknown** ppunk);
|
|
virtual STDMETHODIMP GetBrowserWindow(IUnknown** ppunk);
|
|
virtual STDMETHODIMP IsConnected();
|
|
virtual STDMETHODIMP NavigateToPIDL(LPCITEMIDLIST pidl);
|
|
virtual STDMETHODIMP NavigateToURL(LPCWSTR wzUrl, VARIANT * Flags);
|
|
|
|
// Constructor / Destructor
|
|
CBandProxy();
|
|
~CBandProxy(void);
|
|
|
|
// Friend Functions
|
|
friend HRESULT CBandProxy_CreateInstance(IUnknown *punkOuter, IUnknown **ppunk, LPCOBJECTINFO poi);
|
|
|
|
protected:
|
|
//////////////////////////////////////////////////////
|
|
// Private Member Variables
|
|
//////////////////////////////////////////////////////
|
|
int _cRef;
|
|
|
|
BITBOOL _fHaveBrowser : 1; // We haven't tried to get _pwb
|
|
IWebBrowser2 * _pwb;
|
|
IUnknown * _punkSite;
|
|
|
|
HRESULT _NavigateToUrlOLE(BSTR bstrURL, VARIANT * Flags);
|
|
HRESULT MakeBrowserVisible(IUnknown* punk);
|
|
IWebBrowser2* _GetBrowserWindow();
|
|
IWebBrowser2* _GetBrowser();
|
|
};
|
|
|
|
|
|
#endif /* _BANDPRXY_H */
|