Sdílet prostřednictvím


COleServerDoc – třída

Základní třída dokumentů serveru OLE.

Syntaxe

class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc

Členové

Veřejné konstruktory

Jméno popis
COleServerDoc::COleServerDoc COleServerDoc Vytvoří objekt.

Veřejné metody

Jméno popis
COleServerDoc::ActivateDocObject Aktivuje přidružený dokument DocObject.
COleServerDoc::ActivateInPlace Aktivuje dokument pro místní úpravy.
COleServerDoc::D eactivateAndUndo Deaktivuje uživatelské rozhraní serveru.
COleServerDoc::D iscardUndoState Zahodí informace o stavu zpět.
COleServerDoc::GetClientSite Načte ukazatel na základní IOleClientSite rozhraní.
COleServerDoc::GetEmbeddedItem Vrátí ukazatel na položku představující celý dokument.
COleServerDoc::GetItemClipRect Vrátí aktuální obdélník výřezu pro místní úpravy.
COleServerDoc::GetItemPosition Vrátí obdélník aktuální pozice vzhledem k klientské oblasti aplikace kontejneru pro místní úpravy.
COleServerDoc::GetZoomFactor Vrátí faktor přiblížení v pixelech.
COleServerDoc::IsDocObject Určuje, jestli je dokument objektem DocObject.
COleServerDoc::IsEmbedded Určuje, jestli je dokument vložený do dokumentu kontejneru nebo jestli je spuštěný samostatně.
COleServerDoc::IsInPlaceActive Vrátí hodnotu TRUE, pokud je položka aktuálně aktivována.
COleServerDoc::NotifyChanged Upozorní kontejnery, že uživatel změnil dokument.
COleServerDoc::NotifyClosed Upozorní kontejnery, že uživatel dokument zavřel.
COleServerDoc::NotifyRename Upozorní kontejnery, že uživatel dokument přejmenoval.
COleServerDoc::NotifySaved Upozorní kontejnery, že uživatel dokument uložil.
COleServerDoc::OnDeactivate Volá se rozhraním, když uživatel deaktivuje položku, která byla aktivována na místě.
COleServerDoc::OnDeactivateUI Volal rozhraní k zničení ovládacích prvků a dalších prvků uživatelského rozhraní vytvořených pro místní aktivaci.
COleServerDoc::OnDocWindowActivate Volá se rozhraním při aktivaci nebo deaktivaci okna rámečku dokumentu kontejneru.
COleServerDoc::OnResizeBorder Volá se rozhraním, když se změní velikost okna rámce aplikace kontejneru nebo okna dokumentu.
COleServerDoc::OnShowControlBars Volal rozhraní pro zobrazení nebo skrytí ovládacích pruhů pro místní úpravy.
COleServerDoc::OnUpdateDocument Volané rozhraním při uložení dokumentu serveru, který je vloženou položkou, aktualizace kopie kontejneru položky.
COleServerDoc::RequestPositionChange Změní umístění místního rámečku pro úpravy.
COleServerDoc::SaveEmbedding Řekne aplikaci kontejneru, aby dokument uložila.
COleServerDoc::ScrollContainerBy Posune dokument kontejneru.
COleServerDoc::UpdateAllItems Upozorní kontejnery, že uživatel změnil dokument.

Chráněné metody

Jméno popis
COleServerDoc::CreateInPlaceFrame Volá se rozhraním pro vytvoření okna rámečku pro místní úpravy.
COleServerDoc::D estroyInPlaceFrame Volá se rozhraním pro zničení okna rámce pro místní úpravy.
COleServerDoc::GetDocObjectServer Přepište tuto funkci, aby se vytvořil nový CDocObjectServer objekt, a indikuje, že tento dokument je kontejner DocObject.
COleServerDoc::OnClose Volá se rozhraním, když kontejner požádá o zavření dokumentu.
COleServerDoc::OnExecOleCmd Spustí zadaný příkaz nebo zobrazí nápovědu k příkazu.
COleServerDoc::OnFrameWindowActivate Volá se rozhraním při aktivaci nebo deaktivaci okna rámečku kontejneru.
COleServerDoc::OnGetEmbeddedItem Volá se k získání COleServerItem celého dokumentu, který slouží k získání vložené položky. Vyžaduje se implementace.
COleServerDoc::OnReactivateAndUndo Volá se rozhraním pro vrácení změn provedených během místních úprav.
COleServerDoc::OnSetHostNames Volá se rozhraním, když kontejner nastaví název okna pro vložený objekt.
COleServerDoc::OnSetItemRects Volá se rozhraním pro umístění místního okna rámečku pro úpravy v okně aplikace kontejneru.
COleServerDoc::OnShowDocument Volá se rozhraním k zobrazení nebo skrytí dokumentu.

Poznámky

Dokument serveru může obsahovat objekty COleServerItem , které představují rozhraní serveru pro vložené nebo propojené položky. Když je serverová aplikace spuštěna kontejnerem pro úpravu vložené položky, položka se načte jako vlastní serverový dokument; COleServerDoc objekt obsahuje pouze jeden COleServerItem objekt, který se skládá z celého dokumentu. Když kontejner spustí serverovou aplikaci pro úpravu propojené položky, načte se existující dokument z disku; Zvýrazněná část obsahu dokumentu označuje propojenou položku.

COleServerDoc objekty mohou také obsahovat položky COleClientItem třídy. To vám umožní vytvářet aplikace typu kontejner-server. Architektura poskytuje funkce pro správné ukládání COleClientItem položek při údržbě COleServerItem objektů.

Pokud serverová aplikace nepodporuje odkazy, dokument serveru bude vždy obsahovat pouze jednu položku serveru, která představuje celý vložený objekt jako dokument. Pokud serverová aplikace podporuje odkazy, musí vytvořit položku serveru při každém zkopírování výběru do schránky.

Chcete-li použít COleServerDoc, odvození třídy z něj a implementace OnGetEmbeddedItem členské funkce, která umožňuje serveru podporovat vložené položky. Odvození třídy od COleServerItem implementace položek v dokumentech a vrácení objektů této třídy z OnGetEmbeddedItem.

Pro podporu propojených položek COleServerDoc poskytuje členské funkce OnGetLinkedItem . Výchozí implementaci můžete použít nebo ji přepsat, pokud máte vlastní způsob správy položek dokumentu.

Pro každý typ serveru, který vaše aplikace podporuje, potřebujete jednu COleServerDocodvozenou třídu. Pokud například serverová aplikace podporuje listy a grafy, potřebujete dvě COleServerDocodvozené třídy.

Další informace o serverech najdete v článku Servery: Implementace serveru.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

COleServerDoc

Požadavky

Hlavička: afxole.h

COleServerDoc::ActivateDocObject

Aktivuje přidružený dokument DocObject.

void ActivateDocObject();

Poznámky

Ve výchozím nastavení COleServerDoc nepodporuje aktivní dokumenty (označované také jako DocObjects). Pokud chcete tuto podporu povolit, přečtěte si téma GetDocObjectServer a třída CDocObjectServer.

COleServerDoc::ActivateInPlace

Aktivuje položku pro místní úpravy.

BOOL ActivateInPlace();

Vrácená hodnota

Nenulové, pokud je úspěšné; jinak 0, což znamená, že položka je plně otevřená.

Poznámky

Tato funkce provádí všechny operace nezbytné pro místní aktivaci. Vytvoří místní okno rámečku, aktivuje ho a změní jeho velikost na položku, nastaví sdílené nabídky a další ovládací prvky, posune položku do zobrazení a nastaví fokus na místní okno rámečku.

Tato funkce je volána výchozí implementací COleServerItem::OnShow. Tuto funkci zavolejte, pokud vaše aplikace podporuje další příkaz pro místní aktivaci (například Play).

COleServerDoc::COleServerDoc

COleServerDoc Vytvoří objekt bez připojení k systémovým knihovnám DLL OLE.

COleServerDoc();

Poznámky

Chcete-li otevřít komunikaci s ole, musíte volat COleLinkingDoc::Register . Pokud ve své aplikaci používáte COleTemplateServer, COleLinkingDoc::Register volá se pro vás COleLinkingDocimplementace OnNewDocument, OnOpenDocumenta OnSaveDocument.

COleServerDoc::CreateInPlaceFrame

Architektura volá tuto funkci k vytvoření okna rámce pro místní úpravy.

virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);

Parametry

pParentWnd
Ukazatel na nadřazené okno aplikace kontejneru

Vrácená hodnota

Ukazatel na místní okno rámečku nebo null v případě neúspěchu.

Poznámky

Výchozí implementace používá k vytvoření rámce informace zadané v šabloně dokumentu. Použité zobrazení je první zobrazení vytvořené pro dokument. Toto zobrazení je dočasně odpojeno od původního rámce a připojeno k nově vytvořenému rámečku.

Jedná se o pokročilý přepis.

COleServerDoc::D eactivateAndUndo

Tuto funkci zavolejte, pokud vaše aplikace podporuje funkci Zpět a uživatel zvolí možnost Zpět po aktivaci položky, ale před úpravou.

BOOL DeactivateAndUndo();

Vrácená hodnota

Nenulové při úspěchu; jinak 0.

Poznámky

Pokud je aplikace kontejneru zapsána pomocí knihovny tříd Microsoft Foundation, volání této funkce způsobí volání COleClientItem::OnDeactivateAndUndo , které deaktivuje uživatelské rozhraní serveru.

COleServerDoc::D estroyInPlaceFrame

Architektura volá tuto funkci, aby zničila místní okno rámce a vrátila okno dokumentu serverové aplikace do stavu před místní aktivací.

virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);

Parametry

pFrameWnd
Ukazatel na místní okno rámečku, které se má zničit.

Poznámky

Jedná se o pokročilý přepis.

COleServerDoc::D iscardUndoState

Pokud uživatel provede operaci úprav, kterou nelze vrátit zpět, zavolejte tuto funkci, aby aplikace kontejneru zahodila informace o stavu vrácení zpět.

BOOL DiscardUndoState();

Vrácená hodnota

Nenulové při úspěchu; jinak 0.

Poznámky

Tato funkce je poskytována tak, aby servery, které podporují funkci Zpět, mohly uvolnit prostředky, které by jinak byly využity informacemi o stavu zpět, které nelze použít.

COleServerDoc::GetClientSite

Načte ukazatel na základní IOleClientSite rozhraní.

LPOLECLIENTSITE GetClientSite() const;

Vrácená hodnota

Načte ukazatel na základní rozhraní IOleClientSite .

COleServerDoc::GetDocObjectServer

Přepište tuto funkci tak, aby vytvořila novou CDocObjectServer položku a vrátila na ni ukazatel.

virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);

Parametry

pDocSite
Ukazatel na IOleDocumentSite rozhraní, které připojí tento dokument k serveru.

Vrácená hodnota

Ukazatel na CDocObjectServer; Hodnota NULL, pokud operace selhala.

Poznámky

Když je server DocObject aktivován, návrat ukazatele bez hodnoty NULL ukazuje, že klient může podporovat DocObjects. Výchozí implementace vrátí hodnotu NULL.

Typická implementace dokumentu, který podporuje DocObjects, jednoduše přidělí nový CDocObjectServer objekt a vrátí ho volajícímu. Příklad:

CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
   return new CDocObjectServer(this, pSite);
}

COleServerDoc::GetEmbeddedItem

Voláním této funkce získáte ukazatel na položku představující celý dokument.

COleServerItem* GetEmbeddedItem();

Vrácená hodnota

Ukazatel na položku představující celý dokument; Hodnota NULL, pokud operace selhala.

Poznámky

Volá COleServerDoc::OnGetEmbeddedItem, virtuální funkci bez výchozí implementace.

COleServerDoc::GetItemClipRect

Voláním GetItemClipRect členské funkce získáte souřadnice obdélníku výřezu položky, kterou upravujete na místě.

void GetItemClipRect(LPRECT lpClipRect) const;

Parametry

lpClipRect
Ukazatel na strukturu nebo CRect objekt pro RECT příjem souřadnic obdélníku výřezu položky.

Poznámky

Souřadnice jsou v pixelech vzhledem k klientské oblasti okna aplikace kontejneru.

Výkres by neměl nastat mimo obdélník výřezu. Výkres je obvykle automaticky omezen. Tato funkce slouží k určení, zda se uživatel posunoval mimo viditelnou část dokumentu; pokud ano, posuňte dokument kontejneru podle potřeby voláním ScrollContainerBy.

COleServerDoc::GetItemPosition

Voláním GetItemPosition členské funkce získáte souřadnice položky, kterou upravujete.

void GetItemPosition(LPRECT lpPosRect) const;

Parametry

lpPosRect
Ukazatel na RECT strukturu nebo CRect objekt pro příjem souřadnic položky.

Poznámky

Souřadnice jsou v pixelech vzhledem k klientské oblasti okna aplikace kontejneru.

Umístění položky lze porovnat s aktuálním obdélníkem výřezu a určit rozsah, ve kterém je položka viditelná (nebo není viditelná) na obrazovce.

COleServerDoc::GetZoomFactor

Členová GetZoomFactor funkce určuje "faktor přiblížení" položky, která byla aktivována pro místní úpravy.

BOOL GetZoomFactor(
    LPSIZE lpSizeNum = NULL,
    LPSIZE lpSizeDenom = NULL,
    LPCRECT lpPosRect = NULL) const;

Parametry

lpSizeNum
Ukazatel na objekt třídy CSize , který bude obsahovat čitatel lupy. Může mít hodnotu NULL.

lpSizeDenom
Ukazatel na objekt třídy CSize , který bude obsahovat jmenovatel faktoru lupy. Může mít hodnotu NULL.

lpPosRect
Ukazatel na objekt třídy CRect , který popisuje nové umístění položky. Pokud je tento argument NULL, funkce použije aktuální pozici položky.

Vrácená hodnota

Nenulové, pokud je položka aktivována pro místní úpravy a její faktor přiblížení je jiný než 100 % (1:1); jinak 0.

Poznámky

Faktor přiblížení v pixelech je poměr velikosti položky v aktuálním rozsahu. Pokud aplikace kontejneru nenastavila rozsah položky, použije se její přirozený rozsah (určený COleServerItem::OnGetExtent).

Funkce nastaví první dva argumenty na čitatel a jmenovatel "zoom factor" položky. Pokud se položka neupravuje, funkce nastaví tyto argumenty na výchozí hodnotu 100 % (nebo 1:1) a vrátí nulu. Další informace naleznete v technické poznámce 40, MFC/OLE místní změny velikosti a přiblížení.

COleServerDoc::IsDocObject

Určuje, jestli je dokument objektem DocObject.

BOOL IsDocObject() const;

Vrácená hodnota

TRUE, pokud dokument je DocObject; jinak NEPRAVDA.

COleServerDoc::IsEmbedded

Voláním IsEmbedded členské funkce určíte, zda dokument představuje objekt vložený do kontejneru.

BOOL IsEmbedded() const;

Vrácená hodnota

Nenulové, pokud COleServerDoc je objekt dokument, který představuje objekt vložený do kontejneru; jinak 0.

Poznámky

Dokument načtený ze souboru není vložený, i když může být manipulován aplikací kontejneru jako s odkazem. Dokument vložený do dokumentu kontejneru se považuje za vložený.

COleServerDoc::IsInPlaceActive

Voláním IsInPlaceActive členské funkce určíte, jestli je položka aktuálně v aktivním stavu.

BOOL IsInPlaceActive() const;

Vrácená hodnota

Nenulové, pokud COleServerDoc je objekt aktivní, jinak 0.

COleServerDoc::NotifyChanged

Voláním této funkce upozorněte všechny propojené položky připojené k dokumentu, že se dokument změnil.

void NotifyChanged();

Poznámky

Tuto funkci obvykle zavoláte poté, co uživatel změní některé globální atributy, jako jsou dimenze dokumentu serveru. Pokud je položka OLE propojena s dokumentem s automatickým propojením, položka se aktualizuje tak, aby odrážela změny. V kontejnerových aplikacích napsaných pomocí knihovny tříd Microsoft Foundation je volána členská COleClientItem funkce OnChange.

Poznámka

Tato funkce je součástí kompatibility s OLE 1. Nové aplikace by měly používat UpdateAllItems.

COleServerDoc::NotifyClosed

Voláním této funkce upozorněte kontejnery, že byl dokument zavřený.

void NotifyClosed();

Poznámky

Když uživatel zvolí příkaz Zavřít z nabídky Soubor, NotifyClosed zavolá se implementací COleServerDocčlenské funkce OnCloseDocument. V kontejnerových aplikacích napsaných pomocí knihovny tříd Microsoft Foundation je volána členská COleClientItem funkce OnChange.

COleServerDoc::NotifyRename

Volání této funkce po přejmenování dokumentu serveru uživatelem.

void NotifyRename(LPCTSTR lpszNewName);

Parametry

lpszNewName
Ukazatel na řetězec určující nový název dokumentu serveru; to je obvykle plně kvalifikovaná cesta.

Poznámky

Když uživatel zvolí příkaz Uložit jako z nabídky Soubor, NotifyRename zavolá COleServerDocse implementací členské funkce OnSaveDocument . Tato funkce upozorní knihovny DLL systému OLE, které následně upozorňují kontejnery. V kontejnerových aplikacích napsaných pomocí knihovny tříd Microsoft Foundation je volána členská COleClientItem funkce OnChange.

COleServerDoc::NotifySaved

Volání této funkce po uložení dokumentu serveru uživatelem.

void NotifySaved();

Poznámky

Když uživatel zvolí příkaz Uložit z nabídky Soubor, NotifySaved je volána za vás implementací COleServerDocOnSaveDocument. Tato funkce upozorní knihovny DLL systému OLE, které následně upozorňují kontejnery. V kontejnerových aplikacích napsaných pomocí knihovny tříd Microsoft Foundation je volána členská COleClientItem funkce OnChange.

COleServerDoc::OnClose

Volá se rozhraním, když kontejner požaduje, aby byl dokument serveru zavřený.

virtual void OnClose(OLECLOSE dwCloseOption);

Parametry

dwCloseOption
Hodnota z výčtu OLECLOSE. Tento parametr může mít jednu z následujících hodnot:

  • OLECLOSE_SAVEIFDIRTY Soubor se uloží, pokud byl změněn.

  • OLECLOSE_NOSAVE Soubor je zavřený bez uložení.

  • OLECLOSE_PROMPTSAVE Pokud byl soubor změněn, zobrazí se uživateli výzva k jeho uložení.

Poznámky

Výchozí volání CDocument::OnCloseDocumentimplementace .

Další informace a další hodnoty naleznete v tématu OLECLOSE v sadě Windows SDK.

COleServerDoc::OnDeactivate

Volá se rozhraním, když uživatel deaktivuje vloženou nebo propojenou položku, která je aktuálně aktivní.

virtual void OnDeactivate();

Poznámky

Tato funkce obnoví uživatelské rozhraní aplikace kontejneru do původního stavu a zničí všechny nabídky a další ovládací prvky vytvořené pro místní aktivaci.

Informace o stavu vrácení zpět by měly být v tuto chvíli bezpodmínečně uvolněny.

Další informace najdete v článku Aktivace..

COleServerDoc::OnDeactivateUI

Volá se, když uživatel deaktivuje aktivovanou položku.

virtual void OnDeactivateUI(BOOL bUndoable);

Parametry

bUndoable
Určuje, jestli se změny úprav dají vrátit zpět.

Poznámky

Tato funkce obnoví uživatelské rozhraní aplikace kontejneru do původního stavu, skryje všechny nabídky a další ovládací prvky vytvořené pro místní aktivaci.

Architektura vždy nastaví hodnotu bUndoable na FALSE. Pokud server podporuje vrácení zpět a existuje operace, která se dá vrátit zpět, zavolejte implementaci základní třídy s bUndoable nastavenou na TRUE.

COleServerDoc::OnDocWindowActivate

Architektura volá tuto funkci k aktivaci nebo deaktivaci okna dokumentu pro místní úpravy.

virtual void OnDocWindowActivate(BOOL bActivate);

Parametry

bActivate
Určuje, jestli se má okno dokumentu aktivovat nebo deaktivovat.

Poznámky

Výchozí implementace podle potřeby odebere nebo přidá prvky uživatelského rozhraní na úrovni rámce. Tuto funkci přepište, pokud chcete provést další akce při aktivaci nebo deaktivaci dokumentu obsahujícího položku.

Další informace najdete v článku Aktivace..

COleServerDoc::OnExecOleCmd

Architektura volá tuto funkci, aby spustila zadaný příkaz nebo zobrazila nápovědu k příkazu.

virtual HRESULT OnExecOleCmd(
    const GUID* pguidCmdGroup,
    DWORD nCmdID,
    DWORD nCmdExecOpt,
    VARIANTARG* pvarargIn,
    VARIANTARG* pvarargOut);

Parametry

pguidCmdGroup
Ukazatel na identifikátor GUID, který identifikuje sadu příkazů. Může mít hodnotu NULL, která označuje výchozí skupinu příkazů.

nCmdID
Příkaz, který se má provést. Musí být ve skupině identifikované pguidCmdGroup.

nCmdExecOut
Způsob, jakým by měl objekt spustit příkaz, jednu nebo více následujících hodnot z výčtu OLECMDEXECOPT:

OLECMDEXECOPT_DODEFAULT

OLECMDEXECOPT_PROMPTUSER

OLECMDEXECOPT_DONTPROMPTUSER

OLECMDEXECOPT_SHOWHELP

pvarargIn
Ukazatel na VARIANTARG obsahující vstupní argumenty pro příkaz. Může mít hodnotu NULL.

pvarargOut
Ukazatel na VARIANTARG pro příjem výstupních návratových hodnot z příkazu. Může mít hodnotu NULL.

Vrácená hodnota

Vrátí S_OK v případě úspěchu; v opačném případě jeden z následujících kódů chyb:

Hodnota popis
E_UNEXPECTED Došlo k neočekávané chybě.
E_FAIL Došlo k chybě
E_NOTIMPL Označuje, že se samotný mfc má pokusit příkaz přeložit a odeslat.
OLECMDERR_E_UNKNOWNGROUP pguidCmdGroup není null, ale nezadá rozpoznanou skupinu příkazů.
OLECMDERR_E_NOTSUPPORTED nCmdID není rozpoznán jako platný příkaz ve skupině pguidCmdGroup
OLECMDERR_DISABLED Příkaz identifikovaný pomocí nCmdID je zakázaný a nelze ho spustit.
OLECMDERR_NOHELP Volající požádal o pomoc s příkazem identifikovaným pomocí nCmdID , ale není k dispozici žádná nápověda.
OLECMDERR_CANCELED Uživatel zrušil provádění.

Poznámky

COleCmdUI lze použít k povolení, aktualizaci a nastavení dalších vlastností příkazů uživatelského rozhraní DocObject. Po inicializaci příkazů je můžete spustit pomocí OnExecOleCmdpříkazu .

Architektura volá funkci před pokusem o překlad a odeslání příkazu dokumentu OLE. Tuto funkci nemusíte přepsat, aby zpracovávala standardní příkazy dokumentu OLE, ale pokud chcete zpracovat vlastní příkazy nebo zpracovat příkazy, které přijímají parametry nebo vrací výsledky, musíte této funkci zadat přepsání.

Většina příkazů nepřebírají argumenty ani návratové hodnoty. Pro většinu příkazů může volající předat NULLs pro pvarargIn a pvarargOut. Pro příkazy, které očekávají vstupní hodnoty, volající může deklarovat a inicializovat proměnnou VARIANTARG a předat ukazatel na proměnnou v pvarargIn. Pro příkazy, které vyžadují jednu hodnotu, lze argument uložit přímo v VARIANTARG a předat funkci. V rámci VARIANTARG musí být zabaleno více argumentů pomocí jednoho z podporovaných typů (například IDispatch SAFEARRAY).

Podobně pokud příkaz vrátí argumenty, které volající má deklarovat VARIANTARG, inicializovat ji do VT_EMPTY a předat její adresu v pvarargOut. Pokud příkaz vrátí jednu hodnotu, objekt může tuto hodnotu uložit přímo v pvarargOut. Více výstupních hodnot musí být zabaleno nějakým způsobem odpovídajícím způsobem pro VARIANTARG.

Implementace této funkce základní třídy provede OLE_COMMAND_MAP struktury přidružené k cíli příkazu a pokusí se odeslat příkaz do příslušné obslužné rutiny. Implementace základní třídy funguje pouze s příkazy, které nepřijímají argumenty nebo návratové hodnoty. Pokud potřebujete zpracovat příkazy, které přijímají argumenty nebo návratové hodnoty, musíte tuto funkci přepsat a pracovat s parametry pvarargIn a pvarargOut sami.

COleServerDoc::OnFrameWindowActivate

Architektura volá tuto funkci při aktivaci nebo deaktivaci okna rámce aplikace kontejneru.

virtual void OnFrameWindowActivate(BOOL bActivate);

Parametry

bActivate
Určuje, jestli má být okno rámečku aktivováno nebo deaktivováno.

Poznámky

Výchozí implementace zruší všechny režimy nápovědy, ve které může být okno rámečku. Tuto funkci přepište, pokud chcete provést speciální zpracování při aktivaci nebo deaktivaci okna rámečku.

Další informace najdete v článku Aktivace..

COleServerDoc::OnGetEmbeddedItem

Volá se rozhraním, když aplikace kontejneru volá serverovou aplikaci k vytvoření nebo úpravě vložené položky.

virtual COleServerItem* OnGetEmbeddedItem() = 0;

Vrácená hodnota

Ukazatel na položku představující celý dokument; Hodnota NULL, pokud operace selhala.

Poznámky

Neexistuje žádná výchozí implementace. Chcete-li vrátit položku představující celý dokument, musíte tuto funkci přepsat. Tato návratová hodnota by měla být objektem COleServerItem-odvozené třídy.

COleServerDoc::OnReactivateAndUndo

Architektura volá tuto funkci, když se uživatel rozhodne vrátit změny provedené u položky, která byla aktivována, změněna a následně deaktivována.

virtual BOOL OnReactivateAndUndo();

Vrácená hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Výchozí implementace nedělá nic kromě vrácení NEPRAVDA k označení selhání.

Tuto funkci přepište, pokud vaše aplikace podporuje vrácení zpět. Obvykle byste provedli operaci vrácení zpět a pak aktivovali položku voláním ActivateInPlace. Pokud je aplikace kontejneru napsaná pomocí knihovny tříd Microsoft Foundation, volání COleClientItem::ReactivateAndUndo způsobí volání této funkce.

COleServerDoc::OnResizeBorder

Architektura volá tuto funkci při změně velikosti oken rámce aplikace kontejneru.

virtual void OnResizeBorder(
    LPCRECT lpRectBorder,
    LPOLEINPLACEUIWINDOW lpUIWindow,
    BOOL bFrame);

Parametry

lpRectBorder
Ukazatel na RECT strukturu nebo CRect objekt, který určuje souřadnice ohraničení.

lpUIWindow
Ukazatel na objekt třídy IOleInPlaceUIWindow , který vlastní aktuální místní relaci úprav.

bFrame
TRUE, pokud lpUIWindow odkazuje na okno rámce nejvyšší úrovně aplikace kontejneru nebo NEPRAVDA, pokud lpUIWindow odkazuje na okno rámce na úrovni dokumentu aplikace kontejneru.

Poznámky

Tato funkce mění velikost a upravuje panely nástrojů a další prvky uživatelského rozhraní v souladu s novou velikostí okna.

Další informace naleznete v tématu IOleInPlaceUIWindow v sadě Windows SDK.

Jedná se o pokročilý přepis.

COleServerDoc::OnSetHostNames

Volá se rozhraním, když kontejner nastaví nebo změní názvy hostitelů pro tento dokument.

virtual void OnSetHostNames(
    LPCTSTR lpszHost,
    LPCTSTR lpszHostObj);

Parametry

lpszHost
Ukazatel na řetězec, který určuje název aplikace kontejneru.

lpszHostObj
Ukazatel na řetězec, který určuje název kontejneru dokumentu.

Poznámky

Výchozí implementace změní název dokumentu pro všechna zobrazení odkazující na tento dokument.

Tuto funkci přepište, pokud vaše aplikace nastaví názvy prostřednictvím jiného mechanismu.

COleServerDoc::OnSetItemRects

Architektura volá tuto funkci k umístění místního okna rámečku pro úpravy v okně rámce aplikace kontejneru.

virtual void OnSetItemRects(
    LPCRECT lpPosRect,
    LPCRECT lpClipRect);

Parametry

lpPosRect
Ukazatel na RECT strukturu nebo CRect objekt, který určuje umístění místního okna rámce vzhledem k oblasti klienta aplikace kontejneru.

lpClipRect
Ukazatel na RECT strukturu nebo CRect objekt, který určuje obdélník výřezu okna v místě vzhledem k klientské oblasti aplikace kontejneru.

Poznámky

Tuto funkci přepište, aby se v případě potřeby aktualizoval faktor přiblížení zobrazení.

Tato funkce se obvykle volá v reakci na RequestPositionChange volání, i když je možné ji kdykoli volat kontejnerem a požádat o změnu pozice pro místní položku.

COleServerDoc::OnShowControlBars

Architektura volá tuto funkci k zobrazení nebo skrytí řídicích pruhů serverové aplikace přidružené k oknem rámce identifikovaného pFrameWnd.

virtual void OnShowControlBars(
    CFrameWnd* pFrameWnd,
    BOOL bShow);

Parametry

pFrameWnd
Ukazatel myši na okno rámečku, jehož ovládací panely by měly být skryté nebo zobrazené.

BShow
Určuje, zda jsou řídicí pruhy zobrazeny nebo skryté.

Poznámky

Výchozí implementace vytvoří výčet všech řídicích pruhů vlastněných tímto oknem rámečku a skryje je nebo zobrazí.

COleServerDoc::OnShowDocument

Architektura volá OnShowDocument funkci, když musí být dokument serveru skrytý nebo zobrazený.

virtual void OnShowDocument(BOOL bShow);

Parametry

BShow
Určuje, zda má být uživatelské rozhraní dokumentu zobrazeno nebo skryto.

Poznámky

Pokud bShow je PRAVDA, výchozí implementace aktivuje serverovou aplikaci v případě potřeby a způsobí, že se aplikace kontejneru posune v okně, aby byla položka viditelná. Pokud bShow je FALSE, výchozí implementace deaktivuje položku prostřednictvím volání OnDeactivate, pak zničí nebo skryje všechna okna rámečku, která byla vytvořena pro dokument, s výjimkou první. Pokud žádné viditelné dokumenty nezůstanou, výchozí implementace skryje serverové aplikace.

COleServerDoc::OnUpdateDocument

Volá se rozhraním při ukládání dokumentu, který je vloženou položkou ve složeném dokumentu.

virtual BOOL OnUpdateDocument();

Vrácená hodnota

Nenulové, pokud byl dokument úspěšně aktualizován; jinak 0.

Poznámky

Výchozí implementace volá členské funkce COleServerDoc::NotifySaved a COleServerDoc::SaveEmbedding členské funkce a pak označí dokument jako čistý. Tuto funkci přepište, pokud chcete provést speciální zpracování při aktualizaci vložené položky.

COleServerDoc::RequestPositionChange

Zavolejte tuto členskou funkci, aby aplikace kontejneru změnila pozici položky.

void RequestPositionChange(LPCRECT lpPosRect);

Parametry

lpPosRect
Ukazatel na RECT strukturu nebo CRect objekt obsahující novou pozici položky

Poznámky

Tato funkce se obvykle volá (ve spojení s UpdateAllItems) při změně dat v místní aktivní položce. Po tomto volání může kontejner provést změnu voláním OnSetItemRects. Výsledná pozice se může lišit od požadované pozice.

COleServerDoc::SaveEmbedding

Voláním této funkce sdělíte aplikaci kontejneru, aby uložila vložený objekt.

void SaveEmbedding();

Poznámky

Tato funkce se volá automaticky z OnUpdateDocument. Všimněte si, že tato funkce způsobí aktualizaci položky na disku, takže je obvykle volána pouze v důsledku konkrétní akce uživatele.

COleServerDoc::ScrollContainerBy

ScrollContainerBy Volání členské funkce pro posouvání dokumentu kontejneru o množství v pixelech označených .sizeScroll

BOOL ScrollContainerBy(CSize sizeScroll);

Parametry

sizeScroll
Určuje, jak daleko se má dokument kontejneru posunout.

Vrácená hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Kladné hodnoty označují posouvání dolů a doprava; záporné hodnoty označují posouvání nahoru a doleva.

COleServerDoc::UpdateAllItems

Voláním této funkce upozorněte všechny propojené položky připojené k dokumentu, že se dokument změnil.

void UpdateAllItems(
    COleServerItem* pSender,
    LPARAM lHint = 0L,
    CObject* pHint = NULL,
    DVASPECT nDrawAspect = DVASPECT_CONTENT);

Parametry

pSender
Ukazatel na položku, která dokument změnila, nebo null, pokud se mají aktualizovat všechny položky.

LHint
Obsahuje informace o úpravě.

PHint
Ukazatel na objekt, který ukládá informace o úpravě.

nDrawAspect
Určuje způsob vykreslení položky. Toto je hodnota z výčtu DVASPECT. Tento parametr může mít jednu z následujících hodnot:

  • DVASPECT_CONTENT Položka je reprezentována způsobem, který lze zobrazit jako vložený objekt uvnitř kontejneru.

  • DVASPECT_THUMBNAIL Položka se vykreslí v reprezentaci miniatury, aby ji bylo možné zobrazit v nástroji pro procházení.

  • DVASPECT_ICON Položka je reprezentována ikonou.

  • DVASPECT_DOCPRINT Položka je reprezentována tak, jako kdyby byla vytištěna pomocí příkazu Tisk z nabídky Soubor.

Poznámky

Tuto funkci obvykle voláte poté, co uživatel změní dokument serveru. Pokud je položka OLE propojena s dokumentem s automatickým propojením, položka se aktualizuje tak, aby odrážela změny. V kontejnerových aplikacích napsaných pomocí knihovny tříd Microsoft Foundation je volána členská COleClientItem funkce OnChange.

Tato funkce volá OnUpdate členskou funkci pro každou položku dokumentu kromě odesílající položky, předávání pHint, lHint a nDrawAspect. Pomocí těchto parametrů můžete předat informace o položkách o změnách dokumentu. Informace můžete kódovat pomocí lHint nebo můžete definovat -odvozenou CObjecttřídu k uložení informací o úpravách a předání objektu této třídy pomocí pHint. Přepište členovou OnUpdate funkci ve vaší COleServerItem-odvozené třídě, aby se optimalizovala aktualizace každé položky v závislosti na tom, jestli se její prezentace změnila.

Viz také

MFC – Ukázka HIERSVR
COleLinkingDoc – třída
Graf hierarchie
COleDocument – třída
COleLinkingDoc – třída
COleTemplateServer – třída