Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "priv.h"
#include "cryptmnu.h"
CCryptMenuClassFactory::CCryptMenuClassFactory() { m_ObjRefCount = 1; g_DllRefCount++; }
CCryptMenuClassFactory::~CCryptMenuClassFactory() { g_DllRefCount--; }
STDMETHODIMP CCryptMenuClassFactory::QueryInterface( REFIID iid, void **ppvObject) { if (IsEqualIID(iid,IID_IUnknown)) { *ppvObject = (LPUNKNOWN)(LPCLASSFACTORY) this; m_ObjRefCount++; return(NOERROR); } if (IsEqualIID(iid,IID_IClassFactory)) { *ppvObject = (LPCLASSFACTORY) this; m_ObjRefCount++; return(NOERROR); } *ppvObject = NULL; return(E_NOINTERFACE); }
STDMETHODIMP_(DWORD) CCryptMenuClassFactory::AddRef() { return(++m_ObjRefCount); }
STDMETHODIMP_(DWORD) CCryptMenuClassFactory::Release() { if(--m_ObjRefCount ==0) { delete this; }
return(m_ObjRefCount); }
STDMETHODIMP CCryptMenuClassFactory::CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void **ppvObject) { CCryptMenuExt *pCryptMenu; HRESULT hr;
*ppvObject = NULL;
if (pUnkOuter) { return(CLASS_E_NOAGGREGATION); } pCryptMenu = new CCryptMenuExt; if (!pCryptMenu) { return(E_OUTOFMEMORY); }
hr = pCryptMenu->QueryInterface(riid,ppvObject); pCryptMenu->Release(); return hr; }
STDMETHODIMP CCryptMenuClassFactory::LockServer(BOOL) { return(E_NOTIMPL); }
|