// DocumentEvent.h : header file
//
#ifndef _DOCUMENTEVENT_H
#define _DOCUMENTEVENT_H

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


#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//class StampEvent;

////////////////////////////////////////////////////////////////////////////////
//
// DocumentEvent  -    
//
////////////////////////////////////////////////////////////////////////////////
class DocumentEvent : public BaseEvent
{
protected:
//  StampEvent * m_stampEvent;
//  BaseEvent  * m_objEvent;
// Attributes
public:
	DocumentEvent( reference p);           
  virtual ~DocumentEvent();

// Operations
public:
//  void SetStampEvent( StampEvent * stampEvent );
//  void SetObjEvent  ( BaseEvent  * objEvent   );
   void      ShowEventName( LPCTSTR eventName );
   virtual   CString   EventCaption();
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(DocumentEvent)
	//}}AFX_VIRTUAL
  virtual   LPUNKNOWN GetUnknown();
// Implementation

	BEGIN_INTERFACE_PART(DocumentFileNotify, IDocumentFileNotify)
		INIT_INTERFACE_PART(DocumentEvent, DocumentFileNotify)
    //      notifyType
    STDMETHOD_(VARIANT_BOOL, IsNotifyProcess)( int notifyType );

  //kdBeginCloseDocument  -    
    STDMETHOD_(VARIANT_BOOL, BeginCloseDocument)();
  
    //kdCloseDocument       -   
    STDMETHOD_(VARIANT_BOOL, CloseDocument)();

    //kdBeginSaveDocument   -    
    STDMETHOD_(VARIANT_BOOL, BeginSaveDocument)( LPSTR docName );

    //kdSaveDocument        -   
    STDMETHOD_(VARIANT_BOOL, SaveDocument)();

    //kdActiveDocument        -   
    STDMETHOD_(VARIANT_BOOL, Activate)();

    //kdDeactiveDocument     -   .
    STDMETHOD_(VARIANT_BOOL, Deactivate)();

    //kdBeginSaveAsDocument  -     .
    STDMETHOD_(VARIANT_BOOL, BeginSaveAsDocument)();

    //kdDocumentFrameOpen    -   .
    STDMETHOD_(VARIANT_BOOL, DocumentFrameOpen)( LPUNKNOWN v );

    //kdProcessActivate      -  
    STDMETHOD_(VARIANT_BOOL, ProcessActivate)( long Id);

    //kdProcessDeactivate    -  
    STDMETHOD_(VARIANT_BOOL, ProcessDeactivate)( long Id);

    END_INTERFACE_PART(DocumentFileNotify)
	
};

class Document2DEvent : public BaseEvent { // DocumentEvent {
//	bool                      m_advise3D;     // true -  Advise
//  NotifyConnectionParam     m_params3D;     //  
// Attributes
public:
	Document2DEvent( reference p );           
  virtual ~Document2DEvent();

// Operations
public:
	
//virtual   bool      Advise(); //    
//virtual   void      Unadvise();                                   //    
  	virtual   void      ShowEventName( LPCTSTR eventName );
		virtual   CString   EventCaption();
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(DocumentEvent)
	//}}AFX_VIRTUAL
  virtual  LPUNKNOWN GetUnknown();
	BEGIN_INTERFACE_PART( Document2DNotify, IDocument2DNotify )
		INIT_INTERFACE_PART(Document2DEvent, Document2DNotify)
  
      STDMETHOD_(VARIANT_BOOL, BeginRebuild)();
      STDMETHOD_(VARIANT_BOOL, Rebuild)();
	    STDMETHOD_(VARIANT_BOOL, BeginChoiceMaterial)();
	    STDMETHOD_(VARIANT_BOOL, ChoiceMaterial)( LPSTR material, double density);
	    STDMETHOD_(VARIANT_BOOL, BeginInsertFragment)();
      STDMETHOD_(VARIANT_BOOL, LocalFragmentEdit)(long pDoc, VARIANT_BOOL newFrw );
      //      notifyType
      STDMETHOD_(VARIANT_BOOL, IsNotifyProcess)( int notifyType );

	END_INTERFACE_PART(Document2DNotify)
 
  
};

class Document3DEvent : public BaseEvent { // DocumentEvent {
//	bool                      m_advise3D;     // true -  Advise
//  NotifyConnectionParam     m_params3D;     //  
// Attributes
public:
	Document3DEvent( reference p, LPUNKNOWN doc = NULL );           
  virtual ~Document3DEvent();

// Operations
public:
	
//virtual   bool      Advise(); //    
//virtual   void      Unadvise();                                   //    
  	virtual   void      ShowEventName( LPCTSTR eventName );
		virtual   CString   EventCaption();
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(DocumentEvent)
	//}}AFX_VIRTUAL
  virtual  LPUNKNOWN GetUnknown();
	BEGIN_INTERFACE_PART( Document3DNotify, IDocument3DNotify )
		INIT_INTERFACE_PART(Document3DEvent, Document3DNotify)
  
      STDMETHOD_(VARIANT_BOOL, BeginRebuild)( THIS_ );
      STDMETHOD_(VARIANT_BOOL, rebuild)( THIS_ );
	    STDMETHOD_(VARIANT_BOOL, BeginChoiceMaterial)( THIS_ );
	    STDMETHOD_(VARIANT_BOOL, ChoiceMaterial)( THIS_ LPSTR material, double density );
	    STDMETHOD_(VARIANT_BOOL, BeginChoiceMarking)( THIS_ );
	    STDMETHOD_(VARIANT_BOOL, ChoiceMarking)( THIS_ LPSTR marking );
	    STDMETHOD_(VARIANT_BOOL, BeginSetPartFromFile)( THIS_ );
	    STDMETHOD_(VARIANT_BOOL, BeginCreatePartFromFile)( THIS_ VARIANT_BOOL typeDoc, IEntity* plane );
      //      notifyType
      STDMETHOD_(VARIANT_BOOL, IsNotifyProcess)( THIS_ int notifyType );

	END_INTERFACE_PART(Document3DNotify)
 
  
};


BaseEvent* NewDocumentEvent( reference doc );
BaseEvent* NewDocument2DEvent( reference doc );
BaseEvent* NewDocument3DEvent( reference doc );

 
/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif 
