Kontejnery: Stavy klientských položek
Tento článek vysvětluje různé stavy, které položka klienta prochází během své životnosti.
Položka klienta prochází několika stavy při vytváření, aktivaci, úpravě a uložení. Pokaždé, když se stav položky změní, rozhraní volá COleClientItem::OnChange s oznámením OLE_CHANGED_STATE . Druhý parametr je hodnota z výčtu COleClientItem::ItemState
. Může se zobrazit některý z následujících:
COleClientItem::emptyState
COleClientItem::loadedState
COleClientItem::openState
COleClientItem::activeState
COleClientItem::activeUIState
V prázdném stavu položka klienta ještě není úplně položka. Paměť byla pro ni přidělena, ale ještě nebyla inicializována s daty položky OLE. Jedná se o stav, ve který je položka klienta vytvořena prostřednictvím volání new
, ale ještě neprošla druhým krokem typického dvoustupňového vytvoření.
V druhém kroku, který provedete voláním COleClientItem::CreateFromFile
nebo jinou CreateFrom
xxxx funkcí, se položka zcela vytvoří. Data OLE (ze souboru nebo jiného zdroje, například schránka) jsou přidružena k -odvozeného objektu COleClientItem
. Nyní je položka v načteném stavu.
Když se položka otevře v okně serveru místo otevření v dokumentu kontejneru, nachází se v otevřeném (nebo plně otevřeném) stavu. V tomto stavu se křížový šraf obvykle nakreslí přes reprezentaci položky v okně kontejneru, aby bylo uvedeno, že položka je aktivní jinde.
Když je položka aktivována na místě, předá se obvykle jen krátce přes aktivní stav. Potom přejde do aktivního stavu uživatelského rozhraní, ve kterém server sloučil své nabídky, panely nástrojů a další součásti uživatelského rozhraní s kontejnerem. Přítomnost těchto komponent uživatelského rozhraní rozlišuje aktivní stav uživatelského rozhraní od aktivního stavu. V opačném případě se aktivní stav podobá aktivnímu stavu uživatelského rozhraní. Pokud server podporuje funkci Zpět, server musí zachovat informace o stavu vrácení zpět položky OLE, dokud nedosáhne načteného nebo otevřeného stavu.
Viz také
Kontejnery
Aktivace
Kontejnery: Oznámení klientských položek
Snímače
CRectTracker – třída