home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2002 March / PCWMAR02.iso / software / turbocad / v8trial / TurboCADv8ProfessionalNoReg.exe / Data.Cab / F38888_pltapi.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-11-20  |  2.5 KB  |  105 lines

  1. /******************************************************************/
  2. /*                                                                */
  3. /*                      TurboCAD for Windows                      */
  4. /*                   Copyright (c) 1993 - 2001                    */
  5. /*             International Microcomputer Software, Inc.         */
  6. /*                            (IMSI)                              */
  7. /*                      All rights reserved.                      */
  8. /*                                                                */
  9. /******************************************************************/
  10.  
  11. #include "stdafx.h"
  12.  
  13. #include "PalDlg.h"
  14.  
  15. #include "resource.h"
  16.  
  17. UINT WINAPI PltGetHelpID()
  18. {
  19.     return IDD_PALDLG;
  20. }
  21. // Get description of custom palette
  22. BSTR        WINAPI PltGetDescription()
  23. {
  24.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  25.  
  26.     CString cstrDesc;
  27.     cstrDesc.LoadString(IDS_DESCRIPTION);
  28.  
  29.     return cstrDesc.AllocSysString();
  30. }
  31. //// Get name of custom palette (command name)
  32. BSTR        WINAPI PltGetName()
  33. {
  34.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  35.  
  36.     CString cstrName;
  37.     cstrName.LoadString(IDS_NAME);
  38.  
  39.     return cstrName.AllocSysString();
  40. }
  41. // get toolbar icon
  42. IDispatch*    WINAPI PltGetPicture(BOOL bLargeButton, BOOL bMonochrome)
  43. {
  44.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  45.  
  46.     LPTSTR IDB = 0;
  47.  
  48.     if (bLargeButton)
  49.     {
  50.         IDB = MAKEINTRESOURCE(IDB_PLT32);
  51.     }
  52.     else
  53.     {
  54.         IDB = MAKEINTRESOURCE(IDB_PLT16);
  55.     }
  56.  
  57.  
  58.     IDispatch *pIPictDisp = NULL;
  59.  
  60.     HBITMAP hbmpPal = ::LoadBitmap(AfxGetResourceHandle(), IDB);
  61.  
  62.     PICTDESC pict;
  63.     pict.cbSizeofstruct = sizeof(pict);
  64.     pict.picType = PICTYPE_BITMAP;
  65.     pict.bmp.hbitmap = hbmpPal;
  66.     pict.bmp.hpal = NULL;
  67.  
  68.     VERIFY(SUCCEEDED(OleCreatePictureIndirect(&pict, IID_IDispatch, TRUE, (void**)&pIPictDisp)));
  69.     return pIPictDisp;    
  70. }
  71.  
  72. HINSTANCE MyGetResourceHandle();
  73.  
  74. HWND        WINAPI PltCreateWindow(HWND hwndParent, long nID)
  75. {
  76.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  77.  
  78.     HINSTANCE hResOld = AfxGetResourceHandle();
  79.     AfxSetResourceHandle(MyGetResourceHandle());
  80.  
  81.     HWND hwndPal = NULL;
  82.  
  83.     CPalDlg *pDlg = new CPalDlg;
  84.     CWnd *pParentWnd = CWnd::FromHandle(hwndParent);
  85.  
  86.     if (pDlg->Create(IDD_PALDLG, pParentWnd))
  87.         hwndPal = pDlg->GetSafeHwnd();
  88.  
  89.  
  90.     AfxSetResourceHandle(hResOld);
  91.  
  92.     return hwndPal;
  93. }
  94.  
  95. VARIANT    WINAPI PltQuery(VARIANT varQuery)
  96. {
  97.     VARIANT    varRet;
  98.     VariantInit(&varRet);
  99.     VariantClear(&varRet);
  100.  
  101.     varRet.vt = VT_R4;
  102.     varRet.fltVal = 7.1;
  103.  
  104.     return varRet;
  105. }