COM content
COM content (z ang. Component Object Model content) to zestaw danych, interfejsów i zasobów wykorzystywanych w architekturze Component Object Model (COM) opracowanej przez Microsoft. Termin obejmuje zarówno struktury binarne przechowywane w plikach Dynamic Link Library (DLL) oraz plikach wykonywalnych, jak i opis meta‑informacji niezbędnych do rejestracji, komunikacji oraz wersjonowania komponentów COM.
Definicja
W kontekście COM content odnosi się do trzech podstawowych elementów:
- Interfejsy – opisane w plikach typów (
.tlb) i rejestrowane w bazie rejestru systemu Windows jako identyfikatory GUID (ang. Globally Unique Identifier). - Kod – implementacja interfejsów zawarta w DLL lub plikach wykonywalnych (
.exe), udostępniająca funkcje jako binary executable. - Dane – zasoby konfiguracyjne, pliki konfiguracyjne (
.manifest), oraz dowolne zasoby binarne (np. obrazy, szablony, skrypty) udostępniane aplikacjom korzystającym z komponentu.
Historia
Podstawy COM zostały opracowane w latach 1993 – 1995 jako element platformy Windows 95. Pierwsze komponenty COM, znane jako ActiveX, umożliwiły tworzenie wielokrotnie używalnych elementów UI i logiki biznesowej, które mogły być współdzielone pomiędzy różnymi aplikacjami. W 1998 roku wprowadzono COM+, rozszerzając możliwości zarządzania transakcjami i bezpieczeństwem.
Struktura COM content
Standardowa struktura pliku zawierającego COM content składa się z poniższych sekcji:
- Header – zawiera informacje o wersji interfejsu, typie architektury (x86, x64) oraz wskaźniki do sekcji type library.
- Type Library – opis typów, struktur danych i interfejsów w formacie binarnym, który może być odczytany przez narzędzia takie jak OleView.
- Implementation – sekcja kodu (np. funkcje w języku C++), zbudowana jako DLL lub EXE serwer COM.
- Resources – zasoby dodatkowe (ikony, obrazy, pliki konfiguracyjne), które mogą być odczytane przy pomocy API
LoadResource. - Registration Data – wpisy rejestru Windows (klucze w
HKCR), automatycznie tworzone podczas instalacji za pomocą narzędziaregsvr32.
Zastosowania
COM content jest wykorzystywany w wielu dziedzinach:
- Automatyzacja aplikacji – np. kontrola Microsoft Excel czy Word poprzez OLE Automation.
- Rozszerzenia przeglądarek – komponenty ActiveX używane w przeglądarce Internet Explorer.
- Systemy wbudowane – interfejsy COM służą jako warstwa abstrakcji w oprogramowaniu przemysłowym.
- Usługi serwerowe – COM+ oraz Distributed COM (DCOM) zapewniają komunikację międzyprocesową i zdalną.
Bezpieczeństwo i wersjonowanie
W środowisku COM bezpieczeństwo realizowane jest na kilku poziomach:
- Kontrola dostępu do rejestru (
HKCR) – zapewnia, że tylko uprawnione konta mogą rejestrować lub wyrejestrować komponenty. - Model uprawnień COM – definiuje, które aplikacje mogą tworzyć instancje określonych klas (CLSID) na podstawie Security Descriptor.
- Wersjonowanie typów – identyfikatory GUID oraz numery wersji w type library umożliwiają jednoczesną obsługę wielu wersji tego samego komponentu.
Przykładowy kod rejestracji
REGSVR32 MyComponent.dll
Powyższe polecenie uruchamia funkcję DllRegisterServer wewnątrz MyComponent.dll, co prowadzi do dodania niezbędnych wpisów w rejestrze.
Powiązane pojęcia
W artykule Component Object Model omówiono mechanizmy, na których opiera się COM content. Inne istotne tematy to:
- COM+ – rozszerzenie COM z obsługą transakcji i zarządzania zasobami.
- Distributed COM (DCOM) – wersja COM umożliwiająca komunikację w sieci.
- OLE Automation – interfejsy umożliwiające automatyzację aplikacji.
- ActiveX – komponenty COM wykorzystywane w interfejsach internetowych.
Źródła
Informacje pochodzą z dokumentacji Microsoft, standardów ISO/IEC 2382 oraz publikacji branżowych dostępnych w sekcji Biblioteka encyklopedii.