windows-nt/Source/XPSP1/NT/shell/ext/pack/irunobj.cpp
2020-09-26 16:20:57 +08:00

85 lines
2 KiB
C++

#include "privcpp.h"
CPackage_IRunnableObject::CPackage_IRunnableObject(CPackage *pPackage) :
_pPackage(pPackage)
{
ASSERT(_cRef == 0);
}
CPackage_IRunnableObject::~CPackage_IRunnableObject()
{
DebugMsg(DM_TRACE,"CPackage_IRunnableObject destroyed with ref count %d",_cRef);
}
//////////////////////////////////
//
// IUnknown Methods...
//
HRESULT CPackage_IRunnableObject::QueryInterface(REFIID iid, void ** ppv)
{
return _pPackage->QueryInterface(iid,ppv);
}
ULONG CPackage_IRunnableObject::AddRef(void)
{
_cRef++; // interface ref count for debugging
return _pPackage->AddRef();
}
ULONG CPackage_IRunnableObject::Release(void)
{
_cRef--; // interface ref count for debugging
return _pPackage->Release();
}
//////////////////////////////////
//
// IRunnable Object Methods...
//
// NOTE: To answer your question, yes, this is kind of a pointless interface,
// but some apps feel better when it's around. Basically we just tell what
// they want to hear (ie. return S_OK).
//
HRESULT CPackage_IRunnableObject::GetRunningClass(LPCLSID pclsid)
{
DebugMsg(DM_TRACE, "pack ro - GetRunningClass() called.");
if (pclsid == NULL)
return E_INVALIDARG;
*pclsid = CLSID_CPackage;
return S_OK;
}
HRESULT CPackage_IRunnableObject::Run(LPBC lpbc)
{
// we're an inproc-server, so telling us to run is kind of pointless
DebugMsg(DM_TRACE, "pack ro - Run() called.");
return S_OK;
}
BOOL CPackage_IRunnableObject::IsRunning()
{
DebugMsg(DM_TRACE, "pack ro - IsRunning() called.");
// we're an inproc-server, so this is kind of pointless
return TRUE;
}
HRESULT CPackage_IRunnableObject::LockRunning(BOOL, BOOL)
{
DebugMsg(DM_TRACE, "pack ro - LockRunning() called.");
// again, we're an inproc-server, so this is also pointless
return S_OK;
}
HRESULT CPackage_IRunnableObject::SetContainedObject(BOOL)
{
DebugMsg(DM_TRACE, "pack ro - SetContainedObject() called.");
// again, we don't really care about this
return S_OK;
}