J'ai un petit souci qui commence vraiment à m'embêter. J'ai mon application
qui est un composant ActiveX. Le fichier OCX créé contient son CLSID propre.
Il s'avère qu'à chaque compilation, ce numéro change. En fait, je voudrais
qu'il change que quand je le désire...et même, je voudrais pour FIXER sa
valeur à celle que je désire. Est-ce possible ?
Si ce n'est pas possible, existe-t'il un moyen de récupérer le CLSID d'un
OCX par une API windows ou autre ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Yep! ça s'appelle de la compatibilité binaire.. tu peux l'initialiser par le menu Project/Project Properties... dans l'onglet Component. (faire traduction..) :O)
Pour bonne compréhension de ce qu'implique la compatiblité binaire avec ta composante, je te conseilles le document suivant :
Version Compatibility in ActiveX Components http://msdn.microsoft.com/library/en-us/vbcon98/html/vbcontypelibraryversions.asp
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Ludovic SOEUR" wrote in message news:%
Bonjour,
J'ai un petit souci qui commence vraiment à m'embêter. J'ai mon
application
qui est un composant ActiveX. Le fichier OCX créé contient son CLSID
propre.
Il s'avère qu'à chaque compilation, ce numéro change. En fait, je voudrais qu'il change que quand je le désire...et même, je voudrais pour FIXER sa valeur à celle que je désire. Est-ce possible ? Si ce n'est pas possible, existe-t'il un moyen de récupérer le CLSID d'un OCX par une API windows ou autre ?
Merci par avance
Yep! ça s'appelle de la compatibilité binaire.. tu peux l'initialiser par le
menu Project/Project Properties... dans l'onglet Component. (faire
traduction..) :O)
Pour bonne compréhension de ce qu'implique la compatiblité binaire avec ta
composante, je te conseilles le document suivant :
Version Compatibility in ActiveX Components
http://msdn.microsoft.com/library/en-us/vbcon98/html/vbcontypelibraryversions.asp
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Ludovic SOEUR" <Ludovic_SOEUR@hotmail.com> wrote in message
news:%23hV8EJdMEHA.2100@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'ai un petit souci qui commence vraiment à m'embêter. J'ai mon
application
qui est un composant ActiveX. Le fichier OCX créé contient son CLSID
propre.
Il s'avère qu'à chaque compilation, ce numéro change. En fait, je voudrais
qu'il change que quand je le désire...et même, je voudrais pour FIXER sa
valeur à celle que je désire. Est-ce possible ?
Si ce n'est pas possible, existe-t'il un moyen de récupérer le CLSID d'un
OCX par une API windows ou autre ?
Yep! ça s'appelle de la compatibilité binaire.. tu peux l'initialiser par le menu Project/Project Properties... dans l'onglet Component. (faire traduction..) :O)
Pour bonne compréhension de ce qu'implique la compatiblité binaire avec ta composante, je te conseilles le document suivant :
Version Compatibility in ActiveX Components http://msdn.microsoft.com/library/en-us/vbcon98/html/vbcontypelibraryversions.asp
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Ludovic SOEUR" wrote in message news:%
Bonjour,
J'ai un petit souci qui commence vraiment à m'embêter. J'ai mon
application
qui est un composant ActiveX. Le fichier OCX créé contient son CLSID
propre.
Il s'avère qu'à chaque compilation, ce numéro change. En fait, je voudrais qu'il change que quand je le désire...et même, je voudrais pour FIXER sa valeur à celle que je désire. Est-ce possible ? Si ce n'est pas possible, existe-t'il un moyen de récupérer le CLSID d'un OCX par une API windows ou autre ?
Merci par avance
François Picalausa
Hello!
Dans les options du projet, il faut définir la compatibilité binaire et dans ce cas le guid ne changera plus.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Ludovic SOEUR" a écrit dans le message de news:%
Bonjour,
J'ai un petit souci qui commence vraiment à m'embêter. J'ai mon application qui est un composant ActiveX. Le fichier OCX créé contient son CLSID propre. Il s'avère qu'à chaque compilation, ce numéro change. En fait, je voudrais qu'il change que quand je le désire...et même, je voudrais pour FIXER sa valeur à celle que je désire. Est-ce possible ? Si ce n'est pas possible, existe-t'il un moyen de récupérer le CLSID d'un OCX par une API windows ou autre ?
Merci par avance
Hello!
Dans les options du projet, il faut définir la compatibilité binaire et dans
ce cas le guid ne changera plus.
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Ludovic SOEUR" <Ludovic_SOEUR@hotmail.com> a écrit dans le message de
news:%23hV8EJdMEHA.2100@TK2MSFTNGP12.phx.gbl
Bonjour,
J'ai un petit souci qui commence vraiment à m'embêter. J'ai mon
application qui est un composant ActiveX. Le fichier OCX créé
contient son CLSID propre. Il s'avère qu'à chaque compilation, ce
numéro change. En fait, je voudrais qu'il change que quand je le
désire...et même, je voudrais pour FIXER sa valeur à celle que je
désire. Est-ce possible ?
Si ce n'est pas possible, existe-t'il un moyen de récupérer le CLSID
d'un OCX par une API windows ou autre ?
Dans les options du projet, il faut définir la compatibilité binaire et dans ce cas le guid ne changera plus.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Ludovic SOEUR" a écrit dans le message de news:%
Bonjour,
J'ai un petit souci qui commence vraiment à m'embêter. J'ai mon application qui est un composant ActiveX. Le fichier OCX créé contient son CLSID propre. Il s'avère qu'à chaque compilation, ce numéro change. En fait, je voudrais qu'il change que quand je le désire...et même, je voudrais pour FIXER sa valeur à celle que je désire. Est-ce possible ? Si ce n'est pas possible, existe-t'il un moyen de récupérer le CLSID d'un OCX par une API windows ou autre ?
Merci par avance
Ludovic SOEUR
Merci Zoury et François.
C'est exactement cela. Ca me permet déjà de résoudre quasiment tous les problèmes que j'avais à ce sujet. C'est vrai que c'est beau la compatibilité binaire !
Il ne reste que 2 détails : - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit VB qui m'en crée un par défaut ? - Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas développé) ? Comment ?
Merci par avance.
Merci Zoury et François.
C'est exactement cela. Ca me permet déjà de résoudre quasiment tous les
problèmes que j'avais à ce sujet.
C'est vrai que c'est beau la compatibilité binaire !
Il ne reste que 2 détails :
- Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit
VB qui m'en crée un par défaut ?
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas
développé) ? Comment ?
C'est exactement cela. Ca me permet déjà de résoudre quasiment tous les problèmes que j'avais à ce sujet. C'est vrai que c'est beau la compatibilité binaire !
Il ne reste que 2 détails : - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit VB qui m'en crée un par défaut ? - Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas développé) ? Comment ?
Merci par avance.
François Picalausa
Hello,
- Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit VB qui m'en crée un par défaut ?
En C/C++ il semble que oui
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas développé) ? Comment ?
Si tu connais le progid, tu peux le faire via l'éditeur de registre avec par exemple: HK_CLASSES_ROOTnom_société.composantCLSID(default) ou plus généralement HK_CLASSES_ROOTprogidCLSID(default)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Ludovic SOEUR" a écrit dans le message de news:%
- Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit VB qui m'en crée un par défaut ? - Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas développé) ? Comment ?
Hello,
- Est-il possible de fixer le CLSID a une valeur désirée au lieu que
ce soit VB qui m'en crée un par défaut ?
En C/C++ il semble que oui
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je
n'ai pas développé) ? Comment ?
Si tu connais le progid, tu peux le faire via l'éditeur de registre avec par
exemple:
HK_CLASSES_ROOTnom_société.composantCLSID(default)
ou plus généralement
HK_CLASSES_ROOTprogidCLSID(default)
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Ludovic SOEUR" <Ludovic_SOEUR@hotmail.com> a écrit dans le message de
news:%23yC0JleMEHA.3012@tk2msftngp13.phx.gbl
- Est-il possible de fixer le CLSID a une valeur désirée au lieu que
ce soit VB qui m'en crée un par défaut ?
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je
n'ai pas développé) ? Comment ?
- Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit VB qui m'en crée un par défaut ?
En C/C++ il semble que oui
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas développé) ? Comment ?
Si tu connais le progid, tu peux le faire via l'éditeur de registre avec par exemple: HK_CLASSES_ROOTnom_société.composantCLSID(default) ou plus généralement HK_CLASSES_ROOTprogidCLSID(default)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Ludovic SOEUR" a écrit dans le message de news:%
- Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit VB qui m'en crée un par défaut ? - Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas développé) ? Comment ?
Zoury
> - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce
soit
VB qui m'en crée un par défaut ?
Il me semble que oui... mais pas avec VB. Il s'occupe de tout ces détails. Mais de toute façon à quoi cela servirait? Le CLSID n'est en fait qu'un GUID (Globally Unique IDentifier). Tenter d'en créer un à la main ne pourrait que créer des conflits.. :OP
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai
pas
développé) ? Comment ?
Yep. Les informations sur les composantes COM sont conservées dans le registre sous la clé HKEY_CLASSES_ROOT. Ils sont classé par ProgID soit : [Librairie].[Classe] et dans cette clé tu peux y trouver le CLSID. La clé HKEY_CLASSES_ROOT offre aussi une sous clé nommé CLSID qui contient toutes les composantes classé par CLSID, cette clé contient beaucoup plus d'information comme par exemple le chemin d'accès à cette composante. Donc fait une recherche sur la librairie et la classe que tu cherches et tu devrais trouvé ton CLSID.
Ex : HKEY_CLASSES_ROOT | ---- Project1.Class1 | ---- CLSID : (default) = {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ----CLSID | ---- {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ---- ProgID (default) = Project1.Class1 | ---- toutes les autres infos utiles
Ce sont ces infos qui sont créer lorsque l'on enregistre une dll avec regsvr32
> - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce
soit
VB qui m'en crée un par défaut ?
Il me semble que oui... mais pas avec VB. Il s'occupe de tout ces détails.
Mais de toute façon à quoi cela servirait? Le CLSID n'est en fait qu'un GUID
(Globally Unique IDentifier). Tenter d'en créer un à la main ne pourrait que
créer des conflits.. :OP
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai
pas
développé) ? Comment ?
Yep. Les informations sur les composantes COM sont conservées dans le
registre sous la clé HKEY_CLASSES_ROOT. Ils sont classé par ProgID soit :
[Librairie].[Classe] et dans cette clé tu peux y trouver le CLSID. La clé
HKEY_CLASSES_ROOT offre aussi une sous clé nommé CLSID qui contient toutes
les composantes classé par CLSID, cette clé contient beaucoup plus
d'information comme par exemple le chemin d'accès à cette composante. Donc
fait une recherche sur la librairie et la classe que tu cherches et tu
devrais trouvé ton CLSID.
Ex :
HKEY_CLASSES_ROOT
|
---- Project1.Class1
|
---- CLSID : (default) = {B71022C2-76EA-445B-99D7-2FD799E5EE63}
|
----CLSID
|
---- {B71022C2-76EA-445B-99D7-2FD799E5EE63}
|
---- ProgID (default) = Project1.Class1
|
---- toutes les autres infos utiles
Ce sont ces infos qui sont créer lorsque l'on enregistre une dll avec
regsvr32
> - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce
soit
VB qui m'en crée un par défaut ?
Il me semble que oui... mais pas avec VB. Il s'occupe de tout ces détails. Mais de toute façon à quoi cela servirait? Le CLSID n'est en fait qu'un GUID (Globally Unique IDentifier). Tenter d'en créer un à la main ne pourrait que créer des conflits.. :OP
- Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai
pas
développé) ? Comment ?
Yep. Les informations sur les composantes COM sont conservées dans le registre sous la clé HKEY_CLASSES_ROOT. Ils sont classé par ProgID soit : [Librairie].[Classe] et dans cette clé tu peux y trouver le CLSID. La clé HKEY_CLASSES_ROOT offre aussi une sous clé nommé CLSID qui contient toutes les composantes classé par CLSID, cette clé contient beaucoup plus d'information comme par exemple le chemin d'accès à cette composante. Donc fait une recherche sur la librairie et la classe que tu cherches et tu devrais trouvé ton CLSID.
Ex : HKEY_CLASSES_ROOT | ---- Project1.Class1 | ---- CLSID : (default) = {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ----CLSID | ---- {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ---- ProgID (default) = Project1.Class1 | ---- toutes les autres infos utiles
Ce sont ces infos qui sont créer lorsque l'on enregistre une dll avec regsvr32
Vraiment merci à vous 2. Vous avez résolu tous mes problèmes
Pour répondre à Zouri quand à l'utilité de fixer le CLSID, c'est que j'ai déjà un composant que j'ai compilé. Bien sur, VB m'a fixé un CLSID. Comme je ne connaissais pas encore la compatibilité binaire, j'ai modifié dernièrement et recompilé mon code mais le clsid a été modifié. Donc je suis coincé parce que je ne peux pas revenir au clsid précédent. Mais bon, apparemment, ce n'est pas possible. Donc à partir de maintenant, ce sera tout bon. Pour le reste, et bien je ne sais pas encore comment je vais faire.
En tout cas, encore merci à vous deux.
"Zoury" a écrit dans le message de news:
> - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit > VB qui m'en crée un par défaut ?
Il me semble que oui... mais pas avec VB. Il s'occupe de tout ces détails. Mais de toute façon à quoi cela servirait? Le CLSID n'est en fait qu'un
GUID
(Globally Unique IDentifier). Tenter d'en créer un à la main ne pourrait
que
créer des conflits.. :OP
> - Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas > développé) ? Comment ?
Yep. Les informations sur les composantes COM sont conservées dans le registre sous la clé HKEY_CLASSES_ROOT. Ils sont classé par ProgID soit : [Librairie].[Classe] et dans cette clé tu peux y trouver le CLSID. La clé HKEY_CLASSES_ROOT offre aussi une sous clé nommé CLSID qui contient toutes les composantes classé par CLSID, cette clé contient beaucoup plus d'information comme par exemple le chemin d'accès à cette composante. Donc fait une recherche sur la librairie et la classe que tu cherches et tu devrais trouvé ton CLSID.
Ex : HKEY_CLASSES_ROOT | ---- Project1.Class1 | ---- CLSID : (default) {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ----CLSID | ---- {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ---- ProgID (default) = Project1.Class1 | ---- toutes les autres infos utiles
Ce sont ces infos qui sont créer lorsque l'on enregistre une dll avec regsvr32
Vraiment merci à vous 2. Vous avez résolu tous mes problèmes
Pour répondre à Zouri quand à l'utilité de fixer le CLSID, c'est que j'ai
déjà un composant que j'ai compilé. Bien sur, VB m'a fixé un CLSID. Comme je
ne connaissais pas encore la compatibilité binaire, j'ai modifié
dernièrement et recompilé mon code mais le clsid a été modifié. Donc je suis
coincé parce que je ne peux pas revenir au clsid précédent. Mais bon,
apparemment, ce n'est pas possible. Donc à partir de maintenant, ce sera
tout bon. Pour le reste, et bien je ne sais pas encore comment je vais
faire.
En tout cas, encore merci à vous deux.
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de news:
uIuKuzeMEHA.3164@TK2MSFTNGP09.phx.gbl...
> - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce
soit
> VB qui m'en crée un par défaut ?
Il me semble que oui... mais pas avec VB. Il s'occupe de tout ces détails.
Mais de toute façon à quoi cela servirait? Le CLSID n'est en fait qu'un
GUID
(Globally Unique IDentifier). Tenter d'en créer un à la main ne pourrait
que
créer des conflits.. :OP
> - Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai
pas
> développé) ? Comment ?
Yep. Les informations sur les composantes COM sont conservées dans le
registre sous la clé HKEY_CLASSES_ROOT. Ils sont classé par ProgID soit :
[Librairie].[Classe] et dans cette clé tu peux y trouver le CLSID. La clé
HKEY_CLASSES_ROOT offre aussi une sous clé nommé CLSID qui contient toutes
les composantes classé par CLSID, cette clé contient beaucoup plus
d'information comme par exemple le chemin d'accès à cette composante. Donc
fait une recherche sur la librairie et la classe que tu cherches et tu
devrais trouvé ton CLSID.
Ex :
HKEY_CLASSES_ROOT
|
---- Project1.Class1
|
---- CLSID : (default) {B71022C2-76EA-445B-99D7-2FD799E5EE63}
|
----CLSID
|
---- {B71022C2-76EA-445B-99D7-2FD799E5EE63}
|
---- ProgID (default) = Project1.Class1
|
---- toutes les autres infos utiles
Ce sont ces infos qui sont créer lorsque l'on enregistre une dll avec
regsvr32
Vraiment merci à vous 2. Vous avez résolu tous mes problèmes
Pour répondre à Zouri quand à l'utilité de fixer le CLSID, c'est que j'ai déjà un composant que j'ai compilé. Bien sur, VB m'a fixé un CLSID. Comme je ne connaissais pas encore la compatibilité binaire, j'ai modifié dernièrement et recompilé mon code mais le clsid a été modifié. Donc je suis coincé parce que je ne peux pas revenir au clsid précédent. Mais bon, apparemment, ce n'est pas possible. Donc à partir de maintenant, ce sera tout bon. Pour le reste, et bien je ne sais pas encore comment je vais faire.
En tout cas, encore merci à vous deux.
"Zoury" a écrit dans le message de news:
> - Est-il possible de fixer le CLSID a une valeur désirée au lieu que ce soit > VB qui m'en crée un par défaut ?
Il me semble que oui... mais pas avec VB. Il s'occupe de tout ces détails. Mais de toute façon à quoi cela servirait? Le CLSID n'est en fait qu'un
GUID
(Globally Unique IDentifier). Tenter d'en créer un à la main ne pourrait
que
créer des conflits.. :OP
> - Est-ce possible de récupérer le CLSID d'un OCX quelconque (que je n'ai pas > développé) ? Comment ?
Yep. Les informations sur les composantes COM sont conservées dans le registre sous la clé HKEY_CLASSES_ROOT. Ils sont classé par ProgID soit : [Librairie].[Classe] et dans cette clé tu peux y trouver le CLSID. La clé HKEY_CLASSES_ROOT offre aussi une sous clé nommé CLSID qui contient toutes les composantes classé par CLSID, cette clé contient beaucoup plus d'information comme par exemple le chemin d'accès à cette composante. Donc fait une recherche sur la librairie et la classe que tu cherches et tu devrais trouvé ton CLSID.
Ex : HKEY_CLASSES_ROOT | ---- Project1.Class1 | ---- CLSID : (default) {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ----CLSID | ---- {B71022C2-76EA-445B-99D7-2FD799E5EE63} | ---- ProgID (default) = Project1.Class1 | ---- toutes les autres infos utiles
Ce sont ces infos qui sont créer lorsque l'on enregistre une dll avec regsvr32