cctl.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 3k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. // CCtl.h : Declaration of the CARPCtl
  2. #ifndef __CARPCTL_H_
  3. #define __CARPCTL_H_
  4. #include "events.h"
  5. #include "util.h"
  6. #include "mtxarray.h"       // for CAppData
  7. #include "worker.h"         // for IWorkerEvent
  8. // CARPCtl
  9. class ATL_NO_VTABLE CARPCtl : 
  10.     public CComObjectRootEx<CComSingleThreadModel>,
  11.     public CComCoClass<CARPCtl, &CLSID_CARPCtl>,
  12.     public IObjectWithSiteImpl<CARPCtl>,
  13.     public IConnectionPointContainerImpl<CARPCtl>,
  14.     public IObjectSafetyImpl<CARPCtl>,
  15.     public IDispatchImpl<IARPCtl, &IID_IARPCtl, &LIBID_ARPCTLLib>,
  16.     public CProxy_ARPCtlEvents<CARPCtl>,
  17.     public IProvideClassInfo2Impl<&CLSID_CARPCtl, &DIID__ARPCtlEvents, &LIBID_ARPCTLLib>,
  18.     public IWorkerEvent
  19. {
  20. private:
  21.     DWORD   _dwCurrentIndex;
  22.     DWORD   _dwcItems;
  23.     DWORD   _dwEnum;            // One of ENUM_*
  24.     IShellAppManager* _pam;
  25.     CMtxArray2 * _pmtxarray;
  26.     CWorkerThread _workerthread;
  27.     
  28.     BITBOOL _fSecure: 1;
  29.     void    _FreeAppData();
  30.     CAppData * _GetAppData(DWORD iItem);
  31. public:
  32.     CARPCtl();
  33.     ~CARPCtl();
  34.     
  35.     void EnumCallback(CAppData * pcad);
  36. DECLARE_REGISTRY_RESOURCEID(IDR_CARPCTL)
  37. DECLARE_NOT_AGGREGATABLE(CARPCtl)
  38. BEGIN_COM_MAP(CARPCtl)
  39.     COM_INTERFACE_ENTRY(IARPCtl)
  40.     COM_INTERFACE_ENTRY(IDispatch)
  41.     COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
  42.     COM_INTERFACE_ENTRY_IMPL(IObjectWithSite)
  43.     COM_INTERFACE_ENTRY_IMPL(IObjectSafety)
  44.     COM_INTERFACE_ENTRY(IProvideClassInfo)
  45.     COM_INTERFACE_ENTRY(IProvideClassInfo2)
  46.     COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
  47. END_COM_MAP()
  48. BEGIN_CONNECTION_POINT_MAP(CARPCtl)
  49.     CONNECTION_POINT_ENTRY(DIID__ARPCtlEvents)
  50. END_CONNECTION_POINT_MAP()
  51. // IARPCtl
  52. public:
  53.     // *** IWorkerEvent methods ***
  54.     STDMETHOD(FireOnDataReady)  (LONG iRow);
  55.     STDMETHOD(FireOnFinished)   (void);
  56.     STDMETHOD(get_ItemCount)(/*[out, retval]*/ long *pVal);
  57.     STDMETHOD(InitData)(BSTR bstrEnum, DWORD dwSortOrder);
  58.     STDMETHOD(MoveNext)(BOOL* pbool);
  59.     STDMETHOD(MoveFirst)(BOOL* pbool);
  60.     STDMETHOD(MoveTo)(DWORD dwRecNum, BOOL* pbool);
  61.     STDMETHOD(Exec)(BSTR bstrExec);
  62.     STDMETHOD(get_DisplayName)(/*[out, retval]*/ BSTR *pVal);
  63.     STDMETHOD(get_Version)(/*[out, retval]*/ BSTR *pVal);
  64.     STDMETHOD(get_Publisher)(/*[out, retval]*/ BSTR *pVal);
  65.     STDMETHOD(get_ProductID)(/*[out, retval]*/ BSTR *pVal);
  66.     STDMETHOD(get_RegisteredOwner)(/*[out, retval]*/ BSTR *pVal);
  67.     STDMETHOD(get_Language)(/*[out, retval]*/ BSTR *pVal);
  68.     STDMETHOD(get_SupportUrl)(/*[out, retval]*/ BSTR *pVal);
  69.     STDMETHOD(get_SupportTelephone)(/*[out, retval]*/ BSTR *pVal);
  70.     STDMETHOD(get_HelpLink)(/*[out, retval]*/ BSTR *pVal);
  71.     STDMETHOD(get_InstallLocation)(/*[out, retval]*/ BSTR *pVal);
  72.     STDMETHOD(get_InstallSource)(/*[out, retval]*/ BSTR *pVal);
  73.     STDMETHOD(get_InstallDate)(/*[out, retval]*/ BSTR *pVal);
  74.     STDMETHOD(get_RequiredByPolicy)(/*[out, retval]*/ BSTR *pVal);
  75.     STDMETHOD(get_Contact)(/*[out, retval]*/ BSTR *pVal);
  76.     STDMETHOD(get_Size)(/*[out, retval]*/ BSTR *pVal);
  77.     STDMETHOD(get_TimesUsed)(/*[out, retval]*/ BSTR *pVal);
  78.     STDMETHOD(get_LastUsed)(/*[out, retval]*/ BSTR *pVal);
  79.     STDMETHOD(get_Capability)(/*[out, retval]*/ long *pVal);
  80. };
  81. #endif //__CARPCTL_H_