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; }