DVD Command Flags
The DVD command flags passed in the dwFlags parameter of SetOption are used either in addition to or in place of the synchronization object, depending on which approach you are using for the particular method call. The use of DVD_CMD_FLAG_Block was shown in Approach 2 and DVD_CMD_FLAG_SendEvents was illustrated in Approaches 4 through 6. Either of these flags can also be combined in a bitwise OR with another flag, DVD_CMD_FLAG_Flush. This flag causes the method to be executed immediately, without waiting for the one or two seconds of video in the filter graph's buffers to play. Specifying this flag results in a faster response time to user input. Do not use this flag if you need to ensure that a particular video segment finishes completely before the next command is issued. The four flags and their meanings are summarized in the following table.
Name |
Numeric value |
Meaning |
DVD_CMD_FLAG_None |
0x00000000 |
No flags, meaning the buffer is not flushed before the new command, no events are fired when the operation completes, and the DVD Navigator is not blocked after the method returns. |
DVD_CMD_FLAG_Flush |
0x00000001 |
Empty the buffers and immediately start play at the new location. |
DVD_CMD_FLAG_SendEvents |
0x00000002 |
Tells the DVD navigator to signal the completion of asynchronous operations and their return value by sending events back to the application. |
DVD_CMD_FLAG_Block |
0x00000004 |
Blocks the DVD Navigator until the asynchronous operation completes or is canceled. |