Question

Je ne peux pas comprendre les différences entre ces termes.

Les synonymes COM et ActiveX sont-ils synonymes?

L'objet ActiveX est-il juste un objet COM qui expose IDispatch?

Beaucoup d'anciennes pages MSDN mentionnent IDispatch sans contexte COM. A-t-il une histoire distincte et a-t-il été introduit sous le parapluie COM plus tard dans son cycle de vie?

Où se situe OLE? Sa présence (considérable) dans les noms MFC et MSDN en général est-elle simplement héritée?

Wikipedia donne un aperçu, mais pas beaucoup. Je n'ai pas trouvé de référence plus détaillée.

Était-ce utile?

La solution

Vous avez trouvé des citations dans Programmation COM par exemple :

  

Une autre chose que vous trouverez rapidement avec   COM est que le marketing avait une excursion   jour avec la terminologie. Plutôt que   aider à promouvoir la compréhension,   vous trouverez dans la plupart des cas, il favorise   mystère. ... OLE, ActiveX, Remotable   Objets - ce qui signifie ce que cela   la semaine? ...

     

COM a évolué de la solution à un   problème spécifique - comment autoriser un mot   processeur pour modifier la feuille de calcul dans un   lettre sans que l'utilisateur ait à sortir   le traitement de texte pour le faire. Ce   la solution s'appelait OLE. ... Toutefois,   avec la deuxième version de OLE (OLE2),   ses créateurs ont modifié OLE32.DLL pour   exposer plus de la fonctionnalité de base   de OLE afin que son API puisse être utilisée   pour permettre à toute application d'accéder au   fonctionnalité d'un autre. Cette API,   qui n'a pas beaucoup changé depuis 1993,   est ce qui est considéré comme le COM   API.   ...

     

Une fois que l'API COM a été exposée,   Microsoft l'a utilisé pour créer ce qui était   puis appelé contrôles OLE pour permettre   commandes sophistiquées (par exemple, boutons   cette spirale, liste des cases qui jouent   musique) écrite en Visual C ++ pour être   accessible à Visual Basic   applications. Finalement ce même   la technologie a été utilisée pour permettre un contrôle   être téléchargé et utilisé par votre site web   navigateur. À ce stade, le nom   changé pour les contrôles ActiveX ou tout simplement   ActiveX pur pour le marketing   les raisons. Bien que vous puissiez emballer   fonctionnalité dans un contrôle ActiveX,   ses requrirements ont été   spécialisé pour supporter un utilisateur   contrôle de l'interface.

Je suis toujours curieux de connaître la toute dernière phrase: un objet COM doit-il satisfaire à certaines exigences supplémentaires pour être qualifié de contrôle ActiveX? - mais ça suffit pour le laisser partir.

Merci pour vos réponses!

Autres conseils

ActiveX est une stratégie marketing pour COM, bien que ActiveX soit généralement utilisé dans le contexte de "Contrôles ActiveX". qui sont des objets GUI.

IDispatch est une interface implémentée par des objets COM afin que les programmes clients puissent appeler ses méthodes de manière dynamique au moment de l'exécution (liaison tardive), par opposition à au moment de la compilation, où toutes les méthodes et tous les types d'argument doivent être connus à l'avance. .

OLE est la version antérieure de COM.

En ce qui concerne OLE: COM a ses racines dans OLE. Mais aujourd'hui, OLE peut être considéré comme étant construit sur le dessus de COM et est principalement utilisé pour ce que son nom suggère: la liaison et l'intégration de documents. Alors que COM ne définit lui-même que quelques interfaces (IUnknown, IClassFactory, IMalloc, etc.), OLE ajoute toute une série d'interfaces supplémentaires telles qu'IMoniker, IOleItemComtainer, etc.

En résumé: COM est la base, ActiveX et OLE sont des couches situées au-dessus de COM.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top