////////////////////////////////////////////////////////////////////////////////
//
// Object3DEvent -    3D 
//
////////////////////////////////////////////////////////////////////////////////
#ifndef _OBJECT3DEVENT_H
#define _OBJECT3DEVENT_H

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

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

/*
enum ksObject3DNotifyEnum
{
  o3BeginDelete = 1,
  o3Delete = 2,
  o3Excluded = 3,
  o3Hidden = 4,
  o3BeginPropertyChanged = 5,
  o3PropertyChanged = 6,
  o3BeginPlacementChanged = 7,
  o3PlacementChanged = 8,
  o3BeginProcess = 9,
  o3EndProcess = 10,
  o3CreateObject = 11,
  o3UpdateObject = 12
};
*/

////////////////////////////////////////////////////////////////////////////////
//
// Object3DEvent -    3D 
//
////////////////////////////////////////////////////////////////////////////////
class Object3DEvent : public BaseEvent
{
  ksObject3DNotifyResultPtr m_res;

public:
	Object3DEvent( LPUNKNOWN object, 
                 LPDISPATCH doc, 
                 long objType,
                 LPDISPATCH obj3D,
                 ksObject3DNotifyResultPtr res, 
                 bool m_selfAdvise = true );           
  virtual ~Object3DEvent(); 

protected:
  CString OutRes();

  // o3BeginDelete -   
  afx_msg VARIANT_BOOL BeginDelete( LPDISPATCH obj);
  // o3Delete - O 
  afx_msg VARIANT_BOOL Delete(LPDISPATCH obj );
  // o3Excluded - O /  
  afx_msg VARIANT_BOOL Excluded(LPDISPATCH obj, VARIANT_BOOL excluded);
  // o3Hidden - O /
  afx_msg VARIANT_BOOL Hidden(LPDISPATCH obj, VARIANT_BOOL _hidden);
  // o3BeginPropertyChanged -    
  afx_msg VARIANT_BOOL BeginPropertyChanged(LPDISPATCH obj);
  // o3PropertyChanged -   
  afx_msg VARIANT_BOOL PropertyChanged(LPDISPATCH obj);
  // o3BeginPlacementChanged -    
  afx_msg VARIANT_BOOL BeginPlacementChanged(LPDISPATCH obj);
  // o3PlacementChanged -   
  afx_msg VARIANT_BOOL PlacementChanged(LPDISPATCH obj);
  // o3BeginProcess -  \ 
  afx_msg VARIANT_BOOL BeginProcess( long pType, LPDISPATCH obj );
  // o3EndProcess -  \ 
  afx_msg VARIANT_BOOL EndProcess( long pType );
  // o3CreateObject -  
  afx_msg VARIANT_BOOL CreateObject( LPDISPATCH obj );
  // o3UpdateObject -  
  afx_msg VARIANT_BOOL UpdateObject( LPDISPATCH obj );

	DECLARE_EVENTSINK_MAP()
};

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

#endif 
