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(

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



Points to the moniker that is to be bound.


Reserved for future use; must be zero.


Specifies the IID of the interface pointer desired.


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


Indicates that the moniker was successfully bound.


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.


Indicates insufficient memory.


Indicates one or more invalid arguments.

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


The BindMoniker helper function packages the following functionality:

IBindCtx *pbc;

CreateBindCtx(0, &pbc);

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


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
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database