|
ILockBytes
The ILockBytes interface provides a byte array object used by the OLE-provided
implementation of compound files. Its methods manipulate the byte array object that provides
the physical storage for the root storage object of a compound file. The byte
array for an ILockBytes implementation is backed by some physical storage, such as a disk file,
global memory, or a database; and the ILockBytes implementation hides the details of accessing the physical storage.
When to Implement
OLE provides an implementation of the ILockBytes interface for its compound files. The OLE-provided ILockBytes interface presents a byte array stored in a physical disk file.
Most applications will never implement the ILockBytes interface. Instead, applications will typically call the StgCreateDocfile function to create a root storage object (in this case, an IStorage instance backed by a specified disk file); and this function internally
creates an instance of the OLE-provided, file-based ILockBytes implementation.
OLE also provides a memory-based ILockBytes implementation (see CreateILockBytesOnHGlobal).
It is possible for an application to provide its own ILockBytes implementation. For example, a database application might want to implement
an ILockBytes backed by the storage of its relational tables. However, it is strongly
recommended that you use the OLE-provided implementations. For a discussion of the
advantages of using the OLE implementations rather than creating your own, see
the StgCreateDocfileOnILockBytes API function.
If you choose to implement your own ILockBytes interface, you should consider providing custom marshaling by implementing
the IMarshal interface as part of your byte array object. The reason for this is that when
the OLE-provided implementations of IStorage and IStream are marshaled to another process, their ILockBytes interface pointers are also marshaled to the other process. The default
marshaling mechanism creates a proxy ILockBytes that transmits method calls back to the original LockBytes object. Custom
marshaling can improve efficiency by creating a remote LockBytes object that can
access the byte array directly.
When to Use
The ILockBytes methods are called by the OLE-provided implementations of IStorage and IStream, so application programmers do not need to call ILockBytes methods. If you write your own ILockBytes implementation, you can use the StgCreateDocfileOnILockBytes function to create an IStorage backed by your ILockBytes.
Methods in Vtable Order
ILockBytes Methods
| Description
| ReadAt
| Reads a specified number of bytes starting at a specified offset from the
beginning of the byte array.
| WriteAt
| Writes a specified number of bytes to a specified location in the byte array.
| Flush
| Ensures that any internal buffers maintained by the ILockBytes implementation are written out to the backing storage.
| SetSize
| Changes the size of the byte array.
| LockRegion
| Restricts access to a specified range of bytes in the byte array.
| UnlockRegion
| Removes the access restriction on a range of bytes previously restricted with ILockBytes::LockRegion.
| Stat
| Retrieves a STATSTG structure for this byte array object.
|
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|