MonikerCommonPrefixWith function (objbase.h)
Creates a new moniker based on the common prefix that this moniker (the one comprising the data of this moniker object) shares with another moniker.
This function is intended to be called only in implementations of IMoniker::CommonPrefixWith.
Syntax
HRESULT MonikerCommonPrefixWith(
[in] LPMONIKER pmkThis,
[in] LPMONIKER pmkOther,
[out] LPMONIKER *ppmkCommon
);
Parameters
[in] pmkThis
A pointer to the IMoniker interface on one of the monikers for which a common prefix is sought; usually the moniker in which this call is used to implement IMoniker::CommonPrefixWith.
[in] pmkOther
A pointer to the IMoniker interface on the moniker to be compared with the first moniker.
[out] ppmkCommon
The address of an IMoniker* pointer variable that receives the interface pointer to the moniker based on the common prefix of pmkThis and pmkOther. When successful, the function has called AddRef on the moniker and the caller is responsible for calling Release. If an error occurs, the supplied interface pointer value is NULL.
Return value
This function can return the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as the following values.
Return code | Description |
---|---|
|
A common prefix exists that is neither pmkThis nor pmkOther. |
|
The entire pmkOther moniker is a prefix of the pmkThis moniker. |
|
The entire pmkThis moniker is a prefix of the pmkOther moniker. |
|
The pmkThis and pmkOther monikers are equal. |
|
The monikers have no common prefix. |
|
This function was called on a relative moniker. It is not meaningful to take the common prefix of relative monikers. |
Remarks
Your implementation of IMoniker::CommonPrefixWith should first check whether the other moniker is of a type that 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 pmkThis and pmkOther are both absolute monikers (where an absolute moniker is either a file moniker or a generic composite whose leftmost component is a file moniker, and where the file moniker represents an absolute path). Do not call this function on relative monikers.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps | UWP apps] |
Minimum supported server | Windows 2000 Server [desktop apps | UWP apps] |
Target Platform | Windows |
Header | objbase.h |
Library | Ole32.lib |
DLL | Ole32.dll |