Partager via


OleCreate, fonction (ole2.h)

Crée un objet incorporé identifié par un CLSID. Vous l’utilisez généralement pour implémenter l’élément de menu qui permet à l’utilisateur final d’insérer un nouvel objet.

Syntaxe

HRESULT OleCreate(
  [in]  REFCLSID        rclsid,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

Paramètres

[in] rclsid

CLSID de l’objet incorporé à créer.

[in] riid

Référence à l’identificateur de l’interface, généralement IID_IOleObject (défini dans les en-têtes OLE comme identificateur d’interface pour IOleObject), via lequel l’appelant communiquera avec le nouvel objet.

[in] renderopt

Valeur de l’énumération OLERENDER, indiquant les fonctionnalités de dessin mises en cache localement de l’objet nouvellement créé. La valeur OLERENDER choisie affecte les valeurs possibles pour le paramètre pFormatEtc .

[in] pFormatEtc

Selon les indicateurs OLERENDER utilisés comme valeur de renderopt, pointeur vers l’une des valeurs d’énumération FORMATETC . Pour connaître les restrictions, reportez-vous à l’énumération OLERENDER . Ce paramètre, ainsi que le paramètre renderopt , spécifient ce que le nouvel objet peut mettre en cache initialement.

[in] pClientSite

Si vous souhaitez qu’OleCreate appelle IOleObject ::SetClientSite, pointez vers l’interface IOleClientSite sur le conteneur. La valeur peut être NULL, auquel cas vous devez appeler spécifiquement IOleObject ::SetClientSite avant de tenter d’effectuer des opérations.

[in] pStg

Pointeur vers un instance de l’interface IStorage sur l’objet de stockage. Ce paramètre n’est peut-être pas NULL.

[out] ppvObj

Adresse de la variable pointeur qui reçoit le pointeur d’interface demandé dans riid. Une fois le retour réussi, *ppvObject contient le pointeur d’interface demandé.

Valeur retournée

Cette fonction retourne S_OK en cas de réussite et prend en charge la valeur de retour standard E_OUTOFMEMORY.

Code de retour Description
E_OUTOFMEMORY
Mémoire insuffisante pour l’opération.

Remarques

La fonction OleCreate crée un objet incorporé et est généralement appelée pour implémenter l’élément de menu Insérer un nouvel objet. Lorsque OleCreate retourne, l’objet qu’il a créé est vide (ne contient pas de données), sauf si renderopt est OLERENDER_DRAW ou OLERENDER_FORMAT et est chargé. Les conteneurs appellent généralement la fonction OleRun ou IOleObject ::D oVerb pour afficher l’objet pour la modification initiale.

Le paramètre rclsid spécifie le CLSID de l’objet demandé. Les CLSID des objets inscrits sont stockés dans le registre système. Lorsqu’un utilisateur d’application sélectionne Insérer un objet, une zone de sélection permet à l’utilisateur de sélectionner le type d’objet souhaité dans le Registre. Lorsque OleCreate est utilisé pour implémenter l’élément de menu Insérer un objet, le CLSID associé à l’élément sélectionné est affecté au paramètre rclsid d’OleCreate.

Le paramètre riid spécifie l’interface que le client utilisera pour communiquer avec le nouvel objet. Une fois le retour réussi, le paramètre ppvObject contient un pointeur vers l’interface demandée.

Le cache de l’objet créé contient des informations qui permettent une présentation d’un objet autonome lors de l’ouverture du conteneur. Les informations sur ce qui doit être mis en cache sont transmises dans les valeurs renderopt et pFormatetc . Lorsque OleCreate retourne, le cache de l’objet créé n’est pas nécessairement rempli. Au lieu de cela, le cache est rempli la première fois que l’objet entre dans l’état d’exécution. L’appelant peut ajouter un contrôle de cache supplémentaire avec un appel à IOleCache ::Cache après le retour d’OleCreate et avant l’exécution de l’objet. Si renderopt est OLERENDER_DRAW ou OLERENDER_FORMAT, OleCreate exige que l’objet prend en charge l’interface IOleCache . Aucune autre valeur de renderopt n’est requise.

Si pClientSite n’a pas la valeur NULL, OleCreate appelle IOleObject ::SetClientSite via le pointeur pClientSite . IOleClientSite est l’interface principale par laquelle un objet demande des services à partir de son conteneur. Si pClientSite a la valeur NULL, vous devez effectuer un appel spécifique à IOleObject ::SetClientSite avant d’effectuer des opérations.

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 ole2.h (inclure Ole2.h)
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

FORMATETC

IOleClientSite

IOleObject

OLERENDER