Boolean.cpp
Upload User: kairuinn
Upload Date: 2009-02-07
Package Size: 2922k
Code Size: 7k
Category:

Graph program

Development Platform:

Visual C++

  1. // Boolean.cpp : Defines the initialization routines for the DLL.
  2. //
  3. #include "stdafx.h"
  4. #include "resource.h"
  5. #include <afxdllx.h>
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. unsigned int  endID = 0;
  12. unsigned int  startID = 0;
  13. REGIME  active_regime = REGIME_NONE;
  14. #include "Commands//BooleanOperation.h"
  15. #include "Commands//Section.h"
  16. extern "C"  AFX_EXTENSION_MODULE BooleanDLL = { NULL, NULL };
  17. extern "C" int APIENTRY
  18. DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
  19. {
  20. // Remove this if you use lpReserved
  21. UNREFERENCED_PARAMETER(lpReserved);
  22. if (dwReason == DLL_PROCESS_ATTACH)
  23. {
  24. TRACE0("Boolean.DLL Initializing!n");
  25. // Extension DLL one-time initialization
  26. if (!AfxInitExtensionModule(BooleanDLL, hInstance))
  27. return 0;
  28. new CDynLinkLibrary(BooleanDLL);
  29. }
  30. else if (dwReason == DLL_PROCESS_DETACH)
  31. {
  32. TRACE0("Boolean.DLL Terminating!n");
  33. AfxTermExtensionModule(BooleanDLL);
  34. }
  35. return 1;   // ok
  36. }
  37. extern "C" AFX_EXT_API void GetPluginInfo(PLUGIN_INFO* plInfo)
  38. {
  39. SWITCH_RESOURCE
  40. plInfo->plugin_type = PLUGIN_TOOLBAR;
  41. plInfo->menu_string.LoadString(IDS_MENU_STRING);
  42. plInfo->show_after_load = true;
  43. plInfo->in_trial_version = true;
  44. plInfo->plugin_version = 1;
  45. plInfo->solidgraph_version = 1;
  46. plInfo->kernel_version = 1;
  47. }
  48. extern "C" AFX_EXT_API void ResetNames()
  49. {
  50. bool_name_index = 1;
  51. }
  52. extern "C" AFX_EXT_API void GetToolbar(unsigned int start_ID_from_app, 
  53.    CToolBar* pToolbar, 
  54.    CWnd* pPar)
  55. {
  56. SWITCH_RESOURCE
  57. startID = endID = start_ID_from_app;
  58. if (!pToolbar->CreateEx(pPar, TBSTYLE_FLAT, WS_CHILD | CBRS_TOP
  59. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  60. !pToolbar->LoadToolBar(MAKEINTRESOURCE(IDR_TOOLBAR)))
  61. {
  62. TRACE0("Failed to create toolbar 2Dn");
  63. return;      // fail to create
  64. }
  65. //Load32BitmapOnToolbar(pToolbar,IDB_TOOLBAR32_BMP);
  66. pToolbar->GetToolBarCtrl().SetCmdID(0,endID++);
  67. pToolbar->GetToolBarCtrl().SetCmdID(1,endID++);
  68. pToolbar->GetToolBarCtrl().SetCmdID(2,endID++);
  69. pToolbar->GetToolBarCtrl().SetCmdID(3,endID++);
  70. pToolbar->GetToolBarCtrl().SetCmdID(4,endID++);
  71. pToolbar->EnableDocking(CBRS_ALIGN_ANY);
  72. ResetNames();
  73. }
  74. extern "C" AFX_EXT_API   HBITMAP  GetToolbarBitmap(LPWORD wC)
  75. {
  76. HBITMAP hBitmap = NULL;
  77. /*if ( NULL == hInst )
  78. hInst = ::AfxFindResourceHandle( IDB_TOOLBAR32_BMP, RT_BITMAP);*/
  79. HRSRC hRsrc = ::FindResource(BooleanDLL.hResource, 
  80. MAKEINTRESOURCE(IDB_TOOLBAR32_BMP), RT_BITMAP);
  81. if ( hRsrc ){
  82. HGLOBAL hglb = LoadResource(BooleanDLL.hResource, hRsrc);
  83. if ( hglb ){
  84. // 阻蜞屐 玎泐腩忸