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

Graph program

Development Platform:

Visual C++

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