2025-11-28 00:35:46 +09:00

76 lines
2.0 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 __IDENTITYSUB_H__
#define __IDENTITYSUB_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: CIdentitySub
Summary: Identity 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 CIdentitySub :
public CSysLCESub,
public IComIdentityEvents
{
public:
CIdentitySub(CComSpy * pSpy)
{
m_pSpy = pSpy;
}
CIdentitySub()
{
m_pSpy = NULL;
}
DECLARE_NOT_AGGREGATABLE(CIdentitySub)
DECLARE_GET_CONTROLLING_UNKNOWN()
BEGIN_COM_MAP(CIdentitySub)
COM_INTERFACE_ENTRY(IComIdentityEvents)
COM_INTERFACE_ENTRY_CHAIN(CSysLCESub)
END_COM_MAP()
virtual EventEnum EventType() { return Identity; }
virtual REFCLSID EventCLSID() { return CLSID_ComServiceEvents; }
virtual REFIID EventIID() { return IID_IComIdentityEvents; }
STDMETHODIMP OnIISRequestInfo(
COMSVCSEVENTINFO * pInfo,
ULONG64 ObjId,
LPCWSTR pwszClientIP,
LPCWSTR pwszServerIP,
LPCWSTR pwszURL
)
{
m_pSpy->AddEventToList(pInfo->perfCount, L"OnIISRequestInfo", GuidToBstr(pInfo->guidApp));
WCHAR szObjectID[32];
wsprintfW(szObjectID, L"%#016I64X", ObjId);
m_pSpy->AddParamValueToList(L"ObjectID", szObjectID);
m_pSpy->AddParamValueToList(L"ClientIP", pwszClientIP);
m_pSpy->AddParamValueToList(L"ServerIP", pwszServerIP);
m_pSpy->AddParamValueToList(L"URL", pwszURL);
IF_AUDIT_DO(OnIISRequestInfo)(pInfo->perfCount, GuidToBstr(pInfo->guidApp),
szObjectID,
pwszClientIP,
pwszServerIP,
pwszURL
);
return S_OK;
}
};
#endif //__IDENTITYSUB_H__