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 };