Anti-Monikers
OLE tillhandahåller en implementering av en särskild typ av moniker som kallas antimoniker. Du använder den här monikern när du skapar nya monikerklasser. Du använder den som invers till monikern som den består av, vilket effektivt avbryter monikern, på ungefär samma sätt som operatorn ".." flyttar upp en katalognivå i ett filsystemkommando.
Det är nödvändigt att ha en antimoniker tillgänglig, eftersom när en sammansatt moniker har skapats går det inte att ta bort delar av monikern om till exempel ett objekt flyttas. I stället använder du en antimoniker för att ta bort en eller flera poster från en sammansatt moniker.
Antimonikers är en monikerklass som uttryckligen är avsedd för användning som inverterad. COM definierar funktionen CreateAntiMoniker, som returnerar en antimoniker. Du använder vanligtvis den här funktionen för att implementera metoden IMoniker::Inverse.
En antimoniker är bara en invers för de typer av monikers som implementeras för att behandla antimonikers som en invers. Om du till exempel vill ta bort den sista delen av en sammansatt moniker bör du inte skapa en antimoniker och skriva den till slutet av kompositen. Du kan inte vara säker på att den sista delen av kompositen anser att en antimoniker är dess invers. I stället bör du anropa IMoniker::Enum på den sammansatta monikern och ange FALSE- som den första parametern. Detta skapar en uppräknare som returnerar komponentmonikers i omvänd ordning. Använd uppräknaren för att hämta den sista delen av kompositen och anropa Inverse- på monikern. Monikern som returneras av Inverse är vad du behöver för att ta bort den sista delen av kompositen.
Relaterade ämnen