Dela via


Länkade objekt och Monikers

Länkade objekt, till exempel inbäddade objekt, förlitar sig på en objekthanterare för att kommunicera med serverprogram. Själva det länkade objektet hanterar dock namngivning och spårning av länkkällor. Det länkade objektet fungerar som en processserver. När det till exempel aktiveras letar ett länkat objekt upp och startar DET OLE-serverprogram som är länkkällan.

Ett länkat objekts hanterare består av två huvudkomponenter: hanteringskomponenten och länkkomponenten. Hanteringskomponenten innehåller kontroll- och fjärrkommunikationsdelarna och fungerar ungefär som en hanterare för ett inbäddat objekt. Länkkomponenten har en egen styrenhet och cache och ger åtkomst till objektets strukturerade lagring. Kontrollanten för länkkomponenter stöder källnamngivning med hjälp av monikers och bindning, processen för att hitta och köra länkkällan. (Mer information om monikers och bindning finns i Komponentobjektmodellen.)

När en användare först skapar ett länkat objekt eller läser in ett befintligt objekt från lagringen läser containern in en instans av länkkomponenten till minnet, tillsammans med objekthanteraren. Länkkomponenten tillhandahåller gränssnitt – framför allt IOleLink-– som identifierar objektet som en länk och gör det möjligt för det att hantera namngivning, spårning och uppdatering av dess länkkälla.

Genom att implementera IOleLink--gränssnittet tillhandahåller ett länkat objekt dess container med funktioner som stöder länkning. Endast länkade objekt implementerar IOleLink-, och genom att fråga efter det här gränssnittet kan en container avgöra om ett visst objekt är inbäddat eller länkat. Den viktigaste funktionen som tillhandahålls av IOleLink- gör det möjligt för en container att binda till källan för det länkade objektet, d.v.s. aktivera anslutningen till dokumentet som lagrar det länkade objektets interna data. IOleLink- definierar även funktioner för att hantera information om det länkade objektet, till exempel cachelagrade presentationsdata och platsen för länkkällan.

När ett sammansatt dokument som innehåller ett länkat objekt sparas sparas länkens data med länkkällan, inte med containern. Endast information om dess namn och plats sparas tillsammans med det sammansatta dokumentet. Det här beteendet står i kontrast till ett inbäddat objekt, vars data lagras tillsammans med containerns.

Containerprogram kan ge information om sina inbäddade objekt så att de senare, eller delar av dem, kan fungera som länkkällor. Genom att implementera stöd för länkning till containerns inbäddade objekt gör du kapslade inbäddningar möjliga, vilket gör det möjligt för användaren att behöva spåra originalen för varje inbäddningsobjekt som en länk är önskad till. Om en användare till exempel vill bädda in ett Microsoft Excel-kalkylblad i Microsoft Word och kalkylbladet innehåller en bitmapp som skapats i Penseln, kan användaren länka till en kopia av bitmappen som finns i kalkylbladet i stället för originalet.

sammansatta dokument

In-Process servrar

objekthanterare