Udostępnij przez


Wprowadzanie stanu uruchomienia

Gdy obiekt osadzony przechodzi do stanu uruchomienia, program obsługi obiektów musi zlokalizować i uruchomić aplikację serwera w celu korzystania z usług, które zapewnia tylko serwer. Obiekty osadzone są umieszczane w stanie uruchamiania jawnie przez żądanie kontenera, takie jak potrzeba narysowania formatu, który nie jest obecnie buforowany, lub niejawnie przez OLE w odpowiedzi na wywołanie jakiejś operacji, na przykład gdy użytkownik kontenera dwukrotnie kliknie obiekt.

Gdy połączony obiekt powoduje przejście do stanu uruchomienia, proces jest nazywany powiązaniem . Podczas procesu powiązania, program obsługi obiektów zleca swojemu przechowywanemu monikerowi zlokalizowanie danych linku, a następnie uruchamia aplikację serwerową.

Na pierwszy rzut oka powiązanie połączonego obiektu wydaje się nie być bardziej skomplikowane niż uruchamianie osadzonego obiektu. Jednak następujące kwestie komplikują proces:

  • Link może odwoływać się do obiektu lub jego części osadzonej w innym kontenerze. Ta funkcja oznacza potencjał do zagnieżdżania wbudowań. Rozpoznawanie odwołań do takiej hierarchii wymaga rekursywnego przechodzenia przez złożonego monikera, począwszy od najbardziej prawego członu.
  • Gdy źródło łącza jest uruchomione, OLE wiąże się z uruchomionym wystąpieniem obiektu, zamiast uruchamiania nowego wystąpienia. W przypadku zagnieżdżonych obiektów osadzonych, z których jeden jest źródłem łącza, obiekt OLE musi być w stanie powiązać z już uruchomionym obiektem w dowolnym momencie.
  • Uruchomienie obiektu wymaga uzyskania dostępu do obszaru pamięci dla obiektu. Po uruchomieniu obiektu osadzonego, OLE podczas procesu ładowania odbiera wskaźnik do magazynu i przekazuje go do aplikacji serwera OLE. W przypadku obiektów połączonych nie ma jednak standardowego interfejsu do uzyskiwania dostępu do magazynu. Aplikacja serwera OLE może używać interfejsu systemu plików lub innego mechanizmu.