Installation d'un ActiveX à partir d'un .cab

Résolu
dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015 - 25 oct. 2006 à 16:07
dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015 - 4 oct. 2007 à 12:22
Voilà mon problème : J'utilise un .cab pour installer mon ActiveX
(jusqu'ici tout est normal). Ce .cab vérifie que les DLLs nécessaires à
l'éxécution de l'ActiveX sont présentes sur le PC client. S'il ne les
trouve pas, il va les chercher sur un autre fichier .cab qui les
contient. Je n'ai pas mis les DLLs dans le même .cab pour des raisons
d'optimisation de temps de téléchargement (pas besoin de télécharger
les DLL si on les a déjà). Toutes ces actions sont décrites dans le
fichier .inf suivant :

[Version]
Signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
;Section définissant dans quelle section traiter quel fichier
; <nom fichier> = <nom section>
IPlay.ocx=IPlay.ocx
cg.dll=cg.dll
DevIL.dll=DevIL.dll
ILU.dll=ILU.dll
OgreMain.dll=OgreMain.dll
OgrePlatform.dll=OgrePlatform.dll
Plugin_ParticleFX.dll=Plugin_ParticleFX.dll
RenderSystem_Direct3D9.dll=RenderSystem_Direct3D9.dll
RenderSystem_GL.dll=RenderSystem_GL.dll
zlib1.dll=zlib1.dll

[IPlay.ocx]
File-win32-x86=thiscab
clsid={3978C53C-7129-4767-9E8B-DF8DB808F045}
FileVersion=1,0,0,1
RegisterServer=yes
[cg.dll]
FileVersion=1,41,603,92
;FileVersion définit la version minimale nécessaire à l'éxécution de l'ActiveX
hook=IPlayDLLs.cab_installer
;hook définit la section où l'on doit aller si on ne trouve pas le fichier

[DevIL.dll]
FileVersion=
;FileVersion vide signifie que toutes les versions sont acceptées
hook=IPlayDLLs.cab_installer
[ILU.dll]
FileVersion=
hook=IPlayDLLs.cab_installer
[OgreMain.dll]
FileVersion=
hook=IPlayDLLs.cab_installer
[OgrePlatform.dll]
FileVersion=
hook=IPlayDLLs.cab_installer
[Plugin_ParticleFX.dll]
FileVersion=
hook=IPlayDLLs.cab_installer
[RenderSystem_Direct3D9.dll]
FileVersion=
hook=IPlayDLLs.cab_installer
[RenderSystem_GL.dll]
FileVersion=
hook=IPlayDLLs.cab_installer
[zlib1.dll]
FileVersion=1,2,1,0
hook=IPlayDLLs.cab_installer
[IPlayDLLs.cab_installer]
;On indique où se trouve le .cab contenant les DLLs manquantes
file-win32-x86=http://www.fordev-studio.com/IPlayDLLs.cab
;On indique le nom du fichier .inf situé dans IPlayDLLs.cab, pour l'installation des DLLs manquantes
InfFile=IPlayDLLs.inf

[DefaultInstall]
;Section définissant les paramètres d'installation (ici copie des fichiers nécessaires, enregistrement de l'ActiveX)
CopyFiles = IPlayBin,PluginsFile,InfFiles
RegisterDLLs = RegisterSection
[IPlayBin]
IPlay.ocx
[PluginsFile]
Plugins.cfg
[InfFiles]
IPlay.inf

[DestinationDirs]
;Section définissant les dossiers de destination des différents fichiers
IPlayBin = 16422, ForDevStudio\IPlay
PluginsFile = 16422, ForDevStudio\IPlay
InfFiles = 17

[RegisterSection]
;Section nécessaire pour l'enregistrement de l'ActiveX
16422,ForDevStudio\IPlay,IPlay.ocx,1

[Strings]
VersionNumber = "1.0.0.1"
GUID = "{3978C53C-7129-4767-9E8B-DF8DB808F045}"

<!-- END TEMPLATE: bbcode_code -->
Il enregistre mon ActiveX, fait les copies demandées, mais il semble ignorer la section :

[IPlayDLLs.cab_installer]
file-win32-x86=http://www.fordev-studio.com/IPlayDLLs.cab
InfFile=IPlayDLLs.inf

<!-- END TEMPLATE: bbcode_code -->
Et du coup, il ne m'installe pas les DLLs nécessaires à l'éxécution de mon ActiveX.

Quelqu'un peut-il m'aider?

3 réponses

dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015
27 oct. 2006 à 12:18
En fait ça ne marche pas en local mais ça installe sans problème sur le net.
Donc mon problème n'en est pas un.
3
bayby Messages postés 2 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 4 octobre 2007
4 oct. 2007 à 11:52
Salut Dragonjoker59,

Une petite question,
je créé un objet COM à utiliser en tant que activeX, 
j'utilise VB.NET = OK
le fichier dll est créé et fonctionne (fait des tests)
Kel CLSID je doit recup pour installer mon object avec les balise (<Object> </object>) lors de l'instantiation de mon objet ??
Y a t-il une syntaxe ou procedure à integer dans mon code D'assembly pour que mon objet install son CLSID au niveau de la base de registre ??

pour l'instant je tourne en rond avec les différents CLSID.

merci de ta réponse.






ThyThy--TitiLebo
0
dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015
4 oct. 2007 à 12:22
Je ne sais pas comment ça se passe pour le VB.NET vu que je développe en C++, mais as-tu implémenté les fonctions DLLRegisterServer, DLLUnregisterServer, CreateComponentCategory
, RegisterCLSIDInCategory et UnRegisterCLSIDInCategory ?
0
Rejoignez-nous