IRunnableObject::Run
Runs an object.
HRESULT Run(
LPBC lpbc
| //Pointer to binding context
|
);
|
|
Parameter
lpbc
Points to the binding context of the run operation. May be NULL.
Return Values
S_OK
The object was successfully placed in the running state.
E_OUTOFMEMORY
Out of memory.
E_UNEXPECTED
An unexpected error occurred.
Comments
Containers call
IRunnableObject::Run to force their objects to enter the running state. If the object is not
already running, calling
IRunnableObject::Run can be an expensive operation, on the order of many seconds. If the object is
already running, then this method has no effect on the object.
Notes to Callers
When called on a linked object that has been converted to a new class since
the link was last activated,
IRunnableObject::Run may return OLE_E_CLASSDIFF. In this case, the client should call
IOleLink::BindToSource.
OleRun is a helper function that conveniently repackages the functionality offered by
IRunnableObject::Run. With the release of OLE 2.01, the implementation of
OleRun was changed so that it calls
QueryInterface, asks for
IRunnableObject, and then calls
IRunnableObject::Run. In other words, you can use the interface and the helper function
interchangeably.
Notes to Implementors
The object should register in the running object table if it has a moniker
assigned. The object should not hold any strong locks on itself; instead, it
should remain in the unstable, unlocked state. The object should be locked when the
first external connection is made to the object.
An embedded object must hold a lock on its embedding container while it is in
the running state. The Default handler provided by OLE 2 takes care of locking
the embedding container on behalf of objects implemented by an EXE object
application. Objects implemented by a DLL object application must explicitly put a
lock on their embedding containers, which they do by first calling
IOleClientSite::Getcontainer to get a pointer to the container, then calling
IOleContainer::LockContainer to actually place the lock. This lock must be released when
IOleObject::Close is called.
See Also
IOleLink::BindToSource,
OleRun
- 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