NAME

SHWriteDataBlockList  (SHLWAPI.17)

SYNOPSIS

 HRESULT SHWriteDataBlockList
 (
  IStream* lpStream,
  LPDBLIST lpList
 )

DESCRIPTION

Write a DataBlock list to an IStream object.

PARAMS

lpStream [In] IStream object to write the list to.
lpList [In] List of items to write.

RETURNS

Success: S_OK. The object is written to the stream.

Failure: An HRESULT error code.

NOTES

Ordinals 17,18,19,20,21 and 22 are related and together provide a compact list structure (a "DataBlock List"), which may be stored and retrieved from an IStream object.

The exposed Api consists of:

- SHWriteDataBlockList - Write a DataBlock list to a stream,

- SHReadDataBlockList - Read and create a list from a stream,

- SHFreeDataBlockList - Free a list,

- SHAddDataBlock - Insert a new item into a list,

- SHRemoveDataBlock - Remove an item from a list,

- SHFindDataBlock - Find an item in a list.

The DataBlock list is stored packed into a memory array. Each element has a size and an associated ID. Elements must be less than 64k if the list is to be subsequently read from a stream.

Elements are aligned on DWORD boundaries. If an elements data size is not a DWORD size multiple, the element is wrapped by inserting a surrounding element with an Id of 0xFFFFFFFF, and size sufficient to pad to a DWORD boundary.

These functions are slow for large objects and long lists.

IMPLEMENTATION

Exported by ordinal only. Use GetProcAddress to obtain a pointer to the function.

Implemented in "dlls/shlwapi/clist.c". gitlab.winehq.org/wine/wine/blob/master/dlls/shlwapi/clist.c

Debug channel "shell".


Copyright © 2024 The Wine Project. All trademarks are the property of their respective owners. Visit WineHQ for license details. Generated Dec 2024.