IClassFactory::LockServer
Called by the client of a class object to keep an open object application in
memory, allowing instances to be created more quickly.
HRESULT LockServer(
BOOL fLock
| //Increments or decrements the lock count
|
);
|
|
Parameter
fLock
If
TRUE, increments the lock count; if
FALSE, decrements the lock count.
Return Values
S_OK
The specified object was either locked (
fLock = TRUE) or unlocked from memory (
fLock = FALSE).
E_FAIL
Indicates an unspecified error.
E_OUTOFMEMORY
Out of memory.
E_UNEXPECTED
An unexpected error occurred.
Comments
IClassFactory::LockServer controls whether an object application is kept in memory. Keeping the
application alive in memory allows instances to be created more quickly.
Notes to Callers
Most clients do not need to call this function. It is provided only for the
benefit of sophisticated clients that require special performance in the creation
of certain kinds of objects.
Notes to Implementors
If the lock count is zero, there are no more objects in use, and the
application is not under user control, then the server can be closed. One way to
implement
IClassFactory::LockServer is to call
CoLockObjectExternal.
The process that locks the object application is responsible for unlocking it.
Once the class object is released, there is no mechanism that guarantees the
caller connection to the same object definition later (as in the case where a
class object is registered as single-use). It is important to count all calls,
not just the last one, to
IClassFactory::LockServer, because calls must be balanced before attempting to release the pointer to
the class object or an error results. For every call to
LockServer with
fLock set to TRUE, there must be a call to
LockServer with
fLock set to FALSE. When the lock count and the class object reference count are
both zero, the class object can be freed.
See Also
CoLockObjectExternal
- 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