MonikerCommonPrefixWith

Returns a moniker based on the common prefix that the two monikers share. This function is intended for use only in IMoniker::CommonPrefixWith implementations.

WINOLEAPI MonikerCommonPrefixWith(

LPMONIKER pmkThis,
//First moniker being compared
LPMONIKER pmkOther,
//Second moniker being compared
LPMONIKER FAR *ppmkCommon
//Receives common prefix
);

Parameters

pmkThis

Points to one of the monikers to compare.

pmkOther

Points to the other moniker to compare.

ppmkCommon

Receives a pointer to a moniker based on the common prefix of pmkThis and pmkOther. The returned pointer is NULL if an error occurs; if non-NULL, the function has called IUnknown::AddRef on the parameter and the caller is responsible for calling IUnknown::Release.

Return Values

S_OK

Indicates a common prefix exists that is neither pmkThis nor pmkOther.

MK_S_HIM

Indicates the entire pmkOther moniker is a prefix of the pmkThis moniker.

MK_S_ME

Indicates the entire pmkThis moniker is a prefix of the pmkOther moniker.

MK_S_US

Indicates the pmkThis and pmkOther monikers are equal.

MK_E_NOPREFIX

Indicates the monikers have no common prefix.

MK_E_NOTBINDABLE

Indicates this function was called on a relative moniker. It is not meaningful to take the common prefix of relative monikers.

E_UNEXPECTED

Indicates an unexpected error occurred.

E_OUTOFMEMORY

Indicates insufficient memory.

Comments

Call MonikerCommonPrefixWith only if you are writing your own moniker class (implementing the IMoniker interface). Call this function from your implementation of the IMoniker::CommonPrefixWith method.

Your implementation of IMoniker::CommonPrefixWith should first check whether the other moniker is of a type you recognize and handle in a special way. If not, you should call MonikerCommonPrefixWith, passing itself as pmkThis and the other moniker as pmkOther. MonikerCommonPrefixWith correctly handles the cases where either moniker is a generic composite.

You should call this function only if pmkSrc and pmkDest are both absolute monikers (where an absolute moniker is either a file moniker or a generic composite whose left-most component is a file moniker, and where the file moniker represents an absolute path). Do not call this function on relative monikers.

See Also

IMoniker::CommonPrefixWith

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