IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Edito
Ce document donne les définitions relatives au système à composant DCOM/OLE, la liste des principales fonctionnalités disponibles et les diverses difficultés que l'on peut rencontrer lorsque l'on cherche à travailler avec ce système.
Ce document est informel, il ne traite pas de tous les aspects de OLE. Cependant, il fournit la réponse à la plupart des questions que l'on peut se poser lorsque l'on travaille avec DCOM et OLE.
Le début de ce document présente les définitions et les grands principes de OLE. La suite est nettement plus technique et s'adresse plus aux programmeurs avertis. Il y est supposé que le lecteur maîtrise le langage C++ et les principales notions de programmation système nécessaires à la programmation avec DCOM. Bien que DCOM et OLE soient utilisables dans la plupart des langages, tous les exemples seront donnés en C++ en raison de la meilleure compréhension que ce langage permet d'acquérir, du fait qu'il travaille au plus bas niveau.

Statistiques
Nombre d'auteurs : 2
Nombre de questions : 91


Sommaire
Fermer'); } else { $lefiltre{$position-1} = 'O'; return('Ouvrir'); } } echo('       OuvrirOuvrir Tout développer      OuvrirOuvrir Tout réduire

'); echo('      '.plusmoins(1,$filtre).'  1. '."Introduction et définitions".' (5)
');if ($filtre{1-1}=='O'){echo('                '."Qu'est-ce qu'OLE ?".'
');echo('                '."Qu'est-ce que COM ?".'
');echo('                '."Qu'est-ce que DCOM ?".'
');echo('                '."Quels sont les services fournis par DCOM ?".'
');echo('                '."Quels sont les services fournis par OLE ?".'
');}echo('      '.plusmoins(2,$filtre).'  2. '."Concepts".' (7)
');if ($filtre{2-1}=='O'){echo('                '."Comment utilise-t-on un objet OLE dans une application ?".'
');echo('                '."Comment utilise-t-on un objet OLE avec l'Automation ?".'
');echo('                '."Qu'est-ce qu'un serveur in-process ?".'
');echo('                '."Qu'est-ce qu'un serveur out-of-process ?".'
');echo('                '."Qu'est-ce qu'un GUID et un UUID ?".'
');echo('                '."Quel est l'intérêt des GUID ?".'
');echo('                '."Qu'est-ce qu'une interface ?".'
');}echo('      '.plusmoins(3,$filtre).'  3. '."Programmation OLE".' (20)
');if ($filtre{3-1}=='O'){echo('                '."Comment interpréter les codes HRESULT ?".'
');echo('                '."Comment utilise-t-on un composant par programmation ?".'
');echo('                '."Comment obtient-on un pointeur sur une interface ?".'
');echo('                '."Comment gère-t-on le cycle de vie des composants ?".'
');echo('                '."Comment gère-t-on la mémoire des composants ?".'
');echo('                '."Que faut-il faire pour créer un composant ?".'
');echo('                '."Comment faire un composant qui gère plusieurs interfaces ?".'
');echo('                '."Comment réutiliser des composants ?".'
');echo('                '."Comment faire un composant qui gère l'agrégation ?".'
');echo('                '."Comment utiliser un composant qui gère l'agrégation ?".'
');echo('                '."Qu'est-ce qu'une fabrique de classe ?".'
');echo('                '."Comment utilise-t-on une fabrique de classe ?".'
');echo('                '."Comment réalise-t-on une fabrique de classe ?".'
');echo('                '."Comment rend-on accessibles les fabriques de classes à DCOM ?".'
');echo('                '."Comment gère-t-on la durée de vie des serveurs ?".'
');echo('                '."Un exemple complet pour faire le point...".'
');echo('                '."Comment compiler un composant ?".'
');echo('                '."Comment faire pour enregistrer un composant ?".'
');echo('                '."Comment écrire un fichier .REG ?".'
');echo('                '."Quelles sont les entrées à rajouter dans la base de registres pour enregistrer un composant ?".'
');}echo('      '.plusmoins(4,$filtre).'  4. '."IDL et type library".' (6)
');if ($filtre{4-1}=='O'){echo('                '."Qu'est-ce qu'une type library ?".'
');echo('                '."Quelle est l'utilité d'une type library ?".'
');echo('                '."Quelles sont les entrées à rajouter dans la base de registre pour enregistrer une type library ?".'
');echo('                '."Comment écrire un fichier IDL ?".'
');echo('                '."Comment compiler les fichiers IDL ?".'
');echo('                '."Comment compiler les fichiers produits par MIDL ?".'
');}echo('      '.plusmoins(5,$filtre).'  5. '."Multithreading, apartment et marshalling".' (11)
');if ($filtre{5-1}=='O'){echo('                '."Comment le multithreading est-il géré ?".'
');echo('                '."Qu'est-ce qu'un appartement (apartment) ?".'
');echo('                '."Qu'est-ce qu'un composant free-threaded ?".'
');echo('                '."Comment DCOM effectue-t-il les appels de méthodes entre deux appartements ?".'
');echo('                '."Qu'est-ce que le marshalling ?".'
');echo('                '."Que sont les stublets et les facelets ?".'
');echo('                '."Comment les interfaces sont-elles marshallées ?".'
');echo('                '."Comment est gérée la comptabilisation des références sur les interfaces en cours de marshalling ?".'
');echo('                '."Comment utiliser son propre marshalling ?".'
');echo('                '."Comment marshaller une interface d'un thread à un autre ?".'
');echo('                '."Quelles sont les registres à rajouter pour enregistrer les proxies et les stubs ?".'
');}echo('      '.plusmoins(6,$filtre).'  6. '."Fonctionnement de DCOM".' (13)
');if ($filtre{6-1}=='O'){echo('                '."Comment les interblocages sont-ils gérés ?".'
');echo('                '."Peut-on rendre le système instable avec DCOM ?".'
');echo('                '."Comment DCOM distribue-t-il les composants ?".'
');echo('                '."Comment peut-on distribuer un composant ?".'
');echo('                '."Quelles sont les entrées à rajouter de la base de registres pour distribuer un composant ?".'
');echo('                '."Que faut-il faire pour configurer le système pour les composants distribués ?".'
');echo('                '."Comment implémenter un surrogate process ?".'
');echo('                '."Que sont les objets connectables ?".'
');echo('                '."Qu'est-ce que Automation ?".'
');echo('                '."À quoi sert l'interface IDispatch ?".'
');echo('                '."Qu'est-ce qu'un SAFEARRAY ?".'
');echo('                '."Qu'est-ce qu'une interface duale ?".'
');echo('                '."Je n'arrive pas à m'abonner à une interface événementielle duale à partir de Visual Basic...".'
');}echo('      '.plusmoins(7,$filtre).'  7. '."ATL".' (15)
');if ($filtre{7-1}=='O'){echo('                '."Que sont les ATL ?".'
');echo('                '."Qu'est-ce qu'une classe template ?".'
');echo('                '."Comment faire un composant simple avec les ATL ?".'
');echo('                '."Comment utiliser un composant simple avec Visual Basic ?".'
');echo('                '."Comment faire un composant simple avec Visual Basic ?".'
');echo('                '."Comment utiliser un composant simple avec les ATL ?".'
');echo('                '."Comment utiliser simplement un composant du même projet avec les ATL ?".'
');echo('                '."Comment ajouter la gestion des interfaces événementielles à un composant existant ?".'
');echo('                '."Comment capter les événements d'un composant dans Visual Basic ?".'
');echo('                '."Comment faire un composant gérant des événements en Visual Basic ?".'
');echo('                '."Comment capter les événements Automation d'un composant avec les ATL ?".'
');echo('                '."Comment capter les événements sur une interface duale ?".'
');echo('                '."Peut-on recevoir des événements Automation sur une interface duale ?".'
');echo('                '."Comment implémenter l'interface ISupportErrorInfo ?".'
');echo('                '."Comment implémenter un point de connexion pour l'interface IPropertyNotifySink ?".'
');}echo('      '.plusmoins(8,$filtre).'  8. '."Problèmes".' (14)
');if ($filtre{8-1}=='O'){echo('                '."J'ai trouvé une bogue dans les ATL !".'
');echo('                '."Je n'arrive pas à compiler le fichier d'un point de connexion !".'
');echo('                '."Le compilateur MIDL n'a pas généré les définitions des constantes des identificateurs d'interfaces !".'
');echo('                '."L'édition de liens de mon programme échoue, et pourtant toutes mes méthodes d'interfaces sont définies !".'
');echo('                '."Mon programme plante dès que j'effectue une notification d'événement !".'
');echo('                '."Certains des paramètres de mes méthodes d'interfaces événementielles sont corrompus !".'
');echo('                '."AtlAdvise échoue, et pourtant je ne vois pas d'erreur !".'
');echo('                '."Les méthodes de mon interface duale ne sont pas appelées lorsqu'un client m'envoie une requête Automation !".'
');echo('                '."Je n'arrive pas à créer une page de propriété pour un de mes composants !".'
');echo('                '."J'ai une erreur lors de l'enregistrement de mon composant !".'
');echo('                '."J'ai un conflit de version avec la bibliothèque ATL.DLL !".'
');echo('                '."Je n'arrive pas à créer un composant distribué en DCOM !".'
');echo('                '."Je n'arrive pas à créer un composant distribué en Visual Basic, mais j'y arrive en C++ !".'
');echo('                '."Je n'arrive pas à m'abonner aux événements d'un composant distribué ".'
');}?>


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.