IMoniker::Inverse
Returns a moniker that, when composed to the right of this moniker or one of
similar structure, will destroy it (that is, will compose to nothing).
HRESULT Inverse(
IMoniker **ppmk
| //Receives the inverse of the moniker
|
);
|
|
Parameter
ppmk
[out] Receives a pointer to the inverse moniker. If an error occurs, the
implementation sets
*ppmk to NULL. If *
ppmk is non-NULL, the implementation must call
IUnknown::AddRef on the parameter; it is the caller's responsibility to call
IUnknown::Release.
Return Values
S_OK
The inverse moniker has been returned successfully.
MK_E_NOINVERSE
Indicates that the moniker class does not have an inverse.
E_OUTOFMEMORY
Indicates insufficient memory.
Comments
The inverse of a moniker is analogous to the ".." directory in MS-DOS file
systems; the ".." directory acts as the inverse to any other directory name,
because appending ".." to a directory name results in an empty path. In the same
way, the inverse of a moniker typically is also the inverse of all monikers in the
same class. However, it is not necessarily the inverse of a moniker of a
different class.
The inverse of a composite moniker is a composite consisting of the inverses
of the components of the original moniker, arranged in reverse order. For
example, if the inverse of A is Inv( A ) and the composite of A, B, and C is Comp( A,
B, C ), then
Inv( Comp( A, B, C ) )
is equal to
Comp( Inv( C ), Inv( B ), Inv( A ) ).
Not all monikers have inverses. Most monikers that are themselves inverses do
not have inverses; for example, anti-monikers do not have inverses. Monikers
that have no inverse cannot have relative monikers formed from inside the objects
they identify to other objects outside.
Notes to Callers
If you're a moniker client, you typically do not know the class of the moniker
you're using. If you need to get the inverse of a moniker, you should always
call
IMoniker::Inverse rather than the
CreateAntiMoniker API function, because you cannot be certain that the moniker you're using
considers an anti-moniker to be its inverse.
The
IMoniker::Inverse method is also called by the implementation of the
IMoniker::RelativePathTo method, to assist in constructing a relative moniker.
Notes to Implementors
If your monikers have no internal structure, your implementation of
IMoniker::Inverse can return an anti-moniker using the
CreateAntiMoniker API function. Whatever you return from
IMoniker::Inverse is what you must check for in your implementation of
IMoniker::ComposeWith.
See Also
CreateAntiMoniker,
IMoniker::ComposeWith,
IMoniker::RelativePathTo
- 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