Partager via


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 CreateFromfonction 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