windows-nt/Source/XPSP1/NT/drivers/wdm/input/opos/oposserv/iclsfact.cpp
2020-09-26 16:20:57 +08:00

66 lines
1 KiB
C++

/*
* CLSFACT.CPP
*
*
*
*
*
*
*/
#include <windows.h>
#include <hidclass.h>
#include <hidsdi.h>
#include <ole2.h>
#include <ole2ver.h>
#include "..\inc\opos.h"
#include "oposserv.h"
STDMETHODIMP COPOSService::CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppvObj)
{
HRESULT result;
Report("CreateInstance", 0);
if (pUnkOuter){
result = CLASS_E_NOAGGREGATION;
}
else {
COPOSService *oposService = new COPOSService;
if (oposService){
/*
* Get the requested interface on this object.
* This also does an AddRef.
*/
result = oposService->QueryInterface(riid, ppvObj);
}
else {
result = E_OUTOFMEMORY;
}
}
Report("CreateInstance", (DWORD)result);
ASSERT(result == S_OK);
return result;
}
STDMETHODIMP COPOSService::LockServer(int lock)
{
if (lock){
m_serverLockCount++;
}
else {
m_serverLockCount--;
}
return S_OK;
}