OleUIInsertObjectW, fonction (oledlg.h)

Appelle la boîte de dialogue Insérer un objet standard, qui permet à l’utilisateur de sélectionner une source d’objet et un nom de classe, ainsi que la possibilité d’afficher l’objet en tant que lui-même ou en tant qu’icône.

Syntaxe

UINT OleUIInsertObjectW(
  [in] LPOLEUIINSERTOBJECTW unnamedParam1
);

Paramètres

[in] unnamedParam1

Pointeur vers la structure OLEUIINSERTOBJECT entrante pour cette boîte de dialogue.

Valeur retournée

Définitions de réussite/d’erreur standard

Code de retour Description
OLEUI_FALSE
Échec inconnu (inutilisé).
OLEUI_OK
L’utilisateur a appuyé sur le bouton OK.
OLEUI_SUCCESS
Aucune erreur, identique à OLEUI_OK.
OLEUI_CANCEL
L’utilisateur a appuyé sur le bouton Annuler.
 

Erreurs de validation de champ standard

Code de retour Description
OLEUI_ERR_STANDARDMIN
Les erreurs communes à toutes les boîtes de dialogue se trouvent dans la plage OLEUI_ERR_STANDARDMIN à OLEUI_ERR_STANDARDMAX. Cette valeur permet à l’application de tester les messages standard afin d’afficher les messages d’erreur à l’utilisateur.
OLEUI_ERR_STRUCTURENULL
Le pointeur vers une structure OLEUIXXX passée dans la fonction était NULL.
OLEUI_ERR_STRUCTUREINVALID
Autorisations insuffisantes pour l’accès en lecture ou en écriture à une structure OLEUIXXX.
OLEUI_ERR_CBSTRUCTINCORRECT
La valeur cbstruct est incorrecte.
OLEUI_ERR_HWNDOWNERINVALID
La valeur hWndOwner n’est pas valide.
OLEUI_ERR_LPSZCAPTIONINVALID
La valeur lpszCaption n’est pas valide.
OLEUI_ERR_LPFNHOOKINVALID
La valeur lpfnHook n’est pas valide.
OLEUI_ERR_HINSTANCEINVALID
La valeur hInstance n’est pas valide.
OLEUI_ERR_LPSZTEMPLATEINVALID
La valeur lpszTemplate n’est pas valide.
OLEUI_ERR_HRESOURCEINVALID
La valeur hResource n’est pas valide.
 

Erreurs d’initialisation

Code de retour Description
OLEUI_ERR_FINDTEMPLATEFAILURE
Impossible de trouver le modèle de boîte de dialogue.
OLEUI_ERR_LOADTEMPLATEFAILURE
Impossible de charger le modèle de boîte de dialogue.
OLEUI_ERR_DIALOGFAILURE
Échec de l’initialisation de la boîte de dialogue.
OLEUI_ERR_LOCALMEMALLOC
Un appel à LocalAlloc ou à l’allocator IMalloc standard a échoué.
OLEUI_ERR_GLOBALMEMALLOC
Un appel à GlobalAlloc ou à l’allocateur IMalloc standard a échoué.
OLEUI_ERR_LOADSTRING
Impossible d’appeler LoadString pour les ressources localisées à partir de la bibliothèque.
OLEUI_ERR_OLEMEMALLOC
Un appel à l’allocateur IMalloc standard a échoué.
 

Erreurs spécifiques à la fonction

Code de retour Description
OLEUI_ERR_STANDARDMAX
Les erreurs communes à toutes les boîtes de dialogue se trouvent dans la plage OLEUI_ERR_STANDARDMIN à OLEUI_ERR_STANDARDMAX. Cette valeur permet à l’application de tester les messages standard afin d’afficher les messages d’erreur à l’utilisateur.
OLEUI_IOERR_LPSZFILEINVALID
La valeur lpszFile n’est pas valide ou l’utilisateur dispose d’autorisations d’accès en écriture insuffisantes. Ce membre lpszFile pointe vers le nom du fichier lié à ou inséré.
OLEUI_IOERR_PPVOBJINVALID
La valeur ppvOjb n’est pas valide. Ce membre pointe vers l’emplacement où le pointeur de l’objet est retourné.
OLEUI_IOERR_LPIOLECLIENTSITEINVALID
La valeur lpIOleClientSite n’est pas valide. Ce membre pointe vers le site client pour l’objet .
OLEUI_IOERR_LPISTORAGEINVALID
La valeur lpIStorage n’est pas valide. Ce membre pointe vers le stockage à utiliser pour l’objet .
OLEUI_IOERR_SCODEHASERROR
Le membre sc de lpIO contient des informations d’erreur supplémentaires.
OLEUI_IOERR_LPCLSIDEXCLUDEINVALID
La valeur lpClsidExclude n’est pas valide. Ce membre contient la liste des CLSID à exclure.
OLEUI_IOERR_CCHFILEINVALID
La valeur cchFile ou lpszFile n’est pas valide. Le membre cchFile spécifie la taille de la mémoire tampon lpszFile . Le membre lpszFile pointe vers le nom du fichier lié à ou inséré.

Remarques

OleUIInsertObject permet à l’utilisateur de sélectionner le type d’objet à insérer à partir d’une zone de liste contenant les applications objet inscrites sur le système de l’utilisateur. Pour remplir cette zone de liste, OleUIInsertObject traverse le Registre, en ajoutant chaque serveur d’objets qu’il trouve qui répond aux critères suivants :

  • L’entrée de Registre n’inclut pas la clé NotInsertable.
  • L’entrée de Registre inclut une clé protocole de style OLE 1.0\\StdFileEditing\\Server.
  • L’entrée de Registre inclut la clé insérable.
  • Le CLSID de l’objet n’est pas inclus dans la liste des objets à exclure (le membre lpClsidExcluded’OLEUIINSERTOBJECT).
Par défaut, OleUIInsertObject ne valide pas les serveurs d’objets. Toutefois, si l’indicateur IOF_VERIFYSERVEREXIST est inclus dans le membre dwFlags de la structure OLEUIINSERTOBJECT , OleUIInsertObject vérifie que le serveur existe. S’il n’existe pas, l’objet du serveur n’est pas ajouté à la liste des objets disponibles. La validation du serveur est une opération longue et un facteur de performances important.

Pour libérer un OBJET HMETAFILEPICT retourné à partir de la boîte de dialogue Insérer un objet ou Coller un élément spécial , supprimez le métafichier attaché sur le handle, comme suit :

void FreeHmetafilepict(HMETAFILEPICT hmfp)
{
    if (hmfp != NULL)
    {
        LPMETAFILEPICT pmfp = GlobalLock(hmfp);

        DeleteMetaFile(pmfp->hMF);
        GlobalUnlock(hmfp);
        GlobalFree(hmfp);
    }
    else
    {
        // Handle null pointers here.
        exit(0);
    }
} 

Notes

L’en-tête oledlg.h définit OLEUIINSERTOBJECT comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

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 oledlg.h
Bibliothèque OleDlg.lib
DLL OleDlg.dll

Voir aussi

OLEUIINSERTOBJECT

OpenFile