[This is preliminary documentation and subject to change.]
When Microsoft® WebTV® for Windows® displays an interactive show, it looks up information about the show's enhancements in the Guide database. The type of data that WebTV for Windows looks up is such information as the name and location of the starting enhancement page. In order for an interactive show to display properly, this information must be loaded into the Guide database before the show is broadcast.
The ITelevisionServices interface provides two methods that you can use to load enhancement information into the Guide database, ITelevisionServices::LoadEnhancement and ITelevisionServices::LoadEnhancementsFromFile.
LoadEnhancement loads information about a single enhancement into the database, as specified by parameters passed in the method call. For example, an application that downloads a set of enhancement files to the user's computer can call LoadEnhancement to store information about those files in the Guide database. Once this information is stored, WebTV for Windows can locate and properly display the enhancements with the appropriate show.
If your application loads information about multiple enhancements into the Guide database, it can use LoadEnhancementsFromFile. This method loads information about the multiple enhancements listed in the text file the method call points to. LoadEnhancementsFromFile uses the Installable Sequential Access Module (ISAM), part of the Microsoft® Jet database installation, to parse this text file. Because this is the case, you must include a Schema.ini file in the same directory as the text file LoadEnhancementsFromFile points to. For examples of valid Schema.ini files, see the Remarks section for LoadEnhancementsFromFile.
Both LoadEnhancement and LoadEnhancementsFromFile programmatically determine whether an enhancement applies to a channel or to a specific episode. If the show reference parameter contains an episode title, the method sets the indicated enhancement to apply to the specified episode or episodes.
If the show reference parameter does not contain an episode title, the enhancement is assumed to be a channel enhancement. In this case, LoadEnhancement or LoadEnhancementsFromFile searches the tuning space for the union of station, network, and channel specified in the bstrShowReference or Show Reference parameter of the method used. The method then sets the enhancement to apply to all channel records that match this union.
Your application can use a third method, ITelevisionServices::DeleteEnhancementFromID, to remove enhancement information from the Guide database. You can, for example, use DeleteEnhancementFromID in a trigger event handler that responds to a delete-enhancement event sent by the broadcast content provider. Such a handler deletes the specified enhancement information from the database. However, this method is not often used. Typically, enhancements are deleted automatically when they expire by internal components of Broadcast Architecture.
To explicitly specify that expired enhancement data be deleted from the Guide database, your application can call the ITelevisionServices::DeleteOldEnhancements method.