| Index: webkit/activex_shim/web_activex_container.h
|
| ===================================================================
|
| --- webkit/activex_shim/web_activex_container.h (revision 25626)
|
| +++ webkit/activex_shim/web_activex_container.h (working copy)
|
| @@ -1,191 +0,0 @@
|
| -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef WEBKIT_ACTIVEX_SHIM_WEB_ACTIVEX_CONTAINER_H__
|
| -#define WEBKIT_ACTIVEX_SHIM_WEB_ACTIVEX_CONTAINER_H__
|
| -
|
| -#include <atlbase.h>
|
| -#include <atlcom.h>
|
| -#include <string>
|
| -#include <vector>
|
| -#include "webkit/activex_shim/activex_util.h"
|
| -#include "webkit/activex_shim/ihtmldocument_impl.h"
|
| -#include "webkit/activex_shim/iwebbrowser_impl.h"
|
| -
|
| -namespace activex_shim {
|
| -
|
| -class ActiveXPlugin;
|
| -class WebActiveXSite;
|
| -
|
| -// WebActiveXContainer, as the container of the ActiveX control,
|
| -// implements the basic interfaces need to manage and interact with ActiveX
|
| -// controls.
|
| -// Theoretically this container can hold multiple sites/controls. However,
|
| -// in our case we only use 1 container per control for now.
|
| -//
|
| -// IOleContainer:
|
| -// Required interface.
|
| -// IOleInPlaceFrame
|
| -// Required interface.
|
| -// IHTMLDocument2:
|
| -// WMP will query this interface to get URL.
|
| -// IWebBrowser2:
|
| -// Flash will use IWebBrowser::Navigate to open a URL.
|
| -// IBindHost:
|
| -// Flash will use this interface to resolve URL.
|
| -class WebActiveXContainer : public IOleContainer,
|
| - public IOleInPlaceFrame,
|
| - public IHTMLDocument2Impl,
|
| - public IWebBrowser2Impl,
|
| - public IBindHost {
|
| - public:
|
| - WebActiveXContainer();
|
| - virtual ~WebActiveXContainer();
|
| -
|
| - // Initialize container with related ActiveXPlugin.
|
| - void Init(ActiveXPlugin* plugin);
|
| - // Deactivate and release contained controls. called by outer
|
| - // NoRefIUnknownImpl's destructor.
|
| - void FinalRelease();
|
| -
|
| - // Create ActiveX control together with its site. Do not do any initialization
|
| - // now but we will query the interface that the control can support,
|
| - // to decide whether it is viewable, supports windowless etc.
|
| - HRESULT CreateControlWithSite(const wchar_t* clsid);
|
| - // Called by ActiveXPlugin when it gets browser window first time.
|
| - void set_container_wnd(HWND hwnd) { container_wnd_ = hwnd; }
|
| - HWND container_wnd() { return container_wnd_; }
|
| - // Returns the IUnknown of the first control. NULL if it doesn't have any.
|
| - IUnknown* GetFirstControl();
|
| - // Returns the first site. NULL if it doesn't have any.
|
| - WebActiveXSite* GetFirstSite();
|
| - ActiveXPlugin* plugin() { return plugin_; }
|
| -
|
| - // The containing Window should call this upon messages. Return true if we
|
| - // consumed the message
|
| - bool OnWindowMessage(UINT msg, WPARAM wparam, LPARAM lparam,
|
| - LRESULT* result);
|
| -
|
| - // IUnknown
|
| - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
|
| - void** object);
|
| -
|
| - // IDispatch
|
| - virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT* ctinfo) {
|
| - TRACK_METHOD();
|
| - *ctinfo = 0;
|
| - return S_OK;
|
| - }
|
| - virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT itinfo, LCID lcid,
|
| - ITypeInfo** tinfo) {
|
| - TRACK_METHOD();
|
| - return E_NOTIMPL;
|
| - }
|
| - virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
|
| - REFIID riid,
|
| - LPOLESTR* names,
|
| - UINT cnames,
|
| - LCID lcid,
|
| - DISPID* dispids) {
|
| - TRACK_METHOD();
|
| - return E_NOTIMPL;
|
| - }
|
| - virtual HRESULT STDMETHODCALLTYPE Invoke(
|
| - DISPID dispid,
|
| - REFIID riid,
|
| - LCID lcid,
|
| - WORD flags,
|
| - DISPPARAMS* params,
|
| - VARIANT* result,
|
| - EXCEPINFO* except_info,
|
| - UINT* arg_error) {
|
| - TRACK_METHOD();
|
| - return E_NOTIMPL;
|
| - }
|
| -
|
| - // IParseDisplayName
|
| - virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
|
| - IBindCtx* bc,
|
| - LPOLESTR display_name,
|
| - ULONG* cheaten,
|
| - IMoniker** moniker);
|
| -
|
| - // IOleContainer
|
| - virtual HRESULT STDMETHODCALLTYPE EnumObjects(DWORD flags,
|
| - IEnumUnknown** ppenum);
|
| - virtual HRESULT STDMETHODCALLTYPE LockContainer(BOOL lock);
|
| -
|
| - // IOleWindow
|
| - virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND* wnd);
|
| - virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL enter_mode);
|
| -
|
| - // IOleInPlaceUIWindow
|
| - virtual HRESULT STDMETHODCALLTYPE GetBorder(LPRECT border);
|
| - virtual HRESULT STDMETHODCALLTYPE RequestBorderSpace(
|
| - LPCBORDERWIDTHS border_widths);
|
| - virtual HRESULT STDMETHODCALLTYPE SetBorderSpace(
|
| - LPCBORDERWIDTHS border_widths);
|
| - virtual HRESULT STDMETHODCALLTYPE SetActiveObject(
|
| - IOleInPlaceActiveObject* active_object,
|
| - LPCOLESTR obj_name);
|
| -
|
| - // IOleInPlaceFrame
|
| - virtual HRESULT STDMETHODCALLTYPE InsertMenus(
|
| - HMENU hmenu_shared,
|
| - LPOLEMENUGROUPWIDTHS menu_widths);
|
| - virtual HRESULT STDMETHODCALLTYPE SetMenu(
|
| - HMENU hmenu_shared,
|
| - HOLEMENU hole_menu,
|
| - HWND active_object);
|
| - virtual HRESULT STDMETHODCALLTYPE RemoveMenus(HMENU hmenu_shared);
|
| - virtual HRESULT STDMETHODCALLTYPE SetStatusText(LPCOLESTR status_text);
|
| - virtual HRESULT STDMETHODCALLTYPE EnableModeless(BOOL enable);
|
| - virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
|
| - LPMSG msg,
|
| - WORD id);
|
| -
|
| - // IHTMLDocument2
|
| - virtual HRESULT STDMETHODCALLTYPE get_URL(BSTR* p);
|
| - virtual HRESULT STDMETHODCALLTYPE get_cookie(BSTR* p);
|
| -
|
| - // IWebBrowser
|
| - virtual HRESULT STDMETHODCALLTYPE Navigate(BSTR url,
|
| - VARIANT* flags,
|
| - VARIANT* target_frame_name,
|
| - VARIANT* post_data,
|
| - VARIANT* headers);
|
| -
|
| - // IWebBrowserApp
|
| - virtual HRESULT STDMETHODCALLTYPE get_LocationURL(BSTR* location_url);
|
| -
|
| - // IBindHost
|
| - virtual HRESULT STDMETHODCALLTYPE CreateMoniker(
|
| - LPOLESTR szName,
|
| - IBindCtx* bc,
|
| - IMoniker** mk,
|
| - DWORD reserved);
|
| - virtual HRESULT STDMETHODCALLTYPE MonikerBindToStorage(
|
| - IMoniker* mk,
|
| - IBindCtx* bc,
|
| - IBindStatusCallback* bsc,
|
| - REFIID riid,
|
| - void** obj);
|
| - virtual HRESULT STDMETHODCALLTYPE MonikerBindToObject(
|
| - IMoniker* mk,
|
| - IBindCtx* bc,
|
| - IBindStatusCallback* bsc,
|
| - REFIID riid,
|
| - void** obj);
|
| -
|
| - private:
|
| - ActiveXPlugin* plugin_;
|
| - HWND container_wnd_;
|
| - std::vector<WebActiveXSite*> sites_;
|
| -
|
| - DISALLOW_EVIL_CONSTRUCTORS(WebActiveXContainer);
|
| -};
|
| -
|
| -} // namespace activex_shim
|
| -
|
| -#endif // #ifndef WEBKIT_ACTIVEX_SHIM_WEB_ACTIVEX_CONTAINER_H__
|
|
|