diff options
Diffstat (limited to 'src/md/enc/stgtiggerstream.cpp')
-rw-r--r-- | src/md/enc/stgtiggerstream.cpp | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/md/enc/stgtiggerstream.cpp b/src/md/enc/stgtiggerstream.cpp new file mode 100644 index 0000000000..383e969636 --- /dev/null +++ b/src/md/enc/stgtiggerstream.cpp @@ -0,0 +1,137 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. +//***************************************************************************** +// StgTiggerStream.h +// + +// +// TiggerStream is the companion to the TiggerStorage CoClass. It handles the +// streams managed inside of the storage and does the direct file i/o. +// +//***************************************************************************** +#include "stdafx.h" +#include "stgtiggerstream.h" +#include "stgtiggerstorage.h" +#include "posterror.h" + +// +// +// IStream +// +// + + +HRESULT STDMETHODCALLTYPE TiggerStream::Read( + void *pv, + ULONG cb, + ULONG *pcbRead) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::Write( + const void *pv, + ULONG cb, + ULONG *pcbWritten) +{ + return (m_pStorage->Write(m_rcStream, pv, cb, pcbWritten)); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::Seek( + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + ULARGE_INTEGER *plibNewPosition) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::SetSize( + ULARGE_INTEGER libNewSize) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::CopyTo( + IStream *pstm, + ULARGE_INTEGER cb, + ULARGE_INTEGER *pcbRead, + ULARGE_INTEGER *pcbWritten) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::Commit( + DWORD grfCommitFlags) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::Revert() +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::LockRegion( + ULARGE_INTEGER libOffset, + ULARGE_INTEGER cb, + DWORD dwLockType) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::UnlockRegion( + ULARGE_INTEGER libOffset, + ULARGE_INTEGER cb, + DWORD dwLockType) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::Stat( + STATSTG *pstatstg, + DWORD grfStatFlag) +{ + return (E_NOTIMPL); +} + + +HRESULT STDMETHODCALLTYPE TiggerStream::Clone( + IStream **ppstm) +{ + return (E_NOTIMPL); +} + + + + + + +HRESULT TiggerStream::Init( // Return code. + TiggerStorage *pStorage, // Parent storage. + LPCSTR szStream) // Stream name. +{ + // Save off the parent data source object and stream name. + m_pStorage = pStorage; + strncpy_s(m_rcStream, sizeof(m_rcStream), szStream, sizeof(m_rcStream)-1); + m_rcStream[sizeof(m_rcStream)-1] = '\0'; // force nul termination + return (S_OK); +} + + +ULONG TiggerStream::GetStreamSize() +{ + PSTORAGESTREAM pStreamInfo; + if (FAILED(m_pStorage->FindStream(m_rcStream, &pStreamInfo))) + return 0; + return (pStreamInfo->GetSize()); +} |