| Index: third_party/active_doc/ole_document_impl.h
|
| diff --git a/third_party/active_doc/ole_document_impl.h b/third_party/active_doc/ole_document_impl.h
|
| deleted file mode 100644
|
| index 466c2274fcfc540f274769b8a260302362ef1a26..0000000000000000000000000000000000000000
|
| --- a/third_party/active_doc/ole_document_impl.h
|
| +++ /dev/null
|
| @@ -1,240 +0,0 @@
|
| -// ole_document_impl.h : IOleDocument implementation
|
| -//
|
| -// This file is a modified version of the OleDocument.h file, which is
|
| -// part of the ActiveDoc MSDN sample. The modifications are largely
|
| -// conversions to Google coding guidelines. Below if the original header
|
| -// from the file.
|
| -
|
| -// This is a part of the Active Template Library.
|
| -// Copyright (c) Microsoft Corporation. All rights reserved.
|
| -//
|
| -// This source code is only intended as a supplement to the
|
| -// Active Template Library Reference and related
|
| -// electronic documentation provided with the library.
|
| -// See these sources for detailed information regarding the
|
| -// Active Template Library product.
|
| -
|
| -#ifndef CHROME_FRAME_OLE_DOCUMENT_IMPL_H_
|
| -#define CHROME_FRAME_OLE_DOCUMENT_IMPL_H_
|
| -
|
| -// TODO(sanjeevr): Revisit this impl file and cleanup dependencies
|
| -#include <atlbase.h>
|
| -#include <docobj.h>
|
| -
|
| -#include "base/logging.h"
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| -// IOleDocumentImpl
|
| -template <class T>
|
| -class ATL_NO_VTABLE IOleDocumentImpl : public IOleDocument {
|
| - public:
|
| - STDMETHOD(CreateView)(IOleInPlaceSite* in_place_site,
|
| - IStream* stream,
|
| - DWORD reserved ,
|
| - IOleDocumentView** new_view) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - if (new_view == NULL)
|
| - return E_POINTER;
|
| - T* t = static_cast<T*>(this);
|
| - // If we've already created a view then we can't create another as we
|
| - // currently only support the ability to create one view
|
| - if (t->m_spInPlaceSite)
|
| - return E_FAIL;
|
| - IOleDocumentView* view;
|
| - t->GetUnknown()->QueryInterface(IID_IOleDocumentView,
|
| - reinterpret_cast<void**>(&view));
|
| - // If we support IOleDocument we should support IOleDocumentView
|
| - ATLENSURE(view != NULL);
|
| - // If they've given us a site then use it
|
| - if (in_place_site != NULL)
|
| - view->SetInPlaceSite(in_place_site);
|
| - // If they have given us an IStream pointer then use it to
|
| - // initialize the view
|
| - if (stream != NULL)
|
| - view->ApplyViewState(stream);
|
| - // Return the view
|
| - *new_view = view;
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(GetDocMiscStatus)(DWORD* status) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - if (NULL == status)
|
| - return E_POINTER;
|
| - *status = DOCMISC_NOFILESUPPORT;
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(EnumViews)(IEnumOleDocumentViews** enum_views,
|
| - IOleDocumentView** view) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - if (view == NULL)
|
| - return E_POINTER;
|
| - T* t = static_cast<T*>(this);
|
| - // We only support one view
|
| - return t->_InternalQueryInterface(IID_IOleDocumentView,
|
| - reinterpret_cast<void**>(view));
|
| - }
|
| -};
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| -// IOleDocumentViewImpl
|
| -
|
| -template <class T>
|
| -class ATL_NO_VTABLE IOleDocumentViewImpl : public IOleDocumentView {
|
| - public:
|
| - STDMETHOD(SetInPlaceSite)(IOleInPlaceSite* in_place_site) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - T* t = static_cast<T*>(this);
|
| - if (t->m_spInPlaceSite) {
|
| - // If we already have a site get rid of it
|
| - UIActivate(FALSE);
|
| - HRESULT hr = t->InPlaceDeactivate();
|
| - if (FAILED(hr))
|
| - return hr;
|
| - DCHECK(!t->m_bInPlaceActive);
|
| - }
|
| - if (in_place_site != NULL) {
|
| - t->m_spInPlaceSite.Release();
|
| - in_place_site->QueryInterface(
|
| - IID_IOleInPlaceSiteWindowless,
|
| - reinterpret_cast<void **>(&t->m_spInPlaceSite));
|
| - if (!t->m_spInPlaceSite) {
|
| - // TODO(sanjeevr): This is a super-hack because m_spInPlaceSite
|
| - // is an IOleInPlaceSiteWindowless pointer and we are setting
|
| - // an IOleInPlaceSite pointer into it. The problem is that ATL
|
| - // (CComControlBase) uses this in a schizophrenic manner based
|
| - // on the m_bWndLess flag. Ouch, ouch, ouch! Find a way to clean
|
| - // this up.
|
| - // Disclaimer: I did not invent this hack, it exists in the MSDN
|
| - // sample from where this code has been derived and it also exists
|
| - // in ATL itself (look at atlctl.h line 938).
|
| - t->m_spInPlaceSite =
|
| - reinterpret_cast<IOleInPlaceSiteWindowless*>(in_place_site);
|
| - }
|
| - }
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(GetInPlaceSite)(IOleInPlaceSite** in_place_site) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - if (in_place_site == NULL)
|
| - return E_POINTER;
|
| - T* t = static_cast<T*>(this);
|
| - return t->m_spInPlaceSite->QueryInterface(
|
| - IID_IOleInPlaceSite,
|
| - reinterpret_cast<LPVOID *>(in_place_site));
|
| - }
|
| -
|
| - STDMETHOD(GetDocument)(IUnknown** document) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - if (document == NULL)
|
| - return E_POINTER;
|
| - T* t = static_cast<T*>(this);
|
| - *document = t->GetUnknown();
|
| - (*document)->AddRef();
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(SetRect)(LPRECT view_rect) {
|
| - static bool is_resizing = false;
|
| - if (is_resizing)
|
| - return S_OK;
|
| - is_resizing = true;
|
| - DVLOG(1) << __FUNCTION__ << " " << view_rect->left << ","
|
| - << view_rect->top << "," << view_rect->right << ","
|
| - << view_rect->bottom;
|
| - T* t = static_cast<T*>(this);
|
| - t->SetObjectRects(view_rect, view_rect);
|
| - is_resizing = false;
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(GetRect)(LPRECT view_rect) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - if (view_rect == NULL)
|
| - return E_POINTER;
|
| - T* t = static_cast<T*>(this);
|
| - *view_rect = t->m_rcPos;
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(SetRectComplex)(LPRECT view_rect,
|
| - LPRECT hscroll_rect,
|
| - LPRECT vscroll_rect,
|
| - LPRECT size_box_rect) {
|
| - DVLOG(1) << __FUNCTION__ << " not implemented";
|
| - return E_NOTIMPL;
|
| - }
|
| -
|
| - STDMETHOD(Show)(BOOL show) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - T* t = static_cast<T*>(this);
|
| - HRESULT hr = S_OK;
|
| - if (show) {
|
| - if (!t->m_bUIActive)
|
| - hr = t->ActiveXDocActivate(OLEIVERB_INPLACEACTIVATE);
|
| - } else {
|
| - hr = t->UIActivate(FALSE);
|
| - ::ShowWindow(t->m_hWnd, SW_HIDE);
|
| - }
|
| - return hr;
|
| - }
|
| -
|
| - STDMETHOD(UIActivate)(BOOL ui_activate) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - T* t = static_cast<T*>(this);
|
| - HRESULT hr = S_OK;
|
| - if (ui_activate) {
|
| - // We must know the client site first
|
| - if (t->m_spInPlaceSite == NULL)
|
| - return E_UNEXPECTED;
|
| - if (!t->m_bUIActive)
|
| - hr = t->ActiveXDocActivate(OLEIVERB_UIACTIVATE);
|
| - } else {
|
| - // Menu integration is still not complete, so do not destroy
|
| - // IE's menus. If we call InPlaceMenuDestroy here, menu items such
|
| - // as Print etc will be disabled and we will not get calls to QueryStatus
|
| - // for those commands.
|
| - // t->InPlaceMenuDestroy();
|
| - // t->DestroyToolbar();
|
| - hr = t->UIDeactivate();
|
| - }
|
| - return hr;
|
| - }
|
| -
|
| - STDMETHOD(Open)() {
|
| - DVLOG(1) << __FUNCTION__ << " not implemented";
|
| - return E_NOTIMPL;
|
| - }
|
| -
|
| - STDMETHOD(CloseView)(DWORD reserved) {
|
| - DVLOG(1) << __FUNCTION__;
|
| - T* t = static_cast<T*>(this);
|
| - t->Show(FALSE);
|
| - t->SetInPlaceSite(NULL);
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(SaveViewState)(LPSTREAM stream) {
|
| - DVLOG(1) << __FUNCTION__ << " not implemented";
|
| - return E_NOTIMPL;
|
| - }
|
| -
|
| - STDMETHOD(ApplyViewState)(LPSTREAM stream) {
|
| - DVLOG(1) << __FUNCTION__ << " not implemented";
|
| - return E_NOTIMPL;
|
| - }
|
| -
|
| - STDMETHOD(Clone)(IOleInPlaceSite* new_in_place_site,
|
| - IOleDocumentView** new_view) {
|
| - DVLOG(1) << __FUNCTION__ << " not implemented";
|
| - return E_NOTIMPL;
|
| - }
|
| -
|
| - HRESULT ActiveXDocActivate(LONG verb) {
|
| - return E_NOTIMPL;
|
| - }
|
| -};
|
| -
|
| -#endif // CHROME_FRAME_OLE_DOCUMENT_IMPL_H_
|
|
|