//////////////////////////////////////////////////////////////////////////////// 
// 
// step11.cpp -    
// 
//////////////////////////////////////////////////////////////////////////////// 
#include "stdafx.h"
#include <afxdllx.h> 
#include "resource.h"

#ifndef __LIBTOOL_H
#include <libtool.h>
#endif

#ifndef __LDEFIN2D_H
#include <ldefin2d.h>
#endif

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


//-------------------------------------------------------------------------------
//       DLL
// ---
static AFX_EXTENSION_MODULE StepDLL = { NULL, NULL };


//-------------------------------------------------------------------------------
//   
//    DLL
// ---
extern "C" int APIENTRY
DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved )
{
  UNREFERENCED_PARAMETER( lpReserved );

  if ( dwReason == DLL_PROCESS_ATTACH )
  {
    TRACE0( "DLL Initializing!" );
 
    if ( !AfxInitExtensionModule( StepDLL, hInstance ) )
      return 0;

    new CDynLinkLibrary( StepDLL );
  }
  else if ( dwReason == DLL_PROCESS_DETACH )
  {
    TRACE0( "DLL Terminating!" );
    AfxTermExtensionModule( StepDLL );
  }
  return 1;
}


//-------------------------------------------------------------------------------
//   
// ---
unsigned int WINAPI LIBRARYID()
{
  return IDR_LIBID;
}


//------------------------------------------------------------------------------
//   
// ---
int WINAPI CallBackCommand( int command, RequestInfoT *info  ) 
{
  TCHAR buf[255];
  _stprintf( buf, _T("  %d"), command );
  MessageT( buf );

  //        
  //       
  _stprintf( buf, _T("   %d"), command );
  info->title = buf;
 
  //   ,       :
  // ( TRUE - , FALSE -     )
  return command == ID_COMMAND_3 ? FALSE : TRUE;
}


//-------------------------------------------------------------------------------
//   
// ---
void WINAPI LIBRARYENTRY( unsigned int comm )
{
  //           .
  //        NULL, 
  //    CommandWindow  , 
  //        .
  //      .
  //     ,    
  //      FALSE,    -1.
  
  //     
  RequestInfoT info;
  memset( &info, 0, sizeof( info ) );
  info.commands = ( LPTSTR )ID_TREE_CONTENTS;  //      
  info.title    = _T(" ");             //   
  info.callBack = CallBackCommand;             //   
 
  //     
  int command = CommandWindowT( &info );
  TCHAR buf[255];
  _stprintf( buf, _T("  - CommandWindow %d"), command );
  MessageT( buf );
}
