home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / ATL_Samples / compctrl / CComCtrl.cpp next >
Encoding:
C/C++ Source or Header  |  1999-02-19  |  2.2 KB  |  95 lines

  1. // CComCtrl.cpp : Implementation of CComCtrl
  2. #include "stdafx.h"
  3. #include "CompCtrl.h"
  4. #include "CComCtrl.h"
  5.  
  6. /////////////////////////////////////////////////////////////////////////////
  7. // CComCtrl
  8.  
  9. void CComCtrl::IncrementSides()
  10. {
  11.     IPolyCtl* pIPolyCtl;
  12.     HRESULT hr = GetDlgControl(IDC_POLYCTL1, IID_IPolyCtl, (void**)&pIPolyCtl );
  13.     if(SUCCEEDED(hr))
  14.     {
  15.         short nSides;
  16.         pIPolyCtl->get_Sides(&nSides);
  17.         nSides++;
  18.         pIPolyCtl->put_Sides(nSides);
  19.         UpdateNumberOfSides(0,0,0);
  20.     }
  21. }
  22.  
  23. void CComCtrl::DecrementSides()
  24. {
  25.     IPolyCtl* pIPolyCtl;
  26.     HRESULT hr = GetDlgControl(IDC_POLYCTL1, IID_IPolyCtl, (void**)&pIPolyCtl );
  27.     if(SUCCEEDED(hr))
  28.     {
  29.         short nSides;
  30.         pIPolyCtl->get_Sides(&nSides);
  31.         if(nSides > 3)
  32.         {
  33.             nSides--;
  34.             pIPolyCtl->put_Sides(nSides);
  35.             UpdateNumberOfSides(0,0,0);
  36.         }
  37.     }
  38. }
  39.  
  40. int CComCtrl::UpdateNumberOfSides(DWORD x, int y, long z)
  41. {
  42.     IPolyCtl* pIPolyCtl;
  43.     HRESULT hr = GetDlgControl(IDC_POLYCTL1, IID_IPolyCtl, (void**)&pIPolyCtl );
  44.     if(SUCCEEDED(hr))
  45.     {
  46.         short nSides;
  47.         pIPolyCtl->get_Sides(&nSides);
  48.  
  49.         TCHAR szBuf1[40] = _T("");
  50.         int nResult = LoadString (_Module.m_hInst, IDS_SIDES, szBuf1, sizeof(szBuf1) );
  51.  
  52.         TCHAR szBuff[20];
  53.         wsprintf(szBuff, szBuf1, nSides);
  54.         SetDlgItemText(IDC_SIDES, szBuff);
  55.     }
  56.     int res = x + y + z;
  57.     return(res);
  58. }
  59.  
  60. void CComCtrl::UpdateSmileState()
  61. {
  62.     IDispatch* pISmiley;
  63.     HRESULT hr = GetDlgControl(IDC_SMILECTRL1, IID_IDispatch, (void**)&pISmiley );
  64.     if(SUCCEEDED(hr))
  65.     {
  66.         // get property(Sad)
  67.         DISPPARAMS    dispparams;
  68.         VARIANT        vArg;
  69.         VARIANT        vVarResult;
  70.  
  71.         dispparams.cArgs = 0;
  72.         dispparams.cNamedArgs = 0;
  73.         dispparams.rgdispidNamedArgs = NULL;
  74.         dispparams.rgvarg = NULL;
  75.             
  76.         hr = pISmiley->Invoke(1, IID_NULL, 0, DISPATCH_PROPERTYGET, &dispparams, &vVarResult, NULL, NULL);
  77.         if(SUCCEEDED(hr))
  78.         {
  79.             // put property(Sad)
  80.             DISPID        dispidNamed = DISPID_PROPERTYPUT;
  81.             DISPPARAMS    dispparams;
  82.  
  83.             vArg.vt = VT_BOOL;
  84.             vArg.boolVal = vVarResult.boolVal;
  85.  
  86.             dispparams.cArgs = 1;
  87.             dispparams.cNamedArgs = 1;
  88.             dispparams.rgdispidNamedArgs = &dispidNamed;
  89.             dispparams.rgvarg = &vArg;
  90.             
  91.             pISmiley->Invoke(1, IID_NULL, 0, DISPATCH_PROPERTYPUT, &dispparams, NULL, NULL, NULL);
  92.         }
  93.     }
  94. }
  95.