ILayoutStorage

The ILayoutStorage interface enables an application to optimize the layout of its compound files for efficient downloading across a slow link. The goal is to enable a browser or other application to download data in the order in which it will actually be needed.

To optimize a compound file an application first saves it, then calls StgOpenLayoutDocfile2_1VVMN to reopen the file using a special Compound Files implementation that exposes ILayoutStorage on its root storage. Once the storage is open, the application queries for a pointer to ILayoutStorage.

Using this pointer, the application can either provide explicit layout instructions or obtain them by monitoring the pattern of access to the compound file as it is loaded into memory.

    To monitor the order in which a compound file s data is actually accessed, the application calls ILayoutStorage::BeginMonitor42QBRZ8, after which the Compound Files implementation assumes that any operation performed on the storage or stream object is part of the desired access pattern. When the specified compound file is completely loaded, the application halts monitoring by calling ILayoutStorage::EndMonitor15I2G52.

 

However the desired layout information is obtained, the application calls ILayoutStorage::ReLayoutDocfileR8GY6I to rewrite the compound file using either the explicit layout instructions or the monitored layout access patterns.

When to Implement

You do not need to implement this interface. A special implementation of Compound Files exposes ILayoutStorage on the root storage object.

When to Use

Use ILayoutStorage to optimize your application s compound files. The interface is exposed in dflayout.dll, which is included with the Win32 SDK. If you are a web master, you can optimize compound files exposed in your web site by using the Docfile Layout Tool (dflayout.exe), which is also included with the Win32 SDK.

Methods in VTable Order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

 

ILayout Storage Method

Description

LayoutScript

Provides explicit layout instructions.

BeginMonitor

Monitors data access to a file.

EndMonitor

Ends monitoring of data access.

ReLayoutDocfile

Rewrites file using layout information.

 

See Also

ILayoutStorage