home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2008 April / PCgo 2008-04 (DVD).iso / interface / contents / demoversionen_3846 / 13664 / files / Data1.cab / regen.cpp < prev    next >
Encoding:
Text File  |  2001-07-13  |  6.9 KB  |  332 lines

  1. STDMETHODIMP C$$COM_Class_Name$$::get_Description(BSTR* bstrDescription)
  2. {
  3.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  4.  
  5.     CString strDescription;
  6.  
  7.     strDescription.LoadString(IDS_DESCRIPTION);
  8.     *bstrDescription = strDescription.AllocSysString();
  9.     return S_OK;
  10. }
  11.  
  12. STDMETHODIMP C$$COM_Class_Name$$::get_ClassID(BSTR* bstrClassID)
  13. {
  14.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  15.  
  16.     HRESULT        hRes    = E_FAIL;
  17.     LPOLESTR    olestr    = NULL;
  18.  
  19.     try
  20.     {
  21.         hRes = ::StringFromCLSID(CLSID_$$COM_Class_Name$$, &olestr);
  22.         CHECK_HRESULT(hRes);
  23.  
  24.         *bstrClassID = ::SysAllocString(olestr);
  25.     }
  26.     catch (...)
  27.     {
  28.         TRACE("C$$COM_Class_Name$$::get_ClassID");
  29.     }
  30.     if (olestr) CoTaskMemFree (olestr);
  31.  
  32.     return hRes;
  33. }
  34.  
  35. void MySafeArrayAccessData(SAFEARRAY *destArray, void** srcArray, bool* boolResult)
  36. {
  37.     *boolResult = false;
  38.     if (SUCCEEDED(SafeArrayAccessData(destArray, srcArray))) 
  39.         *boolResult = true;
  40.     else
  41.         throw;
  42. }
  43.  
  44. BSTR MakeBSTR(long lIdsOfResourceString)
  45. {
  46.     CString cStr;
  47.     cStr.LoadString(lIdsOfResourceString);
  48.     return cStr.AllocSysString();
  49. }
  50.  
  51. STDMETHODIMP C$$COM_Class_Name$$::GetPropertyInfo(VARIANT* Names, VARIANT* Types, VARIANT* IDs, VARIANT* Defaults, long* lPropsCount)
  52. {
  53.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  54.  
  55.     ASSERT(Names->vt    == (VT_ARRAY | VT_BSTR));
  56.     ASSERT(Types->vt    == (VT_ARRAY | VT_I4));
  57.     ASSERT(IDs->vt        == (VT_ARRAY | VT_I4));
  58.     ASSERT(Defaults->vt    == (VT_ARRAY | VT_VARIANT));
  59.  
  60.     *lPropsCount = $$PropertiesCount$$;
  61.  
  62.     HRESULT        hRes            = S_OK;
  63.     BSTR        *bstrNames        = NULL;
  64.     long        *lTypes            = NULL;
  65.     long        *lIDs            = NULL;
  66.     VARIANT        *varDefaults    = NULL; 
  67.     bool        boolNamesAccess;
  68.     bool        boolTypesAccess;
  69.     bool        boolIdsAccess;
  70.     bool        boolDefaultsAccess;
  71.  
  72.     SAFEARRAYBOUND bound = { *lPropsCount, 0 };
  73.     if (FAILED(::SafeArrayRedim(Names->parray,        &bound)))    return E_FAIL;
  74.     if (FAILED(::SafeArrayRedim(Types->parray,        &bound)))    return E_FAIL;
  75.     if (FAILED(::SafeArrayRedim(IDs->parray,        &bound)))    return E_FAIL;
  76.     if (FAILED(::SafeArrayRedim(Defaults->parray,    &bound)))    return E_FAIL;
  77.     
  78.     try
  79.     {
  80.         MySafeArrayAccessData(Names->parray,    (void**)&bstrNames,    &boolNamesAccess);
  81.         MySafeArrayAccessData(Types->parray,    (void**)&lTypes,    &boolTypesAccess);
  82.         MySafeArrayAccessData(IDs->parray,        (void**)&lIDs,        &boolIdsAccess);
  83.         MySafeArrayAccessData(Defaults->parray,    (void**)&varDefaults, &boolDefaultsAccess);
  84.         
  85.         long    lTmpIndex = 0;
  86.  
  87. $$RegenPropertiesGenerated$$
  88.  
  89.         ASSERT(lTmpIndex == (*lPropsCount));
  90.     }
  91.     catch (...)        
  92.     {
  93.         TRACE("C$$COM_Class_Name$$::GetPropertyInfo");
  94.         hRes = E_FAIL;
  95.     };
  96.  
  97.     if (boolNamesAccess)    ::SafeArrayUnaccessData(Names->parray);
  98.     if (boolTypesAccess)    ::SafeArrayUnaccessData(Types->parray);
  99.     if (boolIdsAccess)        ::SafeArrayUnaccessData(IDs->parray);
  100.     if (boolDefaultsAccess)    ::SafeArrayUnaccessData(Defaults->parray);
  101.  
  102.     return hRes;
  103. }
  104.  
  105. enum StockPages 
  106. {
  107.     PP_STOCK_PEN = 1,
  108.     PP_STOCK_BRUSH = 2,
  109.     PP_STOCK_TEXT = 4,
  110.     PP_STOCK_INSERT = 8,
  111.     PP_STOCK_VIEWPORT = 16,
  112.     PP_STOCK_AUTO = 32
  113. };
  114.  
  115. STDMETHODIMP C$$COM_Class_Name$$::GetPageInfo(IDispatch* AGraphic, long* StockPages, VARIANT* Names,    long* lPagesCount)
  116. {
  117.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  118.  
  119.     ASSERT(StockPages    != NULL);
  120.      ASSERT(Names->vt    == (VT_ARRAY|VT_BSTR));
  121.  
  122.     *StockPages = PP_STOCK_PEN | PP_STOCK_AUTO;
  123.  
  124.     *lPagesCount = 0;
  125.  
  126.     SAFEARRAYBOUND    bound    = {*lPagesCount, 0};
  127.     HRESULT            hRes    = E_FAIL;
  128.  
  129.     if (FAILED(SafeArrayRedim(Names->parray, &bound))) return E_FAIL;
  130.  
  131.     try
  132.     {
  133.         //::SafeArrayPutElement(Names->parray, &lPageCounter, (void*)bstrName);
  134.     }
  135.     catch (...)
  136.     {
  137.         TRACE("C$$COM_Class_Name$$::GetPageInfo");
  138.     };
  139.     
  140.     return hRes;
  141. }
  142.  
  143. STDMETHODIMP C$$COM_Class_Name$$::Initialize(IDispatch* ThisRegenMethod, IMSI_BOOL* boolResult)
  144. {
  145.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  146.  
  147.     HRESULT            hRes        = S_OK;
  148.  
  149.     try
  150.     {
  151.         *boolResult = true;
  152.     }
  153.     catch (...)
  154.     {
  155.         TRACE("CRegen::Initialize");
  156.     };
  157.  
  158.     return hRes;
  159. }
  160.  
  161. STDMETHODIMP C$$COM_Class_Name$$::PropertyPages(IDispatch* ThisRegenMethod, VARIANT* PageNumber, IMSI_BOOL* boolResult)
  162. {
  163.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  164.  
  165.     ASSERT(PageNumber->vt == VT_I4);
  166.  
  167.     try
  168.     {
  169.         *boolResult = true;
  170.     }
  171.     catch (...)
  172.     {
  173.         TRACE("C$$COM_Class_Name$$::PropertyPages");
  174.     };
  175.     
  176.     return S_OK;
  177. }
  178.  
  179. STDMETHODIMP C$$COM_Class_Name$$::PageControls(IDispatch* ThisRegenMethod, IDispatch* AGraphic, long PageNumber, IMSI_BOOL SaveProperties, IMSI_BOOL* boolResult)
  180. {
  181.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  182.  
  183.     try
  184.     {
  185.         if (SaveProperties)
  186.         {
  187.         }
  188.         else
  189.         {
  190.         };
  191.     }
  192.     catch (...)
  193.     {
  194.         TRACE("C$$COM_Class_Name$$::PageControls");
  195.     };
  196.         
  197.     return E_FAIL;
  198. }
  199.  
  200. STDMETHODIMP C$$COM_Class_Name$$::PageDone(IDispatch* ThisRegenMethod, VARIANT* PageNumber)
  201. {
  202.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  203.  
  204.     ASSERT(PageNumber->vt == VT_I4);
  205.  
  206.     try
  207.     {
  208.     }
  209.     catch (...)
  210.     {
  211.         TRACE("C$$COM_Class_Name$$::PageDone");
  212.     };
  213.  
  214.     return S_OK;
  215. }
  216.  
  217. STDMETHODIMP C$$COM_Class_Name$$::OnNewGraphic(IDispatch* CopyGraphic, IMSI_BOOL Copy, IMSI_BOOL* boolResult)
  218. {
  219.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  220.  
  221.     try
  222.     {
  223.         *boolResult = true;
  224.     }
  225.     catch (...)
  226.     {
  227.         TRACE("C$$COM_Class_Name$$::OnNewGraphic");
  228.     };
  229.  
  230.     return S_OK;
  231. }
  232.  
  233. STDMETHODIMP C$$COM_Class_Name$$::OnCopyGraphic(IDispatch* CopyGraphic, IDispatch* SourceGraphic, VARIANT* pvarMatrix, IMSI_BOOL* boolResult)
  234. {
  235.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  236.  
  237.     try
  238.     {
  239.         *boolResult = true;
  240.     }
  241.     catch (...)
  242.     {
  243.         TRACE("C$$COM_Class_Name$$::OnCopyGraphic");
  244.     };
  245.     
  246.     return S_OK;
  247. }
  248.  
  249. STDMETHODIMP C$$COM_Class_Name$$::OnPropertyChanged(IDispatch* AGraphic, long PropID, VARIANT* ValueOld, VARIANT* ValueNew)
  250. {
  251.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  252.  
  253.     try
  254.     {
  255.     }
  256.     catch (...)
  257.     {
  258.         TRACE("C$$COM_Class_Name$$::OnPropertyChanged");
  259.     };
  260.  
  261.     return S_OK;
  262. }
  263.  
  264. STDMETHODIMP C$$COM_Class_Name$$::OnPropertyChanging(IDispatch* AGraphic, long PropID, VARIANT* ValueOld, VARIANT* ValueNew, IMSI_BOOL* boolResult)
  265. {
  266.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  267.  
  268.     try
  269.     {
  270.         *boolResult = true;
  271.     }
  272.     catch (...)
  273.     {
  274.         TRACE("C$$COM_Class_Name$$::OnPropertyChanging");
  275.     };
  276.  
  277.     return S_OK;
  278. }
  279.  
  280. STDMETHODIMP C$$COM_Class_Name$$::OnPropertyGet(IDispatch* AGraphic,    long PropID)
  281. {
  282.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  283.  
  284.     try
  285.     {
  286.     }
  287.     catch (...)
  288.     {
  289.         TRACE("C$$COM_Class_Name$$::OnPropertyGet");
  290.     };
  291.  
  292.     return S_OK;
  293. }
  294.  
  295. STDMETHODIMP C$$COM_Class_Name$$::Draw(IDispatch* AGraphic, IDispatch* AView, VARIANT* AMatrix, IMSI_BOOL* boolResult)
  296. {
  297.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  298.  
  299.     try
  300.     {
  301.         *boolResult = true;
  302.     }
  303.     catch (...)
  304.     {
  305.         TRACE("C$$COM_Class_Name$$::Draw");
  306.     };
  307.  
  308.     return S_OK;
  309. }
  310.  
  311. STDMETHODIMP C$$COM_Class_Name$$::Regen(IDispatch* AGraphic)
  312. {
  313.     AFX_MANAGE_STATE(AfxGetStaticModuleState())
  314.  
  315.     IGraphic    *piGraphic    = NULL;
  316.  
  317.     if (FAILED(AGraphic->QueryInterface(IID_IGraphic, (void**) &piGraphic))) return E_FAIL;
  318.  
  319.     try
  320.     {
  321.     }
  322.     catch (...)
  323.     {
  324.         TRACE("C$$COM_Class_Name$$::Regen");
  325.     };
  326.  
  327.     RELEASE(piGraphic);
  328.  
  329.     return S_OK;
  330. }
  331.  
  332.