COleServerDoc-klass
Basklassen för OLE-serverdokument.
Syntax
class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc
Medlemmar
Offentliga konstruktorer
Namn | Beskrivning |
---|---|
COleServerDoc::COleServerDoc | Konstruerar ett COleServerDoc objekt. |
Offentliga metoder
Namn | Beskrivning |
---|---|
COleServerDoc::ActivateDocObject | Aktiverar det associerade DocObject-dokumentet. |
COleServerDoc::ActivateInPlace | Aktiverar dokumentet för redigering på plats. |
COleServerDoc::D eactivateAndUndo | Inaktiverar serverns användargränssnitt. |
COleServerDoc::D iscardUndoState | Tar bort information om ångra-tillstånd. |
COleServerDoc::GetClientSite | Hämtar en pekare till det underliggande IOleClientSite -gränssnittet. |
COleServerDoc::GetEmbeddedItem | Returnerar en pekare till ett objekt som representerar hela dokumentet. |
COleServerDoc::GetItemClipRect | Returnerar den aktuella urklippsrektangeln för redigering på plats. |
COleServerDoc::GetItemPosition | Returnerar den aktuella positionsrektangeln, i förhållande till containerprogrammets klientområde, för redigering på plats. |
COleServerDoc::GetZoomFactor | Returnerar zoomfaktorn i bildpunkter. |
COleServerDoc::IsDocObject | Avgör om dokumentet är en DocObject. |
COleServerDoc::IsEmbedded | Anger om dokumentet är inbäddat i ett containerdokument eller om det körs fristående. |
COleServerDoc::IsInPlaceActive | Returnerar TRUE om objektet för närvarande är aktiverat på plats. |
COleServerDoc::NotifyChanged | Meddelar containrar att användaren har ändrat dokumentet. |
COleServerDoc::NotifyClosed | Meddelar containrar att användaren har stängt dokumentet. |
COleServerDoc::NotifyRename | Meddelar containrar som användaren har bytt namn på dokumentet. |
COleServerDoc::NotifySaved | Meddelar containrar som användaren har sparat dokumentet. |
COleServerDoc::OnDeactivate | Anropas av ramverket när användaren inaktiverar ett objekt som har aktiverats på plats. |
COleServerDoc::OnDeactivateUI | Anropas av ramverket för att förstöra kontroller och andra användargränssnittselement som skapats för aktivering på plats. |
COleServerDoc::OnDocWindowActivate | Anropas av ramverket när containerns dokumentramfönster aktiveras eller inaktiveras. |
COleServerDoc::OnResizeBorder | Anropas av ramverket när containerprogrammets ramfönster eller dokumentfönster ändras. |
COleServerDoc::OnShowControlBars | Anropas av ramverket för att visa eller dölja kontrollstaplar för redigering på plats. |
COleServerDoc::OnUpdateDocument | Anropas av ramverket när ett serverdokument som är ett inbäddat objekt sparas och uppdaterar containerns kopia av objektet. |
COleServerDoc::RequestPositionChange | Ändrar positionen för redigeringsramen på plats. |
COleServerDoc::SaveEmbedding | Meddelar containerprogrammet att spara dokumentet. |
COleServerDoc::ScrollContainerBy | Rullar containerdokumentet. |
COleServerDoc::UpdateAllItems | Meddelar containrar att användaren har ändrat dokumentet. |
Skyddade metoder
Namn | Beskrivning |
---|---|
COleServerDoc::CreateInPlaceFrame | Anropas av ramverket för att skapa ett ramfönster för redigering på plats. |
COleServerDoc::D estroyInPlaceFrame | Anropas av ramverket för att förstöra ett ramfönster för redigering på plats. |
COleServerDoc::GetDocObjectServer | Åsidosätt den här funktionen för att skapa ett nytt CDocObjectServer -objekt och ange att det här dokumentet är en DocObject-container. |
COleServerDoc::OnClose | Anropas av ramverket när en container begär att dokumentet ska stängas. |
COleServerDoc::OnExecOleCmd | Kör ett angivet kommando eller visar hjälp för kommandot. |
COleServerDoc::OnFrameWindowActivate | Anropas av ramverket när containerns ramfönster aktiveras eller inaktiveras. |
COleServerDoc::OnGetEmbeddedItem | Anropas för att hämta en COleServerItem som representerar hela dokumentet. används för att hämta ett inbäddat objekt. Implementering krävs. |
COleServerDoc::OnReactivateAndUndo | Anropas av ramverket för att ångra ändringar som gjorts under redigering på plats. |
COleServerDoc::OnSetHostNames | Anropas av ramverket när en container anger fönsterrubriken för ett inbäddat objekt. |
COleServerDoc::OnSetItemRects | Anropas av ramverket för att placera fönstret för redigeringsramen på plats i containerprogrammets fönster. |
COleServerDoc::OnShowDocument | Anropas av ramverket för att visa eller dölja dokumentet. |
Anmärkningar
Ett serverdokument kan innehålla COleServerItem objekt som representerar servergränssnittet för inbäddade eller länkade objekt. När ett serverprogram startas av en container för att redigera ett inbäddat objekt läses objektet in som ett eget serverdokument. COleServerDoc
-objektet innehåller bara ett COleServerItem
objekt som består av hela dokumentet. När ett serverprogram startas av en container för att redigera ett länkat objekt läses ett befintligt dokument in från disken. en del av dokumentets innehåll är markerat för att indikera det länkade objektet.
COleServerDoc
objekt kan också innehålla objekt i klassen COleClientItem. På så sätt kan du skapa container-server-program. Ramverket tillhandahåller funktioner för att lagra de COleClientItem
objekten korrekt vid underhåll av de COleServerItem
objekten.
Om serverprogrammet inte stöder länkar innehåller ett serverdokument alltid bara ett serverobjekt, vilket representerar hela det inbäddade objektet som ett dokument. Om serverprogrammet stöder länkar måste det skapa ett serverobjekt varje gång en markering kopieras till Urklipp.
Om du vill använda COleServerDoc
härleder du en klass från den och implementerar OnGetEmbeddedItem medlemsfunktion, vilket gör att servern kan stödja inbäddade objekt. Härled en klass från COleServerItem
för att implementera objekten i dina dokument och returnera objekt för den klassen från OnGetEmbeddedItem
.
För att stödja länkade objekt tillhandahåller COleServerDoc
funktionen OnGetLinkedItem medlem. Du kan använda standardimplementeringen eller åsidosätta den om du har ett eget sätt att hantera dokumentobjekt.
Du behöver en COleServerDoc
-härledd klass för varje typ av serverdokument som programmet stöder. Om serverprogrammet till exempel stöder kalkylblad och diagram behöver du två COleServerDoc
-härledda klasser.
Mer information om servrar finns i artikeln Servers: Implementing a Server.
Arvshierarki
COleServerDoc
Krav
rubrik: afxole.h
COleServerDoc::ActivateDocObject
Aktiverar det associerade DocObject-dokumentet.
void ActivateDocObject();
Anmärkningar
Som standard stöder COleServerDoc
inte aktiva dokument (kallas även DocObjects). Om du vill aktivera det här stödet kan du läsa GetDocObjectServer och klass CDocObjectServer.
COleServerDoc::ActivateInPlace
Aktiverar objektet för redigering på plats.
BOOL ActivateInPlace();
Returvärde
Nonzero om det lyckas; annars 0, vilket indikerar att objektet är helt öppet.
Anmärkningar
Den här funktionen utför alla åtgärder som krävs för aktivering på plats. Det skapar ett ramfönster på plats, aktiverar det och storleksanpassar det till objektet, konfigurerar delade menyer och andra kontroller, rullar objektet i vyn och ställer in fokus på ramfönstret på plats.
Den här funktionen anropas av standardimplementeringen av COleServerItem::OnShow. Anropa den här funktionen om programmet stöder ett annat verb för aktivering på plats (till exempel Spela upp).
COleServerDoc::COleServerDoc
Konstruerar ett COleServerDoc
objekt utan att ansluta med OLE-system-DLL:er.
COleServerDoc();
Anmärkningar
Du måste anropa COleLinkingDoc::Registrera för att öppna kommunikationen med OLE. Om du använder COleTemplateServer i programmet anropas COleLinkingDoc::Register
av COleLinkingDoc
implementering av OnNewDocument
, OnOpenDocument
och OnSaveDocument
.
COleServerDoc::CreateInPlaceFrame
Ramverket anropar den här funktionen för att skapa ett ramfönster för redigering på plats.
virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);
Parametrar
pParentWnd
Pekare mot containerprogrammets överordnade fönster.
Returvärde
En pekare till ramfönstret på plats eller NULL om det inte lyckas.
Anmärkningar
Standardimplementeringen använder information som anges i dokumentmallen för att skapa ramen. Vyn som används är den första vyn som skapats för dokumentet. Den här vyn kopplas tillfälligt från den ursprungliga ramen och kopplas till den nyligen skapade ramen.
Det här är ett avancerat åsidosättande.
COleServerDoc::D eactivateAndUndo
Anropa den här funktionen om programmet stöder Ångra och användaren väljer Ångra efter att ha aktiverat ett objekt men innan det redigeras.
BOOL DeactivateAndUndo();
Returvärde
Nonzero på framgång; annars 0.
Anmärkningar
Om containerprogrammet skrivs med hjälp av Microsoft Foundation-klassbiblioteket orsakar anrop av den här funktionen COleClientItem::OnDeactivateAndUndo anropas, vilket inaktiverar serverns användargränssnitt.
COleServerDoc::D estroyInPlaceFrame
Ramverket anropar den här funktionen för att förstöra ett ramfönster på plats och returnera serverprogrammets dokumentfönster till dess tillstånd före aktivering på plats.
virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);
Parametrar
pFrameWnd
Pekare till ramfönstret på plats som ska förstöras.
Anmärkningar
Det här är ett avancerat åsidosättande.
COleServerDoc::D iscardUndoState
Om användaren utför en redigeringsåtgärd som inte kan ångras anropar du den här funktionen för att tvinga containerprogrammet att ignorera dess ångra-tillståndsinformation.
BOOL DiscardUndoState();
Returvärde
Nonzero på framgång; annars 0.
Anmärkningar
Den här funktionen tillhandahålls så att servrar som stöder Ångra kan frigöra resurser som annars skulle förbrukas av information om ångra-tillstånd som inte kan användas.
COleServerDoc::GetClientSite
Hämtar en pekare till det underliggande IOleClientSite
-gränssnittet.
LPOLECLIENTSITE GetClientSite() const;
Returvärde
Hämtar en pekare till det underliggande IOleClientSite--gränssnittet.
COleServerDoc::GetDocObjectServer
Åsidosätt den här funktionen för att skapa ett nytt CDocObjectServer
objekt och returnera en pekare till den.
virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);
Parametrar
pDocSite
Pekare till det IOleDocumentSite
gränssnitt som ansluter det här dokumentet till servern.
Returvärde
En pekare till en CDocObjectServer
; NULL om åtgärden misslyckades.
Anmärkningar
När en DocObject-server aktiveras visar returnerande av en icke-NULL-pekare att klienten kan stödja DocObjects. Standardimplementeringen returnerar NULL.
En typisk implementering för ett dokument som stöder DocObjects allokerar helt enkelt ett nytt CDocObjectServer
objekt och returnerar det till anroparen. Till exempel:
CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
return new CDocObjectServer(this, pSite);
}
COleServerDoc::GetEmbeddedItem
Anropa den här funktionen för att hämta en pekare till ett objekt som representerar hela dokumentet.
COleServerItem* GetEmbeddedItem();
Returvärde
En pekare till ett objekt som representerar hela dokumentet. NULL om åtgärden misslyckades.
Anmärkningar
Den anropar COleServerDoc::OnGetEmbeddedItem, en virtuell funktion utan standardimplementering.
COleServerDoc::GetItemClipRect
Anropa funktionen GetItemClipRect
medlem för att hämta koordinaterna för urklippsrektangeln för objektet som redigeras på plats.
void GetItemClipRect(LPRECT lpClipRect) const;
Parametrar
lpClipRect
Pekare till en RECT
struktur eller ett CRect
objekt för att ta emot objektets koordinater för urklippsrektangeln.
Anmärkningar
Koordinaterna finns i bildpunkter i förhållande till klientområdet för containerprogrammet.
Ritning bör inte ske utanför urklippsrektangeln. Vanligtvis begränsas ritningen automatiskt. Använd den här funktionen för att avgöra om användaren har rullat utanför den synliga delen av dokumentet. I så fall rullar du containerdokumentet efter behov med hjälp av ett anrop till ScrollContainerBy.
COleServerDoc::GetItemPosition
Anropa funktionen GetItemPosition
medlem för att hämta koordinaterna för objektet som redigeras på plats.
void GetItemPosition(LPRECT lpPosRect) const;
Parametrar
lpPosRect
Pekare mot en RECT
struktur eller ett CRect
objekt för att ta emot objektets koordinater.
Anmärkningar
Koordinaterna finns i bildpunkter i förhållande till klientområdet för containerprogrammet.
Objektets position kan jämföras med den aktuella urklippsrektangeln för att fastställa i vilken utsträckning objektet är synligt (eller inte synligt) på skärmen.
COleServerDoc::GetZoomFactor
Funktionen GetZoomFactor
medlem avgör "zoomfaktorn" för ett objekt som har aktiverats för redigering på plats.
BOOL GetZoomFactor(
LPSIZE lpSizeNum = NULL,
LPSIZE lpSizeDenom = NULL,
LPCRECT lpPosRect = NULL) const;
Parametrar
lpSizeNum
Pekare till ett objekt i klassen CSize
som innehåller zoomfaktorns täljare. Kan vara NULL.
lpSizeDenom
Pekare till ett objekt i klassen CSize
som innehåller zoomfaktorns nämnare. Kan vara NULL.
lpPosRect
Pekare till ett objekt i klassen CRect
som beskriver objektets nya position. Om det här argumentet är NULL använder funktionen objektets aktuella position.
Returvärde
Nonzero om objektet är aktiverat för redigering på plats och dess zoomfaktor är annan än 100% (1:1); annars 0.
Anmärkningar
Zoomfaktorn i bildpunkter är andelen av objektets storlek i dess aktuella omfattning. Om containerprogrammet inte har angett objektets omfattning används dess naturliga omfattning (enligt COleServerItem::OnGetExtent) .
Funktionen anger sina två första argument till täljaren och nämnaren för objektets "zoomfaktor". Om objektet inte redigeras på plats anger funktionen dessa argument till ett standardvärde på 100% (eller 1:1) och returnerar noll. Mer information finns i Technical Note 40, MFC/OLE In-Place Resizing and Zooming.
COleServerDoc::IsDocObject
Avgör om dokumentet är en DocObject.
BOOL IsDocObject() const;
Returvärde
SANT om dokumentet är en DocObject; annars FALSKT.
COleServerDoc::IsEmbedded
Anropa funktionen IsEmbedded
medlem för att avgöra om dokumentet representerar ett objekt som är inbäddat i en container.
BOOL IsEmbedded() const;
Returvärde
Nonzero om COleServerDoc
-objektet är ett dokument som representerar ett objekt som är inbäddat i en container. annars 0.
Anmärkningar
Ett dokument som läses in från en fil är inte inbäddat, även om det kan manipuleras av ett containerprogram som en länk. Ett dokument som är inbäddat i ett containerdokument anses vara inbäddat.
COleServerDoc::IsInPlaceActive
Anropa funktionen IsInPlaceActive
medlem för att avgöra om objektet för närvarande är i aktivt tillstånd på plats.
BOOL IsInPlaceActive() const;
Returvärde
Nonzero om COleServerDoc
-objektet är aktivt på plats; annars 0.
COleServerDoc::NotifyChanged
Anropa den här funktionen för att meddela alla länkade objekt som är anslutna till dokumentet att dokumentet har ändrats.
void NotifyChanged();
Anmärkningar
Normalt anropar du den här funktionen när användaren har ändrat något globalt attribut, till exempel dimensionerna i serverdokumentet. Om ett OLE-objekt är länkat till dokumentet med en automatisk länk uppdateras objektet så att det återspeglar ändringarna. I containerprogram som skrivits med Microsoft Foundation-klassbiblioteket anropas OnChange medlemsfunktion för COleClientItem
.
Not
Den här funktionen ingår för kompatibilitet med OLE 1. Nya program bör använda UpdateAllItems.
COleServerDoc::NotifyClosed
Anropa den här funktionen för att meddela containern eller containern att dokumentet har stängts.
void NotifyClosed();
Anmärkningar
När användaren väljer kommandot Stäng på menyn Arkiv anropas NotifyClosed
av COleServerDoc
implementering av funktionen OnCloseDocument member. I containerprogram som skrivits med Microsoft Foundation-klassbiblioteket anropas OnChange medlemsfunktion för COleClientItem
.
COleServerDoc::NotifyRename
Anropa den här funktionen när användaren har bytt namn på serverdokumentet.
void NotifyRename(LPCTSTR lpszNewName);
Parametrar
lpszNewName
Pekare till en sträng som anger det nya namnet på serverdokumentet. Detta är vanligtvis en fullständigt kvalificerad sökväg.
Anmärkningar
När användaren väljer kommandot Spara som på arkiv-menyn anropas NotifyRename
av COleServerDoc
implementering av funktionen OnSaveDocument member. Den här funktionen meddelar OLE-systemets DLL:er, vilket i sin tur meddelar containrarna. I containerprogram som skrivits med Microsoft Foundation-klassbiblioteket anropas OnChange medlemsfunktion för COleClientItem
.
COleServerDoc::NotifySaved
Anropa den här funktionen när användaren har sparat serverdokumentet.
void NotifySaved();
Anmärkningar
När användaren väljer kommandot Spara på menyn Arkiv anropas NotifySaved
dig genom att COleServerDoc
implementering av OnSaveDocument. Den här funktionen meddelar OLE-systemets DLL:er, vilket i sin tur meddelar containrarna. I containerprogram som skrivits med Microsoft Foundation-klassbiblioteket anropas OnChange medlemsfunktion för COleClientItem
.
COleServerDoc::OnClose
Anropas av ramverket när en container begär att serverdokumentet stängs.
virtual void OnClose(OLECLOSE dwCloseOption);
Parametrar
dwCloseOption
Ett värde från uppräkningen OLECLOSE. Den här parametern kan ha något av följande värden:
OLECLOSE_SAVEIFDIRTY Filen sparas om den har ändrats.
OLECLOSE_NOSAVE Filen stängs utan att sparas.
OLECLOSE_PROMPTSAVE Om filen har ändrats uppmanas användaren att spara den.
Anmärkningar
Standardimplementeringsanropen CDocument::OnCloseDocument
.
Mer information och ytterligare värden finns i OLECLOSE- i Windows SDK.
COleServerDoc::OnDeactivate
Anropas av ramverket när användaren inaktiverar ett inbäddat eller länkat objekt som för närvarande är aktivt på plats.
virtual void OnDeactivate();
Anmärkningar
Den här funktionen återställer containerprogrammets användargränssnitt till sitt ursprungliga tillstånd och förstör alla menyer och andra kontroller som har skapats för aktivering på plats.
Informationen om att ångra tillstånd bör vara ovillkorligt frisläppt i det här läget.
Mer information finns i artikeln Aktivering.
COleServerDoc::OnDeactivateUI
Anropas när användaren inaktiverar ett objekt som har aktiverats på plats.
virtual void OnDeactivateUI(BOOL bUndoable);
Parametrar
bUndoable
Anger om redigeringsändringarna kan ångras.
Anmärkningar
Den här funktionen återställer containerprogrammets användargränssnitt till sitt ursprungliga tillstånd och döljer alla menyer och andra kontroller som har skapats för aktivering på plats.
Ramverket anger alltid bUndoable till FALSE. Om servern stöder ångra och det finns en åtgärd som kan ångras anropar du basklassimplementeringen med bUndoable inställd på TRUE.
COleServerDoc::OnDocWindowActivate
Ramverket anropar den här funktionen för att aktivera eller inaktivera ett dokumentfönster för redigering på plats.
virtual void OnDocWindowActivate(BOOL bActivate);
Parametrar
bActivate
Anger om dokumentfönstret ska aktiveras eller inaktiveras.
Anmärkningar
Standardimplementeringen tar bort eller lägger till användargränssnittselementen på ramnivå efter behov. Åsidosätt den här funktionen om du vill utföra ytterligare åtgärder när dokumentet som innehåller objektet aktiveras eller inaktiveras.
Mer information finns i artikeln Aktivering.
COleServerDoc::OnExecOleCmd
Ramverket anropar den här funktionen för att köra ett angivet kommando eller visa hjälp för kommandot.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut);
Parametrar
pguidCmdGroup
En pekare till ett GUID som identifierar en uppsättning kommandon. Kan vara NULL för att ange standardkommandogruppen.
nCmdID
Kommandot som ska köras. Måste finnas i den grupp som identifieras av pguidCmdGroup.
nCmdExecOut
Hur objektet ska köra kommandot, ett eller flera av följande värden från OLECMDEXECOPT-uppräkningen:
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Pekare till en VARIANTARG som innehåller indataargument för kommandot. Kan vara NULL.
pvarargOut
Pekare till en VARIANTARG för att ta emot utdatareturvärdena från kommandot. Kan vara NULL.
Returvärde
Returnerar S_OK om det lyckas. i annat fall någon av följande felkoder:
Värde | Beskrivning |
---|---|
E_UNEXPECTED | Ett oväntat fel uppstod |
E_FAIL | Fel uppstod |
E_NOTIMPL | Anger att själva MFC ska försöka översätta och skicka kommandot |
OLECMDERR_E_UNKNOWNGROUP | pguidCmdGroup inte är NULL men anger inte en identifierad kommandogrupp |
OLECMDERR_E_NOTSUPPORTED | nCmdID känns inte igen som ett giltigt kommando i gruppen pguidCmdGroup |
OLECMDERR_DISABLED | Kommandot som identifieras av nCmdID är inaktiverat och kan inte köras |
OLECMDERR_NOHELP | Anroparen bad om hjälp med kommandot som identifieras av nCmdID men ingen hjälp är tillgänglig |
OLECMDERR_CANCELED | Användaren avbröt körningen |
Anmärkningar
COleCmdUI
kan användas för att aktivera, uppdatera och ange andra egenskaper för DocObject-användargränssnittskommandon. När kommandona har initierats kan du köra dem med OnExecOleCmd
.
Ramverket anropar funktionen innan du försöker översätta och skicka ett OLE-dokumentkommando. Du behöver inte åsidosätta den här funktionen för att hantera ole-standarddokumentkommandon, men du måste ange en åsidosättning för den här funktionen om du vill hantera dina egna anpassade kommandon eller hantera kommandon som accepterar parametrar eller returnerar resultat.
De flesta kommandon tar inte argument eller returnerar värden. För de flesta kommandon kan anroparen skicka NULLs för pvarargIn och pvarargOut. För kommandon som förväntar sig indatavärden kan anroparen deklarera och initiera en VARIANTARG-variabel och skicka en pekare till variabeln i pvarargIn. För kommandon som kräver ett enda värde kan argumentet lagras direkt i VARIANTARG och skickas till funktionen. Flera argument måste paketeras i VARIANTARG med någon av de typer som stöds (till exempel IDispatch
och SAFEARRAY ).
Om ett kommando returnerar argument förväntas anroparen deklarera en VARIANTARG, initiera den till VT_EMPTY och skicka adressen i pvarargOut. Om ett kommando returnerar ett enda värde kan objektet lagra värdet direkt i pvarargOut. Flera utdatavärden måste paketeras på något sätt som är lämpligt för VARIANTARG.
Basklassimplementeringen av den här funktionen visar de OLE_COMMAND_MAP strukturer som är associerade med kommandomålet och försöker skicka kommandot till en lämplig hanterare. Basklassimplementeringen fungerar bara med kommandon som inte accepterar argument eller returnerar värden. Om du behöver hantera kommandon som accepterar argument eller returnerar värden måste du åsidosätta den här funktionen och arbeta med pvarargIn och pvarargOut parametrar själv.
COleServerDoc::OnFrameWindowActivate
Ramverket anropar den här funktionen när containerprogrammets ramfönster aktiveras eller inaktiveras.
virtual void OnFrameWindowActivate(BOOL bActivate);
Parametrar
bActivate
Anger om ramfönstret ska aktiveras eller inaktiveras.
Anmärkningar
Standardimplementeringen avbryter alla hjälplägen som ramfönstret kan vara i. Åsidosätt den här funktionen om du vill utföra särskild bearbetning när ramfönstret aktiveras eller inaktiveras.
Mer information finns i artikeln Aktivering.
COleServerDoc::OnGetEmbeddedItem
Anropas av ramverket när ett containerprogram anropar serverprogrammet för att skapa eller redigera ett inbäddat objekt.
virtual COleServerItem* OnGetEmbeddedItem() = 0;
Returvärde
En pekare till ett objekt som representerar hela dokumentet. NULL om åtgärden misslyckades.
Anmärkningar
Det finns ingen standardimplementering. Du måste åsidosätta den här funktionen för att returnera ett objekt som representerar hela dokumentet. Det här returvärdet ska vara ett objekt i en COleServerItem
-derived-klass.
COleServerDoc::OnReactivateAndUndo
Ramverket anropar den här funktionen när användaren väljer att ångra ändringar som gjorts i ett objekt som har aktiverats, ändrats och därefter inaktiverats.
virtual BOOL OnReactivateAndUndo();
Returvärde
Nonzero om det lyckas; annars 0.
Anmärkningar
Standardimplementeringen gör ingenting förutom att returnera FALSE för att indikera fel.
Åsidosätt den här funktionen om programmet stöder ångra. Vanligtvis utför du ångra-åtgärden och aktiverar sedan objektet genom att anropa ActivateInPlace
. Om containerprogrammet skrivs med Microsoft Foundation-klassbiblioteket anropar du COleClientItem::ReactivateAndUndo
gör att den här funktionen anropas.
COleServerDoc::OnResizeBorder
Ramverket anropar den här funktionen när containerprogrammets ramfönster ändrar storlek.
virtual void OnResizeBorder(
LPCRECT lpRectBorder,
LPOLEINPLACEUIWINDOW lpUIWindow,
BOOL bFrame);
Parametrar
lpRectBorder
Pekare till en RECT
struktur eller ett CRect
objekt som anger koordinaterna för kantlinjen.
lpUIWindow
Pekare till ett objekt i klassen IOleInPlaceUIWindow
som äger den aktuella redigeringssessionen på plats.
bFrame
SANT om lpUIWindow pekar på containerprogrammets ramfönster på den översta nivån eller FALSE om lpUIWindow pekar på containerprogrammets ramfönster på dokumentnivå.
Anmärkningar
Den här funktionen ändrar storlek på och justerar verktygsfält och andra användargränssnittselement i enlighet med den nya fönsterstorleken.
Mer information finns i IOleInPlaceUIWindow i Windows SDK.
Det här är ett avancerat åsidosättande.
COleServerDoc::OnSetHostNames
Anropas av ramverket när containern anger eller ändrar värdnamnen för det här dokumentet.
virtual void OnSetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
Parametrar
lpszHost
Pekare till en sträng som anger namnet på containerprogrammet.
lpszHostObj
Pekare till en sträng som anger containerns namn på dokumentet.
Anmärkningar
Standardimplementeringen ändrar dokumentrubriken för alla vyer som refererar till det här dokumentet.
Åsidosätt den här funktionen om ditt program anger rubrikerna via en annan mekanism.
COleServerDoc::OnSetItemRects
Ramverket anropar den här funktionen för att placera fönstret för redigeringsramen på plats i containerprogrammets ramfönster.
virtual void OnSetItemRects(
LPCRECT lpPosRect,
LPCRECT lpClipRect);
Parametrar
lpPosRect
Pekare mot en RECT
struktur eller ett CRect
objekt som anger ramfönstrets position på plats i förhållande till containerprogrammets klientområde.
lpClipRect
Pekare till en RECT
struktur eller ett CRect
objekt som anger ramfönstrets urklippsrektangel på plats i förhållande till containerprogrammets klientområde.
Anmärkningar
Åsidosätt den här funktionen för att uppdatera vyns zoomfaktor om det behövs.
Den här funktionen anropas vanligtvis som svar på ett RequestPositionChange
-anrop, även om den kan anropas när som helst av containern för att begära en positionsändring för objektet på plats.
COleServerDoc::OnShowControlBars
Ramverket anropar den här funktionen för att visa eller dölja serverprogrammets kontrollstaplar som är associerade med ramfönstret som identifieras av pFrameWnd.
virtual void OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
Parametrar
pFrameWnd
Pekare till ramfönstret vars kontrollstaplar ska döljas eller visas.
bShow
Avgör om kontrollstaplar visas eller döljs.
Anmärkningar
Standardimplementeringen räknar upp alla kontrollstaplar som ägs av ramfönstret och döljer eller visar dem.
COleServerDoc::OnShowDocument
Ramverket anropar funktionen OnShowDocument
när serverdokumentet måste döljas eller visas.
virtual void OnShowDocument(BOOL bShow);
Parametrar
bShow
Anger om användargränssnittet till dokumentet ska visas eller döljas.
Anmärkningar
Om bShow är TRUE aktiverar standardimplementeringen serverprogrammet om det behövs och gör att containerprogrammet bläddrar i fönstret så att objektet visas. Om bShow är FALSE inaktiverar standardimplementeringen objektet via ett anrop till OnDeactivate
och förstör eller döljer sedan alla ramfönster som har skapats för dokumentet, förutom det första. Om inga synliga dokument finns kvar döljer standardimplementeringen serverprogrammet.
COleServerDoc::OnUpdateDocument
Anropas av ramverket när du sparar ett dokument som är ett inbäddat objekt i ett sammansatt dokument.
virtual BOOL OnUpdateDocument();
Returvärde
Nonzero om dokumentet har uppdaterats. annars 0.
Anmärkningar
Standardimplementeringen anropar COleServerDoc::NotifySaved och COleServerDoc::SaveEmbedding medlemsfunktioner och markerar sedan dokumentet som rent. Åsidosätt den här funktionen om du vill utföra särskild bearbetning när du uppdaterar ett inbäddat objekt.
COleServerDoc::RequestPositionChange
Anropa den här medlemsfunktionen för att låta containerprogrammet ändra objektets position.
void RequestPositionChange(LPCRECT lpPosRect);
Parametrar
lpPosRect
Pekare till en RECT
struktur eller ett CRect
objekt som innehåller objektets nya position.
Anmärkningar
Den här funktionen kallas vanligtvis (tillsammans med UpdateAllItems
) när data i ett aktivt objekt på plats har ändrats. Efter det här anropet kan containern eller kanske inte utföra ändringen genom att anropa OnSetItemRects
. Den resulterande positionen kan skilja sig från den som begärs.
COleServerDoc::SaveEmbedding
Anropa den här funktionen för att be containerprogrammet att spara det inbäddade objektet.
void SaveEmbedding();
Anmärkningar
Den här funktionen anropas automatiskt från OnUpdateDocument
. Observera att den här funktionen gör att objektet uppdateras på disken, så det anropas vanligtvis endast som ett resultat av en specifik användaråtgärd.
COleServerDoc::ScrollContainerBy
Anropa funktionen ScrollContainerBy
medlem för att rulla containerdokumentet efter mängden i bildpunkter som anges av sizeScroll
.
BOOL ScrollContainerBy(CSize sizeScroll);
Parametrar
storlekRegistrera
Anger hur långt containerdokumentet ska rullas.
Returvärde
Nonzero om det lyckas; annars 0.
Anmärkningar
Positiva värden indikerar rullning nedåt och till höger; negativa värden indikerar rullning uppåt och till vänster.
COleServerDoc::UpdateAllItems
Anropa den här funktionen för att meddela alla länkade objekt som är anslutna till dokumentet att dokumentet har ändrats.
void UpdateAllItems(
COleServerItem* pSender,
LPARAM lHint = 0L,
CObject* pHint = NULL,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
Parametrar
pSender
Pekare till det objekt som ändrade dokumentet eller NULL om alla objekt ska uppdateras.
lHint
Innehåller information om ändringen.
pHint
Pekare till ett objekt som lagrar information om ändringen.
nDrawAspect
Avgör hur objektet ska ritas. Det här är ett värde från DVASPECT-uppräkningen. Den här parametern kan ha något av följande värden:
DVASPECT_CONTENT Objekt representeras på ett sådant sätt att det kan visas som ett inbäddat objekt i containern.
DVASPECT_THUMBNAIL Objektet återges i en "miniatyrbild" så att det kan visas i ett webbverktyg.
DVASPECT_ICON Objekt representeras av en ikon.
DVASPECT_DOCPRINT objekt representeras som om det skrevs ut med hjälp av kommandot Skriv ut på arkiv-menyn.
Anmärkningar
Du anropar vanligtvis den här funktionen när användaren har ändrat serverdokumentet. Om ett OLE-objekt är länkat till dokumentet med en automatisk länk uppdateras objektet så att det återspeglar ändringarna. I containerprogram som skrivits med Microsoft Foundation-klassbiblioteket anropas OnChange medlemsfunktion för COleClientItem
.
Den här funktionen anropar funktionen OnUpdate
medlem för vart och ett av dokumentets objekt förutom det sändande objektet och skickar pHint, lHintoch nDrawAspect. Använd dessa parametrar för att skicka information till objekten om de ändringar som gjorts i dokumentet. Du kan koda information med hjälp av lHint eller så kan du definiera en CObject
-härledd klass för att lagra information om ändringarna och skicka ett objekt i den klassen med hjälp av pHint. Åsidosätt funktionen OnUpdate
medlem i klassen COleServerItem
-derived för att optimera uppdateringen av varje objekt beroende på om presentationen har ändrats.
Se även
HIERSVR-exempel på MFC-
COleLinkingDoc Class
hierarkidiagram
COleDocument Class
COleLinkingDoc Class
COleTemplateServer Class