summaryrefslogtreecommitdiff
path: root/third_party/BaseClasses/pstream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/BaseClasses/pstream.cpp')
-rw-r--r--third_party/BaseClasses/pstream.cpp197
1 files changed, 0 insertions, 197 deletions
diff --git a/third_party/BaseClasses/pstream.cpp b/third_party/BaseClasses/pstream.cpp
deleted file mode 100644
index d20171f5..00000000
--- a/third_party/BaseClasses/pstream.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-//------------------------------------------------------------------------------
-// File: PStream.cpp
-//
-// Desc: DirectShow base classes.
-//
-// Copyright (c) 1992-2001 Microsoft Corporation. All rights reserved.
-//------------------------------------------------------------------------------
-
-
-#include <streams.h>
-#include <strsafe.h>
-
-#ifdef PERF
-#include <measure.h>
-#endif
-// #include "pstream.h" in streams.h
-
-//
-// Constructor
-//
-CPersistStream::CPersistStream(IUnknown *punk, __inout HRESULT *phr)
- : mPS_fDirty(FALSE)
-{
- mPS_dwFileVersion = GetSoftwareVersion();
-}
-
-
-//
-// Destructor
-//
-CPersistStream::~CPersistStream() {
- // Nothing to do
-}
-
-#if 0
-SAMPLE CODE TO COPY - not active at the moment
-
-//
-// NonDelegatingQueryInterface
-//
-// This object supports IPersist & IPersistStream
-STDMETHODIMP CPersistStream::NonDelegatingQueryInterface(REFIID riid, __deref_out void **ppv)
-{
- if (riid == IID_IPersist) {
- return GetInterface((IPersist *) this, ppv); // ???
- }
- else if (riid == IID_IPersistStream) {
- return GetInterface((IPersistStream *) this, ppv);
- }
- else {
- return CUnknown::NonDelegatingQueryInterface(riid, ppv);
- }
-}
-#endif
-
-
-//
-// WriteToStream
-//
-// Writes to the stream (default action is to write nothing)
-HRESULT CPersistStream::WriteToStream(IStream *pStream)
-{
- // You can override this to do things like
- // hr = pStream->Write(MyStructure, sizeof(MyStructure), NULL);
-
- return NOERROR;
-}
-
-
-
-HRESULT CPersistStream::ReadFromStream(IStream * pStream)
-{
- // You can override this to do things like
- // hr = pStream->Read(MyStructure, sizeof(MyStructure), NULL);
-
- return NOERROR;
-}
-
-
-//
-// Load
-//
-// Load all the data from the given stream
-STDMETHODIMP CPersistStream::Load(LPSTREAM pStm)
-{
- HRESULT hr;
- // Load the version number then the data
- mPS_dwFileVersion = ReadInt(pStm, hr);
- if (FAILED(hr)) {
- return hr;
- }
-
- return ReadFromStream(pStm);
-} // Load
-
-
-
-//
-// Save
-//
-// Save the contents of this Stream.
-STDMETHODIMP CPersistStream::Save(LPSTREAM pStm, BOOL fClearDirty)
-{
-
- HRESULT hr = WriteInt(pStm, GetSoftwareVersion());
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = WriteToStream(pStm);
- if (FAILED(hr)) {
- return hr;
- }
-
- mPS_fDirty = !fClearDirty;
-
- return hr;
-} // Save
-
-
-// WriteInt
-//
-// Writes an integer to an IStream as 11 UNICODE characters followed by one space.
-// You could use this for shorts or unsigneds or anything (up to 32 bits)
-// where the value isn't actually truncated by squeezing it into 32 bits.
-// Values such as (unsigned) 0x80000000 would come out as -2147483648
-// but would then load as 0x80000000 through ReadInt. Cast as you please.
-
-STDAPI WriteInt(IStream *pIStream, int n)
-{
- WCHAR Buff[13]; // Allows for trailing null that we don't write
- (void)StringCchPrintfW(Buff, NUMELMS(Buff),L"%011d ",n);
- return pIStream->Write(&(Buff[0]), 12*sizeof(WCHAR), NULL);
-} // WriteInt
-
-
-// ReadInt
-//
-// Reads an integer from an IStream.
-// Read as 4 bytes. You could use this for shorts or unsigneds or anything
-// where the value isn't actually truncated by squeezing it into 32 bits
-// Striped down subset of what sscanf can do (without dragging in the C runtime)
-
-STDAPI_(int) ReadInt(IStream *pIStream, __out HRESULT &hr)
-{
-
- int Sign = 1;
- unsigned int n = 0; // result wil be n*Sign
- WCHAR wch;
-
- hr = pIStream->Read( &wch, sizeof(wch), NULL);
- if (FAILED(hr)) {
- return 0;
- }
-
- if (wch==L'-'){
- Sign = -1;
- hr = pIStream->Read( &wch, sizeof(wch), NULL);
- if (FAILED(hr)) {
- return 0;
- }
- }
-
- for( ; ; ) {
- if (wch>=L'0' && wch<=L'9') {
- n = 10*n+(int)(wch-L'0');
- } else if ( wch == L' '
- || wch == L'\t'
- || wch == L'\r'
- || wch == L'\n'
- || wch == L'\0'
- ) {
- break;
- } else {
- hr = VFW_E_INVALID_FILE_FORMAT;
- return 0;
- }
-
- hr = pIStream->Read( &wch, sizeof(wch), NULL);
- if (FAILED(hr)) {
- return 0;
- }
- }
-
- if (n==0x80000000 && Sign==-1) {
- // This is the negative number that has no positive version!
- return (int)n;
- }
- else return (int)n * Sign;
-} // ReadInt
-
-
-// The microsoft C/C++ compile generates level 4 warnings to the effect that
-// a particular inline function (from some base class) was not needed.
-// This line gets rid of hundreds of such unwanted messages and makes
-// -W4 compilation feasible:
-#pragma warning(disable: 4514)