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}"
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
Et du coup, il ne m'installe pas les DLLs nécessaires à l'éxécution de mon ActiveX.
Quelqu'un peut-il m'aider?