capability
The capability command requests information about a particular capability of a device. All MCI devices recognize this command.
To send this command, call the mciSendString function with the lpszCommand parameter set as follows.
_stprintf_s(
lpszCommand,
TEXT("capability %s %s %s"),
lpszDeviceID,
lpszRequest,
lpszFlags
);
Parameters
lpszDeviceID
Identifier of an MCI device. This identifier or alias is assigned when the device is opened.
lpszRequest
Flag that identifies a device capability. The following table lists device types that recognize the capability command and the flags used by each type:
Value | Type | Type |
cdaudio | can eject can play can record can save compound device |
device type has audio has video uses files |
digitalvideo | can eject can freeze can lock can play can record can reverse can save can stretch can stretch input can test |
compound device device type has audio has still has video maximum play rate minimum play rate uses files uses palettes windows |
overlay | can eject can freeze can play can record can save can stretch |
compound device device type has audio has video uses files windows |
sequencer | can eject can play can record can save compound device |
device type has audio has video uses files |
vcr | can detect length can eject can freeze can monitor sources can play can preroll can preview can record can reverse can save can test |
clock increment rate compound device device type has audio has clock has timecode has video number of marks seek accuracy uses files |
videodisc | can eject can play can record can reverse can save CAV CLV compound device |
device type fast play rate has audio has video normal play rate slow play rate uses files |
waveaudio | can eject can play can record can save compound device device type |
has audio has video inputs outputs uses files |
The following table lists the flags that can be specified in the lpszRequest parameter and their meanings:
Flags | Meaning |
can detect length | Returns TRUE if the device can detect the length of the media. |
can eject | Returns TRUE if the device can eject the media. |
can freeze | Returns TRUE if the device can freeze data in the frame buffer. |
can lock | Returns TRUE if the device can lock data. |
can monitor sources | Returns TRUE if the device can pass an input (source) to the monitored output, independent of the current input selection. |
can play | Returns TRUE if the device can play. |
can preroll | Returns TRUE if the device supports the "preroll" flag with the cue command. |
can preview | Returns TRUE if the device supports previews. |
can record | Returns TRUE if the device supports recording. |
can reverse | Returns TRUE if the device can play in reverse. |
can save | Returns TRUE if the device can save data. |
can stretch | Returns TRUE if the device can stretch frames to fill a given display rectangle. |
can stretch input | Returns TRUE if the device can resize an image in the process of digitizing it into the frame buffer. |
can test | Returns TRUE if the device recognizes the test keyword. |
cav | When combined with other items, this flag specifies that the return information applies to CAV format videodiscs. This is the default if no videodisc is inserted. |
clock increment rate | Returns the number of subdivisions the external clock supports per second. If the external clock is a millisecond clock, the return value is 1000. If the return value is 0, no clock is supported. |
clv | When combined with other items, this flag specifies that the return information applies to CLV format videodiscs. |
compound device | Returns TRUE if the device supports an element name (filename). |
device type | Returns a device type name, which can be one of the following:
cdaudio |
fast play rate | Returns the fast play rate in frames per second, or zero if the device cannot play fast. |
has audio | Returns TRUE if the device supports audio playback. |
has clock | Returns TRUE if the device has a clock. |
has still | Returns TRUE if the device treats files with a single image more efficiently than motion video files. |
has timecode | Returns TRUE if the device is capable of supporting timecode, or if it is unknown. |
has video | Returns TRUE if the device supports video. |
inputs | Returns the total number of input devices. |
maximum play rate | Returns the maximum play rate, in frames per second, for the device. |
minimum play rate | Returns the minimum play rate, in frames per second, for the device. |
normal play rate | Returns the normal play rate, in frames per second, for the device. |
number of marks | Returns the maximum number of marks that can be used; zero indicates that marks are unsupported. |
outputs | Returns the total number of output devices. |
seek accuracy | Returns the expected accuracy of a search in frames; 0 indicates that the device is frame accurate, 1 indicates that the device expects to be within one frame of the indicated seek position, and so on. |
slow play rate | Returns the slow play rate in frames per second, or zero if the device cannot play slowly. |
uses files | Returns TRUE if the data storage used by a compound device is a file. |
uses palettes | Returns TRUE if the device uses palettes. |
windows | Returns the number of simultaneous display windows the device can support. |
lpszFlags
Can be "wait", "notify", or both. For digital-video and VCR devices, "test" can also be specified. For more information about these flags, see The Wait, Notify, and Test Flags.
Return Values
Returns information in the lpszReturnString parameter of the mciSendString function. The information is dependent on the request type.
Remarks
The following command returns the device type of the "mysound" device:
capability mysound device type
Requirements
** Windows NT/2000/XP:** Included in Windows NT 3.1 and later.
** Windows 95/98/Me:** Included in Windows 95 and later.
See Also