Microsoft DirectX 8.1 (C++) |
This topic applies to Windows XP Home Edition and Windows XP Professional only.
This article shows how to use the Video Control to tune to a station using Visual Basic. First, create a project and add the following references:
Also add the Video Control type library as a component. Draw the video control on your form and give it a name; for example, VidControl. To tune to a channel, do the following:
In step 1, it is preferable to get the tune request from the Guide Store. That way, the application does not need to handle any details related to the network type. However, you can construct a tune request from scratch if you know the particular network type that you want to support. Do the following:
For example, the following procedure tunes to ATSC channel 46 when the form loads:
Private Sub Form_Load()
Dim objTSContainer As New SystemTuningSpaces
Dim objTuneRequest As IATSCChannelTuneRequest
Dim objLocator As New ATSCLocator
Set objTuneRequest = objTSContainer("ATSC").CreateTuneRequest
objLocator.PhysicalChannel = 46
objTuneRequest.Locator = objLocator
VidControl.View objTuneRequest
VidControl.Run
End Sub
The previous example specifies a tuning space in the SystemTuningSpaces collection by its unique name (“ATSC” in this example). You can also use a For...Each
loop to iterate through the collection. For example, the following code populates a list box with the names of all the available tuning spaces:
For Each tunespace In objTSContainer
TuneName = tunespace.UniqueName + " (" + tunespace.FriendlyName + ")"
List1.AddItem TuneName
Next
Analog cable does not require a locator object. The next example tunes to NTSC analog cable, channel 6:
Dim objTSContainer As New SystemTuningSpaces
Dim objTuneRequest As IChannelTuneRequest
Set objTuneRequest = objTSContainer("Cable").CreateTuneRequest
objTuneRequest.Channel = 6
VidControl.View objTuneRequest
VidControl.Run
As these examples show, when the application builds a tune request, it must target specific network types. If it always gets the tune request from the Guide Store, it will function with any supported network type.
To change channels within the same network type, simply submit another tune request to the Video Control by calling MSVidCtl.View.