next -index- prev

Grafische functies automatiseren II

Object Linking and Embedding

De afkorting OLE wordt veel gehoord, maar weinig toegepast. Het lijkt erop dat de meeste gebruikers van grafische toepassingsprogramma´s te zeer zijn vastgeroest in hun oude gewoonte tekst en illustraties van bestand af te laden om de voordelen van koppelen of insluiten in te zien. Daarnaast heeft de term OLE-automatisering voor velen een weinig uitnodigende klank.

In de traditionele praktijk van het elektronisch vormgeven worden verschillende soorten elementen zoals tekst, lijntekeningen en scans in een document geïntegreerd. Dit ideaal is door desktop publishing lange tijd nagestreefd, maar pas sinds een jaar of drie is het realiteit. De ontwikkelingen blijven ondertussen evenwel onverminderd doorgaan. Het is voor softwarefabrikanten ondoenlijk zulke complexe produkten, zoals grafische applicaties veelal zijn, ieder jaar aan nieuwe industriële standaards aan te passen zonder fouten te maken. Anderzijds verliest een pakket dat niet van de modernste importfilters en insteekmodules is voorzien razendsnel marktaandeel.

Insluiten en koppelen
Een antwoord op bovenvermeld dilemma kan worden gevonden in een andere benaderingswijze van tekst- en beeldintegratie: Object Linking and Embedding (OLE). Het insluiten en koppelen van grafische elementen is een techniek die nog maar mondjesmaat wordt toegepast bij het samenstellen van elektronische documenten. De meeste gebruikers houden vast aan de gewoonte een tekst in een tekstverwerker, een gedigitaliseerde foto in een retoucheprogramma en een illustratie in een lijntekenap- plicatie aan te passen. Daartoe dient ieder element in een afzonderlijk bestand te worden opgeslagen en vervolgens in een opmaakprogramma geladen. Telkens op- nieuw. In het ergste geval moet er zelfs tussen verschillende computerplatforms, bijvoorbeeld DOS en Windows, heen en weer geschakeld worden.

Klembord
Werken binnen eenzelfde omgeving zoals Windows biedt om te beginnen het voordeel dat onderdelen tussen toepassingsprogrammaþs middels een klembord uitgewisseld kunnen worden. Een klembord is een gedeelte van het werkgeheugen waarin tijdelijk informatie kan worden opgeslagen. Op die manier is het mogelijk om een stuk tekst dat in een þeditorþ is geknipt of gekopieerd in een andere tekstverwerkende applicatie te plakken . Bij illustraties ligt dat echter ingewikkelder. Sommige beeldbewerkingsprogrammaþs gaan op een dermate eigenzinnige manier met lijnen of pixels om dat ze informatie van andere pakketten via het klembord niet zonder meer accepteren. De toegang tot dat klembord is door Microsoft inmiddels op zoþn manier gestandaar- diseerd dat het in toenemende mate als communicatiemiddel wordt gebruikt. De specificatie van die standaard wordt OLE 2.0 genoemd.

Bron en doel
Het bijzondere van een element dat volgens het OLE 2.0 protocol via het klembord in een document geplaatst is, is dat het onthoudt waar het vandaan is gekomen. Deze eigenschap maakt þ onder andere þ dat het object binnen zijn nieuwe omgeving zichzelf in het programma waarin het ge-creëerd werd op kan roepen. In OLE-ter- minologie heet de laatste de þsourceþ en de eerste þdestinationþ. Voor de destination, oftewel de doelapplicatie, biedt het beantwoorden aan de specifica ties voor OLE 2.0 het voordeel dat er niet langer voor iedere versie van ieder toeleveringsprogramma een afzonderlijk filter nodig is. De gebruiker ziet uniformiteit ontstaan in de manier waarop onderdelen tot een nieuw geheel worden gemaakt. Naast de reeds bekende opdracht plakken voorzien de meeste pakketten tegenwoordig in een aantal mogelijkheden om OLE-elementen tevoorschijn te halen en te manipuleren.

Plakken speciaal
Het dialoogvenster plakken speciaal biedt de optie om na te gaan wat voor een soort object zich in het geheugen bevindt (tekst, illustratie of þbitmapþ). Indien de bron een þOLE-serverþ is staat de naam van het toeleveringsprogramma erbij. Wanneer het object vanuit een bestaand bestand gekopieerd is, is het bovendien mogelijk een dynamische koppeling tussen de doelapplicatie en dat bestand aan te brengen. In dat geval zullen na plaatsing alle veranderingen die in het oorspronkelijke bestand worden aangebracht automatisch worden doorgevoerd. Een soorgelijke functie heeft de opdracht object invoegen . Dit betreft een mogelijkheid om van het doel uit een bronbestand op te geven. De werking hiervan doet nog het meest denken aan de vertrouwde manier om illustraties te laden, met dien verstande dat ook hier dient te worden gekozen voor het koppelen of insluiten van een object. Met object bewerken kunnen bepaalde gegevens van OLE-elementen worden gewij- zigd. Om te beginnen laat het object zelf zich er in de bron door oproepen en aanpas- sen, maar ook kunnen de bewegwijzering en de instelling voor automatisch of handmatig bijwerken worden veranderd. Bij het kopiëren of verplaatsen van een document met gekoppelde objecten naar een andere lokatie blijft de structuur van de bewegwijzering overigens gehandhaafd.

Lokaal aanpassen
De eenvoudigste manier om een bronapplicatie op te starten is om op het object te dubbelklikken. De manier waarop het programma zich gedraagt is afhankelijk van het feit of het OLE-element ingesloten dan wel gekoppeld is. Het dubbelklikken van een ingesloten object resulteert in een gedaantewisseling van de doelapplicatie. Op het eerste gezicht lijkt het nog het vertrouwde programma te zijn, maar de functionaliteit blijkt bij nader inzien veranderd te zijn in die van de bron. Zo kan een kopie van een rekenblad een opmaakprogramma wijzigen in een spreadsheet en tovert een grafisch element een tekstverwerker probleemloos om in een lijntekenap- plicatie. Deze werkzaamheid van OLE 2.0 wordt þin-place editingþ genoemd. Tijdens het lokaal aanpassen zijn bepaalde opdrachten, zoals bewaren of afdrukken, niet toegankelijk. Bij het activeren van een gekoppeld object daarentegen wordt het toeleveringsprogramma volledig geladen. Het verschil is dat waar in het eerste geval het oorspronkelijke bestand onaangetast blijft de wijzigingen in het tweede geval in het bronbestand worden doorgevoerd.

Slepen
Een andere manier om een OLE-element te creëren is slepen. Dat kan door een selec- tie uit het ene programmavenster met de muis naar het andere te schuiven (hetgeen een ingesloten object oplevert), maar ook door een bestandsnaam in Bestandsbeheer of Verkenner aan te klikken, vast te houden en boven een openstaande applicatie los te laten (wat resulteert in een gekoppeld object). Deze werking is mogelijk doordat toepassingsprogrammaþs die OLE 2.0 compatible zijn zich tijdens de installatie aanmelden bij de OLE-database. In die database staan behalve de mogelijke bronnen ook de OLE-functies van Windows vermeld.

Open architectuur
Voor zover er een verandering komt in de manier waarop gebruikers met grafische pak ketten omgaan is dat op het niveau van þobject linking and embeddingþ. Er is reeds een tendens zichtbaar om bepaalde toeleveringsprogrammaþs te reduceren tot een þin- place editingþ functie. Dit heeft tot gevolg dat het niet langer mogelijk is om te kiezen tussen het importeren of het via het klembord plaatsen van een element, maar dat er alleen nog een invoegoptie overblijft. Het onderscheid tussen objecten en applicaties vervaagt. Daarnaast maken gekoppelde objecten ge‹ntegreerde documenten toegankelijk voor meerdere gebruikers. Niet iedereen zal het op prijs stellen, maar het is denkbaar dat een vormgever dankzij de werking van OLE de verschillende elementen van een lay- out onder zijn vingers ziet veranderen. Elektronische publikaties zullen daarentegen gebaat zijn bij de mogelijkheid vanwege een dergelijke open architectuur automatisch bijgewerkt te kunnen worden.

Object Linking and Embedding
Bronvermelding: Werken met OLE 2.0, Bryan Waters, Sybex. ISBN 90-5160-758-x


OLE 1.0 & OLE 2.0

Object Linking and Embedding is oorspronkelijk door Microsoft ontwikkeld (1990) om grafische elementen uit het tekenprogramma Graph rechtstreeks in andere toepas- singen þ zoals Word, Excel en PowerPoint þ te kunnen plaatsen. Dat was OLE 1.0. Een nadeel van deze versie was de geslotenheid ervan; verbindingen met andere softwarepakketten dan van Microsoft waren praktisch onuitvoerbaar. De oplossing hiervoor werd gevonden door het ontwerpen van een nieuwe, open architectuur: het Component Object Model, de basis van wat OLE 2.0 zou gaan heten.

Scripts
Kenmerkend voor OLE 1.0 is de mogelijkheid een grafisch element via het klembord van het ene programma in het andere te plaatsen en de oorspronkelijke applicatie, oftewel de þobjectserverþ, te activeren door erop te dubbelklikken. De latere eigenschappen, zoals þin-place editingþ en þdrag and dropþ, behoren tot de uitbreiding OLE 2.0. De belangrijkste vooruitgang die de specificaties van 2.0 ten opzichte van de eerste versie inhield was echter dat ze de ruimte boden applicaties met behulp van scripts te automatiseren. Het was niet nodig hiervoor een aparte macrotaal te ontwikkelen, maar de inmiddels ontstane implementaties laten zien dat hiervoor meestal Visual Basic als basis wordt gebruikt.

Verfijning
De verfijningen van OLE 2.0 hebben voorts betrekking op versie-informatie van de bronapplicatie, relatieve bewegwijzering en de ondersteuning voor verschillende computerplatforms. Een in een doelapplicatie - oftewel þcontainerþ - ingesloten of gekoppeld object kan gegevens bevatten die betrekking hebben op het versienummer van de þserverþ. Hierdoor wordt voorkomen dat een verouderd OLE-element niet meer zou kunnen worden aangepast. Voorts vergroot het verbeterde koppelingsbeheer de soepelheid waarmee containers kunnen worden gekopieerd of verplaatst door de bewegwijzering van de objecten in relatieve zin vast te leggen. De ondersteuning voor andere besturingssystemen dan Windows, zoals Apple Macintosh en UNIX, maakt bovendien dat ge‹ntegreerde documenten in de toekomst volledig uitwisselbaar zullen zijn.

Uitbreidbaar
De gevolgen van de mogelijkheden die OLE-automatisering biedt zijn nauwelijks te overzien. In het simpelste geval stelt het gebruikers in staat veel voorkomende han- delingen te vervangen door een macro, maar het is tevens voorstelbaar dat iemand de functionaliteit van een applicatie geheel naar eigen behoefte herinricht. Als bijzonder- heid geldt daarbij dat de opdrachten niet beperkt hoeven te blijven tot het programma van waaruit het script wordt opgestart. De meest recente versies van Microsoft Office en CorelDRAW! zijn wat dat betreft al naar alle kanten uitbreidbaar.

Toekomst
OLE-automatisering is nog slechts het begin van wat toekomstige, geheel aanpasbare besturingssystemen zullen laten zien. Momenteel is OLE 2.0 reeds een ge‹ntegreerd onderdeel van Windows 95 en zal dat ook worden bij de opvolger van Windows NT. Verdere uitbreidingen, met bijvoorbeeld grafische bedieningselementen, zullen maken dat het werken met personal computers een hoogst individuele aangelegenheid wordt.

Robert Kooijman