12.04.2014 Views

6 folii na stronę

6 folii na stronę

6 folii na stronę

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

OLE: Pojęcia podstawowe<br />

Programowanie składnikowe<br />

w modelu COM<br />

Jarosław Francik<br />

czerwiec 2002<br />

OLE: Object Linking<br />

and Embedding<br />

• OLE – technologia polegająca <strong>na</strong> tworzeniu<br />

złożonych dokumentów<br />

• Przez pewien czas OLE było zbiorczą <strong>na</strong>zwą<br />

technologii z<strong>na</strong>nej obecnie jako COM<br />

• Dokument złożony (compound document)<br />

• Łączenie (linking) – dokument włączony<br />

z<strong>na</strong>jduje się w oddzielnym pliku<br />

• Osadzanie (embedding) – dokument osadzony<br />

jest przechowywany w obrębie dokumentu<br />

złożonego (w magazynie IStorage)<br />

Institute of Informatics, Silesian University of Technology, Gliwice, Poland<br />

Institute of Informatics, Silesian University of Technology, Gliwice, Poland<br />

OLE: Pojęcia podstawowe<br />

• Kontener (container) – aplikacja obsługująca<br />

dokumenty złożone; klient<br />

• Serwer OLE –serwer udostępniający dokumenty<br />

osadzane lub łączone<br />

• Miniserwer OLE – serwer wewnątrzprocesowy,<br />

nie występuje jako osob<strong>na</strong> aplikacja<br />

(oferuje wyłącznie dokumenty osadzane)<br />

• Pełny serwer OLE (full server) – serwer<br />

zewnątzprocesowy<br />

Osadzanie (embedding)<br />

• Struktura obiektu magazynowego (IStorage)<br />

podsumowanie<br />

dokumentu<br />

root storage<br />

dokument<br />

MS MS Word<br />

arkusz<br />

kalkulacyjny<br />

pula pula obiektów<br />

magazyn obiektów osadzonych<br />

cache<br />

prezentacji<br />

CLSID<br />

Excel’a<br />

Institute of Informatics, Silesian University of Technology, Gliwice, Poland<br />

Institute of Informatics, Silesian University of Technology, Gliwice, Poland<br />

kontener OLE<br />

obiekt<br />

kliencki<br />

(client site)<br />

Osadzanie (embedding)<br />

Institute of Informatics, Silesian University of Technology, Gliwice, Poland<br />

stro<strong>na</strong> kontenera (klienta)<br />

IOleClientSite<br />

IAdviceSink<br />

IOleClientSite –udostępnia<br />

serwerowi sterowanie<br />

kontenerem<br />

SaveObject –zapisuje<br />

obiekt<br />

ShowObject –wymusza<br />

wyświetlenie obiektu<br />

RequestNewObjectLayout<br />

IAdviceSink –ujście<br />

różnego rodzaju notyfikacji<br />

OnDataChange<br />

OnViewChange<br />

OnRe<strong>na</strong>me<br />

OnSave<br />

OnClose<br />

IOleObject<br />

IRun<strong>na</strong>bleObject<br />

IDataObject<br />

IPersistStorage<br />

IOleCache2<br />

IOleCacheControl<br />

IViewObject2<br />

Osadzanie (embedding)<br />

stro<strong>na</strong> serwera<br />

serwer OLE<br />

data<br />

cache<br />

obiekt<br />

zawartości<br />

(content<br />

object)<br />

Institute of Informatics, Silesian University of Technology, Gliwice, Poland<br />

1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!