///////////////////////////////////////////////////////////////// // PersistFileImpl.cpp - Implements IPersistFile // // // // Platform: Dell Dimension 8100, Windows 2000, SP2 // // Application: Demonstration of ATL 7.0 for CSE775 // // Modified: Jim Fawcett, Syracuse Univ, CST 2-187 // // (315) 443-3948, fawcett@ecs.syr.edu // ///////////////////////////////////////////////////////////////// #include "stdafx.h" #include #include "IPersistFileImpl.h" STDMETHODIMP ReadStream(IStorage* pIStorage, OLECHAR* pStreamName, CString& streamBuffer) { LPSTREAM pStream = NULL; HRESULT hr = pIStorage->OpenStream ( pStreamName, NULL, STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, &pStream ); if(SUCCEEDED(hr)) { std::cout << "\n storage opened"; const int BUFSIZE = 256; char Buffer[BUFSIZE]; ULONG Count; hr = pStream->Read((void*)Buffer,BUFSIZE,&Count); if(SUCCEEDED(hr)) { std::cout << "\n stream read: "; *(Buffer + Count) = '\0'; std::cout << Buffer; streamBuffer = Buffer; } else std::cout << "\n read failed"; pStream->Release(); } else std::cout << "\n storage open failed"; return hr; }