66 lines
1 KiB
C++
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;
|
|
}
|
|
|
|
|