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
Elementy członkowskie
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ą CDocItem
dla 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 CWinApp
aplikacji:
class COleContainerApp : public CWinApp
{
protected:
COleTemplateServer m_server;
// remainder of class declaration omitted
InitInstance
W funkcji składowej klasy pochodnej CWinApp
utwórz szablon dokumentu i określ COleLinkingDoc
klasę 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łącz obiekt z szablonami dokumentów, wywołując funkcję składową obiektu ConnectTemplate
i rejestrując wszystkie obiekty klasy w systemie OLE, wywołując metodę COleTemplateServer::RegisterAll
:
m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();
Aby zapoznać się z przykładową CWinApp
definicją 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
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 COleLinkingDoc
implementację OnNewDocument
OnOpenDocument
, 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 COleLinkingDoc
implementację OnCloseDocument
, OnNewDocument
, OnOpenDocument
i OnSaveDocument
.
Zobacz też
Przykład MFC OCLIENT
Klasa COleDocument
Wykres hierarchii
Klasa CDocTemplate