OleCreatePropertyFrameIndirect, fonction (olectl.h)
Crée un cadre de propriété, c’est-à-dire une boîte de dialogue de feuille de propriétés, en fonction d’une structure (OCPFIPARAMS) qui contient les paramètres, plutôt que de spécifier des paramètres distincts comme lors de l’appel d’OleCreatePropertyFrame.
Syntaxe
WINOLECTLAPI OleCreatePropertyFrameIndirect(
[in] LPOCPFIPARAMS lpParams
);
Paramètres
[in] lpParams
Pointeur vers la structure allouée par l’appelant contenant les paramètres de création de la boîte de dialogue.
Valeur retournée
Cette fonction prend en charge les valeurs de retour standard E_INVALIDARG, E_OUTOFMEMORY et E_UNEXPECTED, ainsi que les éléments suivants :
Code de retour | Description |
---|---|
|
La boîte de dialogue a été appelée et exécutée avec succès. |
|
L’adresse dans lpParams n’est pas valide. Par exemple, il peut être NULL. |
Remarques
Outre cbStructSize (la taille de la structure) et dispIDInitialProperty, tous les membres de la structure OCPFIPARAMS ont la même sémantique que les paramètres d’OleCreatePropertyFrame. Lorsque dispIDInitialProperty est DISPID_UNKNOWN, le comportement des deux fonctions est identique.
En collaboration avec IPerPropertyBrowsing et IPropertyPage2, dispIDInitialProperty permet à l’appelant de spécifier la propriété unique à mettre en surbrillance lorsque la boîte de dialogue est rendue visible. Cette fonctionnalité n’est pas disponible lors de l’utilisation d’OleCreatePropertyFrame. Pour déterminer la page et la propriété à afficher initialement, le cadre de propriété effectue les opérations suivantes :
- Appelez (*ppUnk)->QueryInterface(IID_IPerPropertyBrowsing, ...) pour obtenir un pointeur d’interface vers le premier objet.
- Appelez IPerPropertyBrowsing ::MapPropertyToPage(dispIDInitialProperty, ...) pour déterminer quelle page CLSID contient la propriété à mettre en surbrillance. Tous les objets pour lesquels ce cadre est appelé doivent prendre en charge l’ensemble de propriétés affichées dans le cadre.
- Lorsque la boîte de dialogue est créée, la page de propriétés avec le CLSID récupéré à l’étape 2 est activée avec IPropertyPage ::Activate.
- Le cadre de propriété interroge la page active pour IPropertyPage2.
- En cas de réussite, le cadre appelle IPropertyPage2 ::EditProperty(dispIDInitialProperty) pour mettre en surbrillance le champ correct dans cette boîte de dialogue.
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 | olectl.h |
Bibliothèque | OleAut32.lib |
DLL | OleAut32.dll |