OLE Components

Już dość dawno nosiłem się z zamiarem napisania kilku małych bibliotek sterowanych przez OLE Automation. Wprowadzenie przez Microsoft programu Windows Scripting Host do Windows 98 utwierdziło mnie w przekonaniu, że idea małych aplikacji składających się z wielu komponentów jest możliwa do realizacji i całkiem sensowna.

Dla tych co nie wiedzą: WSH jest programem rozszerzającym możliwości plików BAT. Teraz w pliku tekstowym może znajdować się kod w Javie lub Visual Basicu ( dokładniej - ich okrojonych wersjach ). Jedną z zalet tego rozwiązania jest możliwość sterowania z poziomu skryptu dowolną aplikacją udostępniającą interfejs OLE Automation.

Jedynym problemem jest brak takich aplikacji. Poza dużymi pakietami biurowymi niewiele aplikacji udostępnia swoje możliwości przez OLE. I tu na scenę wkracza Delphi. Od wersji 3.0 tworzenie serwerów OLE jest tak proste, że bez problemu można napisać dużą bazę różnorodnych komponentów. Ze względu na niezależność mechanizmu OLE Automation od języka programowania można ich używać w WSH, Visual Basicu, Delphi a także w makrach Worda i Excela.

Jako pierwsza powstała biblioteka Types. Zawiera tylko jeden obiekt OleStrings. Jest to odpowiednik TStringList z Delphi. Obiekty tego typu używane są w bibliotece SMTP jako właściwości. Obie biblioteki skompilowane są z użyciem pakietów. Do ich poprawnego działania potrzebne są biblioteki DPL dołączane do Delphi. Nie korzystałem z innych plików DPL niż standardowe więc jeśli już masz zainstalowane Delphi 3.0 biblioteki powinny działać bez problemów.

Dostępny jest także program przykładowy SMTP Mailer wykorzystujący biblioteki. Interesujący może być też moduł OLE indeksujący pliki tekstowe OLETSE. Nie ma co prawda kodu źródłowego ale jest przykładowy program go wykorzystujący.

Types plik DLL (19 968 B) kod źródłowy (3 997 B)
SMTP plik DLL (26 624 B) kod źródłowy (5 905 B)
SMTP Mailer plik EXE (18 944 B) kod źródłowy (2 766 B)
OLETSE plik DLL (25 088 B) spakowany (11 067 B)
TextSearch plik EXE (15 872 B) kod źródłowy (4 315 B)

Chętnie widzę wszelkie uwagi dotyczące programów ( może znajdziecie jakieś błędy :-). Byłoby nieźle gdybyście napisali własne komponenty, niekoniecznie internetowe. Służę miejscem na stronie. :-)