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

Graph program

Development Platform:

Visual C++

  1. // Standard3D.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//Box.h"
  15. #include "Commands//Sphere.h"
  16. #include "Commands//Cylinder.h"
  17. #include "Commands//Cone.h"
  18. #include "Commands//Torus.h"
  19. #include "Commands//Ellipsoid.h"
  20. #include "Commands//SphericBand.h"
  21. #include "Commands//BoxEdit.h"
  22. #include "Commands//SphereEdit.h"
  23. #include "Commands//CylinderEdit.h"
  24. #include "Commands//ConeEdit.h"
  25. #include "Commands//TorusEdit.h"
  26. #include "Commands//EllipsoidEdit.h"
  27. #include "Commands//SphericBandEdit.h"
  28. extern "C"  AFX_EXTENSION_MODULE Standard3DDLL = { NULL, NULL };
  29. extern "C" int APIENTRY
  30. DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
  31. {
  32. // Remove this if you use lpReserved
  33. UNREFERENCED_PARAMETER(lpReserved);
  34. if (dwReason == DLL_PROCESS_ATTACH)
  35. {
  36. TRACE0("Standard3D.DLL Initializing!n");
  37. // Extension DLL one-time initialization
  38. if (!AfxInitExtensionModule(Standard3DDLL, hInstance))
  39. return 0;
  40. new CDynLinkLibrary(Standard3DDLL);
  41. }
  42. else if (dwReason == DLL_PROCESS_DETACH)
  43. {
  44. TRACE0("Standard3D.DLL Terminating!n");
  45. AfxTermExtensionModule(Standard3DDLL);
  46. }
  47. return 1;   // ok
  48. }
  49. extern "C" AFX_EXT_API void GetPluginInfo(PLUGIN_INFO* plInfo)
  50. {
  51. SWITCH_RESOURCE
  52. plInfo->plugin_type = PLUGIN_TOOLBAR;
  53. plInfo->menu_string.LoadString(IDS_MENU_STRING);
  54. plInfo->show_after_load = true;
  55. plInfo->in_trial_version = true;
  56. plInfo->plugin_version = 1;
  57. plInfo->solidgraph_version = 1;
  58. plInfo->kernel_version = 1;
  59. }
  60. extern "C" AFX_EXT_API void ResetNames()
  61. {
  62. box_name_index = 1;
  63. sphere_name_index = 1;
  64. cylinder_name_index = 1;
  65. cone_name_index = 1;
  66. torus_name_index = 1;
  67. ellipsoid_name_index = 1;
  68. spheric_band_name_index = 1;
  69. }
  70. CImageList imageList;
  71. extern "C" AFX_EXT_API void GetToolbar(unsigned int start_ID_from_app, 
  72.    CToolBar* pToolbar, 
  73.    CWnd* pPar)
  74. {
  75. SWITCH_RESOURCE
  76. startID = endID = start_ID_from_app;
  77. if (!pToolbar->CreateEx(pPar, TBSTYLE_FLAT, WS_CHILD | CBRS_TOP
  78. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  79. !pToolbar->LoadToolBar(MAKEINTRESOURCE(IDR_TOOLBAR)))
  80. {
  81. TRACE0("Failed to create toolbar 2Dn");
  82. return;      // fail to create
  83. }
  84. //Load32BitmapOnToolbar(pToolbar,IDB_TLB_BMP);
  85. pToolbar->GetToolBarCtrl().SetCmdID(0,endID++);
  86. pToolbar->GetToolBarCtrl().SetCmdID(1,endID++);
  87. pToolbar->GetToolBarCtrl().SetCmdID(2,endID++);
  88. pToolbar->GetToolBarCtrl().SetCmdID(3,endID++);
  89. pToolbar->GetToolBarCtrl().SetCmdID(4,endID++);
  90. pToolbar->GetToolBarCtrl().SetCmdID(5,endID++);
  91. pToolbar->GetToolBarCtrl().SetCmdID(6,endID++);
  92. pToolbar->EnableDocking(CBRS_ALIGN_ANY);
  93. ResetNames();
  94. }
  95. extern "C" AFX_EXT_API   HBITMAP  GetToolbarBitmap(LPWORD wC)
  96. {
  97. HBITMAP hBitmap = NULL;
  98. /*if ( NULL == hInst )
  99. hInst = ::AfxFindResourceHandle( IDB_TOOLBAR32_BMP, RT_BITMAP);*/
  100. HRSRC hRsrc = ::FindResource(Standard3DDLL.hResource, 
  101. MAKEINTRESOURCE(IDB_TLB_BMP), RT_BITMAP);
  102. if ( hRsrc ){
  103. HGLOBAL hglb = LoadResource(Standard3DDLL.hResource, hRsrc);
  104. if ( hglb ){
  105. // 阻蜞屐 玎泐腩忸