Windows2003-3790/inetcore/datacab/viaduct/msr2c/notifier.h
2020-09-30 16:53:55 +02:00

58 lines
1.9 KiB
C++

//---------------------------------------------------------------------------
// Notifier.h : CVDNotifier header file
//
// Copyright (c) 1996 Microsoft Corporation, All Rights Reserved
// Developed by Sheridan Software Systems, Inc.
//---------------------------------------------------------------------------
#ifndef __CVDNOTIFIER__
#define __CVDNOTIFIER__
class CVDNotifier : public IUnknown
{
protected:
// Construction/Destruction
CVDNotifier();
virtual ~CVDNotifier();
protected:
// Data members
DWORD m_dwRefCount; // reference count
CVDNotifier * m_pParent; // pointer to CVDNotifier derived parent
CPtrArray m_Children; // pointer array of CVDNotifier derived children
public:
//=--------------------------------------------------------------------------=
// IUnknown methods implemented
//
STDMETHOD(QueryInterface)(REFIID riid, void **ppvObjOut);
STDMETHOD_(ULONG, AddRef)(void);
STDMETHOD_(ULONG, Release)(void);
HRESULT JoinFamily (CVDNotifier* pParent);
HRESULT LeaveFamily();
CVDNotifier* GetParent () const { return m_pParent; }
virtual HRESULT NotifyBefore(DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
virtual HRESULT NotifyAfter (DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
virtual HRESULT NotifyFail (DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
protected:
// helper functions
HRESULT AddChild (CVDNotifier* pChild);
HRESULT DeleteChild(CVDNotifier* pChild);
virtual HRESULT NotifyOKToDo (DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
virtual HRESULT NotifySyncBefore(DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
virtual HRESULT NotifyAboutToDo (DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
virtual HRESULT NotifySyncAfter (DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
virtual HRESULT NotifyDidEvent (DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
virtual HRESULT NotifyCancel (DWORD, ULONG, CURSOR_DBNOTIFYREASON[]);
};
#endif //__CVDNOTIFIER__