//+-------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1991 - 1996. // // File: dfstream.cxx // // Contents: Implementations of CDocFile stream methods // //--------------------------------------------------------------- #include "dfhead.cxx" #include "h/sstream.hxx" //+-------------------------------------------------------------- // // Method: CDocFile::CreateStream, public // // Synopsis: Creates a named stream in a DocFile // // Arguments: [pwcsName] - Name of the stream // [df] - Transactioning flags // [dlSet] - LUID to set or DF_NOLUID // [ppstStream] - Pointer to storage for the stream pointer // // Returns: Appropriate error code // // Modifies: [ppstStream] // //--------------------------------------------------------------- SCODE CDocFile::CreateStream(CDfName const *pdfn, DFLAGS const df, DFLUID dlSet, CDirectStream **ppstStream) { SCODE sc; CDirectStream *pstm; olDebugOut((DEB_ITRACE, "In CDocFile::CreateStream(" "%ws, %X, %lu, %p)\n", pdfn, df, dlSet, ppstStream)); UNREFERENCED_PARM(df); if (dlSet == DF_NOLUID) dlSet = CDirectStream::GetNewLuid(); olMem(pstm = new CDirectStream(dlSet)); olChkTo(EH_pstm, pstm->Init(&_stgh, pdfn, TRUE)); *ppstStream = pstm; olDebugOut((DEB_ITRACE, "Out CDocFile::CreateStream => %p\n", *ppstStream)); return S_OK; EH_pstm: delete pstm; EH_Err: return sc; } //+-------------------------------------------------------------- // // Method: CDocFile::GetStream, public // // Synopsis: Retrieves an existing stream from a DocFile // // Arguments: [pwcsName] - Name of the stream // [df] - Transactioning flags // [dwType] - Type of entry // [ppstStream] - Pointer to storage for the stream pointer // // Returns: Appropriate error code // // Modifies: [ppstStream] // //--------------------------------------------------------------- SCODE CDocFile::GetStream(CDfName const *pdfn, DFLAGS const df, CDirectStream **ppstStream) { SCODE sc; CDirectStream *pstm; olDebugOut((DEB_ITRACE, "In CDocFile::GetStream(%ws, %X, %p)\n", pdfn, df, ppstStream)); UNREFERENCED_PARM(df); DFLUID dl = CDirectStream::GetNewLuid(); olMem(pstm = new CDirectStream(dl)); olChkTo(EH_pstm, pstm->Init(&_stgh, pdfn, FALSE)); *ppstStream = pstm; olDebugOut((DEB_ITRACE, "Out CDocFile::GetStream => %p\n", *ppstStream)); return S_OK; EH_pstm: delete pstm; EH_Err: return sc; }