|
IMoniker::IsRunning
Determines whether the object identified by this moniker is currently loaded
and running.
HRESULT IsRunning(
IBindCtx *pbc,
| //Bind context to be used
| IMoniker *pmkToLeft,
| //Moniker to the left in the composite
| IMoniker *pmkNewlyRunning
| //Moniker of a newly running object
| );
|
|
Parameters
pbc
[in] Points to the bind context to be used in this binding operation. The bind
context caches objects bound during the binding process, contains parameters
that apply to all operations using the bind context, and provides the means by
which the moniker implementation should retrieve information about its
environment. For more information, see IBindCtx.
pmkToLeft
[in] Points to the moniker to the left of this moniker if this moniker is part
of a composite. This parameter is primarily used by moniker implementors to
enable cooperation between the various components of a composite moniker; moniker
clients can usually pass NULL.
pmkNewlyRunning
[in] Points to the moniker most recently added to the Running Object Table
(ROT). This can be NULL. If non-NULL, the implementation can return the results of
calling IMoniker::IsEqual on the pmkNewlyRunning parameter, passing the current moniker. This parameter is intended to enable IMoniker::IsRunning implementations that are more efficient than just searching the ROT, but the
implementation can choose to ignore pmkNewlyRunning without causing any harm.
Return Values
S_OK
The moniker is running.
S_FALSE
The moniker is not running.
E_UNEXPECTED
Indicates an unexpected error.
Comments
Notes to Callers
If speed is important when you're requesting services from the object
identified by the moniker, you may want those services only if the object is already running (because loading an object into the running
state may be time-consuming). In such a situation, you'd call IMoniker::IsRunning to determine if the object is running.
For the monikers stored within linked objects, IMoniker::IsRunning is primarily called by the default handler's implementation of IOleLink::BindIfRunning.
Notes to Implementors
To get a pointer to the Running Object Table (ROT), your implementation should
call IBindCtx::GetRunningObjectTable on the pbc parameter. Your implementation can then call IRunningObjectTable::IsRunning to determine whether the object identified by the moniker is running. Note
that the object identified by the moniker must have registered itself with the
ROT when it first began running.
See Also
IOleLink::BindIfRunning, IBindCtx::GetRunningObjectTable, IRunningObjectTable::IsRunning
Related LinksSoftware for Delphi and C++ Builder developers Software for Visual Studio .NET developers Software for Visual Basic 6 developers Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps Win32 Programmer's Reference (win32.hlp) Win32 Multimedia Programmer's Reference (mmedia.hlp) Microsoft Windows Pen API Programmer's Reference (penapi.hlp) Microsoft Windows Sockets 2 Reference (sock2.hlp) Microsoft Windows Telephony API (TAPI) Programmer's Reference (sock2.hlp) Unix Manual Pages
|