windows-nt/Source/XPSP1/NT/ds/security/cryptoapi/pkitrust/mssip32/sipobjss.hxx
2020-09-26 16:20:57 +08:00

57 lines
2 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: SIPObjSS.hxx
//
// Contents: Microsoft SIP Provider - Structured Storage
//
// History: 07-Aug-1997 pberkman created
//
//--------------------------------------------------------------------------
#ifndef SIPOBJSS_HXX
#define SIPOBJSS_HXX
#include "sipobj.hxx"
class SIPObjectSS_ : public SIPObject_
{
public:
SIPObjectSS_(DWORD id);
virtual ~SIPObjectSS_(void);
BOOL RemoveSignedDataMsg(SIP_SUBJECTINFO *pSI,DWORD dwIdx);
char *GetDataObjectID(void) { return(SPC_SIGINFO_OBJID); }
char *GetDataOIDHint(void) { return((char *)SPC_SIGINFO_STRUCT); }
protected:
void *GetMyStructure(SIP_SUBJECTINFO *pSI) { return(&SpcSigInfo); }
DWORD GetMyStructureSize(void) { return(sizeof(SPC_SIGINFO)); }
BOOL PutMessageInFile(SIP_SUBJECTINFO *pSI,
WIN_CERTIFICATE *pWinCert,DWORD *pdwIndex);
BOOL GetMessageFromFile(SIP_SUBJECTINFO *pSI,
WIN_CERTIFICATE *pWinCert,DWORD dwIndex,
DWORD *pcbCert);
BOOL GetDigestStream(DIGEST_DATA *pDigestData,
DIGEST_FUNCTION pfnCallBack, DWORD dwFlags);
BOOL FileHandleFromSubject(SIP_SUBJECTINFO *pSubject,
DWORD dwAccess = GENERIC_READ,
DWORD dwShared = FILE_SHARE_READ);
private:
IStorage *pTopStg;
SPC_SIGINFO SpcSigInfo;
BOOL IStorageDigest(IStorage *pStg, DIGEST_DATA *pDigestData, DIGEST_FUNCTION pfnCallBack);
void FreeElements(DWORD *pcStg, STATSTG **ppStg);
BOOL SortElements(IStorage *pStg, DWORD *pcSortStg, STATSTG **ppSortStg);
};
#endif // SIPOBJSS_HXX