Partager via


Méthode IPropertyPage ::SetObjects (ocidl.h)

Fournit à la page de propriétés un tableau de pointeurs vers des objets associés à cette page de propriétés.

Lorsque la page de propriétés reçoit un appel à IPropertyPage ::Apply, elle doit envoyer des modifications de valeur à ces objets par le biais des interfaces appropriées. La page de propriétés doit interroger ces interfaces. Cette méthode peut échouer si les objets ne prennent pas en charge les interfaces attendues par la page de propriétés.

Syntaxe

HRESULT SetObjects(
  [in] ULONG    cObjects,
  [in] IUnknown **ppUnk
);

Paramètres

[in] cObjects

Nombre de pointeurs dans le tableau pointé par ppUnk. Si ce paramètre a la valeur 0, la page de propriétés doit libérer tous les pointeurs précédemment passés à cette méthode.

[in] ppUnk

Pointeur vers un tableau de pointeurs d’interface IUnknown où chaque pointeur identifie un objet unique affecté par la feuille de propriétés dans laquelle cette (et éventuellement d’autres) pages de propriétés sont affichées. La page de propriétés doit mettre en cache ces pointeurs appelant AddRef pour chaque pointeur à ce moment-là. Ce tableau de pointeurs est le même que celui qui a été passé à OleCreatePropertyFrame ou OleCreatePropertyFrameIndirect pour appeler la feuille de propriétés.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_FAIL, E_INVALIDARG, E_OUTOFMEMORY et E_UNEXPECTED, ainsi que les valeurs suivantes.

Code de retour Description
S_OK
La page de propriétés a correctement enregistré les pointeurs dont elle avait besoin.
E_NOINTERFACE
L’un des objets de ppUnk ne prenait pas en charge l’interface attendue par cette page de propriétés, et cette page de propriétés ne peut donc pas communiquer avec elle.
E_POINTER
L’adresse dans ppUnk n’est pas valide. Par exemple, il peut s’agir de NULL.

Remarques

La page de propriétés est nécessaire pour conserver les pointeurs retournés par cette méthode ou d’autres personnes interrogées. Si ces pointeurs IUnknown spécifiques sont conservés, la page de propriétés doit appeler AddRef via chacun d’eux lors de la mise en cache, jusqu’à l’heure où SetObjects est appelé avec cObjects égal à 0. À ce moment-là, la page de propriétés doit appeler Release via chaque pointeur, libérant tous les objets qu’elle contenait.

L’appelant doit fournir ces objets à la page de propriétés avant d’appeler IPropertyPage ::Activate, et doit appeler SetObjects avec zéro comme paramètre lors de la désactivation de la page ou lors de la libération complète de l’objet. Chaque appel à SetObjects avec un paramètre ppUnk non NULL doit être mis en correspondance avec un appel ultérieur à SetObjects avec 0 dans le paramètre cObjects.

Remarques aux implémenteurs

E_NOTIMPL n’est pas une valeur de retour valide.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ocidl.h

Voir aussi

IPropertyPage