126 lines
3.8 KiB
C++
126 lines
3.8 KiB
C++
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
// PARTICULAR PURPOSE.
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
#ifndef __ObjSub_H__
|
|
#define __ObjSub_H__
|
|
|
|
#include "resource.h" // main symbols
|
|
|
|
/*C+C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C
|
|
Class: CObjPoolSub
|
|
Summary: Object Events Subscriber
|
|
C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C-C*/
|
|
class ATL_NO_VTABLE CObjSub :
|
|
public CSysLCESub,
|
|
public IComObjectEvents
|
|
{
|
|
public:
|
|
CObjSub(CComSpy * pSpy)
|
|
{
|
|
m_pSpy = pSpy;
|
|
}
|
|
|
|
CObjSub()
|
|
{
|
|
m_pSpy = NULL;
|
|
}
|
|
|
|
|
|
DECLARE_NOT_AGGREGATABLE(CObjSub)
|
|
DECLARE_GET_CONTROLLING_UNKNOWN()
|
|
|
|
BEGIN_COM_MAP(CObjSub)
|
|
COM_INTERFACE_ENTRY(IComObjectEvents)
|
|
COM_INTERFACE_ENTRY_CHAIN(CSysLCESub)
|
|
END_COM_MAP()
|
|
|
|
virtual EventEnum EventType() { return Object; }
|
|
virtual REFCLSID EventCLSID() { return CLSID_ComServiceEvents; }
|
|
virtual REFIID EventIID() { return IID_IComObjectEvents; }
|
|
|
|
STDMETHODIMP OnDisableCommit(COMSVCSEVENTINFO * pInfo, ULONG64 ContextID)
|
|
{
|
|
m_pSpy->AddEventToList(pInfo->perfCount, L"OnDisableCommit", GuidToBstr(pInfo->guidApp));
|
|
|
|
WCHAR szCtxtID[32];
|
|
wsprintfW(szCtxtID, L"%#016I64X", ContextID);
|
|
m_pSpy->AddParamValueToList(L"ContextID", szCtxtID);
|
|
|
|
IF_AUDIT_DO(OnSetComplete)(pInfo->perfCount, GuidToBstr(pInfo->guidApp), szCtxtID);
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP OnEnableCommit(COMSVCSEVENTINFO * pInfo, ULONG64 ContextID)
|
|
{
|
|
m_pSpy->AddEventToList(pInfo->perfCount, L"OnEnableCommit", GuidToBstr(pInfo->guidApp));
|
|
|
|
WCHAR szCtxtID[32];
|
|
wsprintfW(szCtxtID, L"%#016I64X", ContextID);
|
|
m_pSpy->AddParamValueToList(L"ContextID", szCtxtID);
|
|
|
|
IF_AUDIT_DO(OnSetComplete)(pInfo->perfCount, GuidToBstr(pInfo->guidApp), szCtxtID);
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP OnSetComplete(COMSVCSEVENTINFO * pInfo, ULONG64 ContextID)
|
|
{
|
|
m_pSpy->AddEventToList(pInfo->perfCount, L"OnSetComplete", GuidToBstr(pInfo->guidApp));
|
|
|
|
WCHAR szCtxtID[32];
|
|
wsprintfW(szCtxtID, L"%#016I64X", ContextID);
|
|
m_pSpy->AddParamValueToList(L"ContextID", szCtxtID);
|
|
|
|
IF_AUDIT_DO(OnSetComplete)(pInfo->perfCount, GuidToBstr(pInfo->guidApp), szCtxtID);
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP OnSetAbort(COMSVCSEVENTINFO * pInfo, ULONG64 ContextID)
|
|
{
|
|
m_pSpy->AddEventToList(pInfo->perfCount, L"OnSetAbort", GuidToBstr(pInfo->guidApp));
|
|
|
|
WCHAR szCtxtID[32];
|
|
wsprintfW(szCtxtID, L"%#016I64X", ContextID);
|
|
m_pSpy->AddParamValueToList(L"ContextID", szCtxtID);
|
|
|
|
IF_AUDIT_DO(OnSetComplete)(pInfo->perfCount, GuidToBstr(pInfo->guidApp), szCtxtID);
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP OnObjectDeactivate(COMSVCSEVENTINFO * pInfo, ULONG64 CtxtID, ULONG64 ObjectID)
|
|
{
|
|
m_pSpy->AddEventToList(pInfo->perfCount, L"OnObjectDeactivate", GuidToBstr(pInfo->guidApp));
|
|
|
|
WCHAR szCtxtID[32], szObjID[32];
|
|
|
|
wsprintfW(szCtxtID,L"%#016I64X", CtxtID);
|
|
m_pSpy->AddParamValueToList(L"CtxtID", szCtxtID);
|
|
wsprintfW(szObjID,L"%#016I64X", ObjectID);
|
|
m_pSpy->AddParamValueToList(L"ObjectID", szObjID);
|
|
|
|
IF_AUDIT_DO(OnObjectActivate)(pInfo->perfCount,GuidToBstr(pInfo->guidApp), szCtxtID, szObjID);
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP OnObjectActivate(COMSVCSEVENTINFO * pInfo, ULONG64 CtxtID, ULONG64 ObjectID)
|
|
{
|
|
m_pSpy->AddEventToList(pInfo->perfCount, L"OnObjectActivate", GuidToBstr(pInfo->guidApp));
|
|
|
|
WCHAR szCtxtID[32], szObjID[32];
|
|
|
|
wsprintfW(szCtxtID,L"%#016I64X", CtxtID);
|
|
m_pSpy->AddParamValueToList(L"CtxtID", szCtxtID);
|
|
wsprintfW(szObjID,L"%#016I64X", ObjectID);
|
|
m_pSpy->AddParamValueToList(L"ObjectID", szObjID);
|
|
|
|
IF_AUDIT_DO(OnObjectActivate)(pInfo->perfCount,GuidToBstr(pInfo->guidApp), szCtxtID, szObjID);
|
|
return S_OK;
|
|
}
|
|
|
|
};
|
|
|
|
#endif //__ObjSub_H__
|