BindMoniker

Binds the specified moniker, that is, locates the object identified by the moniker, which activates the object if it isn't active already, and retrieves the specified interface pointer to that object.

HRESULT BindMoniker(

LPMONIKER pmk,
//Pointer to the moniker to be bound
DWORD grfOpt,
//Reserved
REFIID iidResult,
//IID of interface pointer desired
LPVOID FAR *ppvResult
//Receives interface pointer
);

Parameters

pmk

Points to the moniker that is to be bound.

grfOpt

Reserved for future use; must be zero.

iidResult

Specifies the IID of the interface pointer desired.

ppvResult

Receives a pointer to the requested interface. If an error occurs, ppvResult is NULL; otherwise, the caller is responsible for calling IUnknown::Release.

Return Values

S_OK

Indicates that the moniker was successfully bound.

MK_E_NOOBJECT

Indicates that the object identifed by pmk could not be found. If pmk is a composite moniker, the object indicated is some intermediate object identified in the composite.

E_OUTOFMEMORY

Indicates insufficient memory.

E_INVALIDARG

Indicates one or more invalid arguments.

The return value can also be any of the error values returned by IMoniker::BindToObject.

Comments

The BindMoniker helper function packages the following functionality:

IBindCtx *pbc;

CreateBindCtx(0, &pbc);

pmk->BindToObject(pbc, NULL, riid, ppvObj);

pbc->Release();

BindMoniker is a helper function that is convenient for a moniker client to call to bind one moniker. A moniker client uses a moniker to acquire an interface pointer to the object that the moniker identifies. If you have several monikers to bind in quick succession, and if you know that those monikers will activate the same objects, it may be more efficient to call the IMoniker::BindToObject method directly so you can use the same bind context for all the monikers. See the IBindCtx interface for more information.

The most common examples of moniker clients are applications that act as link containers; that is, container applications that allow their documents to contain linked objects. However, link containers are a special case in that they generally do not need to make direct calls to IMoniker methods. Instead, they manipulate linked objects through the IOleLink interface; the default handler implements this interface and calls the appropriate IMoniker methods as needed.

See Also

CreateBindCtx, IMoniker::BindToObject

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