2010-01-26 4 views
4

Je travaille sur un projet qui nécessite que je charge un objet OLE et le restitue dans une application .NET WinForm (C#). Contrairement à VB6 .NET n'a pas de conteneur OLE intégré et l'approche recommandée consiste à utiliser le contrôle WebBrowser qui prend en charge l'affichage du contenu ActiveX. Le problème que j'ai est le fournisseur de l'objet OLE en question n'a pas un contrôle ActiveX disponible.Conteneur OLE pour .NET

Simplement dit est-il un moyen de charger un objet OLE sur un WinForm? Ou aurai-je besoin d'écrire un contrôle ActiveX qui charge l'objet OLE? Si ce dernier, quelqu'un a-t-il un exemple de ceci, ou a recommandé le matériel de lecture?

acclamations,

Marc.

Répondre

2

Il a un wrapper pour les contrôles ActiveX, AxHost. Mais si vous voulez dire OLE Linking and Embedding, non, c'est une technologie morte. Cela était possible avec DsoFramer mais cela a été supprimé du site de téléchargement de MSFT en raison de graves problèmes de compatibilité avec Office. Vous pourriez être en mesure de creuser une copie quelque part. À long terme, vous devriez éviter cela, OLE n'a aucun avenir.

+0

Salut nobugz, merci pour votre réponse. Comme avec la plupart des technologies, ils ont tendance à vivre leur durée de vie désirée. Dans notre cas pour l'avenir court à moyen, nous devons obtenir l'objet OLE rendu dans un formulaire Windows standard (peindre une toile essentiellement). À long terme, nous travaillerons sur une meilleure approche qui ne nécessitera pas l'installation du logiciel (ne reposant donc pas sur l'objet OLE). –

+0

Existe-t-il une alternative à OLE? Même une alternative plus simple, qui n'autorise pas l'édition in-situ ni une vue live/active in situ de l'objet, mais qui permet d'obtenir (depuis l'application qui a créé l'objet) une image statique de l'objet que vous pouvez intégrer dans votre document? – ChrisW

0
+0

Salut Chris, Cela est correct, vous pouvez utiliser le contrôle WebBrowser pour rendre n'importe quel contrôle ActiveX pour imiter l'ancien modèle de conteneur OLE. Malheureusement, le type de document que je souhaite afficher n'a pas encore de contrôle ActiveX (comme Office). Mon idée était de voir si dans ActiveX je pouvais écrire/utiliser un conteneur OLE pour rendre le document, puis en code managé, utiliser le contrôle WebBrowser pour charger l'objet ActiveX. Merci pour la suggestion cependant! Cheers, Marc. –

2

Vous pouvez utiliser mon contrôle OLE Container surrogate for .NET

+0

est-ce votre contrôle? – manas

+0

Il est refactorisé et amélioré le contrôle de: http://blogs.artinsoft.net/Mrojas/archive/2012/01/23/Quick-replacement-for-the-VB6-OLE-Container-Control-in-NET.aspx – Ratamahatta