WIN32ACTIVEX : CONTENEUR DE CONTRÔLES ACTIVEX EN WIN32 (API COM OLE)

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 11 janv. 2005 à 20:38
piou_31 Messages postés 3 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 24 avril 2008 - 22 avril 2008 à 17:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28746-win32activex-conteneur-de-controles-activex-en-win32-api-com-ole

piou_31 Messages postés 3 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 24 avril 2008
22 avril 2008 à 17:56
bonjour,

Qu'est-ce que tu appelle l'activeX Embedding natif sous windows?
Miquel75 Messages postés 41 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 23 avril 2009
11 avril 2008 à 19:52
Code totalement inutile, vu que l'ActiveX Embedding est natif dans Windows...
Oeil_de_taupe Messages postés 150 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 16 février 2009
10 juil. 2005 à 19:59
Bravo pour ton code, c'est rare un code de cette qualité pour un conteneur ActiveX (je n'en ai pas trouvé beaucoups sur internet). Un jour j'ai voulu utiliser le contrôle MSFlexGrid dans un programme (pour afficher un son). J'ai voulu intégré ce contrôle sans MFC ni ATL. Ta source est super mais je cherche un bouquin ou un site qui me permettrait de mieux comprendre la construction d'un conteneur ActiveX. Sais tu si un site ou un bouquin explique bien ça?
zed38 Messages postés 1 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 23 juin 2005
23 juin 2005 à 18:35
Bonjour,

Je n'utilise que la partie permettant d'afficher un MSFlexGrid dans une boite de dialogue. Ca marche nikel sur ma machine de dev.

Mais, je dois installer l'appli développée sur un poste "vierge", cad sans aucun environnement de dev. J'ai installé l'appli, l'OCX (+ regsvr32), le pack vcredist.exe, le pack VBRun60.exe (pour les DLL OLE). Mais rien n'y fait, l'appel de la methode "g_aCtrlData[3].m_pSite->GetObject()->QueryInterface(IID_IDispatch, (void**)&g_pMSFlexGrid);" reste infructueux (g_pMSFlexGrid = NULL).

J'y comprends plus rien, quelqu'un peut-il m'aider ?

D'avance merci.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
29 janv. 2005 à 04:59
Salut,
Comme promis, voici un moyen très simple permettant de réaliser des conteneurs Activex en pur API. J'espère que ça vous intéressera:
http://www.cppfrance.com/code.aspx?ID=29171
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
20 janv. 2005 à 09:17
Chez moi sur XP le flexgrid ne marche pas et pour cause, il n'y est pas installé ! On peut vraiment pas supposé q'un activeX sera sur tous les sytèmes...

Pour le bug du HTML j'avais essayé de mettre un timer pour différer le chargement de la page (pour attendre que toutes les dlls soient chargées) mais ça n'avais pas marché. Je me delande quand même quelles sont les différences entre la version Debug et Release pour donner ce truc bizarre car je pense pas que ça vienne du code. il doit y avoir une dll qui ai chargée plus tot autre quelque chose du genre.

même en ne chargeant que cet ActiveX ça donne le même résultat.
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
19 janv. 2005 à 22:39
Sur XP Pro:
- Release : même problème que toi (ymca2003), page HTML s'affiche pas et Flexgrid que si on mininise...
- Debug : Flexgrid que si on mininise... mais HTML fonctionne...
(aucune erreurs signalées lors des deux compilation sous VS.NET 2003)

J'ai pas le temps de chercher plus longtemps mais si tu veux qu'on fasse quelques tests, pourquoi pas ;)
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 janv. 2005 à 16:47
Bah moi FlexGrid marche pas du tout, même après réduction
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
13 janv. 2005 à 16:40
C'est à dire que ça marche sur WinME (déleloppé dessus où j'avais déjà des comportements différents entre la version Debug et Release que j'avais résolus. J'avais même des comportements différent avec une compil sous VC et DevCpp) puis j'ai fait des tests sur Win2000 et là je suis tombé sur le pb du FlexGrid (je vais tester sur XP ce WE).

En compilant en debug la page HTML s'affiche mais en release rien (du moins sur Win2000 SP4 avec IE6)...

Si il y a des gens pour tester les configs (Debug et Release) et qui rencontrent les même pb qu'ils n'hésitent pas à déposer leur observations.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 janv. 2005 à 16:28
La page HTML et le FlexGrid ne marchent pas... Pourquoi tu les a mis alors?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 janv. 2005 à 00:20
C'est racpp qui fait sa mauvaise tete ?
Continue donc a publier sur CS, tout bon code est toujours le bienvenu.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
12 janv. 2005 à 23:55
Salut,
Très bon travail ymca2003.
C'etait moi qui avait posté une question à ce propos dans le forum il y'a cinq mois. Scolinks avait proposé un source utilisant MediaPlayer (enorme travail). C'était tellement compliqué que je n'ai pas réussi à l'adapter aux autres activex comme flash etc...
En continuant à chercher, et en bricolant un peu, j'ai fini par découvrir un moyen ultra simple permettant de transformer n'importe quelle fenêtre ou controle en conteneur activex. Ce truc est introuvable sur le net (d'après mes longues recherches). Il n'utilise ni les classes MFC ni ATL. C'est en pur API. Je l'ai testé sur plusieurs activex et ça marche à merveille (navigateur web, flash, mediaplayer et d'autres moins connus). J'avais l'intention de proposer un source pour IWebBrowse2 et un autre pour IShockwaveFlash vers la fin décembre dernier. Mais j'ai hésité car, apparemment, mes trouvailles ne plaisent pas aux admins du site (comme mon hook global sans DLL). Car, une fois de plus, cela prouverait que Microsoft nous cache beaucoup de choses qui nous faciliteraient la vie en programmation. En fait le truc que j'ai découvert est incroyable : Il suffit d'ajouter cinq petites lignes de code pour transformer une fenêtre, un static ou un edit (etc...) en conteneur activex. C'est tellement simple qu'on se demande pourquoi MSDN n'en a pas parlé. C'est encore plus simple qu'avec les MFC ou ATL ( vive les APIs).
Ca me fait toujours plaisir de partager mes petites trouvailles sur ce site. J'en ai encore plusieurs. Mais si ça risque de déranger, alors je chercherai où les mettre (Peut-être sur mon propre futur site que je créerai uniquement pour cela). Moi je préfère que ce soit sur cppfrance (que j'adore) mais on verra.
Voilà. Je pense que mon message est bien passé.
A bientôt.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 janv. 2005 à 20:38
Encore un tres bon exemple fourni par ymca2003.
Cette source devrait egalement repondre a de multiples questions du forum sur ce sujet.
Rejoignez-nous