Index   Commented   Search   About

CreateAntiMoniker

Creates and returns a new anti-moniker.

WINOLEAPI CreateAntiMoniker(

LPMONIKER FAR *ppmk
//Receives the anti-moniker
);

Parameter

ppmk

Receives an IMoniker interface pointer to the new anti-moniker. 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 the anti-moniker was created successfully.

E_OUTOFMEMORY

Indicates insufficient memory.

Comments

You would call this function only if you are writing your own moniker class (implementing the IMoniker interface). If you want an anti-moniker to act as the inverse for your moniker class, you can call CreateAntiMoniker from your implementation of IMoniker::Inverse.

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.

An anti-moniker can be used as the inverse for certain classes of monikers. For example, the system-provided implementations of file monikers, item monikers, and pointer monikers all use anti-monikers as their inverse; consequently, an anti-moniker composed to the right of a file, item, or pointer moniker composes to nothing.

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 that the CreateAntiMoniker function, because you cannot be certain that the moniker you're using considers an anti-moniker to be its inverse. For example, if you need to remove the last piece of a composite moniker, call IMoniker::Enum on the composite, specifying FALSE as the first parameter; this call creates an enumerator that returns the component monikers in reverse order. Use the enumerator to retrieve the last piece of the composite, and call IMoniker::Inverse on that moniker. The moniker returned by IMoniker::Inverse will remove the last piece of the composite.

If you are writing a new moniker class and you have no special requirements for its inverse, you can use CreateAntiMoniker in your implementation of the IMoniker::Inverse method, and then check for an anti-moniker in your implementation of IMoniker::ComposeWith.

See Also

IMoniker::Inverse, IMoniker::ComposeWith, IMoniker - Anti-Moniker Implementation

Related Links

Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET

More Online Helps

Win32 Programmer's Reference (win32.hlp)
Win32 Multimedia Programmer's Reference (mmedia.hlp)
Microsoft Windows Pen API Programmer's Reference (penapi.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (sock2.hlp)
Unix Manual Pages

Free Tech Secrets ;) Copyright © 2008 Free Tect Secrets ;) greatis just4fun network just4fun