Partager via


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 l’option d’affichage de l’objet lui-même ou en tant qu’icône.

Syntaxe

UINT OleUIInsertObjectW(
  [in] LPOLEUIINSERTOBJECTW unnamedParam1
);

Paramètres

[in] unnamedParam1

Pointeur vers la structure OLEUIINSERTOBJECT in-out pour cette boîte de dialogue.

Valeur de retour

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

Retourner le code 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

Retourner le code Description
OLEUI_ERR_STANDARDMIN
Les erreurs courantes dans 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

Retourner le code 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 au IMalloc standard allocator a échoué.
OLEUI_ERR_GLOBALMEMALLOC
Un appel à GlobalAlloc ou au IMalloc standard allocator a échoué.
OLEUI_ERR_LOADSTRING
Impossible d’appeler LoadString pour les ressources localisées à partir de la bibliothèque.
OLEUI_ERR_OLEMEMALLOC
Un appel à la norme IMalloc allocator a échoué.
 

Erreurs spécifiques à la fonction

Retourner le code Description
OLEUI_ERR_STANDARDMAX
Les erreurs courantes dans 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. Cette lpszFile membre 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 de 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 dans 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 trouvé qui répond aux critères suivants :

  • L’entrée de Registre n’inclut pas la clé NotInsertable.
  • L’entrée de Registre inclut un protocole de style OLE 1.0\\StdFileEditing\\Server key.
  • L’entrée de Registre inclut la clé insère.
  • Le CLSID de l’objet n’est pas inclus dans la liste des objets à exclure (le lpClsidExclude membre de 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 constitue un facteur de performance significatif.

Pour libérer un HMETAFILEPICT retourné par la boîte de dialogue Insérer un objet ou coller un 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);
    }
} 

Note

L’en-tête oledlg.h définit OLEUIINSERTOBJECT comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête oledlg.h
bibliothèque OleDlg.lib
DLL OleDlg.dll

Voir aussi

OLEUIINSERTOBJECT

OpenFile