/ src / modules / FileLocksmith / FileLocksmithExt / ClassFactory.h
ClassFactory.h
 1  #pragma once
 2  
 3  #include "pch.h"
 4  
 5  class ClassFactory : public IClassFactory
 6  {
 7  public:
 8      ClassFactory(_In_ REFCLSID clsid);
 9      ~ClassFactory();
10  
11      // IUnknown
12      IFACEMETHODIMP QueryInterface(REFIID riid, void** ppv) override;
13      IFACEMETHODIMP_(ULONG) AddRef() override;
14      IFACEMETHODIMP_(ULONG) Release() override;
15  
16      // IClassFactory
17      IFACEMETHODIMP CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) override;
18      IFACEMETHODIMP LockServer(BOOL fLock) override;
19  private:
20      std::atomic<ULONG> m_ref_count;
21      IID m_clsid;
22  };