Index: src/plugin/passthroughapp/ProtocolCF.h |
=================================================================== |
--- a/src/plugin/passthroughapp/ProtocolCF.h |
+++ b/src/plugin/passthroughapp/ProtocolCF.h |
@@ -1,17 +1,3 @@ |
-// Copyright 2007 Igor Tandetnik |
-// |
-// 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 PASSTHROUGHAPP_PROTOCOLCF_H |
#define PASSTHROUGHAPP_PROTOCOLCF_H |
@@ -22,70 +8,70 @@ |
namespace PassthroughAPP |
{ |
- namespace Detail |
- { |
- // A bit of template metaprogramming allows to avoid requiring |
- // the protocol class to either derive from CComCoClass or explicitly |
- // specify DECLARE_*AGGREGATABLE macro. If the class does it, the declared |
- // behavior is used, otherwise the default behavior is as if |
- // DECLARE_AGGREGATABLE is specified |
+namespace Detail |
+{ |
+// A bit of template metaprogramming allows to avoid requiring |
+// the protocol class to either derive from CComCoClass or explicitly |
+// specify DECLARE_*AGGREGATABLE macro. If the class does it, the declared |
+// behavior is used, otherwise the default behavior is as if |
+// DECLARE_AGGREGATABLE is specified |
- // If T has a typedef _CreatorClass, Derived would pick it from its base. |
- // If T does not define _CreatorClass, the definition is picked from the next |
- // enclosing scope, which is ChooseCreatorClass::_CreatorClass, or Default |
- template <typename T, typename Default> |
- struct ChooseCreatorClass |
- { |
- typedef Default _CreatorClass; |
- struct Derived : private T |
- { |
- typedef _CreatorClass CreatorClass; |
- }; |
- typedef typename Derived::CreatorClass CreatorClass; |
- }; |
+// If T has a typedef _CreatorClass, Derived would pick it from its base. |
+// If T does not define _CreatorClass, the definition is picked from the next |
+// enclosing scope, which is ChooseCreatorClass::_CreatorClass, or Default |
+template <typename T, typename Default> |
+struct ChooseCreatorClass |
+{ |
+ typedef Default _CreatorClass; |
+ struct Derived : private T |
+ { |
+ typedef _CreatorClass CreatorClass; |
+ }; |
+ typedef typename Derived::CreatorClass CreatorClass; |
+}; |
- } // end namespace PassthroughAPP::Detail |
+} // end namespace PassthroughAPP::Detail |
- class ATL_NO_VTABLE CComClassFactoryProtocol : |
- public CComClassFactory |
- { |
- typedef CComClassFactory BaseClass; |
- public: |
- STDMETHODIMP CreateInstance(IUnknown* punkOuter, REFIID riid, |
- void** ppvObj); |
+class ATL_NO_VTABLE CComClassFactoryProtocol : |
+ public CComClassFactory |
+{ |
+ typedef CComClassFactory BaseClass; |
+public: |
+ STDMETHODIMP CreateInstance(IUnknown* punkOuter, REFIID riid, |
+ void** ppvObj); |
- HRESULT CreateInstanceTarget(IUnknown** ppTargetProtocol); |
+ HRESULT CreateInstanceTarget(IUnknown** ppTargetProtocol); |
- HRESULT GetTargetClassFactory(IClassFactory** ppCF); |
- HRESULT SetTargetClassFactory(IClassFactory* pCF); |
- HRESULT SetTargetCLSID(REFCLSID clsid, DWORD clsContext = CLSCTX_ALL); |
+ HRESULT GetTargetClassFactory(IClassFactory** ppCF); |
+ HRESULT SetTargetClassFactory(IClassFactory* pCF); |
+ HRESULT SetTargetCLSID(REFCLSID clsid, DWORD clsContext = CLSCTX_ALL); |
- void FinalRelease(); |
- private: |
- CComPtr<IClassFactory> m_spTargetCF; |
- }; |
+ void FinalRelease(); |
+private: |
+ CComPtr<IClassFactory> m_spTargetCF; |
+}; |
- template <class Factory, class Protocol, |
- class FactoryComObject = CComObjectNoLock<Factory> > |
- struct CMetaFactory |
- { |
- typedef |
- CComCreator2<CComCreator<CComObject<Protocol> >, |
- CComCreator<CComAggObject<Protocol> > > |
- DefaultCreatorClass; |
+template <class Factory, class Protocol, |
+ class FactoryComObject = CComObjectNoLock<Factory> > |
+struct CMetaFactory |
+{ |
+ typedef |
+ CComCreator2<CComCreator<CComObject<Protocol> >, |
+ CComCreator<CComAggObject<Protocol> > > |
+ DefaultCreatorClass; |
- typedef typename |
- Detail::ChooseCreatorClass<Protocol, DefaultCreatorClass>::CreatorClass |
- CreatorClass; |
+ typedef typename |
+ Detail::ChooseCreatorClass<Protocol, DefaultCreatorClass>::CreatorClass |
+ CreatorClass; |
- // returns a non-AddRef'ed pointer to FactoryComObject, already initialized |
- // with Protocol's creator function, via ppObj [out] parameter |
- static HRESULT CreateInstance(Factory** ppObj); |
+ // returns a non-AddRef'ed pointer to FactoryComObject, already initialized |
+ // with Protocol's creator function, via ppObj [out] parameter |
+ static HRESULT CreateInstance(Factory** ppObj); |
- static HRESULT CreateInstance(IClassFactory* pTargetCF, |
- IClassFactory** ppCF); |
- static HRESULT CreateInstance(REFCLSID clsidTarget, IClassFactory** ppCF); |
- }; |
+ static HRESULT CreateInstance(IClassFactory* pTargetCF, |
+ IClassFactory** ppCF); |
+ static HRESULT CreateInstance(REFCLSID clsidTarget, IClassFactory** ppCF); |
+}; |
} // end namespace PassthroughAPP |