WIN32ACTIVEX : CONTENEUR DE CONTRÔLES ACTIVEX EN WIN32 (API COM OLE)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
11 janv. 2005 à 20:38
piou_31
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention24 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.
piou_31
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention24 avril 2008 22 avril 2008 à 17:56
bonjour,
Qu'est-ce que tu appelle l'activeX Embedding natif sous windows?
Miquel75
Messages postés41Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 avril 2009 11 avril 2008 à 19:52
Code totalement inutile, vu que l'ActiveX Embedding est natif dans Windows...
Oeil_de_taupe
Messages postés150Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention16 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és1Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention23 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és1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 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és2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 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és780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 20091 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és6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 13 janv. 2005 à 16:47
Bah moi FlexGrid marche pas du tout, même après réduction
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 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és6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 13 janv. 2005 à 16:28
La page HTML et le FlexGrid ne marchent pas... Pourquoi tu les a mis alors?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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és1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 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és21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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.
22 avril 2008 à 17:56
Qu'est-ce que tu appelle l'activeX Embedding natif sous windows?
11 avril 2008 à 19:52
10 juil. 2005 à 19:59
23 juin 2005 à 18:35
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.
29 janv. 2005 à 04:59
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
20 janv. 2005 à 09:17
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.
19 janv. 2005 à 22:39
- 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 ;)
13 janv. 2005 à 16:47
13 janv. 2005 à 16:40
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.
13 janv. 2005 à 16:28
13 janv. 2005 à 00:20
Continue donc a publier sur CS, tout bon code est toujours le bienvenu.
12 janv. 2005 à 23:55
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.
11 janv. 2005 à 20:38
Cette source devrait egalement repondre a de multiples questions du forum sur ce sujet.