//+-------------------------------------------------------------------------- // // 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] */ DWORD dwCommitFlags); 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] */ ICertDBComputedColumn *pIComputedColumn, /* [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 ICertDBComputedColumn *pIComputedColumn, 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); HRESULT _CommitTransaction( IN BOOL fCommit, IN BOOL fLazyFlush); ICertDB *m_pdb; CERTSESSION *m_pcs; // Reference count long m_cRef; };