|
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 LinksSoftware 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
|