What is the recommended way to support automated software updates for
IE Browser Helper Objects (BHOs) on MS Windows?
We have a BHO and want users to receive automated software updates
when new BHO versions are released. I have tried using
Miscrosoft-recommended Software Update Channel approach (with the CDF
file pointing to a .CAB package containing the BHO DLL). However, that
does not seem to work: IE subscribes to the channel, but does not
download the CAB file, even when manually synchronizing the CDF file.
Software Update Channels docs on MSDN imply that they can be used to
update DLLs, but it is not clear whether/how that can be done. The BHO
is not an ActiveX plugin and not an executable; BHO is a DLL. For
ActiveX plugins, IE can check their freshness when the plugin needs to
be used on a page. For executables, it looks like a link on the
desktop needs to be updated to triger the checks. There does not seem
to be a similar "checkpoint" for DLLs. They are not specific to any
given page (they are always loaded and working) and user does not
click on them to activate.
I suspect that IE does not download the CAB file mentioned in channel
CDF because IE does not know it "needs" the DLL in the CAB file. If I
manually install the BHO, the "Update ActiveX" button in "Manage
Add-ons..." IE dialog is not enabled (it is enabled for ActiveX
plugins).
Is there an approach/interface that allows BHOs to be auto-updated
without writing a lot of custom update code in the BHO DLL itself?
Perhaps IE has an interface that BHO can use (when loaded) to trigger
the freshness check?
I am looking for working samples or detailed docs showing how to
implement the BHO updates described above.
Thank you.
P.S. Ideally, we need to support at least MS Windows 2000 and above. |