windows-nt/Source/XPSP1/NT/ds/security/services/ca/certdb/row.h

118 lines
2.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: row.h
//
// Contents: Cert Server Database interface implementation
//
//---------------------------------------------------------------------------
#include "resource.h" // main symbols
class CCertDBRow: public ICertDBRow
{
public:
CCertDBRow();
~CCertDBRow();
public:
// IUnknown
STDMETHODIMP QueryInterface(const IID& iid, void **ppv);
ULONG STDMETHODCALLTYPE AddRef();
ULONG STDMETHODCALLTYPE Release();
// ICertDBRow
STDMETHOD(BeginTransaction)();
STDMETHOD(CommitTransaction)(
/* [in] */ BOOL fCommit);
STDMETHOD(GetRowId)(
/* [out] */ DWORD *pRowId);
STDMETHOD(Delete)();
STDMETHOD(SetProperty)(
/* [in] */ WCHAR const *pwszPropName,
/* [in] */ DWORD dwFlags,
/* [in] */ DWORD cbProp,
/* [in] */ BYTE const *pbProp); // OPTIONAL
STDMETHOD(GetProperty)(
/* [in] */ WCHAR const *pwszPropName,
/* [in] */ DWORD dwFlags,
/* [in, out] */ DWORD *pcbProp,
/* [out] */ BYTE *pbProp); // OPTIONAL
STDMETHOD(SetExtension)(
/* [in] */ WCHAR const *pwszExtensionName,
/* [in] */ DWORD dwExtFlags,
/* [in] */ DWORD cbValue,
/* [in] */ BYTE const *pbValue); // OPTIONAL
STDMETHOD(GetExtension)(
/* [in] */ WCHAR const *pwszExtensionName,
/* [out] */ DWORD *pdwExtFlags,
/* [in, out] */ DWORD *pcbValue,
/* [out] */ BYTE *pbValue); // OPTIONAL
STDMETHOD(CopyRequestNames)();
STDMETHOD(EnumCertDBName)(
/* [in] */ DWORD dwFlags,
/* [out] */ IEnumCERTDBNAME **ppenum);
// CCertDBRow
HRESULT Open(
IN CERTSESSION *pcs,
IN ICertDB *pdb,
OPTIONAL IN CERTVIEWRESTRICTION const *pcvr);
HRESULT EnumerateNext(
IN OUT DWORD *pFlags,
IN JET_TABLEID tableid,
IN LONG cskip,
IN ULONG celt,
OUT CERTDBNAME *rgelt,
OUT ULONG *pceltFetched);
HRESULT EnumerateClose(
IN JET_TABLEID tableid);
private:
VOID _Cleanup();
HRESULT _SetPropertyA(
IN WCHAR const *pwszPropName,
IN DWORD dwFlags,
IN DWORD cbProp,
IN BYTE const *pbProp);
HRESULT _GetPropertyA(
IN WCHAR const *pwszPropName,
IN DWORD dwFlags,
IN OUT DWORD *pcbProp,
OPTIONAL OUT BYTE *pbProp);
BOOL _VerifyPropertyLength(
IN DWORD dwFlags,
IN DWORD cbProp,
IN BYTE const *pbProp);
HRESULT _VerifyPropertyValue(
IN DWORD dwFlags,
IN DWORD cbProp,
IN JET_COLTYP coltyp,
IN DWORD cbMax);
ICertDB *m_pdb;
CERTSESSION *m_pcs;
// Reference count
long m_cRef;
};