The sample driver uses the following function to handle the DVM_DIALOG message (this function is called from the VideoProcessMessage function):
DWORD NEAR PASCAL VideoDialog (DWORD dwOpenType, HWND hWndParent, DWORD dwFlags)
{
switch (dwOpenType) {
case VIDEO_EXTERNALIN:
if (dwFlags & VIDEO_DLG_QUERY)
return DV_ERR_OK; // Channel has a dialog box
DialogBox(ghModule, MAKEINTRESOURCE(DLG_VIDEOSOURCE),
(HWND)hWndParent, VideoSourceDlgProc);
break;
case VIDEO_IN:
if (dwFlags & VIDEO_DLG_QUERY)
return DV_ERR_OK; // Channel has a dialog box
DialogBox(ghModule, MAKEINTRESOURCE(DLG_VIDEOFORMAT),
(HWND)hWndParent, VideoFormatDlgProc);
break;
case VIDEO_OUT:
return DV_ERR_NOTSUPPORTED; //Channel does not have a dialog
// box
case VIDEO_EXTERNALOUT:
if (dwFlags & VIDEO_DLG_QUERY)
return DV_ERR_OK; // Channel has a dialog box
DialogBox(ghModule, MAKEINTRESOURCE (DLG_VIDEODISPLAY),
(HWND)hWndParent, VideoMonitorDlgProc);
break;
default:
return DV_ERR_NOTSUPPORTED;
}
return DV_ERR_OK;
}