Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
2.8 KiB

  1. //+--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996 - 1999
  5. //
  6. // File: column.h
  7. //
  8. // Contents: CertView implementation
  9. //
  10. //---------------------------------------------------------------------------
  11. // CEnumCERTVIEWCOLUMN::Open Flags:
  12. // CVRC_COLUMN_* // enumerate schema, result columns or values
  13. // CVRC_TABLE_* // specifies the DB table to enumerate
  14. class CEnumCERTVIEWCOLUMN:
  15. public IDispatchImpl<
  16. IEnumCERTVIEWCOLUMN,
  17. &IID_IEnumCERTVIEWCOLUMN,
  18. &LIBID_CERTADMINLib>,
  19. public ISupportErrorInfoImpl<&IID_IEnumCERTVIEWCOLUMN>,
  20. public CComObjectRoot
  21. // Not externally createable:
  22. //public CComCoClass<CEnumCERTVIEWCOLUMN, &CLSID_CEnumCERTVIEWCOLUMN>
  23. {
  24. public:
  25. CEnumCERTVIEWCOLUMN();
  26. ~CEnumCERTVIEWCOLUMN();
  27. BEGIN_COM_MAP(CEnumCERTVIEWCOLUMN)
  28. COM_INTERFACE_ENTRY(IDispatch)
  29. COM_INTERFACE_ENTRY(ISupportErrorInfo)
  30. COM_INTERFACE_ENTRY(IEnumCERTVIEWCOLUMN)
  31. END_COM_MAP()
  32. DECLARE_NOT_AGGREGATABLE(CEnumCERTVIEWCOLUMN)
  33. // Remove the comment from the line above if you don't want your object to
  34. // support aggregation. The default is to support it
  35. #if 0 // Not externally createable:
  36. DECLARE_REGISTRY(
  37. CEnumCERTVIEWCOLUMN,
  38. wszCLASS_EnumCERTVIEWCOLUMN TEXT(".1"),
  39. wszCLASS_EnumCERTVIEWCOLUMN,
  40. IDS_ENUMCERTVIEWCOLUMN_DESC,
  41. THREADFLAGS_BOTH)
  42. #endif
  43. // IUnknown
  44. STDMETHODIMP QueryInterface(const IID& iid, void **ppv);
  45. ULONG STDMETHODCALLTYPE AddRef();
  46. ULONG STDMETHODCALLTYPE Release();
  47. // IEnumCERTVIEWCOLUMN
  48. STDMETHOD(Next)(
  49. /* [out, retval] */ LONG *pIndex);
  50. STDMETHOD(GetName)(
  51. /* [out, retval] */ BSTR *pstrOut);
  52. STDMETHOD(GetDisplayName)(
  53. /* [out, retval] */ BSTR *pstrOut);
  54. STDMETHOD(GetType)(
  55. /* [out, retval] */ LONG *pType);
  56. STDMETHOD(IsIndexed)(
  57. /* [out, retval] */ LONG *pIndexed);
  58. STDMETHOD(GetMaxLength)(
  59. /* [out, retval] */ LONG *pMaxLength);
  60. STDMETHOD(GetValue)(
  61. /* [in] */ LONG Flags,
  62. /* [out, retval] */ VARIANT *pvarValue);
  63. STDMETHOD(Skip)(
  64. /* [in] */ LONG celt);
  65. STDMETHOD(Reset)(VOID);
  66. STDMETHOD(Clone)(
  67. /* [out] */ IEnumCERTVIEWCOLUMN **ppenum);
  68. // CEnumCERTVIEWCOLUMN
  69. HRESULT Open(
  70. IN LONG Flags,
  71. IN LONG iRow,
  72. IN ICertView *pvw,
  73. OPTIONAL IN CERTTRANSDBRESULTROW const *prow);
  74. private:
  75. HRESULT _SetErrorInfo(
  76. IN HRESULT hrError,
  77. IN WCHAR const *pwszDescription);
  78. ICertView *m_pvw;
  79. CERTTRANSDBRESULTROW *m_prow;
  80. LONG m_iRow;
  81. LONG m_ielt;
  82. LONG m_celt;
  83. LONG m_Flags;
  84. CERTDBCOLUMN const *m_pcol;
  85. WCHAR const *m_pwszDisplayName;
  86. // Reference count
  87. long m_cRef;
  88. };