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

//+--------------------------------------------------------------------------
//
// 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;
};