Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: layapi.cxx
//
// Contents: API for layout tool
//
// Classes:
//
// Functions:
//
// History: 12-Feb-96 PhilipLa Created
// 21-Feb-96 SusiA New API, moved ReLayoutDocfile to method
//
//----------------------------------------------------------------------------
#include "layouthd.cxx"
#pragma hdrstop
#include <header.hxx>
#include "laylkb.hxx"
#include "laywrap.hxx"
#if DBG == 1
DECLARE_INFOLEVEL(lay); #endif
STDAPI StgOpenLayoutDocfile(OLECHAR const *pwcsDfName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen) { SCODE sc; CLayoutLockBytes *pllkb; IStorage *pstg;
if ((reserved != 0) || (!ppstgOpen)) { return STG_E_INVALIDPARAMETER; } if (!(pwcsDfName)) { return STG_E_INVALIDNAME; } pllkb = new CLayoutLockBytes(); if (pllkb == NULL) { return STG_E_INSUFFICIENTMEMORY; }
if (FAILED(sc = pllkb->Init(pwcsDfName, grfMode))) { pllkb->Release(); return sc; } sc = StgOpenStorageOnILockBytes(pllkb, NULL, grfMode, NULL, 0, &pstg);
if (FAILED(sc)) { pllkb->Release(); return sc; }
*ppstgOpen = new CLayoutRootStorage(pstg, pllkb); if (*ppstgOpen == NULL) { pstg->Release(); pllkb->Release(); return STG_E_INSUFFICIENTMEMORY; }
pstg->Release(); pllkb->Release(); return sc; }
|