Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

114 lines
4.6 KiB

//*********************************************************************
//* Microsoft Windows **
//* Copyright(c) Microsoft Corp., 1999 **
//*********************************************************************
//
// MSOBWEB.H - Header for the implementation of CObWebBrowser
//
// HISTORY:
//
// 1/27/99 a-jaswed Created.
//
// Class which will call up an IOleSite and the WebOC
// and provide external interfaces.
#ifndef _MSOBWEB_H_
#define _MSOBWEB_H_
#include <exdisp.h>
#include <oleauto.h>
#include "cunknown.h"
#include "obweb.h"
#include "iosite.h"
#include "wmp.h"
class CObWebBrowser : public CUnknown,
public IObWebBrowser,
public IDispatch
{
// Declare the delegating IUnknown.
DECLARE_IUNKNOWN
public:
static HRESULT CreateInstance (IUnknown* pOuterUnknown, CUnknown** ppNewComponent);
// IObWebBrowser Members
virtual HRESULT __stdcall AttachToWindow (HWND hWnd);
virtual HRESULT __stdcall PreTranslateMessage (LPMSG lpMsg);
virtual HRESULT __stdcall Navigate (WCHAR* pszUrl, WCHAR* pszTarget);
virtual HRESULT __stdcall ListenToWebBrowserEvents (IUnknown* pUnk);
virtual HRESULT __stdcall StopListeningToWebBrowserEvents (IUnknown* pUnk);
virtual HRESULT __stdcall get_WebBrowserDoc (IDispatch** ppDisp);
virtual HRESULT __stdcall ObWebShowWindow ();
virtual HRESULT __stdcall SetExternalInterface (IUnknown* pUnk);
virtual HRESULT __stdcall Stop();
STDMETHOD (PlayBackgroundMusic) ();
STDMETHOD (StopBackgroundMusic) ();
STDMETHOD (UnhookScriptErrorHandler) ();
// IDispatch Members
STDMETHOD (GetTypeInfoCount) (UINT* pcInfo);
STDMETHOD (GetTypeInfo) (UINT, LCID, ITypeInfo** );
STDMETHOD (GetIDsOfNames) (REFIID, OLECHAR**, UINT,
LCID, DISPID* );
STDMETHOD (Invoke) (DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
private:
HWND m_hMainWnd;
COleSite* m_pOleSite;
LPOLEOBJECT m_lpOleObject;
IWebBrowser2* m_lpWebBrowser;
DWORD m_dwcpCookie;
DWORD m_dwDrawAspect;
BOOL m_fInPlaceActive;
// Script error reporting stuff
BOOL m_fOnErrorWasHooked;
// Need a convenient place to have a WMP control
COleSite* m_pOleSiteWMP;
LPOLEOBJECT m_lpOleObjectWMP;
IWMPPlayer* m_pWMPPlayer;
// IUnknown
virtual HRESULT __stdcall NondelegatingQueryInterface( const IID& iid, void** ppv);
CObWebBrowser (IUnknown* pOuterUnknown);
virtual ~CObWebBrowser ();
virtual void FinalRelease (); // Notify derived classes that we are releasing
void InitBrowserObject ();
void InPlaceActivate ();
void UIActivate ();
void CloseOleObject ();
void UnloadOleObject ();
HRESULT ConnectToConnectionPoint (IUnknown* punkThis,
REFIID riidEvent,
BOOL fConnect,
IUnknown* punkTarget,
DWORD* pdwCookie,
IConnectionPoint** ppcpOut);
STDMETHOD(onerror) (IN VARIANT* pvarMsg,
IN VARIANT* pvarUrl,
IN VARIANT* pvarLine,
OUT VARIANT_BOOL* pfResult);
};
#define SETDefFormatEtc(fe, cf, med) \
{\
(fe).cfFormat=cf;\
(fe).dwAspect=DVASPECT_CONTENT;\
(fe).ptd=NULL;\
(fe).tymed=med;\
(fe).lindex=-1;\
};
#endif