Klasa COleLinkingDoc

Klasa podstawowa dokumentów kontenera OLE, które obsługują łączenie z elementami osadzonymi, które zawierają.

Składnia

class COleLinkingDoc : public COleDocument

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
COleLinkingDoc::COleLinkingDoc COleLinkingDoc Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
COleLinkingDoc::Register Rejestruje dokument przy użyciu bibliotek DLL systemu OLE.
COleLinkingDoc::Revoke Odwołuje rejestrację dokumentu.

Metody chronione

Nazwa/nazwisko opis
COleLinkingDoc::OnFindEmbeddedItem Znajduje określony element osadzony.
COleLinkingDoc::OnGetLinkedItem Znajduje określony połączony element.

Uwagi

Aplikacja kontenera obsługująca łączenie z elementami osadzonymi jest nazywana "kontenerem linków". Przykładowa aplikacja OCLIENT jest przykładem kontenera linków.

Gdy źródło połączonego elementu jest elementem osadzonym w innym dokumencie, który zawierający dokument musi zostać załadowany, aby element osadzony był edytowany. Z tego powodu kontener linków musi być uruchomiony przez inną aplikację kontenera, gdy użytkownik chce edytować źródło połączonego elementu. Aplikacja musi również używać klasy COleTemplateServer, aby mogła tworzyć dokumenty po uruchomieniu programowo.

Aby utworzyć kontener linku, należy utworzyć klasę COleLinkingDoc dokumentów zamiast COleDocument. Podobnie jak w przypadku dowolnego innego kontenera OLE, należy zaprojektować klasę do przechowywania danych natywnych aplikacji, a także osadzonych lub połączonych elementów. Ponadto należy zaprojektować struktury danych do przechowywania danych natywnych. Jeśli zdefiniujesz klasę pochodną CDocItemdla danych natywnych aplikacji, możesz użyć interfejsu zdefiniowanego przez COleDocument program do przechowywania danych natywnych, a także danych OLE.

Aby umożliwić programowe uruchamianie aplikacji przez inny kontener, zadeklaruj COleTemplateServer obiekt jako element członkowski klasy pochodnej CWinAppaplikacji:

class COleContainerApp : public CWinApp
{
protected:
   COleTemplateServer m_server;
   // remainder of class declaration omitted

InitInstance W funkcji składowej klasy pochodnej CWinApputwórz szablon dokumentu i określ COleLinkingDocklasę pochodną jako klasę dokumentów:

// CMyLinkDoc is derived from COleLinkingDoc
CMultiDocTemplate* pDocTemplate = new CMultiDocTemplate(IDR_LINKDOCTYPE,
   RUNTIME_CLASS(CMyLinkDoc),
   RUNTIME_CLASS(CChildFrame),
   RUNTIME_CLASS(CMyLinkView));
if (!pDocTemplate)
return FALSE;
pDocTemplate->SetContainerInfo(IDR_OLECONTTYPE_CNTR_IP);
AddDocTemplate(pDocTemplate);

COleTemplateServer Połączenie obiektu do szablonów dokumentów przez wywołanie funkcji składowej obiektu ConnectTemplate i zarejestrowanie wszystkich obiektów klasy w systemie OLE przez wywołanie metody COleTemplateServer::RegisterAll:

m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();

Aby zapoznać się z przykładową CWinAppdefinicją i InitInstance funkcją klasy pochodnej, zobacz OCLIENT. H i OCLIENT. CPP w przykładzie OCLIENT MFC.

Aby uzyskać więcej informacji na temat korzystania z programu COleLinkingDoc, zobacz artykuły Kontenery: Implementowanie kontenera i kontenerów: funkcje zaawansowane.

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cdocument

Coledocument

COleLinkingDoc

Wymagania

Nagłówek: afxole.h

COleLinkingDoc::COleLinkingDoc

COleLinkingDoc Tworzy obiekt bez rozpoczynania komunikacji z bibliotekami DLL systemu OLE.

COleLinkingDoc();

Uwagi

Należy wywołać funkcję składową Register , aby poinformować OLE, że dokument jest otwarty.

COleLinkingDoc::OnFindEmbeddedItem

Wywoływana przez platformę w celu określenia, czy dokument zawiera osadzony element OLE o określonej nazwie.

virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName);

Parametry

lpszItemName
Wskaźnik do nazwy żądanego osadzonego elementu OLE.

Wartość zwracana

Wskaźnik do określonego elementu; Wartość NULL, jeśli element nie zostanie znaleziony.

Uwagi

Domyślna implementacja wyszukuje listę elementów osadzonych dla elementu o określonej nazwie (w porównaniu nazwy jest uwzględniana wielkość liter). Zastąpi tę funkcję, jeśli masz własną metodę przechowywania lub nazywania osadzonych elementów OLE.

COleLinkingDoc::OnGetLinkedItem

Wywoływana przez platformę w celu sprawdzenia, czy dokument zawiera połączony element serwera o określonej nazwie.

virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName);

Parametry

lpszItemName
Wskaźnik do nazwy żądanego połączonego elementu OLE.

Wartość zwracana

Wskaźnik do określonego elementu; Wartość NULL, jeśli element nie zostanie znaleziony.

Uwagi

Domyślna COleLinkingDoc implementacja zawsze zwraca wartość NULL. Ta funkcja jest zastępowana w klasie COleServerDoc pochodnej, aby przeszukać listę elementów serwera OLE dla połączonego elementu o określonej nazwie (w porównaniu nazwy jest uwzględniana wielkość liter). Zastąpi tę funkcję, jeśli zaimplementowano własną metodę przechowywania lub pobierania połączonych elementów serwera.

COleLinkingDoc::Register

Informuje biblioteki DLL systemu OLE o otwarciu dokumentu.

BOOL Register(
    COleObjectFactory* pFactory,
    LPCTSTR lpszPathName);

Parametry

pFactory
Wskaźnik do obiektu fabryki OLE (może mieć wartość NULL).

lpszPathName
Wskaźnik do w pełni kwalifikowanej ścieżki dokumentu kontenera.

Wartość zwracana

Nonzero, jeśli dokument został pomyślnie zarejestrowany; w przeciwnym razie 0.

Uwagi

Wywołaj tę funkcję podczas tworzenia lub otwierania nazwanego pliku, aby zarejestrować dokument przy użyciu bibliotek DLL systemu OLE. Nie ma potrzeby wywoływania tej funkcji, jeśli dokument reprezentuje element osadzony.

Jeśli używasz COleTemplateServer w aplikacji, Register jest wywoływana przez COleLinkingDocimplementację OnNewDocumentOnOpenDocument, i OnSaveDocument.

COleLinkingDoc::Revoke

Informuje biblioteki DLL systemu OLE o tym, że dokument nie jest już otwarty.

void Revoke();

Uwagi

Wywołaj tę funkcję, aby odwołać rejestrację dokumentu przy użyciu bibliotek DLL systemu OLE.

Tę funkcję należy wywołać podczas zamykania nazwanego pliku, ale zwykle nie trzeba jej wywoływać bezpośrednio. Revoke program jest wywoływany przez COleLinkingDocimplementację OnCloseDocument, OnNewDocument, OnOpenDocumenti OnSaveDocument.

Zobacz też

Przykład MFC OCLIENT
Klasa COleDocument
Wykres hierarchii
Klasa CDocTemplate