Conteneurs : états d'élément client
Cet article explique les différents états par lesquels passe un élément client pendant son cycle de vie.
Un élément client passe par plusieurs états lorsqu'il est créé, activé, modifié et enregistré. Chaque fois que l’état de l’élément change, l’infrastructure appelle COleClientItem ::OnChange avec la notification OLE_CHANGED_STATE . Le deuxième paramètre est une valeur de l’énumération COleClientItem::ItemState
. Les valeurs possibles sont les suivantes :
COleClientItem ::emptyState
COleClientItem ::loadedState
COleClientItem ::openState
COleClientItem ::activeState
COleClientItem ::activeUIState
Dans l'état vide, un élément client n'est pas encore complètement un élément. De la mémoire lui a été allouée, mais elle n'a pas encore été initialisée avec les données de l'élément OLE. Il s’agit de l’état dans lequel se trouve un élément client lorsqu’il a été créé via un appel, new
mais n’a pas encore subi la deuxième étape de la création en deux étapes classique.
Lors de la deuxième étape, effectuée par le biais d’un appel à COleClientItem::CreateFromFile
ou d’une autre CreateFrom
fonction xxxx , l’élément est entièrement créé. Les données OLE (d'un fichier ou d'une autre source, telle que le Presse-papiers) ont été associées à l'objet dérivé de COleClientItem
. Maintenant l'élément se trouve dans l'état chargé.
Lorsqu'un élément a été ouvert dans la fenêtre du serveur au lieu d'être ouvert sur place dans le document du conteneur, il se trouve dans l'état ouvert (ou entièrement ouvert). Dans cet état, une hachure croisée est généralement dessinée sur la représentation de l'élément dans la fenêtre du conteneur pour indiquer que l'élément est actif ailleurs.
Lorsqu'un élément a été activé sur place, il ne passe généralement que brièvement par l'état actif. Il passe ensuite à l’état actif de l’interface utilisateur, dans lequel le serveur a fusionné ses menus, barres d’outils et autres composants d’interface utilisateur avec ceux du conteneur. La présence de ces composants d'interface utilisateur fait la distinction entre l'état actif de l'interface utilisateur et l'état actif. Sinon, l'état actif s'apparente à l'état actif de l'interface utilisateur. Si le serveur prend en charge l'annulation, il doit conserver les informations d'état d'annulation de l'élément OLE jusqu'à ce que ce dernier atteigne l'état chargé ou ouvert.
Voir aussi
Containers
Activation
Conteneurs : notifications d’élément client
Dispositifs de suivi
CRectTracker, classe