////////////////////////////////////////////////////////////////////////////////
//
// SpcObjectEvent -    2D 
//
////////////////////////////////////////////////////////////////////////////////
#ifndef _SPCOBJECTEVENT_H
#define _SPCOBJECTEVENT_H

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

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

/*
enum ksSpcObjectNotifyEnum
{
  soBeginDelete      =  1, 
  soDelete           =  2, 
  soCellDblClick     =  3, 
  soCellBeginEdit    =  4, 
  soChangeCurrent    =  5, 
  soDocumentBeginAdd =  6,
  soDocumentAdd      =  7, 
  soDocumentRemove   =  8, 
  soBeginGeomChange  =  9, 
  soGeomChange       = 10, 
  soBeginProcess    =  11, 
  soEndProcess      =  12, 
  soCreateObject    =  13, 
  soUpdateObject    =  14, 
};
*/

////////////////////////////////////////////////////////////////////////////////
//
// SpcObjectEvent -     
//
////////////////////////////////////////////////////////////////////////////////
class SpcObjectEvent : public BaseEvent
{
public:
	SpcObjectEvent( LPUNKNOWN object, 
                  LPDISPATCH doc, 
                  long objType, 
                  bool m_selfAdvise = true );           
  virtual ~SpcObjectEvent(); 

protected:
  // soBeginDelete -   
  VARIANT_BOOL BeginDelete( long objRef);
  // soDelete -    
  VARIANT_BOOL Delete( long objRef );
  // soCellDblClick -     
  VARIANT_BOOL CellDblClick(long objRef, long number);
  // soCellBeginEdit -       
  VARIANT_BOOL CellBeginEdit(long objRef, long number); 
  // soChangeCurrent -     
  VARIANT_BOOL ChangeCurrent( long objRef );
  // soDocumentBeginAdd -   
  VARIANT_BOOL DocumentBeginAdd( long objRef );
  // soDocumentAdd -        
  VARIANT_BOOL DocumentAdd( long objRef, LPCTSTR docName ); 
  // soDocumentRemove -       
  VARIANT_BOOL DocumentRemove( long objRef, LPCTSTR docName );
  // soBeginGeomChange -     
  VARIANT_BOOL BeginGeomChange( long objRef );
  // soGeomChange -        
  VARIANT_BOOL GeomChange( long objRef );   
  // soBeginProcess -   \   
  VARIANT_BOOL BeginProcess( long pType, long objRef );
  // soEndProcess -  \  
  VARIANT_BOOL EndProcess( long pType );    
  // soCreateObject -   
  VARIANT_BOOL CreateObject( long objRef );  
  // soUpdateObject -      
  VARIANT_BOOL UpdateObject( long objRef );   

	DECLARE_EVENTSINK_MAP()
};

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

#endif 
