////////////////////////////////////////////////////////////////////////////////
//
// DocumentEvent.cpp
// DocumentEvent -     (Auto)
//
////////////////////////////////////////////////////////////////////////////////

#include <vcl.h>
#pragma hdrstop

#include <ksConstants.h>

#ifndef _DOCUMENTEVENT_H
#include "DocumentEvent.h"
#endif

DocumentEvent* NewDocumentEvent( IUnknown* docPtr ) {
  return  new DocumentEvent( docPtr );
}

//-------------------------------------------------------------------------------
//
// ---
HRESULT DocumentEvent::InvokeEvent(DISPID id, BOOL & resEvent, TVariant *params)
{
  HRESULT hr = E_NOTIMPL;
  switch(id)
  {
    case kdBeginCloseDocument : //   
      resEvent = BeginCloseDocument();
      hr = S_OK;
      break;
    case kdCloseDocument      : //  
      resEvent = CloseDocument();
      hr = S_OK;
      break;
    case kdBeginSaveDocument  : //   
      resEvent = BeginSaveDocument( WideString( params[0] ) );
      hr = S_OK;
      break;
    case kdSaveDocument       : //  
      resEvent = SaveDocument();
      hr = S_OK;
      break;
    case kdActiveDocument     : //  
      resEvent = Activate();
      hr = S_OK;
      break;
    case kdDeactiveDocument   : //  
      resEvent = Deactivate();
      hr = S_OK;
      break;
  }
  return hr;
}


//-------------------------------------------------------------------------------
//   
// ---
BOOL DocumentEvent::BeginCloseDocument()
{
  return LibMessage( "DocumentEvent -   \n ?", MB_YESNO ) == IDYES;
}


//-------------------------------------------------------------------------------
//  
// ---
BOOL DocumentEvent::CloseDocument()
{
  LibMessage( "DocumentEvent -  " );
  TerminateEvents( GUID_NULL, m_pDoc );
  return TRUE;
}


//-------------------------------------------------------------------------------
//   
// ---
BOOL DocumentEvent::BeginSaveDocument( BSTR fileName )
{
  AnsiString s = fileName;
  s += "\n\nDocumentEvent -   \n ?";
  return LibMessage( s.c_str(), MB_YESNO ) == IDYES;
}


//-------------------------------------------------------------------------------
//  
// ---
BOOL DocumentEvent::SaveDocument()
{
  LibMessage( "DocumentEvent -  " );
  return TRUE;
}


//-------------------------------------------------------------------------------
//  
// ---
BOOL DocumentEvent::Activate()
{
  LibMessage( "DocumentEvent -  " );
  return TRUE;
}


//-------------------------------------------------------------------------------
//  
// ---
BOOL DocumentEvent::Deactivate()
{
  LibMessage( "DocumentEvent -  " );
  return TRUE;
}






