Index: ceee/ie/broker/broker_rpc_client.cc |
=================================================================== |
--- ceee/ie/broker/broker_rpc_client.cc (revision 68931) |
+++ ceee/ie/broker/broker_rpc_client.cc (working copy) |
@@ -7,15 +7,17 @@ |
#include "ceee/ie/broker/broker_rpc_client.h" |
#include <atlbase.h> |
+ |
#include "base/lock.h" |
#include "base/logging.h" |
#include "base/tuple.h" |
#include "base/win/scoped_comptr.h" |
-#include "broker_lib.h" // NOLINT |
-#include "broker_rpc_lib.h" // NOLINT |
#include "ceee/common/com_utils.h" |
#include "ceee/ie/broker/broker_rpc_utils.h" |
+#include "ceee/ie/common/ceee_module_util.h" |
+#include "broker_lib.h" // NOLINT |
+#include "broker_rpc_lib.h" // NOLINT |
namespace { |
@@ -115,16 +117,8 @@ |
} RpcEndExcept |
} |
-HRESULT BrokerRpcClient::StartServer(IUnknown** server) { |
- base::win::ScopedComPtr<IUnknown> broker; |
- // TODO(vitalybuka@google.com): Start broker without COM after the last |
- // COM interface is removed. |
- HRESULT hr = broker.CreateInstance(CLSID_CeeeBroker); |
- LOG_IF(ERROR, FAILED(hr)) << "Failed to create broker. " << com::LogHr(hr); |
- if (FAILED(hr)) |
- return hr; |
- *server = broker.Detach(); |
- return S_OK; |
+HRESULT BrokerRpcClient::StartServer(ICeeeBrokerRegistrar** server) { |
+ return StartCeeeBroker(server); |
} |
HRESULT BrokerRpcClient::Connect(bool start_server) { |
@@ -132,7 +126,7 @@ |
return S_OK; |
// Keep alive until RPC is connected. |
- base::win::ScopedComPtr<IUnknown> broker; |
+ base::win::ScopedComPtr<ICeeeBrokerRegistrar> broker; |
if (start_server) { |
HRESULT hr = StartServer(broker.Receive()); |
if (FAILED(hr)) |
@@ -211,3 +205,17 @@ |
MakeRefTuple(binding_handle_, name, sample, min, max, |
bucket_count)); |
} |
+ |
+HRESULT StartCeeeBroker(ICeeeBrokerRegistrar** broker) { |
+ ceee_module_util::RefreshElevationPolicyIfNeeded(); |
+ base::win::ScopedComPtr<ICeeeBrokerRegistrar> broker_tmp; |
+ // TODO(vitalybuka@google.com): Start broker without COM after the last |
+ // COM interface is removed. |
+ HRESULT hr = broker_tmp.CreateInstance(CLSID_CeeeBroker); |
+ if (FAILED(hr)) { |
+ LOG(ERROR) << "Failed to create broker. " << com::LogHr(hr); |
+ return hr; |
+ } |
+ *broker = broker_tmp.Detach(); |
mad-corp
2010/12/13 14:12:45
DCHECK(broker != NULL) before using unknown pointe
|
+ return S_OK; |
+} |