📄 creditobjectfactory.cpp
字号:
// CreditObjectFactory.cpp
#include "stdafx.h"
#include "CreditServer_h.h"
#include "CreditObject.h"
#include "CreditObjectFactory.h"
CCreditObjectFactory::CCreditObjectFactory() : m_refCount(1) {}
// IUnknown
HRESULT __stdcall CCreditObjectFactory::QueryInterface(
const IID& riid, void** ppv)
{
if (riid == IID_IUnknown || riid == IID_IClassFactory)
*ppv = static_cast<IClassFactory*>(this);
else
{
*ppv = NULL;
return E_NOINTERFACE;
}
static_cast<IUnknown*>(*ppv)->AddRef();
return S_OK;
}
ULONG __stdcall CCreditObjectFactory::AddRef(void)
{
return InterlockedIncrement(&m_refCount);
}
ULONG __stdcall CCreditObjectFactory::Release(void)
{
if (InterlockedDecrement(&m_refCount) == 0)
{
delete this;
return 0;
}
return m_refCount;
}
// IClassFactory
HRESULT STDMETHODCALLTYPE CCreditObjectFactory::CreateInstance(
IUnknown * pUnkOuter, REFIID riid, void ** ppv)
{
CCreditVerification * pCV;
HRESULT hr;
if (NULL == ppv)
return E_INVALIDARG;
*ppv = NULL;
if (NULL != pUnkOuter)
return CLASS_E_NOAGGREGATION;
pCV = new CCreditVerification;
if (NULL == pCV)
return E_OUTOFMEMORY;
hr = pCV->QueryInterface(riid, ppv);
if (FAILED(hr))
delete pCV;
pCV->Release();
return hr;
}
HRESULT __stdcall CCreditObjectFactory::LockServer (BOOL bLock)
{
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -