Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(262)

Side by Side Diff: chrome_frame/in_place_menu.h

Issue 6825055: Include base/win/scoped_comptr.h instead of base/scoped_comptr_win.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: revert bad indentation, rebase Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome_frame/http_negotiate.cc ('k') | chrome_frame/plugin_url_request.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_FRAME_IN_PLACE_MENU_H_ 5 #ifndef CHROME_FRAME_IN_PLACE_MENU_H_
6 #define CHROME_FRAME_IN_PLACE_MENU_H_ 6 #define CHROME_FRAME_IN_PLACE_MENU_H_
7 7
8 // in_place_menu.h : menu merging implementation 8 // in_place_menu.h : menu merging implementation
9 // 9 //
10 // This file is a modified version of the menu.h file, which is 10 // This file is a modified version of the menu.h file, which is
11 // part of the ActiveDoc MSDN sample. The modifications are largely 11 // part of the ActiveDoc MSDN sample. The modifications are largely
12 // conversions to Google coding guidelines. Below is the original header 12 // conversions to Google coding guidelines. Below is the original header
13 // from the file. 13 // from the file.
14 14
15 // This is a part of the Active Template Library. 15 // This is a part of the Active Template Library.
16 // Copyright (c) Microsoft Corporation. All rights reserved. 16 // Copyright (c) Microsoft Corporation. All rights reserved.
17 // 17 //
18 // This source code is only intended as a supplement to the 18 // This source code is only intended as a supplement to the
19 // Active Template Library Reference and related 19 // Active Template Library Reference and related
20 // electronic documentation provided with the library. 20 // electronic documentation provided with the library.
21 // See these sources for detailed information regarding the 21 // See these sources for detailed information regarding the
22 // Active Template Library product. 22 // Active Template Library product.
23 23
24 #include "base/logging.h" 24 #include "base/logging.h"
25 #include "base/scoped_comptr_win.h" 25 #include "base/win/scoped_comptr.h"
26 26
27 template <class T> 27 template <class T>
28 class InPlaceMenu { 28 class InPlaceMenu {
29 public: 29 public:
30 InPlaceMenu() : shared_menu_(NULL), ole_menu_(NULL), our_menu_(NULL) { 30 InPlaceMenu() : shared_menu_(NULL), ole_menu_(NULL), our_menu_(NULL) {
31 } 31 }
32 32
33 ~InPlaceMenu() { 33 ~InPlaceMenu() {
34 InPlaceMenuDestroy(); 34 InPlaceMenuDestroy();
35 } 35 }
36 36
37 HRESULT InPlaceMenuCreate(LPCWSTR menu_name) { 37 HRESULT InPlaceMenuCreate(LPCWSTR menu_name) {
38 // We might already have an in-place menu set, because we set menus 38 // We might already have an in-place menu set, because we set menus
39 // IOleDocumentView::UIActivate as well as in 39 // IOleDocumentView::UIActivate as well as in
40 // IOleInPlaceActiveObject::OnDocWindowActivate. If we have already 40 // IOleInPlaceActiveObject::OnDocWindowActivate. If we have already
41 // done our work, just return silently 41 // done our work, just return silently
42 if (ole_menu_ || shared_menu_) 42 if (ole_menu_ || shared_menu_)
43 return S_OK; 43 return S_OK;
44 44
45 ScopedComPtr<IOleInPlaceFrame> in_place_frame; 45 base::win::ScopedComPtr<IOleInPlaceFrame> in_place_frame;
46 GetInPlaceFrame(in_place_frame.Receive()); 46 GetInPlaceFrame(in_place_frame.Receive());
47 // We have no IOleInPlaceFrame, no menu merging possible 47 // We have no IOleInPlaceFrame, no menu merging possible
48 if (!in_place_frame) { 48 if (!in_place_frame) {
49 NOTREACHED(); 49 NOTREACHED();
50 return E_FAIL; 50 return E_FAIL;
51 } 51 }
52 // Create a blank menu and ask the container to add 52 // Create a blank menu and ask the container to add
53 // its menus into the OLEMENUGROUPWIDTHS structure 53 // its menus into the OLEMENUGROUPWIDTHS structure
54 shared_menu_ = ::CreateMenu(); 54 shared_menu_ = ::CreateMenu();
55 OLEMENUGROUPWIDTHS mgw = {0}; 55 OLEMENUGROUPWIDTHS mgw = {0};
56 HRESULT hr = in_place_frame->InsertMenus(shared_menu_, &mgw); 56 HRESULT hr = in_place_frame->InsertMenus(shared_menu_, &mgw);
57 if (FAILED(hr)) { 57 if (FAILED(hr)) {
58 ::DestroyMenu(shared_menu_); 58 ::DestroyMenu(shared_menu_);
59 shared_menu_ = NULL; 59 shared_menu_ = NULL;
60 return hr; 60 return hr;
61 } 61 }
62 // Insert our menus 62 // Insert our menus
63 our_menu_ = LoadMenu(_AtlBaseModule.GetResourceInstance(),menu_name); 63 our_menu_ = LoadMenu(_AtlBaseModule.GetResourceInstance(),menu_name);
64 MergeMenus(shared_menu_, our_menu_, &mgw.width[0], 1); 64 MergeMenus(shared_menu_, our_menu_, &mgw.width[0], 1);
65 // Send the menu to the client 65 // Send the menu to the client
66 ole_menu_ = (HMENU)OleCreateMenuDescriptor(shared_menu_, &mgw); 66 ole_menu_ = (HMENU)OleCreateMenuDescriptor(shared_menu_, &mgw);
67 T* t = static_cast<T*>(this); 67 T* t = static_cast<T*>(this);
68 in_place_frame->SetMenu(shared_menu_, ole_menu_, t->m_hWnd); 68 in_place_frame->SetMenu(shared_menu_, ole_menu_, t->m_hWnd);
69 return S_OK; 69 return S_OK;
70 } 70 }
71 71
72 HRESULT InPlaceMenuDestroy() { 72 HRESULT InPlaceMenuDestroy() {
73 ScopedComPtr<IOleInPlaceFrame> in_place_frame; 73 base::win::ScopedComPtr<IOleInPlaceFrame> in_place_frame;
74 GetInPlaceFrame(in_place_frame.Receive()); 74 GetInPlaceFrame(in_place_frame.Receive());
75 if (in_place_frame) { 75 if (in_place_frame) {
76 in_place_frame->RemoveMenus(shared_menu_); 76 in_place_frame->RemoveMenus(shared_menu_);
77 in_place_frame->SetMenu(NULL, NULL, NULL); 77 in_place_frame->SetMenu(NULL, NULL, NULL);
78 } 78 }
79 if (ole_menu_) { 79 if (ole_menu_) {
80 OleDestroyMenuDescriptor(ole_menu_); 80 OleDestroyMenuDescriptor(ole_menu_);
81 ole_menu_ = NULL; 81 ole_menu_ = NULL;
82 } 82 }
83 if (shared_menu_) { 83 if (shared_menu_) {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 NOTREACHED(); 170 NOTREACHED();
171 return E_POINTER; 171 return E_POINTER;
172 } 172 }
173 T* t = static_cast<T*>(this); 173 T* t = static_cast<T*>(this);
174 HRESULT hr = E_FAIL; 174 HRESULT hr = E_FAIL;
175 if (S_OK != t->GetInPlaceFrame(in_place_frame)) { 175 if (S_OK != t->GetInPlaceFrame(in_place_frame)) {
176 // We weren't given an IOleInPlaceFrame pointer, so 176 // We weren't given an IOleInPlaceFrame pointer, so
177 // we'll have to get it ourselves. 177 // we'll have to get it ourselves.
178 if (t->m_spInPlaceSite) { 178 if (t->m_spInPlaceSite) {
179 t->frame_info_.cb = sizeof(OLEINPLACEFRAMEINFO); 179 t->frame_info_.cb = sizeof(OLEINPLACEFRAMEINFO);
180 ScopedComPtr<IOleInPlaceUIWindow> in_place_ui_window; 180 base::win::ScopedComPtr<IOleInPlaceUIWindow> in_place_ui_window;
181 RECT position_rect = {0}; 181 RECT position_rect = {0};
182 RECT clip_rect = {0}; 182 RECT clip_rect = {0};
183 hr = t->m_spInPlaceSite->GetWindowContext(in_place_frame, 183 hr = t->m_spInPlaceSite->GetWindowContext(in_place_frame,
184 in_place_ui_window.Receive(), 184 in_place_ui_window.Receive(),
185 &position_rect, &clip_rect, 185 &position_rect, &clip_rect,
186 &t->frame_info_); 186 &t->frame_info_);
187 } 187 }
188 } 188 }
189 return hr; 189 return hr;
190 } 190 }
191 191
192 protected: 192 protected:
193 // The OLE menu descriptor created by the OleCreateMenuDescriptor 193 // The OLE menu descriptor created by the OleCreateMenuDescriptor
194 HMENU ole_menu_; 194 HMENU ole_menu_;
195 // The shared menu that we pass to IOleInPlaceFrame::SetMenu 195 // The shared menu that we pass to IOleInPlaceFrame::SetMenu
196 HMENU shared_menu_; 196 HMENU shared_menu_;
197 // Our menu resource that we want to insert 197 // Our menu resource that we want to insert
198 HMENU our_menu_; 198 HMENU our_menu_;
199 }; 199 };
200 200
201 #endif // CHROME_FRAME_IN_PLACE_MENU_H_ 201 #endif // CHROME_FRAME_IN_PLACE_MENU_H_
202 202
OLDNEW
« no previous file with comments | « chrome_frame/http_negotiate.cc ('k') | chrome_frame/plugin_url_request.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698