Partager via


Méthode IPropertyBag ::Write (oaidl.h)

Enregistrez la propriété nommée dans un variant initialisé par l’appelant.

Syntaxe

HRESULT Write(
  LPCOLESTR pszPropName,
  VARIANT   *pVar
);

Paramètres

pszPropName

Adresse d’une chaîne contenant le nom de la propriété à écrire. Il ne peut pas s’agir de NULL.

pVar

Adresse du VARIANT initialisé par l’appelant qui contient la valeur de propriété à enregistrer. L’appelant est propriétaire de ce VARIANT et est responsable de toutes ses allocations. Autrement dit, le conteneur de propriétés ne tente pas de libérer des données dans le VARIANT.

Remarques

La méthode Write indique au conteneur de propriétés d’enregistrer la propriété nommée avec pszPropName en utilisant le type et la valeur dans le VARIANT initialisé par l’appelant dans pVar. Dans certains cas, l’appelant peut indiquer au conteneur de propriétés d’enregistrer un autre objet, par exemple, quand pVar->vt est VT_UNKNOWN. Dans ce cas, le conteneur de propriétés interroge ce pointeur d’objet pour une interface de persistance, telle que IPersistStream ou IPersistPropertyBag, et cet objet enregistre également ses données. En règle générale, le conteneur de propriétés a un tableau d’octets pour cet objet, qui peut être enregistré sous forme de texte encodé, comme une chaîne hexadécimale, MIME, etc. Lorsque le conteneur de propriétés est utilisé ultérieurement pour réinitialiser un contrôle, le client propriétaire du conteneur de propriétés doit recréer l’objet lorsque l’appelant le demande, initialisant cet objet avec les bits précédemment enregistrés.

Cela permet des opérations de persistance efficaces pour les propriétés BLOB (Binary Large Object), telles qu’une image, où le propriétaire du conteneur de propriétés indique à l’objet image (qui est géré en tant que propriété dans le contrôle enregistré) d’enregistrer dans un emplacement spécifique. Cela permet d’éviter les opérations de copie supplémentaires potentielles qui peuvent être impliquées avec d’autres mécanismes de persistance basés sur les propriétés.

E_NOTIMPL n’est pas un code de retour valide, car tout objet qui implémente cette interface doit prendre en charge l’ensemble des fonctionnalités de l’interface.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 Build 20348
Serveur minimal pris en charge Windows 10 Build 20348
En-tête oaidl.h