File indexing completed on 2024-04-14 05:35:35

0001 /*
0002   SPDX-FileCopyrightText: 2003-2006, Sergey Zorin. All rights reserved.
0003   SPDX-FileCopyrightText:  2018-2020 Michael Reeves reeves.87@gmail.com
0004   SPDX-License-Identifier: BSD-2-Clause
0005 */
0006 
0007 #ifndef class_factory_h
0008 #define class_factory_h
0009 
0010 #include <shlobj.h>
0011 #include <shlguid.h>
0012 
0013 class CLASS_FACTORY : public IClassFactory {
0014   public:
0015     CLASS_FACTORY();
0016     virtual ~CLASS_FACTORY();
0017 
0018     //IUnknown members
0019     STDMETHODIMP QueryInterface(REFIID, void**);
0020     STDMETHODIMP_(ULONG) AddRef();
0021     STDMETHODIMP_(ULONG) Release();
0022 
0023     //ICLASS_FACTORY members
0024     STDMETHODIMP CreateInstance(IUnknown*, REFIID, void**);
0025     STDMETHODIMP LockServer(BOOL);
0026 
0027   private:
0028     ULONG _ref_count;
0029 };
0030 
0031 #endif //class_factory_h