The DVM_FORMAT message requests a user-mode video capture driver to set a specified data format, or to return the current format, for the specified channel.
Parameters
dwDriverID
Video channel identifier. One of VIDEO_EXTERNALIN, VIDEO_IN, VIDEO_OUT, VIDEO_EXTERNALOUT. (For details, see Opening Video Channels.) Typically, drivers only allow VIDEO_IN for this message.
hDriver
Driver handle.
uMsg
DVM_FORMAT
lParam1
Contains flags. The following flags are defined.
Flag | Definition |
VIDEO_CONFIGURE_CURRENT | The driver sets or returns the current format. |
VIDEO_CONFIGURE_GET | The driver returns the requested information to the client. |
VIDEO_CONFIGURE_MAX | The driver returns the maximum-sized format. (Used only with VIDEO_CONFIGURE_GET.) |
VIDEO_CONFIGURE_MIN | The driver returns the minimum-sized format. (Used only with VIDEO_CONFIGURE_GET.) |
VIDEO_CONFIGURE_NOMINAL | The driver returns the nominal format. (Used only with VIDEO_CONFIGURE_GET.) |
VIDEO_CONFIGURE_QUERY | The driver indicates whether or not it supports the specified request. |
VIDEO_CONFIGURE_QUERYSIZE | The driver returns the size, in bytes, of the format description. |
VIDEO_CONFIGURE_SET | The driver sets a client-specified format description. |
lParam2
Pointer to a VIDEOCONFIGPARMS structure. For the DVM_FORMAT message, the structure members are used as follows:
lpdwReturn
Pointer to a DWORD in which the driver returns the size, in bytes, of the BITMAPINFOHEADER structure, if the VIDEO_CONFIGURE_QUERYSIZE flag is set.
lpData1
Pointer to a client-supplied BITMAPINFOHEADER structure. (For more information about the BITMAPINFOHEADER structure, see the Win32 SDK.)
dwSize1
Size, in bytes, of the BITMAPINFOHEADER structure.
lpData2
Not used.
dwSize2
Not used.
Return Value
The driver should return DV_ERR_OK if the operation succeeds. Otherwise, it should return one of the DV_ERR error codes defined in msvideo.h. Custom error codes are also allowed (see DVM_GETERRORTEXT).
Comments
A client sends the DVM_FORMAT message by calling the driver’s DriverProc entry point, passing the specified parameter values. Applications can send this message by calling the videoConfigure function, which is described in the Video for Windows Development Kit.
The driver should test the VIDEO_CONFIGURE_SET and VIDEO_CONFIGURE_GET flags to determine whether to set or to return a format description. If neither of these flags is set, the driver should return an error code.
When a client sends this message, it must also include the address of a BITMAPINFOHEADER structure (unless either the VIDEO_CONFIGURE_QUERY or VIDEO_CONFIGURE_QUERYSIZE flag is set). Depending on whether the client has set VIDEO_CONFIGURE_SET or VIDEO_CONFIGURE_GET, the driver either reads or writes the contents of this structure.
If the VIDEO_CONFIGURE_QUERYSIZE flag is set, the driver just returns the size of the BITMAPINFOHEADER structure.
For more information on how drivers should allow applications and users to set the video data format, see Setting the Video Data Format.
User-mode video capture drivers using VCUser.lib can call VC_ConfigFormat when processing the DVM_FORMAT message.