62 lines
1.5 KiB
C++
62 lines
1.5 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 __SysLCESub_H_
|
|
#define __SysLCESub_H_
|
|
|
|
#include "resource.h" // main symbols
|
|
|
|
BSTR GuidToBstr(REFGUID guid);
|
|
class CComSpy;
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CSysLCESub
|
|
class ATL_NO_VTABLE CSysLCESub :
|
|
public CComObjectRootEx<CComSingleThreadModel>,
|
|
public ICOMSysLCE
|
|
{
|
|
private:
|
|
LPCWSTR EventName( EventEnum e );
|
|
|
|
protected:
|
|
BSTR m_bstrSubscriptionID;
|
|
CComSpy * m_pSpy;
|
|
|
|
public:
|
|
CSysLCESub() :
|
|
m_bstrSubscriptionID(NULL),
|
|
m_pSpy(NULL)
|
|
{
|
|
}
|
|
|
|
void SetSpyObj(CComSpy * pSpy)
|
|
{
|
|
m_pSpy = pSpy;
|
|
}
|
|
|
|
DECLARE_GET_CONTROLLING_UNKNOWN()
|
|
|
|
BEGIN_COM_MAP(CSysLCESub)
|
|
COM_INTERFACE_ENTRY(ICOMSysLCE)
|
|
END_COM_MAP()
|
|
|
|
// Virtual Methods
|
|
public:
|
|
virtual EventEnum EventType() = 0;
|
|
virtual REFCLSID EventCLSID() = 0;
|
|
virtual REFIID EventIID() = 0;
|
|
|
|
// ICOMSysLCESub Methods
|
|
public:
|
|
STDMETHOD(GetEventType)(__out EventEnum* e) { *e = EventType(); return S_OK; }
|
|
STDMETHOD(GetEventClass)(__out LPGUID guid) { *guid = EventCLSID(); return S_OK; }
|
|
STDMETHOD(Install)(__in BSTR* PropertyName, __in VARIANT PropertyValue);
|
|
STDMETHOD(Uninstall)();
|
|
};
|
|
|
|
#endif //__SysLCESub_H_
|