# IRunnableObject::LockRunning

Locks an already running object into its running state or unlocks it from its running state.

HRESULT LockRunning(

BOOL fLock, | //Flag indicating whether object is locked
BOOL fLastUnlockCloses | //Flag indicating whether to close object
); |

Parameters

fLock
  [in] TRUE locks the object into its running state. FALSE unlocks the object from its running state.
fLastUnlockCloses
  [in] TRUE specifies that if the connection being released is the last external lock on the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.

Return Values

This method supports the standard return values E_FAIL, E_INVALIDARG, E_OUTOFMEMORY and E_UNEXPECTED, as well as the following:

S_OK
  If the value of fLock is TRUE, the object was successfully locked; if the value of fLock is FALSE, the object was successfully unlocked.

Remarks

Most implementations of IRunnableObject::LockRunning call CoLockObjectExternal.

OleLockRunning is a helper function that conveniently repackages the functionality offered by IRunnableObject::LockRunning. With the release of OLE 2.01, the implementation of OleLockRunning was changed to call QueryInterface, ask for IRunnableObject, and then call IRunnableObject::LockRunning. In other words, you can use the interface and the helper function interchangeably.

See Also

CoLockObjectExternal