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

Unified Diff: goopdate/com_proxy.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « goopdate/com_forwarder.cc ('k') | goopdate/com_wrapper_creator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: goopdate/com_proxy.h
diff --git a/goopdate/com_proxy.h b/goopdate/com_proxy.h
deleted file mode 100644
index 5d88bbfbcfd357f3f0ef00470b7928b81cdb3541..0000000000000000000000000000000000000000
--- a/goopdate/com_proxy.h
+++ /dev/null
@@ -1,234 +0,0 @@
-// Copyright 2010 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// ========================================================================
-
-#ifndef OMAHA_GOOPDATE_COM_PROXY_H_
-#define OMAHA_GOOPDATE_COM_PROXY_H_
-
-#include <atlbase.h>
-#include <atlcom.h>
-#include <atlctl.h>
-#include "base/basictypes.h"
-#include "omaha/base/atlregmapex.h"
-#include "omaha/base/debug.h"
-#include "omaha/base/logging.h"
-#include "omaha/base/scope_guard.h"
-#include "omaha/common/goopdate_utils.h"
-#include "omaha/goopdate/google_update_ps_resource.h"
-#include "goopdate/omaha3_idl.h"
-
-namespace omaha {
-
-// All[*] coclasses in omaha3_idl.idl do the following:
-// * Derive from StdMarshalInfo.
-// * Construct StdMarshalInfo(is_machine).
-// * Add a COM_INTERFACE_ENTRY(IStdMarshalInfo)
-//
-// [*] The proxy classes GoogleComProxy[XXX]Class, being proxies, do not follow
-// the steps above. In addition, the CurrentStateClass has a custom marshaler
-// and does not follow the steps above.
-//
-const IID kIIDsToRegister[] = {
- __uuidof(IGoogleUpdate3),
- __uuidof(IAppBundle),
- __uuidof(IApp),
- __uuidof(IAppVersion),
- __uuidof(IPackage),
- __uuidof(ICurrentState),
-
- __uuidof(IRegistrationUpdateHook),
-
- __uuidof(IGoogleUpdate3Web),
- __uuidof(IGoogleUpdate3WebSecurity),
- __uuidof(IAppBundleWeb),
- __uuidof(IAppWeb),
- __uuidof(IAppVersionWeb),
- __uuidof(ICoCreateAsync),
- __uuidof(ICoCreateAsyncStatus),
- __uuidof(ICredentialDialog),
-
- // Omaha2 IIDs:
- __uuidof(IBrowserHttpRequest2),
- __uuidof(IProcessLauncher),
- __uuidof(IProgressWndEvents),
- __uuidof(IJobObserver),
- __uuidof(IGoogleUpdate),
- __uuidof(IGoogleUpdateCore),
-};
-
-struct ComProxyMode {
- static bool is_machine() {
- return goopdate_utils::IsRunningFromOfficialGoopdateDir(true);
- }
-
- static const GUID& class_id() {
- return is_machine() ? __uuidof(GoogleComProxyMachineClass) :
- __uuidof(GoogleComProxyUserClass);
- }
-
- static const GUID ps_clsid() {
- if (is_machine()) {
- GUID proxy_clsid = PROXY_CLSID_IS_MACHINE;
- return proxy_clsid;
- } else {
- GUID proxy_clsid = PROXY_CLSID_IS_USER;
- return proxy_clsid;
- }
- }
-
- static const TCHAR* const hk_root() {
- return is_machine() ? _T("HKLM") : _T("HKCU");
- }
-};
-
-#pragma warning(push)
-
-// C4640: construction of local static object is not thread-safe
-#pragma warning(disable : 4640)
-
-// C4505: unreferenced IUnknown local functions have been removed
-#pragma warning(disable : 4505)
-
-class ATL_NO_VTABLE ComProxy
- : public CComObjectRootEx<CComMultiThreadModel>,
- public CComCoClass<ComProxy>,
- public IUnknown {
- public:
- ComProxy() {
- CORE_LOG(L2, (_T("[ComProxy::ComProxy]")));
- }
-
- DECLARE_GET_CONTROLLING_UNKNOWN()
- DECLARE_REGISTRY_RESOURCEID_EX(IDR_COM_PROXY_RGS);
-
-#pragma warning(push)
-// Construction of local static object is not thread-safe
-#pragma warning(disable:4640)
- BEGIN_REGISTRY_MAP()
- REGMAP_ENTRY(_T("HKROOT"), ComProxyMode::hk_root())
- REGMAP_ENTRY(_T("CLSID"), ComProxyMode::class_id())
- END_REGISTRY_MAP()
-#pragma warning(pop)
-
- BEGIN_COM_MAP(ComProxy)
- COM_INTERFACE_ENTRY(IUnknown)
- COM_INTERFACE_ENTRY_FUNC(__uuidof(IClientSecurity), 0, QueryInternal)
- COM_INTERFACE_ENTRY_FUNC(__uuidof(IMultiQI), 0, QueryInternal)
- COM_INTERFACE_ENTRY_AGGREGATE_BLIND(proxy_manager_.p)
- END_COM_MAP()
-
- static HRESULT WINAPI QueryInternal(void* ptr, REFIID iid,
- void** retval, DWORD_PTR) {
- ASSERT1(ptr);
- ASSERT1(retval);
- CORE_LOG(L2, (_T("[ComProxy::QueryInternal][%s]"), GuidToString(iid)));
-
- ComProxy* this_ptr = reinterpret_cast<ComProxy*>(ptr);
- return this_ptr->proxy_internal_unknown_->QueryInternalInterface(iid,
- retval);
- }
-
- HRESULT FinalConstruct() {
- CORE_LOG(L2, (_T("[ComProxy::FinalConstruct]")));
-
- HRESULT hr = RegisterProxyStubs();
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[RegisterProxyStubs failed][0x%x]"), hr));
- // If explicit registration failed, the registry-based proxy lookup
- // mechanism may still work. Fall through.
- }
-
- hr = ::CoGetStdMarshalEx(GetControllingUnknown(),
- SMEXF_HANDLER,
- &proxy_manager_);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[::CoGetStdMarshalEx failed][0x%x]"), hr));
- return hr;
- }
-
- return proxy_manager_.QueryInterface(&proxy_internal_unknown_);
- }
-
- void FinalRelease() {
- CORE_LOG(L2, (_T("[ComProxy::FinalRelease]")));
- }
-
- static HRESULT RegisterProxyStubs() {
- static LLock lock;
- static bool is_registered = false;
-
- __mutexScope(lock);
-
- if (is_registered) {
- return S_OK;
- }
-
- CORE_LOG(L2, (_T("[ComProxy::RegisterProxyStubs][Registering][%d]"),
- ComProxyMode::is_machine()));
-
- const GUID ps_clsid = ComProxyMode::ps_clsid();
- for (size_t i = 0; i < arraysize(kIIDsToRegister); ++i) {
- HRESULT hr = ::CoRegisterPSClsid(kIIDsToRegister[i], ps_clsid);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[::CoRegisterPSClsid failed][%s][%s][0x%x]"),
- GuidToString(kIIDsToRegister[i]), GuidToString(ps_clsid), hr));
- return hr;
- }
- }
-
- is_registered = true;
- return S_OK;
- }
-
- protected:
- virtual ~ComProxy() {
- CORE_LOG(L2, (_T("[ComProxy::~ComProxy]")));
- }
-
- CComPtr<IUnknown> proxy_manager_;
- CComPtr<IInternalUnknown> proxy_internal_unknown_;
-
- DISALLOW_COPY_AND_ASSIGN(ComProxy);
-};
-
-#pragma warning(pop)
-
-class StdMarshalInfo : public IStdMarshalInfo {
- public:
- explicit StdMarshalInfo(bool is_machine) : is_machine_(is_machine) {
- CORE_LOG(L6, (_T("[StdMarshalInfo::StdMarshalInfo][%d]"), is_machine));
-
- VERIFY1(SUCCEEDED(ComProxy::RegisterProxyStubs()));
- }
-
- // IStdMarshalInfo.
- STDMETHODIMP GetClassForHandler(DWORD context, void* ptr, CLSID* clsid) {
- UNREFERENCED_PARAMETER(context);
- UNREFERENCED_PARAMETER(ptr);
-
- *clsid = is_machine_ ? __uuidof(GoogleComProxyMachineClass) :
- __uuidof(GoogleComProxyUserClass);
- return S_OK;
- }
-
- private:
- bool is_machine_;
-
- DISALLOW_COPY_AND_ASSIGN(StdMarshalInfo);
-};
-
-} // namespace omaha
-
-#endif // OMAHA_GOOPDATE_COM_PROXY_H_
-
« no previous file with comments | « goopdate/com_forwarder.cc ('k') | goopdate/com_wrapper_creator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698