////////////////////////////////////////////////////////////////////////////////
//
// DocumentEvent.h
// DocumentEvent -     (Auto)
//
////////////////////////////////////////////////////////////////////////////////

#ifndef _DOCUMENTEVENT_H
#define _DOCUMENTEVENT_H

#ifndef _BASEEVENT_H
#include "BaseEvent.h"
#endif

//---------------------------------------------------------------------------
// DocumentEvent -     (TEventsDispatcher)
// ---
class DocumentEvent : public TBaseEvent<IDocumentFileNotify, & IID_IDocumentFileNotify>
{

public:
  DocumentEvent( reference refDoc );

protected:

  //  
  //      notifyType
  virtual VARIANT_BOOL STDMETHODCALLTYPE IsNotifyProcess( int notifyType );

  //   
  virtual VARIANT_BOOL STDMETHODCALLTYPE BeginCloseDocument( void);
  //  
  virtual VARIANT_BOOL STDMETHODCALLTYPE CloseDocument( void );
  //   
  virtual VARIANT_BOOL STDMETHODCALLTYPE BeginSaveDocument( LPCSTR docName );
  //  
  virtual VARIANT_BOOL STDMETHODCALLTYPE SaveDocument( void );
  //  
  virtual VARIANT_BOOL STDMETHODCALLTYPE Activate( void );
  //  
  virtual VARIANT_BOOL STDMETHODCALLTYPE Deactivate( void );
  //kdBeginSaveAsDocument  -     .
  virtual VARIANT_BOOL STDMETHODCALLTYPE BeginSaveAsDocument();
  //kdDocumentFrameOpen    -   .
  virtual VARIANT_BOOL STDMETHODCALLTYPE DocumentFrameOpen( LPUNKNOWN v );
  //kdProcessActivate      -  
  virtual VARIANT_BOOL STDMETHODCALLTYPE ProcessActivate( long Id);
  //kdProcessDeactivate    -  
  virtual VARIANT_BOOL STDMETHODCALLTYPE ProcessDeactivate( long Id);

};

BaseEvent*  NewDocumentEvent( reference doc );

#endif
