1*38d50f7bSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*38d50f7bSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*38d50f7bSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*38d50f7bSAndrew Rist * distributed with this work for additional information 6*38d50f7bSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*38d50f7bSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*38d50f7bSAndrew Rist * "License"); you may not use this file except in compliance 9*38d50f7bSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*38d50f7bSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*38d50f7bSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*38d50f7bSAndrew Rist * software distributed under the License is distributed on an 15*38d50f7bSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*38d50f7bSAndrew Rist * KIND, either express or implied. See the License for the 17*38d50f7bSAndrew Rist * specific language governing permissions and limitations 18*38d50f7bSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*38d50f7bSAndrew Rist *************************************************************/ 21*38d50f7bSAndrew Rist 22*38d50f7bSAndrew Rist 23cdf0e10cSrcweir #include <comphelper/servicedecl.hxx> 24cdf0e10cSrcweir #include <ooo/vba/XHelperInterface.hpp> 25cdf0e10cSrcweir 26cdf0e10cSrcweir namespace comphelper { 27cdf0e10cSrcweir namespace service_decl { 28cdf0e10cSrcweir template <typename ImplT_, typename WithArgsT = with_args<false> > 29cdf0e10cSrcweir struct vba_service_class_ : public serviceimpl_base< detail::OwnServiceImpl<ImplT_>, WithArgsT > 30cdf0e10cSrcweir { 31cdf0e10cSrcweir typedef serviceimpl_base< detail::OwnServiceImpl<ImplT_>, WithArgsT > baseT; 32cdf0e10cSrcweir /** Default ctor. Implementation class without args, expecting 33cdf0e10cSrcweir component context as single argument. 34cdf0e10cSrcweir */ 35cdf0e10cSrcweir vba_service_class_() : baseT() {} 36cdf0e10cSrcweir template <typename PostProcessFuncT> 37cdf0e10cSrcweir /** Ctor to pass a post processing function/functor. 38cdf0e10cSrcweir 39cdf0e10cSrcweir @tpl PostProcessDefaultT let your compiler deduce this 40cdf0e10cSrcweir @param postProcessFunc function/functor that gets the yet unacquired 41cdf0e10cSrcweir ImplT_ pointer returning a 42cdf0e10cSrcweir uno::Reference<uno::XInterface> 43cdf0e10cSrcweir */ 44cdf0e10cSrcweir explicit vba_service_class_( PostProcessFuncT const& postProcessFunc ) : baseT( postProcessFunc ) {} 45cdf0e10cSrcweir }; 46cdf0e10cSrcweir 47cdf0e10cSrcweir } // namespace service_decl 48cdf0e10cSrcweir } // namespace comphelper 49cdf0e10cSrcweir 50