76 lines
1.4 KiB
C
76 lines
1.4 KiB
C
|
/*
|
||
|
* _NOTMGR.H
|
||
|
*
|
||
|
* Purpose:
|
||
|
* Notification Manager declarations
|
||
|
*
|
||
|
* Author:
|
||
|
* AlexGo 6/5/95
|
||
|
*
|
||
|
* Copyright (c) 1995-1997, Microsoft Corporation. All rights reserved.
|
||
|
*/
|
||
|
|
||
|
#ifndef _NOTMGR_H_
|
||
|
#define _NOTMGR_H_
|
||
|
|
||
|
// forward declaration
|
||
|
class CNotifyMgr;
|
||
|
|
||
|
// Set cp to this to signal that the control has converted from rich to plain.
|
||
|
const DWORD CONVERT_TO_PLAIN = 0xFFFFFFFE;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ITxNotify
|
||
|
*
|
||
|
* Purpose:
|
||
|
* a notification sink for events happening to the backing store,
|
||
|
* used by the Notification Manager
|
||
|
*/
|
||
|
class ITxNotify
|
||
|
{
|
||
|
public:
|
||
|
virtual void OnPreReplaceRange( LONG cp, LONG cchDel, LONG cchNew,
|
||
|
LONG cpFormatMin, LONG cpFormatMax ) = 0;
|
||
|
virtual void OnPostReplaceRange( LONG cp, LONG cchDel, LONG cchNew,
|
||
|
LONG cpFormatMin, LONG cpFormatMax ) = 0;
|
||
|
virtual void Zombie() = 0;
|
||
|
|
||
|
private:
|
||
|
ITxNotify * _pnext;
|
||
|
|
||
|
friend class CNotifyMgr; // so it can manipulate _pnext
|
||
|
};
|
||
|
|
||
|
|
||
|
/*
|
||
|
* CNotifyMgr
|
||
|
*
|
||
|
* Purpose:
|
||
|
* the general notification manager; keeps track of all interested
|
||
|
* notification sinks
|
||
|
*/
|
||
|
|
||
|
class CNotifyMgr
|
||
|
{
|
||
|
public:
|
||
|
void Add( ITxNotify *pITN );
|
||
|
void Remove( ITxNotify *pITN );
|
||
|
void NotifyPreReplaceRange( ITxNotify *pITNignore, LONG cp, LONG cchDel,
|
||
|
LONG cchNew, LONG cpFormatMin, LONG cpFormatMax );
|
||
|
void NotifyPostReplaceRange( ITxNotify *pITNignore, LONG cp, LONG cchDel,
|
||
|
LONG cchNew, LONG cpFormatMin, LONG cpFormatMax );
|
||
|
|
||
|
CNotifyMgr();
|
||
|
~CNotifyMgr();
|
||
|
|
||
|
private:
|
||
|
|
||
|
ITxNotify * _pitnlist;
|
||
|
};
|
||
|
|
||
|
#endif //_NOTMGR_H_
|
||
|
|
||
|
|
||
|
|