windows-nt/Source/XPSP1/NT/base/win32/fusion/sxs/pcmwriterstream.h
2020-09-26 16:20:57 +08:00

59 lines
1.6 KiB
C++

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
CPrecompiledManifestWriterStream.h
Abstract:
Like a CFileStream (its base) but also implements Commit over
associated PCMWriter. This functionality was
moved out of CFileStream.
Author:
Xiaoyu Wu (xiaoyuw) June 2000
Revision History:
--*/
#if !defined(_FUSION_SXS_PCMWriterStream_H_INCLUDED_)
#define _FUSION_SXS_PCMWriterStream_H_INCLUDED_
#pragma once
#include "stdinc.h"
#include "FileStream.h"
#include "SmartRef.h"
class CPrecompiledManifestWriterStream : public CReferenceCountedFileStream
//class CPrecompiledManifestWriterStream : public CFileStreamBase // not delete
{
private:
typedef CReferenceCountedFileStream Base;
//typedef CFileStreamBase Base;
public:
CPrecompiledManifestWriterStream() : Base(), m_fBuffer(TRUE) { }
~CPrecompiledManifestWriterStream() {}
HRESULT WriteWithDelay(void const *pv, ULONG cb, ULONG *pcbWritten);
// NTRAID#NTBUG9-164736-2000/8/17-a-JayK openOrCreate should probably default
// default to safer CREATE_NEW but I'm preserving existing behavior where
// it doesn't hurt me.
BOOL SetSink(const CBaseStringBuffer &rbuff, DWORD openOrCreate = CREATE_ALWAYS);
HRESULT Close(ULONG, DWORD); //besides close, rewrite MaxNodeCount, RecordCount into the header of the file
BOOL IsSinkedStream(void);
protected:
CByteBuffer m_buffer;
BOOL m_fBuffer;
private:
CPrecompiledManifestWriterStream(const CPrecompiledManifestWriterStream &);
void operator =(const CPrecompiledManifestWriterStream &);
};
#endif