Leaked source code of windows server 2003
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.

123 lines
2.9 KiB

  1. //+--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996 - 1999
  5. //
  6. // File: row.h
  7. //
  8. // Contents: Cert Server Database interface implementation
  9. //
  10. //---------------------------------------------------------------------------
  11. #include "resource.h" // main symbols
  12. class CCertDBRow: public ICertDBRow
  13. {
  14. public:
  15. CCertDBRow();
  16. ~CCertDBRow();
  17. public:
  18. // IUnknown
  19. STDMETHODIMP QueryInterface(const IID& iid, void **ppv);
  20. ULONG STDMETHODCALLTYPE AddRef();
  21. ULONG STDMETHODCALLTYPE Release();
  22. // ICertDBRow
  23. STDMETHOD(BeginTransaction)();
  24. STDMETHOD(CommitTransaction)(
  25. /* [in] */ DWORD dwCommitFlags);
  26. STDMETHOD(GetRowId)(
  27. /* [out] */ DWORD *pRowId);
  28. STDMETHOD(Delete)();
  29. STDMETHOD(SetProperty)(
  30. /* [in] */ WCHAR const *pwszPropName,
  31. /* [in] */ DWORD dwFlags,
  32. /* [in] */ DWORD cbProp,
  33. /* [in] */ BYTE const *pbProp); // OPTIONAL
  34. STDMETHOD(GetProperty)(
  35. /* [in] */ WCHAR const *pwszPropName,
  36. /* [in] */ DWORD dwFlags,
  37. /* [in] */ ICertDBComputedColumn *pIComputedColumn,
  38. /* [in, out] */ DWORD *pcbProp,
  39. /* [out] */ BYTE *pbProp); // OPTIONAL
  40. STDMETHOD(SetExtension)(
  41. /* [in] */ WCHAR const *pwszExtensionName,
  42. /* [in] */ DWORD dwExtFlags,
  43. /* [in] */ DWORD cbValue,
  44. /* [in] */ BYTE const *pbValue); // OPTIONAL
  45. STDMETHOD(GetExtension)(
  46. /* [in] */ WCHAR const *pwszExtensionName,
  47. /* [out] */ DWORD *pdwExtFlags,
  48. /* [in, out] */ DWORD *pcbValue,
  49. /* [out] */ BYTE *pbValue); // OPTIONAL
  50. STDMETHOD(CopyRequestNames)();
  51. STDMETHOD(EnumCertDBName)(
  52. /* [in] */ DWORD dwFlags,
  53. /* [out] */ IEnumCERTDBNAME **ppenum);
  54. // CCertDBRow
  55. HRESULT Open(
  56. IN CERTSESSION *pcs,
  57. IN ICertDB *pdb,
  58. OPTIONAL IN CERTVIEWRESTRICTION const *pcvr);
  59. HRESULT EnumerateNext(
  60. IN OUT DWORD *pFlags,
  61. IN JET_TABLEID tableid,
  62. IN LONG cskip,
  63. IN ULONG celt,
  64. OUT CERTDBNAME *rgelt,
  65. OUT ULONG *pceltFetched);
  66. HRESULT EnumerateClose(
  67. IN JET_TABLEID tableid);
  68. private:
  69. VOID _Cleanup();
  70. HRESULT _SetPropertyA(
  71. IN WCHAR const *pwszPropName,
  72. IN DWORD dwFlags,
  73. IN DWORD cbProp,
  74. IN BYTE const *pbProp);
  75. HRESULT _GetPropertyA(
  76. IN WCHAR const *pwszPropName,
  77. IN DWORD dwFlags,
  78. IN ICertDBComputedColumn *pIComputedColumn,
  79. IN OUT DWORD *pcbProp,
  80. OPTIONAL OUT BYTE *pbProp);
  81. BOOL _VerifyPropertyLength(
  82. IN DWORD dwFlags,
  83. IN DWORD cbProp,
  84. IN BYTE const *pbProp);
  85. HRESULT _VerifyPropertyValue(
  86. IN DWORD dwFlags,
  87. IN DWORD cbProp,
  88. IN JET_COLTYP coltyp,
  89. IN DWORD cbMax);
  90. HRESULT _CommitTransaction(
  91. IN BOOL fCommit,
  92. IN BOOL fLazyFlush);
  93. ICertDB *m_pdb;
  94. CERTSESSION *m_pcs;
  95. // Reference count
  96. long m_cRef;
  97. };