IOleContainer::LockContainer
Keeps an embedded object's container running.
HRESULT LockContainer(
BOOL fLock
| //Value indicating lock or unlock
|
);
|
|
Parameter
fLock
[in] Specifies whether to lock (TRUE) or unlock (FALSE) a container.
Return Values
S_OK
Container was locked successfully.
E_FAIL
An unspecified error occurred.
E_OUTOFMEMORY
Container could not be locked due to lack of memory.
Comments
An embedded object
calls
IOleContainer::LockContainer to keep its container running when the object has link clients that require an
update. If an end-user selects File Close from the container's menu, however,
the container ignores all outstanding
LockContainer locks and closes the document anyway.
Notes to Callers
When an embedded object changes from the loaded to the running state, it
should call
IOleContainer::LockContainer with the
fLock parameter set to TRUE. When the embedded object shuts down (transitions from
running to loaded), it should call
IOleContainer::LockContainer with the
fLock parameter set to FALSE.
Each call to
LockContainer with
fLock set to TRUE must be balanced by a call to
LockContainer with
fLock set to FALSE. Object applications typically need not call
LockContainer; the default handler makes these calls automatically for object applications
implemented as .EXEs as the object makes the transition to and from the running
state. Object applications not using the default handler, such as DLL object
applications, must make the calls directly.
An object should have no strong locks on it when it registers in the Running
Object Table, but it should be locked as soon as the first external client
connects to it. Therefore, following registration of the object in the Running
Object Table, object handlers and DLL object applications, as part of their
implementation of
IRunnableObject::Run, should call
IOleContainer::LockContainer(TRUE
) to lock the object.
Notes to Implementors
The container must keep track of whether and how many calls to
LockContainer(TRUE
) have been made. To increment or decrement the reference count,
IOleContainer::LockContainer calls
CoLockObjectExternal with a flag set to match
fLock.
See Also
CoLockObjectExternal,
IRunnableObject::Run
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database