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 |
---|---|
|
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 |