home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Multimed / Multimed.zip / mmref1.zip / mmref1.inf (.txt)
OS/2 Help File  |  1999-05-12  |  420KB  |  19,898 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. This reference is for application programmers interested in creating OS/2 
  5. multimedia applications.  It is also for subsystem developers who are 
  6. interested in writing and installing subsystems to support specific data or 
  7. devices. The IBM Developer's Toolkit for OS/2 Warp includes the bindings, 
  8. header files, and libraries for development of OS/2 multimedia applications. 
  9. OS/2 multimedia was referred to as Multimedia Presentation Manager/2 or MMPM/2 
  10. in previous releases. 
  11.  
  12. Software Motion Video 
  13.  
  14. The interface definitions for the digital video recording device are also 
  15. provided in this reference. The digital video device uses software-only 
  16. compression algorithms (software motion video) to enable playing or recording 
  17. video without any additional video compression or decompression hardware. 
  18.  
  19. Header Files 
  20.  
  21. OS/2 multimedia includes header files with naming conventions compatible with 
  22. the standard OS/2 format.  Applications using previous versions of the MMPM/2 
  23. header files will still use those header files by default when the applications 
  24. are compiled.  In order to use the OS/2-consistent header files in an 
  25. application, define INCL_OS2MM in the program before including the OS/2 
  26. multimedia system header file OS2ME.H.  Defining INCL_OS2MM automatically 
  27. defines the following: 
  28.  
  29.  INCL_MCIOS2                 MCI-related include files (MCIOS2.H and 
  30.                              MMDRVOS2.H) 
  31.  INCL_MMIOOS2                MMIO include file (MMIOOS2.H) 
  32.  
  33.  The following additional header files have naming conventions compatible with 
  34.  the standard OS/2 format: 
  35.  
  36.  MIDIOS2.H 
  37.  CDAUDOS2.H 
  38.  
  39.  
  40. ΓòÉΓòÉΓòÉ 1.1. Additional Multimedia Information ΓòÉΓòÉΓòÉ
  41.  
  42.  Multimedia REXX - (online) 
  43.            Describes REXX functions that enable media control interface string 
  44.            commands to be sent from an OS/2 command file to control multimedia 
  45.            devices.  This online book is provided with OS/2 multimedia. 
  46.  
  47.  Guide to Multimedia User Interface Design - (41G2922) 
  48.            Describes design concepts to be considered when designing a CUA 
  49.            multimedia interface that is consistent within a particular 
  50.            multimedia product and across other products. 
  51.  
  52.  
  53. ΓòÉΓòÉΓòÉ 1.2. Using This Online Book ΓòÉΓòÉΓòÉ
  54.  
  55. Before you begin to use this online book, it would be helpful to understand how 
  56. you can: 
  57.  
  58.      Expand the Contents to see all available topics 
  59.      Obtain additional information for a highlighted word or phrase 
  60.      Use action bar choices. 
  61.  
  62.  How To Use the Contents 
  63.  
  64.  When the Contents window first appears, some topics have a plus (+) sign 
  65.  beside them.  The plus sign indicates that additional topics are available. 
  66.  
  67.  To expand the Contents if you are using a mouse, select the plus sign (+).  If 
  68.  you are using a keyboard, use the Up or Down Arrow key to highlight the topic, 
  69.  and press the plus key (+). 
  70.  
  71.  To view a topic, double-click on the topic (or press the Up or Down Arrow key 
  72.  to highlight the topic, and then press Enter). 
  73.  
  74.  How To Obtain Additional Information 
  75.  
  76.  After you select a topic, the information for that topic appears in a window. 
  77.  Highlighted words or phrases indicate that additional information is 
  78.  available.  You will notice that certain words in the following paragraph are 
  79.  highlighted in green letters, or in white letters on a black background. These 
  80.  are called hypertext terms.  If you are using a mouse, double-click on the 
  81.  highlighted word.  If you are using a keyboard, press the Tab key to move to 
  82.  the highlighted word, and then press the Enter key.  Additional information 
  83.  will appear in a window. 
  84.  
  85.  How To Use Action Bar Choices 
  86.  
  87.  Several choices are available for managing information presented in the 
  88.  M-Control Program/2 Programming Reference.  There are three pull-down menus on 
  89.  the action bar:  the Services menu, the Options menu, and the Help menu. 
  90.  
  91.  The actions that are selectable from the Services menu operate on the active 
  92.  window currently displayed on the screen.  These actions include the 
  93.  following: 
  94.  
  95.  Bookmark 
  96.     Sets a place holder so you can retrieve information of interest to you. 
  97.  
  98.     When you place a bookmark on a topic, it is added to a list of bookmarks 
  99.     you have previously set.  You can view the list, and you can remove one or 
  100.     all bookmarks from the list.  If you have not set any bookmarks, the list 
  101.     is empty. 
  102.  
  103.     To set a bookmark, do the following: 
  104.  
  105.       1. Select a topic from the Contents. 
  106.  
  107.       2. When that topic appears, choose the Bookmark option from the Services 
  108.          menu. 
  109.  
  110.       3. If you want to change the name used for the bookmark, type the new 
  111.          name in the field. 
  112.  
  113.       4. Select the Place radio button (or press the Up or Down Arrow key to 
  114.          select it). 
  115.  
  116.       5. Select OK.  The bookmark is then added to the bookmark list. 
  117.  
  118.  Search 
  119.     Finds occurrences of a word or phrase in the current topic, selected 
  120.     topics, or all topics. 
  121.  
  122.     You can specify a word or phrase to be searched.  You can also limit the 
  123.     search to a set of topics by first marking the topics in the Contents list. 
  124.  
  125.     To search for a word or phrase in all topics, do the following: 
  126.  
  127.       1. Choose the Search option from the Services pull-down. 
  128.  
  129.       2. Type the word or words to be searched. 
  130.  
  131.       3. Select All sections. 
  132.  
  133.       4. Select Search to begin the search. 
  134.  
  135.       5. The list of topics where the word or phrase appears is displayed. 
  136.  
  137.  Print 
  138.     Prints one or more topics.  You can also print a set of topics by first 
  139.     marking the topics in the Contents list. 
  140.  
  141.     You can print one or more topics.  You can also print a set of topics by 
  142.     first marking the topics on the Contents list. 
  143.  
  144.     To print the document Contents list, do the following: 
  145.  
  146.       1. Select Print from the Services menu. 
  147.  
  148.       2. Select Contents. 
  149.  
  150.       3. Select Print. 
  151.  
  152.       4. The Contents list is printed on your printer. 
  153.  
  154.  Copy 
  155.     Copies a topic you are viewing to a file you can edit. 
  156.  
  157.     You can copy a topic you are viewing into a temporary file named TEXT.TMP. 
  158.     You can later edit that file by using an editor such as the System Editor. 
  159.  
  160.     To copy a topic, do the following: 
  161.  
  162.       1. Expand the Contents list and select a topic. 
  163.  
  164.       2. When the topic appears, select Copy to file from the Services menu. 
  165.  
  166.     The system copies the text pertaining to that topic into the temporary 
  167.     TEXT.TMP file. 
  168.  
  169.     For information on any of the other choices in the Services menu, highlight 
  170.     the choice and press the F1 key. 
  171.  
  172.  Options 
  173.     Changes the way the Contents is displayed. 
  174.  
  175.     You can control the appearance of the Contents list. 
  176.  
  177.     To expand the Contents and show all levels for all topics, select Expand 
  178.     all from the Options menu. 
  179.  
  180.     For information on any of the other choices in the Options menu, highlight 
  181.     the choice and press the F1 key. 
  182.  
  183.  
  184. ΓòÉΓòÉΓòÉ 2. What's New... ΓòÉΓòÉΓòÉ
  185.  
  186. This release of the OS/2 Multimedia Programming Reference includes the 
  187. following: 
  188.  
  189.      Additional playlist commands: 
  190.  
  191.         -  SEMPOST_OPERATION 
  192.         -  SEMWAIT_OPERATION 
  193.  
  194.       See Memory Playlist Commands for a description of these commands. 
  195.  
  196.      MCI_BUFFER and MCI_MIXSETUP messages and associated data structures. 
  197.       These messages enable use of the Direct Audio RouTines (DART), which 
  198.       allow applications to use a high-speed method of communication with the 
  199.       audio device. 
  200.  
  201.      MCI_DOS_QUEUE flag for the MCI_OPEN message 
  202.  
  203.      Enhanced DIVE capabilities including: 
  204.  
  205.         -  Transparent blitting to the screen using DiveSetTransparentBlitMode 
  206.         -  Rotation of the output image when blitting to the screen (see the 
  207.            description of fInvert in the SETUP_BLITTER structure) 
  208.         -  Blitting of changed lines using DiveBlitImageLines 
  209.  
  210.      JPEGOPTIONS supporting extended JPEG I/O procedure information 
  211.  
  212.      Additional flags for MCI_CUE to allow digital video devices to seek to a 
  213.       specified position and to display or hide the video window when cueing 
  214.       the media 
  215.  
  216.      Real-Time MIDI Functions 
  217.  
  218.      Reorganization of String Commands 
  219.  
  220.       The string commands are organized into the following categories:  System 
  221.       Commands, Required Commands, Basic Commands, and device-type specific 
  222.       command categories including CD audio, CD/XA, digital video, MIDI, 
  223.       videodisc player, video overlay, and waveform audio. Read the 
  224.       introduction to each of these sections carefully to understand how these 
  225.       categories relate to one another, where to find the string command you're 
  226.       looking for, and why it's located in the category that it is. 
  227.  
  228.  
  229. ΓòÉΓòÉΓòÉ 3. MCI Functions ΓòÉΓòÉΓòÉ
  230.  
  231. The media control interface provides services to applications for controlling 
  232. devices in the multimedia environment. These services are available through 
  233. either a procedural message interface (mciSendCommand) or an interpretive 
  234. string interface (mciSendString). 
  235.  
  236. The following additional services are available to an application: 
  237.  
  238.      Sharing devices with other applications 
  239.      Grouping devices for synchronization, acquisition, and collective use. 
  240.  
  241.  The media control interface uses the following functions for sending messages 
  242.  to control multimedia devices. 
  243.  
  244.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  245.   ΓöéFunction            ΓöéDescription                             Γöé
  246.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  247.   ΓöémciGetDeviceID      ΓöéRetrieves the device ID corresponding toΓöé
  248.   Γöé                    Γöéthe alias of a device.                  Γöé
  249.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  250.   ΓöémciGetErrorString   ΓöéFills the caller's buffer with the errorΓöé
  251.   Γöé                    Γöécode string.                            Γöé
  252.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  253.   ΓöémciQuerySysValue    ΓöéQueries OS/2 multimedia system values.  Γöé
  254.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  255.   ΓöémciSendCommand      ΓöéSends a command to a media control      Γöé
  256.   Γöé                    Γöédriver using flags and structures.      Γöé
  257.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  258.   ΓöémciSendString       ΓöéSends a command to a media device driverΓöé
  259.   Γöé                    Γöéusing string buffers.                   Γöé
  260.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  261.   ΓöémciSetSysValue      ΓöéSets or alters system wide values such  Γöé
  262.   Γöé                    Γöéas the captioning flag or working path  Γöé
  263.   Γöé                    Γöéfor temporary files.                    Γöé
  264.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  265.  
  266.  Note:  To use the 16-bit versions of mciGetDeviceID, mciSendString, and 
  267.         mciGetErrorString, define INCL_16 in the source file using these 
  268.         functions.  The 16-bit entry points provide 16-bit applications with 
  269.         the ability to use multimedia in the OS/2 environment.  For example: 
  270.  
  271.                 #define  INCL_MCIOS2
  272.                 #define  INCL_16
  273.                 #include <os2me.h>
  274.  
  275.  
  276. ΓòÉΓòÉΓòÉ 3.1. mciGetDeviceID ΓòÉΓòÉΓòÉ
  277.  
  278.  
  279. ΓòÉΓòÉΓòÉ <hidden> mciGetDeviceID - Syntax ΓòÉΓòÉΓòÉ
  280.  
  281. This function retrieves the device ID corresponding to an alias of a device. 
  282. The ID can then be used on subsequent media control interface procedural 
  283. commands.  It also contains a 16-bit entry point. 
  284.  
  285.  
  286. #define INCL_MCIOS2
  287. #include <os2.h>
  288.  
  289. PSZ      pszName;  /*  Alias name. */
  290. ULONG    rc;       /*  Return code. */
  291.  
  292. rc = mciGetDeviceID(pszName);
  293.  
  294.  
  295. ΓòÉΓòÉΓòÉ <hidden> mciGetDeviceID Parameter - pszName ΓòÉΓòÉΓòÉ
  296.  
  297.  pszName (PSZ) - input 
  298.     The alias name used with the open or connection command. 
  299.  
  300.  
  301. ΓòÉΓòÉΓòÉ <hidden> mciGetDeviceID Return Value - rc ΓòÉΓòÉΓòÉ
  302.  
  303.  rc (ULONG) - returns 
  304.     Returns the device ID assigned to this alias when the device was opened or 
  305.     when the connection command with the query flag was issued.  Returns 0 if 
  306.     the alias name is not known or is invalid. 
  307.  
  308.  
  309. ΓòÉΓòÉΓòÉ <hidden> mciGetDeviceID - Parameters ΓòÉΓòÉΓòÉ
  310.  
  311.  pszName (PSZ) - input 
  312.     The alias name used with the open or connection command. 
  313.  
  314.  rc (ULONG) - returns 
  315.     Returns the device ID assigned to this alias when the device was opened or 
  316.     when the connection command with the query flag was issued.  Returns 0 if 
  317.     the alias name is not known or is invalid. 
  318.  
  319.  
  320. ΓòÉΓòÉΓòÉ <hidden> mciGetDeviceID - Example Code ΓòÉΓòÉΓòÉ
  321.  
  322. The following example illustrates how to retrieve a device ID. 
  323.  
  324.  
  325.      CHAR szBuffer[128];              /* Buffer for the string command */
  326.      USHORT usDeviceID;               /* Return device ID              */
  327.  
  328.      strcpy(szBuffer,"open bell.wav alias wav1 wait");
  329.                                             /* String command to open  */
  330.                                             /* a wav file              */
  331.  
  332.      mciSendString ((PSZ)szBuffer,   /* Open a wav file                */
  333.                      NULL,           /* No return message              */
  334.                      0,              /* No return message length       */
  335.                      0,              /* No handle to callback          */
  336.                      0);             /* No notify parameter            */
  337.  
  338.  
  339.     usDeviceID = mciGetDeviceID((PSZ) "wav1");
  340.                                      /* Returns device ID              */
  341.                                      /* Assigned on the alias "wav1"   */
  342.  
  343.  
  344. ΓòÉΓòÉΓòÉ <hidden> mciGetDeviceID - Topics ΓòÉΓòÉΓòÉ
  345.  
  346. Select an item: 
  347.  
  348. Syntax
  349. Parameters
  350. Returns
  351. Example Code
  352. Glossary
  353.  
  354.  
  355. ΓòÉΓòÉΓòÉ 3.2. mciGetErrorString ΓòÉΓòÉΓòÉ
  356.  
  357.  
  358. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString - Syntax ΓòÉΓòÉΓòÉ
  359.  
  360. This function fills the caller's buffer with the textual string associated with 
  361. the given error code returned by the OS/2 multimedia function.  It also 
  362. contains a 16-bit entry point. 
  363.  
  364.  
  365. #define INCL_MCIOS2
  366. #include <os2.h>
  367.  
  368. ULONG     ulError;    /*  Error code. */
  369. PSZ       pszBuffer;  /*  Pointer to application's buffer. */
  370. USHORT    usLength;   /*  Length of buffer. */
  371. ULONG     rc;         /*  Return code. */
  372.  
  373. rc = mciGetErrorString(ulError, pszBuffer,
  374.        usLength);
  375.  
  376.  
  377. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString Parameter - ulError ΓòÉΓòÉΓòÉ
  378.  
  379.  ulError (ULONG) - input 
  380.     Specifies the error code.  The low-order word contains the error code and 
  381.     the high-order word contains the device ID.  The device ID is used by OS/2 
  382.     multimedia to determine if there are device-dependent errors.  If there are 
  383.     device-dependent errors then OS/2 multimedia returns the device-dependent 
  384.     error string. 
  385.  
  386.  
  387. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString Parameter - pszBuffer ΓòÉΓòÉΓòÉ
  388.  
  389.  pszBuffer (PSZ) - output 
  390.     Pointer to the application's buffer.  The textual error string will be 
  391.     copied to this buffer based on the length of the buffer. 
  392.  
  393.  
  394. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString Parameter - usLength ΓòÉΓòÉΓòÉ
  395.  
  396.  usLength (USHORT) - input 
  397.     Specifies the size of the application's buffer. 
  398.  
  399.  
  400. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString Return Value - rc ΓòÉΓòÉΓòÉ
  401.  
  402.  rc (ULONG) - returns 
  403.     Return code. 
  404.  
  405.     MCIERR_SUCCESS 
  406.             Error code returned indicating success or type of failure. 
  407.  
  408.     MCIERR_INVALID_DEVICE_ID 
  409.             The device ID is not valid. 
  410.  
  411.     MCIERR_OUTOFRANGE 
  412.             The error code specified is not valid. 
  413.  
  414.     MCIERR_INVALID_BUFFER 
  415.             The buffer address specified is not valid. 
  416.  
  417.  
  418. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString - Parameters ΓòÉΓòÉΓòÉ
  419.  
  420.  ulError (ULONG) - input 
  421.     Specifies the error code.  The low-order word contains the error code and 
  422.     the high-order word contains the device ID.  The device ID is used by OS/2 
  423.     multimedia to determine if there are device-dependent errors.  If there are 
  424.     device-dependent errors then OS/2 multimedia returns the device-dependent 
  425.     error string. 
  426.  
  427.  pszBuffer (PSZ) - output 
  428.     Pointer to the application's buffer.  The textual error string will be 
  429.     copied to this buffer based on the length of the buffer. 
  430.  
  431.  usLength (USHORT) - input 
  432.     Specifies the size of the application's buffer. 
  433.  
  434.  rc (ULONG) - returns 
  435.     Return code. 
  436.  
  437.     MCIERR_SUCCESS 
  438.             Error code returned indicating success or type of failure. 
  439.  
  440.     MCIERR_INVALID_DEVICE_ID 
  441.             The device ID is not valid. 
  442.  
  443.     MCIERR_OUTOFRANGE 
  444.             The error code specified is not valid. 
  445.  
  446.     MCIERR_INVALID_BUFFER 
  447.             The buffer address specified is not valid. 
  448.  
  449.  
  450. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString - Remarks ΓòÉΓòÉΓòÉ
  451.  
  452. The maximum string length returned is 128 bytes.  If the size of the 
  453. application's buffer (usLength) is smaller than the size of the error string to 
  454. be returned, then only usLength bytes of the error string will be copied into 
  455. the application's buffer.  Therefore, a buffer size of 128 bytes is recommended 
  456. to avoid this problem. 
  457.  
  458.  
  459. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString - Example Code ΓòÉΓòÉΓòÉ
  460.  
  461. The following code illustrates how to obtain the description of a given error 
  462. code. 
  463.  
  464.  
  465.     #define ILLEGAL_COMMAND  (USHORT) 0x0000FFFF /* Illegal command   */
  466.     #define MCI_ERROR_STRING_LENGTH  128         /* Length of error
  467.                                                     message buffer    */
  468.  
  469.     CHAR acErrorStringBuffer[MCI_ERROR_STRING_LENGTH];
  470.     ULONG ulRC;
  471.  
  472.     ulRC =
  473.       mciSendCommand(
  474.          0,                           /* Don't know the device yet     */
  475.          ILLEGAL_COMMAND,             /* Command to be performed       */
  476.          MCI_WAIT,                    /* Flags for the command         */
  477.          (ULONG) NULL,                /* No parameter list             */
  478.          0 );                         /* No notify message             */
  479.  
  480.     if ( ulRC != MCIERR_SUCCESS)
  481.      {
  482.       ulRC =
  483.        mciGetErrorString(
  484.          ulRC,
  485.          (PSZ) acErrorStringBuffer,         /* acErrorStringBuffer     */
  486.          (USHORT) MCI_ERROR_STRING_LENGTH );/* should = "unrecognized
  487.                                                command"                */
  488.      }
  489.  
  490.  
  491. ΓòÉΓòÉΓòÉ <hidden> mciGetErrorString - Topics ΓòÉΓòÉΓòÉ
  492.  
  493. Select an item: 
  494.  
  495. Syntax
  496. Parameters
  497. Returns
  498. Remarks
  499. Example Code
  500. Glossary
  501.  
  502.  
  503. ΓòÉΓòÉΓòÉ 3.3. mciQuerySysValue ΓòÉΓòÉΓòÉ
  504.  
  505.  
  506. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue - Syntax ΓòÉΓòÉΓòÉ
  507.  
  508. This function queries the value of system-defined attributes. 
  509.  
  510.  
  511. #define INCL_MCIOS2
  512. #include <os2.h>
  513.  
  514. USHORT    iSysValue;  /*  System attribute. */
  515. PVOID     pValue;     /*  Pointer to return field. */
  516. BOOL      rc;         /*  Return code. */
  517.  
  518. rc = mciQuerySysValue(iSysValue, pValue);
  519.  
  520.  
  521. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue Parameter - iSysValue ΓòÉΓòÉΓòÉ
  522.  
  523.  iSysValue (USHORT) - input 
  524.     Specifies the system attribute.  The possible system attributes are: 
  525.  
  526.     MSV_CLOSEDCAPTION 
  527.             Returns TRUE if the user has enabled closed captioning and FALSE 
  528.             otherwise. 
  529.  
  530.     MSV_MASTERVOLUME 
  531.             The master volume setting.  The range is 0 to 100. 
  532.  
  533.     MSV_HEADPHONES 
  534.             Returns TRUE if the user has headphones enabled for the system and 
  535.             FALSE otherwise. 
  536.  
  537.     MSV_SPEAKERS 
  538.             Returns TRUE if the user has speakers (line out) enabled for the 
  539.             system and FALSE otherwise. 
  540.  
  541.     MSV_WORKPATH 
  542.             Points to a character buffer of size CCHMAXPATH.  This is the name 
  543.             of the file-system path where temporary files created by OS/2 
  544.             multimedia are located (for example, c:\mmos2\temp). 
  545.  
  546.     MSV_SYSQOSVALUE 
  547.             System wide Quality of Service (QOS) specification value used for 
  548.             band-width reservation (for example, bytes per second) over the 
  549.             network. 
  550.  
  551.     MSV_SYSQOSERRORFLAG 
  552.             Description of error occurring during band-width reservation. 
  553.  
  554.  
  555. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue Parameter - pValue ΓòÉΓòÉΓòÉ
  556.  
  557.  pValue (PVOID) - in/out 
  558.     Pointer to the return field.  The type of data object this field points to 
  559.     is dependent on the attribute requested: 
  560.  
  561.          System Attribute                     Data Type 
  562.  
  563.     MSV_CLOSEDCAPTION                         BOOL 
  564.  
  565.     MSV_MASTERVOLUME                          ULONG 
  566.  
  567.     MSV_HEADPHONES                            ULONG 
  568.  
  569.     MSV_SPEAKERS                              ULONG 
  570.  
  571.     MSV_WORKPATH                              PSZ 
  572.  
  573.     MSV_SYSQOSVALUE                           ULONG 
  574.  
  575.     MSV_SYSQOSERRORFLAG                       ULONG 
  576.  
  577.  
  578. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue Return Value - rc ΓòÉΓòÉΓòÉ
  579.  
  580.  rc (BOOL) - returns 
  581.     If the command completes successfully then MCIERR_SUCCESS is returned, 
  582.     otherwise non-zero is returned. 
  583.  
  584.  
  585. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue - Parameters ΓòÉΓòÉΓòÉ
  586.  
  587.  iSysValue (USHORT) - input 
  588.     Specifies the system attribute.  The possible system attributes are: 
  589.  
  590.     MSV_CLOSEDCAPTION 
  591.             Returns TRUE if the user has enabled closed captioning and FALSE 
  592.             otherwise. 
  593.  
  594.     MSV_MASTERVOLUME 
  595.             The master volume setting.  The range is 0 to 100. 
  596.  
  597.     MSV_HEADPHONES 
  598.             Returns TRUE if the user has headphones enabled for the system and 
  599.             FALSE otherwise. 
  600.  
  601.     MSV_SPEAKERS 
  602.             Returns TRUE if the user has speakers (line out) enabled for the 
  603.             system and FALSE otherwise. 
  604.  
  605.     MSV_WORKPATH 
  606.             Points to a character buffer of size CCHMAXPATH.  This is the name 
  607.             of the file-system path where temporary files created by OS/2 
  608.             multimedia are located (for example, c:\mmos2\temp). 
  609.  
  610.     MSV_SYSQOSVALUE 
  611.             System wide Quality of Service (QOS) specification value used for 
  612.             band-width reservation (for example, bytes per second) over the 
  613.             network. 
  614.  
  615.     MSV_SYSQOSERRORFLAG 
  616.             Description of error occurring during band-width reservation. 
  617.  
  618.  pValue (PVOID) - in/out 
  619.     Pointer to the return field.  The type of data object this field points to 
  620.     is dependent on the attribute requested: 
  621.  
  622.          System Attribute                     Data Type 
  623.  
  624.     MSV_CLOSEDCAPTION                         BOOL 
  625.  
  626.     MSV_MASTERVOLUME                          ULONG 
  627.  
  628.     MSV_HEADPHONES                            ULONG 
  629.  
  630.     MSV_SPEAKERS                              ULONG 
  631.  
  632.     MSV_WORKPATH                              PSZ 
  633.  
  634.     MSV_SYSQOSVALUE                           ULONG 
  635.  
  636.     MSV_SYSQOSERRORFLAG                       ULONG 
  637.  
  638.  rc (BOOL) - returns 
  639.     If the command completes successfully then MCIERR_SUCCESS is returned, 
  640.     otherwise non-zero is returned. 
  641.  
  642.  
  643. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue - Related Functions ΓòÉΓòÉΓòÉ
  644.  
  645.      mciSetSysValue 
  646.  
  647.  
  648. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue - Example Code ΓòÉΓòÉΓòÉ
  649.  
  650. The following code illustrates how to query a multimedia system value. 
  651.  
  652.   #define INCL_MCIOS2
  653.   #include <os2me.h>
  654.  
  655.   CHAR  szWorkPath[CCHMAXPATH];
  656.   mciQuerySysValue(MSV_WORKPATH,  szWorkPath); /* Get temporary
  657.                                                      file path.    */
  658.  
  659.  
  660. ΓòÉΓòÉΓòÉ <hidden> mciQuerySysValue - Topics ΓòÉΓòÉΓòÉ
  661.  
  662. Select an item: 
  663.  
  664. Syntax
  665. Parameters
  666. Returns
  667. Example Code
  668. Related Functions
  669. Glossary
  670.  
  671.  
  672. ΓòÉΓòÉΓòÉ 3.4. mciSendCommand ΓòÉΓòÉΓòÉ
  673.  
  674.  
  675. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand - Syntax ΓòÉΓòÉΓòÉ
  676.  
  677. This function sends a media control interface message to the specified media 
  678. device. 
  679.  
  680.  
  681. #define INCL_MCIOS2
  682. #include <os2.h>
  683.  
  684. USHORT    usDeviceID;  /*  Device ID. */
  685. USHORT    usMessage;   /*  Message action. */
  686. ULONG     ulParam1;    /*  Message flags. */
  687. PVOID     pParam2;     /*  Message data. */
  688. USHORT    usUserParm;  /*  User-specified parameter. */
  689. ULONG     rc;          /*  Return code. */
  690.  
  691. rc = mciSendCommand(usDeviceID, usMessage,
  692.        ulParam1, pParam2, usUserParm);
  693.  
  694.  
  695. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand Parameter - usDeviceID ΓòÉΓòÉΓòÉ
  696.  
  697.  usDeviceID (USHORT) - input 
  698.     The device ID the message is to be sent to.  This is the device ID returned 
  699.     from MCI_OPEN; this parameter is ignored on the MCI_OPEN message. 
  700.  
  701.  
  702. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand Parameter - usMessage ΓòÉΓòÉΓòÉ
  703.  
  704.  usMessage (USHORT) - input 
  705.     The media control interface message to send. See MCI Command Messages for 
  706.     descriptions of these messages. 
  707.  
  708.  
  709. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  710.  
  711.  ulParam1 (ULONG) - input 
  712.     Flags for this message. These flags are defined separately for each 
  713.     message; however, the following flags are available for all media control 
  714.     interface messages unless denoted in the message description. MCI_NOTIFY 
  715.     and MCI_WAIT are mutually exclusive. 
  716.  
  717.     MCI_NOTIFY 
  718.             A notification message (MM_MCINOTIFY) will be posted to the window 
  719.             specified in the hwndCallback parameter of the data structure 
  720.             pointed to by the pParam2 parameter. The notification will be 
  721.             posted when the action indicated by this message is completed or 
  722.             when an error occurs. 
  723.  
  724.     MCI_WAIT 
  725.             Control is not returned until the action indicated by this message 
  726.             is completed or an error occurs. 
  727.  
  728.  
  729. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand Parameter - pParam2 ΓòÉΓòÉΓòÉ
  730.  
  731.  pParam2 (PVOID) - input 
  732.     Pointer to a data structure for this message.  These structures are defined 
  733.     separately for each message. 
  734.  
  735.  
  736. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand Parameter - usUserParm ΓòÉΓòÉΓòÉ
  737.  
  738.  usUserParm (USHORT) - input 
  739.     User parameter returned in the notification for this message. 
  740.  
  741.  
  742. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand Return Value - rc ΓòÉΓòÉΓòÉ
  743.  
  744.  rc (ULONG) - returns 
  745.     Returns MCIERR_SUCCESS in the low-order word if there was no error; 
  746.     otherwise it returns the error code in the low-order word of the return 
  747.     value. 
  748.  
  749.     Use mciGetErrorString to convert this code to a textual string.  If the 
  750.     return code is a device-dependent error, the high-order word will contain 
  751.     the device ID.  See Return Codes for a listing of possible return values. 
  752.     If the MCI_NOTIFY flag is specified then the device receiving this message 
  753.     performs error checking to see if it can begin processing the message.  The 
  754.     amount of required error checking varies depending on the message and 
  755.     device.  The device returns to the application and the rest of the command 
  756.     processing occurs asynchronously. 
  757.  
  758.  
  759. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand - Parameters ΓòÉΓòÉΓòÉ
  760.  
  761.  usDeviceID (USHORT) - input 
  762.     The device ID the message is to be sent to.  This is the device ID returned 
  763.     from MCI_OPEN; this parameter is ignored on the MCI_OPEN message. 
  764.  
  765.  usMessage (USHORT) - input 
  766.     The media control interface message to send. See MCI Command Messages for 
  767.     descriptions of these messages. 
  768.  
  769.  ulParam1 (ULONG) - input 
  770.     Flags for this message. These flags are defined separately for each 
  771.     message; however, the following flags are available for all media control 
  772.     interface messages unless denoted in the message description. MCI_NOTIFY 
  773.     and MCI_WAIT are mutually exclusive. 
  774.  
  775.     MCI_NOTIFY 
  776.             A notification message (MM_MCINOTIFY) will be posted to the window 
  777.             specified in the hwndCallback parameter of the data structure 
  778.             pointed to by the pParam2 parameter. The notification will be 
  779.             posted when the action indicated by this message is completed or 
  780.             when an error occurs. 
  781.  
  782.     MCI_WAIT 
  783.             Control is not returned until the action indicated by this message 
  784.             is completed or an error occurs. 
  785.  
  786.  pParam2 (PVOID) - input 
  787.     Pointer to a data structure for this message.  These structures are defined 
  788.     separately for each message. 
  789.  
  790.  usUserParm (USHORT) - input 
  791.     User parameter returned in the notification for this message. 
  792.  
  793.  rc (ULONG) - returns 
  794.     Returns MCIERR_SUCCESS in the low-order word if there was no error; 
  795.     otherwise it returns the error code in the low-order word of the return 
  796.     value. 
  797.  
  798.     Use mciGetErrorString to convert this code to a textual string.  If the 
  799.     return code is a device-dependent error, the high-order word will contain 
  800.     the device ID.  See Return Codes for a listing of possible return values. 
  801.     If the MCI_NOTIFY flag is specified then the device receiving this message 
  802.     performs error checking to see if it can begin processing the message.  The 
  803.     amount of required error checking varies depending on the message and 
  804.     device.  The device returns to the application and the rest of the command 
  805.     processing occurs asynchronously. 
  806.  
  807.  
  808. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand - Remarks ΓòÉΓòÉΓòÉ
  809.  
  810. Use mciSendString to send textual command strings.  The mciSendString function 
  811. calls an internal string parser to parse the string and sends the resulting 
  812. structure to mciSendCommand. 
  813.  
  814.  
  815. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand - Related Functions ΓòÉΓòÉΓòÉ
  816.  
  817.      mciGetDeviceID 
  818.      mciGetErrorString 
  819.      mciSendString 
  820.  
  821.  
  822. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand - Example Code ΓòÉΓòÉΓòÉ
  823.  
  824. The following code illustrates how to send a command to a specified device. 
  825.  
  826.  
  827.  
  828.       MCI_OPEN_PARMS mciOpenParameters;
  829.       MCI_PLAY_PARMS mciPlayParameters;
  830.       CHAR DeviceType[] = "cdaudio";
  831.                                       /* Device type "cdaudio"          */
  832.  
  833.       mciPlayParameters.hwndCallback = PM_Win_Handle;
  834.                                       /* Assign hwndCallback the handle
  835.                                          to the PM Window routine       */
  836.  
  837.       mciOpenParameters.pszDeviceType = (PSZ)&DeviceType;
  838.  
  839.  
  840.       mciSendCommand(
  841.        0,                                /* Don't know the device yet   */
  842.        MCI_OPEN,                         /* MCI message                 */
  843.        MCI_WAIT | MCI_OPEN_TYPE_ID,      /* Flags for the MCI
  844.                                             message                     */
  845.        (PVOID) &mciOpenParameters,       /* Parameters for the message  */
  846.        0 );                              /* No notify message           */
  847.  
  848.  
  849.  
  850.       mciSendCommand(
  851.          mciOpenParameters.usDeviceID,   /* Device to play the cdaudio  */
  852.          MCI_PLAY,                        /* MCI message                */
  853.          MCI_WAIT,                        /* Flags for the MCI message  */
  854.          (PVOID) &mciPlayParameters,      /* Parameters for the message */
  855.          0);                              /* No notify message          */
  856.  
  857.  
  858.        mciSendCommand(
  859.         mciOpenParameters.usDeviceID,     /* Device to play the cdaudio */
  860.         MCI_CLOSE,                        /* MCI message                */
  861.         MCI_WAIT,                         /* Flags for the MCI message  */
  862.         (PVOID) NULL,                     /* No Parameter list          */
  863.         0);                               /* No notify message          */
  864.  
  865.  
  866. ΓòÉΓòÉΓòÉ <hidden> mciSendCommand - Topics ΓòÉΓòÉΓòÉ
  867.  
  868. Select an item: 
  869.  
  870. Syntax
  871. Parameters
  872. Returns
  873. Remarks
  874. Example Code
  875. Related Functions
  876. Glossary
  877.  
  878.  
  879. ΓòÉΓòÉΓòÉ 3.5. mciSendString ΓòÉΓòÉΓòÉ
  880.  
  881.  
  882. ΓòÉΓòÉΓòÉ <hidden> mciSendString - Syntax ΓòÉΓòÉΓòÉ
  883.  
  884. This function sends a media control interface command string to a media device. 
  885. It also contains a 16-bit entry point. 
  886.  
  887.  
  888. #define INCL_MCIOS2
  889. #include <os2.h>
  890.  
  891. PSZ       pszCommandBuf;    /*  Media control command string. */
  892. PSZ       pszReturnString;  /*  Application-supplied buffer. */
  893. USHORT    usReturnLength;   /*  Bytes reserved. */
  894. HWND      hwndCallBack;     /*  Window handle. */
  895. USHORT    usUserParm;       /*  User-specified parameter. */
  896. ULONG     rc;               /*  Return code. */
  897.  
  898. rc = mciSendString(pszCommandBuf, pszReturnString,
  899.        usReturnLength, hwndCallBack, usUserParm);
  900.  
  901.  
  902. ΓòÉΓòÉΓòÉ <hidden> mciSendString Parameter - pszCommandBuf ΓòÉΓòÉΓòÉ
  903.  
  904.  pszCommandBuf (PSZ) - input 
  905.     Media control command string of the form: 
  906.  
  907.             <command> <object> <keywords>
  908.  
  909.     The object can be the device type, file name, alias, and so forth. 
  910.  
  911.  
  912. ΓòÉΓòÉΓòÉ <hidden> mciSendString Parameter - pszReturnString ΓòÉΓòÉΓòÉ
  913.  
  914.  pszReturnString (PSZ) - output 
  915.     A application-supplied buffer for the return data.  This pointer can be 
  916.     NULL if no return information is desired.  For more information see String 
  917.     Commands. 
  918.  
  919.  
  920. ΓòÉΓòÉΓòÉ <hidden> mciSendString Parameter - usReturnLength ΓòÉΓòÉΓòÉ
  921.  
  922.  usReturnLength (USHORT) - input 
  923.     The number of bytes reserved for pszReturnString. 
  924.  
  925.  
  926. ΓòÉΓòÉΓòÉ <hidden> mciSendString Parameter - hwndCallBack ΓòÉΓòÉΓòÉ
  927.  
  928.  hwndCallBack (HWND) - input 
  929.     A PM window handle to be used in returning asynchronous notification 
  930.     messages.  This parameter must be specified if notify was specified in the 
  931.     command string. 
  932.  
  933.  
  934. ΓòÉΓòÉΓòÉ <hidden> mciSendString Parameter - usUserParm ΓòÉΓòÉΓòÉ
  935.  
  936.  usUserParm (USHORT) - input 
  937.     User parameter returned in the notification for this message. 
  938.  
  939.  
  940. ΓòÉΓòÉΓòÉ <hidden> mciSendString Return Value - rc ΓòÉΓòÉΓòÉ
  941.  
  942.  rc (ULONG) - returns 
  943.     Returns MCIERR_SUCCESS in the low-order word if there was no error; 
  944.     otherwise it returns an error code in the low-order word of the return 
  945.     value. Use mciGetErrorString to convert this code to a string.  If the 
  946.     error code is a device-dependent error, the high-order word will contain 
  947.     the device ID. 
  948.  
  949.  
  950. ΓòÉΓòÉΓòÉ <hidden> mciSendString - Parameters ΓòÉΓòÉΓòÉ
  951.  
  952.  pszCommandBuf (PSZ) - input 
  953.     Media control command string of the form: 
  954.  
  955.             <command> <object> <keywords>
  956.  
  957.     The object can be the device type, file name, alias, and so forth. 
  958.  
  959.  pszReturnString (PSZ) - output 
  960.     A application-supplied buffer for the return data.  This pointer can be 
  961.     NULL if no return information is desired.  For more information see String 
  962.     Commands. 
  963.  
  964.  usReturnLength (USHORT) - input 
  965.     The number of bytes reserved for pszReturnString. 
  966.  
  967.  hwndCallBack (HWND) - input 
  968.     A PM window handle to be used in returning asynchronous notification 
  969.     messages.  This parameter must be specified if notify was specified in the 
  970.     command string. 
  971.  
  972.  usUserParm (USHORT) - input 
  973.     User parameter returned in the notification for this message. 
  974.  
  975.  rc (ULONG) - returns 
  976.     Returns MCIERR_SUCCESS in the low-order word if there was no error; 
  977.     otherwise it returns an error code in the low-order word of the return 
  978.     value. Use mciGetErrorString to convert this code to a string.  If the 
  979.     error code is a device-dependent error, the high-order word will contain 
  980.     the device ID. 
  981.  
  982.  
  983. ΓòÉΓòÉΓòÉ <hidden> mciSendString - Remarks ΓòÉΓòÉΓòÉ
  984.  
  985. If pszReturnString is NULL or usReturnLength is 0, no data will be returned. 
  986.  
  987. If the return code is MCIERR_SUCCESS and the command does return data (such as 
  988. status), the string parser will convert the return data to string format if 
  989. appropriate.  An example is status cdaudio media present would return TRUE or 
  990. FALSE. If the application requests the return value to be converted to a string 
  991. by the string parser, it must specify the WAIT flag. See String Commands for a 
  992. description of the media control interface strings and return values. 
  993.  
  994.  
  995. ΓòÉΓòÉΓòÉ <hidden> mciSendString - Related Functions ΓòÉΓòÉΓòÉ
  996.  
  997.      mciGetDeviceID 
  998.      mciGetErrorString 
  999.      mciSendCommand 
  1000.  
  1001.  
  1002. ΓòÉΓòÉΓòÉ <hidden> mciSendString - Example Code ΓòÉΓòÉΓòÉ
  1003.  
  1004. The following code illustrates how to send a command to a specified device. 
  1005.  
  1006.  
  1007.      CHAR szBuffer[128];                 /* String command buffer     */
  1008.  
  1009.      strcpy (szBuffer, "open bell.wav alias wav1 wait");
  1010.                                          /* String command to open     */
  1011.  
  1012.      mciSendString ((PSZ)szBuffer,       /* Open a wav file            */
  1013.                      NULL,               /* No return data             */
  1014.                      0,                  /* No return length           */
  1015.                      0,                  /* No window callback handle  */
  1016.                      0);                 /* No notify message          */
  1017.  
  1018.      strcpy (szBuffer, "play wav1 wait");/* String command to play     */
  1019.  
  1020.      mciSendString ((PSZ)szBuffer,       /* Play a wav file            */
  1021.                      NULL,               /* No return data             */
  1022.                      0,                  /* No return length           */
  1023.                      0,                  /* No window callback handle  */
  1024.                      0);                 /* No notify message          */
  1025.  
  1026.      strcpy (szBuffer, "close wav1 wait");/* String command to close   */
  1027.  
  1028.      mciSendString ((PSZ)szBuffer,       /* Close a wav file           */
  1029.                      NULL,               /* No return data             */
  1030.                      0,                  /* No return length           */
  1031.                      0,                  /* No window callback handle  */
  1032.                      0);                 /* No notify message          */
  1033.  
  1034.  
  1035. ΓòÉΓòÉΓòÉ <hidden> mciSendString - Topics ΓòÉΓòÉΓòÉ
  1036.  
  1037. Select an item: 
  1038.  
  1039. Syntax
  1040. Parameters
  1041. Returns
  1042. Remarks
  1043. Example Code
  1044. Related Functions
  1045. Glossary
  1046.  
  1047.  
  1048. ΓòÉΓòÉΓòÉ 3.6. mciSetSysValue ΓòÉΓòÉΓòÉ
  1049.  
  1050.  
  1051. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue - Syntax ΓòÉΓòÉΓòÉ
  1052.  
  1053. This function sets the value of system-defined attributes. 
  1054.  
  1055. #include <os2.h>
  1056.  
  1057. USHORT    iSysValue;  /*  System attribute. */
  1058. PVOID     pValue;     /*  Pointer to value. */
  1059. BOOL      rc;         /*  Return code. */
  1060.  
  1061. rc = mciSetSysValue(iSysValue, pValue);
  1062.  
  1063.  
  1064. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue Parameter - iSysValue ΓòÉΓòÉΓòÉ
  1065.  
  1066.  iSysValue (USHORT) - input 
  1067.     The system attribute.  See mciQuerySysValue for a list of possible system 
  1068.     attributes. 
  1069.  
  1070.  
  1071. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue Parameter - pValue ΓòÉΓòÉΓòÉ
  1072.  
  1073.  pValue (PVOID) - input 
  1074.     Pointer to a value to be set.  The type of data object this points to is 
  1075.     dependent on the attribute requested.  See mciQuerySysValue for a list of 
  1076.     data types. 
  1077.  
  1078.  
  1079. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue Return Value - rc ΓòÉΓòÉΓòÉ
  1080.  
  1081.  rc (BOOL) - returns 
  1082.     Return code. 
  1083.  
  1084.     TRUE 
  1085.             If the function succeeds. 
  1086.  
  1087.     FALSE 
  1088.             If the function fails. 
  1089.  
  1090.  
  1091. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue - Parameters ΓòÉΓòÉΓòÉ
  1092.  
  1093.  iSysValue (USHORT) - input 
  1094.     The system attribute.  See mciQuerySysValue for a list of possible system 
  1095.     attributes. 
  1096.  
  1097.  pValue (PVOID) - input 
  1098.     Pointer to a value to be set.  The type of data object this points to is 
  1099.     dependent on the attribute requested.  See mciQuerySysValue for a list of 
  1100.     data types. 
  1101.  
  1102.  rc (BOOL) - returns 
  1103.     Return code. 
  1104.  
  1105.     TRUE 
  1106.             If the function succeeds. 
  1107.  
  1108.     FALSE 
  1109.             If the function fails. 
  1110.  
  1111.  
  1112. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue - Remarks ΓòÉΓòÉΓòÉ
  1113.  
  1114. Most of the system values can be changed by way of the Multimedia Setup program 
  1115. to reflect the preferences of the end user.  In general, other applications 
  1116. should only query these values. 
  1117.  
  1118.  
  1119. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue - Related Functions ΓòÉΓòÉΓòÉ
  1120.  
  1121.      mciQuerySysValue 
  1122.  
  1123.  
  1124. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue - Example Code ΓòÉΓòÉΓòÉ
  1125.  
  1126. The following code illustrates how to set a multimedia system value. 
  1127.  
  1128.  
  1129.   /* Turn closed captioning flag on so
  1130.      applications will provide captioning */
  1131.  
  1132.      mciSetSysValue  (MSV_CLOSEDCAPTION, TRUE);
  1133.  
  1134.  
  1135. ΓòÉΓòÉΓòÉ <hidden> mciSetSysValue - Topics ΓòÉΓòÉΓòÉ
  1136.  
  1137. Select an item: 
  1138.  
  1139. Syntax
  1140. Parameters
  1141. Returns
  1142. Remarks
  1143. Example Code
  1144. Related Functions
  1145. Glossary
  1146.  
  1147.  
  1148. ΓòÉΓòÉΓòÉ 4. High-Level Macro Service Functions ΓòÉΓòÉΓòÉ
  1149.  
  1150. The high-level macro service functions provide general playback and recording 
  1151. within a single function.  These functions hide the programming overhead 
  1152. associated with playing and recording multimedia data, such as opening and 
  1153. closing a device, and simplify using multimedia capabilities in applications. 
  1154.  
  1155. Note:  mciPlayFile and mciPlayResource play different types of data (audio, 
  1156.        video, MIDI, and so forth), however mciRecordAudioFile records only 
  1157.        digital audio. 
  1158.  
  1159.  The high-level functions are listed in the following table. 
  1160.  
  1161.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1162.   ΓöéFunction            ΓöéDescription                             Γöé
  1163.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1164.   ΓöémciPlayFile         ΓöéPlays a multimedia file or audio        Γöé
  1165.   Γöé                    Γöéelements of a compound file.            Γöé
  1166.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1167.   ΓöémciPlayResource     ΓöéPlays a multimedia resource that has    Γöé
  1168.   Γöé                    Γöébeen bound into an application.         Γöé
  1169.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1170.   ΓöémciRecordAudioFile  ΓöéRecords digital audio into a file       Γöé
  1171.   Γöé                    Γöéspecified by the caller. Records only   Γöé
  1172.   Γöé                    Γöédigital audio.                          Γöé
  1173.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1174.  
  1175.  To use the 16-bit versions of mciPlayFile, mciPlayResource, and 
  1176.  mciRecordAudioFile, define INCL_16 in the source file using these functions. 
  1177.  The 16-bit entry points provide 16-bit applications with the ability to use 
  1178.  multimedia in the OS/2 environment.  For example: 
  1179.  
  1180.   #define  INCL_MACHDR
  1181.   #define  INCL_16
  1182.   #include <os2me.h>
  1183.  
  1184.  
  1185. ΓòÉΓòÉΓòÉ 4.1. mciPlayFile ΓòÉΓòÉΓòÉ
  1186.  
  1187.  
  1188. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile - Syntax ΓòÉΓòÉΓòÉ
  1189.  
  1190. This function plays a multimedia data file, (such as digital audio or video), 
  1191. or a digital audio element of a RIFF compound file, using media control 
  1192. interface commands.  It opens, plays, and closes the file. mciPlayFile is a 
  1193. 32-bit function that is also provided as a 16-bit entry point. 
  1194.  
  1195. The mciPlayFile function requires a message queue. 
  1196.  
  1197.  
  1198. #define INCL_MACHDR
  1199. #define INCL_MCIOS2
  1200. #include <os2.h>
  1201.  
  1202. HWND     hwndOwner;     /*  Window handle. */
  1203. PSZ      pszFile;       /*  Pointer to file name. */
  1204. ULONG    ulFlags;       /*  Flags. */
  1205. PSZ      pszTitle;      /*  Window title. */
  1206. HWND     hwndViewport;  /*  Window handle for video image. */
  1207. ULONG    rc;            /*  Return code. */
  1208.  
  1209. rc = mciPlayFile(hwndOwner, pszFile, ulFlags,
  1210.        pszTitle, hwndViewport);
  1211.  
  1212.  
  1213. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile Parameter - hwndOwner ΓòÉΓòÉΓòÉ
  1214.  
  1215.  hwndOwner (HWND) - input 
  1216.     Window handle of the owner window.  If this parameter is NULL, the 
  1217.     currently active window is used. 
  1218.  
  1219.  
  1220. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile Parameter - pszFile ΓòÉΓòÉΓòÉ
  1221.  
  1222.  pszFile (PSZ) - input 
  1223.     Pointer to a multimedia file name.  Compound-file names are also supported. 
  1224.     For example: 
  1225.  
  1226.         a:\path\file+element
  1227.  
  1228.  
  1229. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile Parameter - ulFlags ΓòÉΓòÉΓòÉ
  1230.  
  1231.  ulFlags (ULONG) - input 
  1232.  
  1233.     MCI_OWNERISPARENT 
  1234.               Indicates that the owner window should be used as the parent 
  1235.               window for any default window that is created. If this flag is 
  1236.               passed to a device that does not support a parent window, an 
  1237.               error is returned. 
  1238.  
  1239.     MCI_STOPACTIVE 
  1240.               Indicates that any currently active command issued by either 
  1241.               mciPlayFile or mciPlayResource should be stopped. 
  1242.  
  1243.     MCI_ASYNC 
  1244.               Indicates that the command should be processed asynchronously. A 
  1245.               rendezvous command will not be done. 
  1246.  
  1247.     MCI_ASYNCRENDEZVOUS 
  1248.               Indicates that the command should proceed asynchronously.  A 
  1249.               rendezvous command will be done. 
  1250.  
  1251.     MCI_RENDEZVOUS 
  1252.               Indicates that the call should wait for a currently pending 
  1253.               asynchronous command to complete. 
  1254.  
  1255.                   If no command is pending, then it returns immediately. 
  1256.  
  1257.                   If an asynchronous command is not pending, this function 
  1258.                    will return immediately. This flag indicates that the 
  1259.                    command should wait until a pending asynchronous play 
  1260.                    command completes and then return. 
  1261.  
  1262.                   If a synchronous (default) play command is pending, this 
  1263.                    command should return immediately with an 
  1264.                    MCIERR_NO_ASYNC_PLAY_ACTIVE. 
  1265.  
  1266.                   If another MCI_RENDEZVOUS command is pending, this command 
  1267.                    should return immediately with an 
  1268.                    MCIERR_NO_ASYNC_PLAY_ACTIVE. 
  1269.  
  1270.  
  1271. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile Parameter - pszTitle ΓòÉΓòÉΓòÉ
  1272.  
  1273.  pszTitle (PSZ) - input 
  1274.     Title for window if one is generated.  The title is ignored if a window 
  1275.     would not be generated. (For example, an audio file is to be played). 
  1276.  
  1277.  
  1278. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile Parameter - hwndViewport ΓòÉΓòÉΓòÉ
  1279.  
  1280.  hwndViewport (HWND) - input 
  1281.     Window handle for displaying the video image.  If a viewport window is not 
  1282.     specified, then a default video window is displayed. This parameter only 
  1283.     has an effect when the data type supports video. 
  1284.  
  1285.  
  1286. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile Return Value - rc ΓòÉΓòÉΓòÉ
  1287.  
  1288.  rc (ULONG) - returns 
  1289.     Return codes indicating success or type of failure: 
  1290.  
  1291.     MCIERR_SUCCESS 
  1292.             If the function succeeds, 0 is returned. 
  1293.  
  1294.     MCIERR_NO_ASYNC_PLAY_ACTIVE 
  1295.             A synchronous (default) play command is pending or no asynchronous 
  1296.             play is currently active for the associated owner window. 
  1297.  
  1298.     MCIERR_MISSING_PARAMETER 
  1299.             Required parameter is missing. 
  1300.  
  1301.     MCIERR_FILE_ATTRIBUTE 
  1302.             File is read only, or is opened for write mode by other 
  1303.             application. 
  1304.  
  1305.     MCIERR_INSTANCE_INACTIVE 
  1306.             The device is currently inactive. Can be returned if another 
  1307.             application has opened or acquired the device for exclusive use. 
  1308.             Issue MCI_ACQUIREDEVICE to activate the device ID. 
  1309.  
  1310.     MCIERR_UNSUPPORTED_FLAG 
  1311.             Given flag is unsupported for this device. 
  1312.  
  1313.     MCIERR_INVALID_CALLBACK_HANDLE 
  1314.             Given callback handle is invalid. 
  1315.  
  1316.     MCIERR_UNSUPPORTED_FUNCTION 
  1317.             Unsupported function. 
  1318.  
  1319.     MCIERR_FLAGS_NOT_COMPATIBLE 
  1320.             Flags can not be used together. 
  1321.  
  1322.     MCIERR_FILE_NOT_FOUND 
  1323.             File has not been loaded. 
  1324.  
  1325.     MCIERR_DUPLICATE_ALIAS 
  1326.             Alias already exists. 
  1327.  
  1328.     MCIERR_INVALID_BUFFER 
  1329.             Invalid return buffer given. 
  1330.  
  1331.     MCIERR_CANNOT_LOAD_DRIVER 
  1332.             The driver could not be loaded. 
  1333.  
  1334.     MCIERR_DEVICE_LOCKED 
  1335.             The device is acquired for exclusive use. 
  1336.  
  1337.     MCIERR_OUT_OF_MEMORY 
  1338.             Out of memory. 
  1339.  
  1340.  
  1341. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile - Parameters ΓòÉΓòÉΓòÉ
  1342.  
  1343.  hwndOwner (HWND) - input 
  1344.     Window handle of the owner window.  If this parameter is NULL, the 
  1345.     currently active window is used. 
  1346.  
  1347.  pszFile (PSZ) - input 
  1348.     Pointer to a multimedia file name.  Compound-file names are also supported. 
  1349.     For example: 
  1350.  
  1351.         a:\path\file+element
  1352.  
  1353.  ulFlags (ULONG) - input 
  1354.  
  1355.     MCI_OWNERISPARENT 
  1356.               Indicates that the owner window should be used as the parent 
  1357.               window for any default window that is created. If this flag is 
  1358.               passed to a device that does not support a parent window, an 
  1359.               error is returned. 
  1360.  
  1361.     MCI_STOPACTIVE 
  1362.               Indicates that any currently active command issued by either 
  1363.               mciPlayFile or mciPlayResource should be stopped. 
  1364.  
  1365.     MCI_ASYNC 
  1366.               Indicates that the command should be processed asynchronously. A 
  1367.               rendezvous command will not be done. 
  1368.  
  1369.     MCI_ASYNCRENDEZVOUS 
  1370.               Indicates that the command should proceed asynchronously.  A 
  1371.               rendezvous command will be done. 
  1372.  
  1373.     MCI_RENDEZVOUS 
  1374.               Indicates that the call should wait for a currently pending 
  1375.               asynchronous command to complete. 
  1376.  
  1377.                   If no command is pending, then it returns immediately. 
  1378.  
  1379.                   If an asynchronous command is not pending, this function 
  1380.                    will return immediately. This flag indicates that the 
  1381.                    command should wait until a pending asynchronous play 
  1382.                    command completes and then return. 
  1383.  
  1384.                   If a synchronous (default) play command is pending, this 
  1385.                    command should return immediately with an 
  1386.                    MCIERR_NO_ASYNC_PLAY_ACTIVE. 
  1387.  
  1388.                   If another MCI_RENDEZVOUS command is pending, this command 
  1389.                    should return immediately with an 
  1390.                    MCIERR_NO_ASYNC_PLAY_ACTIVE. 
  1391.  
  1392.  pszTitle (PSZ) - input 
  1393.     Title for window if one is generated.  The title is ignored if a window 
  1394.     would not be generated. (For example, an audio file is to be played). 
  1395.  
  1396.  hwndViewport (HWND) - input 
  1397.     Window handle for displaying the video image.  If a viewport window is not 
  1398.     specified, then a default video window is displayed. This parameter only 
  1399.     has an effect when the data type supports video. 
  1400.  
  1401.  rc (ULONG) - returns 
  1402.     Return codes indicating success or type of failure: 
  1403.  
  1404.     MCIERR_SUCCESS 
  1405.             If the function succeeds, 0 is returned. 
  1406.  
  1407.     MCIERR_NO_ASYNC_PLAY_ACTIVE 
  1408.             A synchronous (default) play command is pending or no asynchronous 
  1409.             play is currently active for the associated owner window. 
  1410.  
  1411.     MCIERR_MISSING_PARAMETER 
  1412.             Required parameter is missing. 
  1413.  
  1414.     MCIERR_FILE_ATTRIBUTE 
  1415.             File is read only, or is opened for write mode by other 
  1416.             application. 
  1417.  
  1418.     MCIERR_INSTANCE_INACTIVE 
  1419.             The device is currently inactive. Can be returned if another 
  1420.             application has opened or acquired the device for exclusive use. 
  1421.             Issue MCI_ACQUIREDEVICE to activate the device ID. 
  1422.  
  1423.     MCIERR_UNSUPPORTED_FLAG 
  1424.             Given flag is unsupported for this device. 
  1425.  
  1426.     MCIERR_INVALID_CALLBACK_HANDLE 
  1427.             Given callback handle is invalid. 
  1428.  
  1429.     MCIERR_UNSUPPORTED_FUNCTION 
  1430.             Unsupported function. 
  1431.  
  1432.     MCIERR_FLAGS_NOT_COMPATIBLE 
  1433.             Flags can not be used together. 
  1434.  
  1435.     MCIERR_FILE_NOT_FOUND 
  1436.             File has not been loaded. 
  1437.  
  1438.     MCIERR_DUPLICATE_ALIAS 
  1439.             Alias already exists. 
  1440.  
  1441.     MCIERR_INVALID_BUFFER 
  1442.             Invalid return buffer given. 
  1443.  
  1444.     MCIERR_CANNOT_LOAD_DRIVER 
  1445.             The driver could not be loaded. 
  1446.  
  1447.     MCIERR_DEVICE_LOCKED 
  1448.             The device is acquired for exclusive use. 
  1449.  
  1450.     MCIERR_OUT_OF_MEMORY 
  1451.             Out of memory. 
  1452.  
  1453.  
  1454. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile - Remarks ΓòÉΓòÉΓòÉ
  1455.  
  1456. This function provides a simple way of playing a multimedia data file.  It 
  1457. supports any multimedia file type or RIFF compound files. 
  1458.  
  1459. The audio is played on the default media control interface device.  A device 
  1460. control panel is not displayed for audio. 
  1461.  
  1462. Still images are not supported. 
  1463.  
  1464. For video, the default media control interface driver window is displayed.  The 
  1465. movie is played from beginning to end.  The window is destroyed when the device 
  1466. is closed.  If an hwndViewport window is specified, then the video will be 
  1467. shown in the viewport window. 
  1468.  
  1469. The default is to play the file synchronously unless the MCI_ASYNC or 
  1470. MCI_ASYNCRENDEZVOUS flag is specified. The message queue is processed during 
  1471. its processing. 
  1472.  
  1473. When the file name that is passed is a NULL pointer or an empty buffer, then an 
  1474. MCIERR_MISSING_PARAMETER error is returned unless the MCI_STOPACTIVE or 
  1475. MCI_RENDEZVOUS flags are set.  In order to stop a currently active command, use 
  1476. the MCI_STOPACTIVE flag. 
  1477.  
  1478. Either mciPlayFile or mciPlayResource could return an 
  1479. MCIERR_NO_ASYNC_PLAY_ACTIVE error.  This error indicates that no asynchronous 
  1480. play is currently active for the associated owner window. 
  1481.  
  1482. The title parameter can be NULL.  If a title is specified and a window is 
  1483. displayed, the title is used as the window title.  A window is only displayed 
  1484. if a video file is played. 
  1485.  
  1486. When the pszFile parameter is specified and there is an active PLAY command 
  1487. associated with the specified owner window, the first command is superceded by 
  1488. the second command. 
  1489.  
  1490.  
  1491. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile - Related Functions ΓòÉΓòÉΓòÉ
  1492.  
  1493.      mciPlayResource 
  1494.      mciRecordAudioFile 
  1495.      mmioRemoveElement 
  1496.      mmioFindElement 
  1497.  
  1498.  
  1499. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile - Example Code ΓòÉΓòÉΓòÉ
  1500.  
  1501. The following code illustrates how to play a digital audio file. 
  1502.  
  1503. #define INCL_MCIOS2
  1504. #define INCL_MACHDR
  1505. #include <os2me.h>         /* Play a wave file           */
  1506.                            /* set to valid window handle */
  1507. ULONG   rc;
  1508. HWND    hwnd;
  1509. rc=mciPlayFile ( hwnd, "GONG.WAV", 0,0,0);
  1510.  
  1511.  
  1512. ΓòÉΓòÉΓòÉ <hidden> mciPlayFile - Topics ΓòÉΓòÉΓòÉ
  1513.  
  1514. Select an item: 
  1515.  
  1516. Syntax
  1517. Parameters
  1518. Returns
  1519. Remarks
  1520. Example Code
  1521. Related Functions
  1522. Glossary
  1523.  
  1524.  
  1525. ΓòÉΓòÉΓòÉ 4.2. mciPlayResource ΓòÉΓòÉΓòÉ
  1526.  
  1527.  
  1528. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource - Syntax ΓòÉΓòÉΓòÉ
  1529.  
  1530. This function plays a multimedia resource, such as a waveform, MIDI, or video, 
  1531. on the default device associated with the resource type. mciPlayResource is a 
  1532. 32-bit function that is also provided as a 16-bit entry point. 
  1533.  
  1534.  
  1535. #define INCL_MACHDR
  1536. #define INCL_MCIOS2
  1537. #include <os2.h>
  1538.  
  1539. HWND       hwndOwner;     /*  Window handle. */
  1540. HMODULE    hmod;          /*  Module handle. */
  1541. ULONG      resType;       /*  Resource type. */
  1542. ULONG      resID;         /*  Resource identifier. */
  1543. ULONG      ulFlags;       /*  Flags. */
  1544. PSZ        pszTitle;      /*  Window title. */
  1545. HWND       hwndViewport;  /*  Window handle. */
  1546. ULONG      rc;            /*  Return code. */
  1547.  
  1548. rc = mciPlayResource(hwndOwner, hmod, resType,
  1549.        resID, ulFlags, pszTitle, hwndViewport);
  1550.  
  1551.  
  1552. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Parameter - hwndOwner ΓòÉΓòÉΓòÉ
  1553.  
  1554.  hwndOwner (HWND) - input 
  1555.     Window handle of the owner window.  If this parameter is NULL then the 
  1556.     currently active window is used. 
  1557.  
  1558.  
  1559. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Parameter - hmod ΓòÉΓòÉΓòÉ
  1560.  
  1561.  hmod (HMODULE) - input 
  1562.     Module handle of the module that contains the resource.  The resource is 
  1563.     loaded using DosGetResource.  NULL indicates the program file's resources. 
  1564.  
  1565.  
  1566. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Parameter - resType ΓòÉΓòÉΓòÉ
  1567.  
  1568.  resType (ULONG) - input 
  1569.     Defines resource type with one of the following values: 
  1570.  
  1571.     RT_WAVE 
  1572.             Resource type is digital audio. 
  1573.  
  1574.     RT_AVI 
  1575.             Resource type is digital video using the AVI file format. 
  1576.  
  1577.     RT_RMID 
  1578.             Resource type is MIDI. 
  1579.  
  1580.     RT_RIFF 
  1581.             Resource type is RIFF. Any of the resource types can be contained 
  1582.             within this resource type. 
  1583.  
  1584.  
  1585. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Parameter - resID ΓòÉΓòÉΓòÉ
  1586.  
  1587.  resID (ULONG) - input 
  1588.     Identifier for resource. 
  1589.  
  1590.  
  1591. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Parameter - ulFlags ΓòÉΓòÉΓòÉ
  1592.  
  1593.  ulFlags (ULONG) - input 
  1594.  
  1595.     MCI_OWNERISPARENT 
  1596.               Indicates that the owner window should be used as the parent 
  1597.               window for any default window that is created.  If this flag is 
  1598.               passed to a device that does not support a parent window, an 
  1599.               error is returned. 
  1600.  
  1601.     MCI_STOPACTIVE 
  1602.               Indicates that any currently active PLAY command issued by 
  1603.               mciPlayFile or mciPlayResource should be stopped. 
  1604.  
  1605.     MCI_ASYNC 
  1606.               Indicates that the command should be processed asynchronously. A 
  1607.               rendezvous command will not be done. 
  1608.  
  1609.     MCI_ASYNCRENDEZVOUS 
  1610.               Indicates that the command should be processed asynchronously.  A 
  1611.               rendezvous command will be done. 
  1612.  
  1613.     MCI_RENDEZVOUS 
  1614.               Indicates that the call should wait for a currently pending 
  1615.               asynchronous command to complete. 
  1616.  
  1617.                   If no command is pending, then it returns immediately. 
  1618.  
  1619.                   If an asynchronous command is not pending, this function 
  1620.                    returns immediately. This flag indicates that the command 
  1621.                    should wait until a pending asynchronous play command 
  1622.                    completes and then return. 
  1623.  
  1624.                   If a synchronous (default) play command is pending, this 
  1625.                    command returns immediately with a 
  1626.                    MCIERR_NO_ASYNC_PLAY_ACTIVE. 
  1627.  
  1628.                   If another MCI_RENDEZVOUS command is pending, this command 
  1629.                    should return immediately with a MCIERR_ASYNC_PLAY_ACTIVE. 
  1630.  
  1631.  
  1632. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Parameter - pszTitle ΓòÉΓòÉΓòÉ
  1633.  
  1634.  pszTitle (PSZ) - input 
  1635.     Title for window if one is generated.  The title is ignored if a window 
  1636.     would not be generated. 
  1637.  
  1638.  
  1639. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Parameter - hwndViewport ΓòÉΓòÉΓòÉ
  1640.  
  1641.  hwndViewport (HWND) - input 
  1642.     Window handle for displaying the video image.  If a viewport window is not 
  1643.     specified, then a default video window is displayed. This parameter only 
  1644.     has an effect when the data type supports video. 
  1645.  
  1646.  
  1647. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource Return Value - rc ΓòÉΓòÉΓòÉ
  1648.  
  1649.  rc (ULONG) - returns 
  1650.     Return codes indicating success or type of failure: 
  1651.  
  1652.     MCIERR_SUCCESS 
  1653.             If the function succeeds, 0 is returned. 
  1654.  
  1655.     MCIERR_NO_ASYNC_PLAY_ACTIVE 
  1656.             A synchronous (default) play command is pending or no asynchronous 
  1657.             play is currently active for the associated owner window. 
  1658.  
  1659.     MCIERR_MISSING_PARAMETER 
  1660.             Required parameter is missing. 
  1661.  
  1662.     MCIERR_FILE_ATTRIBUTE 
  1663.             Returned if another application has opened or acquired the same 
  1664.             device for exclusive use. 
  1665.  
  1666.     MCIERR_INSTANCE_INACTIVE 
  1667.             The device is currently inactive. Issue MCI_ACQUIREDEVICE message 
  1668.             to activate device ID. 
  1669.  
  1670.     MCIERR_UNSUPPORTED_FLAG 
  1671.             Given flag is unsupported for this device. 
  1672.  
  1673.     MCIERR_INVALID_CALLBACK_HANDLE 
  1674.             Given callback handle is invalid. 
  1675.  
  1676.     MCIERR_UNSUPPORTED_FUNCTION 
  1677.             Unsupported function. 
  1678.  
  1679.     MCIERR_FLAGS_NOT_COMPATIBLE 
  1680.             Flags can not be used together. 
  1681.  
  1682.     MCIERR_FILE_NOT_FOUND 
  1683.             File has not been loaded. 
  1684.  
  1685.     MCIERR_DUPLICATE_ALIAS 
  1686.             Alias already exists. 
  1687.  
  1688.     MCIERR_INVALID_BUFFER 
  1689.             Invalid return buffer given. 
  1690.  
  1691.     MCIERR_CANNOT_LOAD_DRIVER 
  1692.             The driver could not be loaded. 
  1693.  
  1694.     MCIERR_DEVICE_LOCKED 
  1695.             The device is acquired for exclusive use. 
  1696.  
  1697.     MCIERR_OUT_OF_MEMORY 
  1698.             Out of memory. 
  1699.  
  1700.  
  1701. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource - Parameters ΓòÉΓòÉΓòÉ
  1702.  
  1703.  hwndOwner (HWND) - input 
  1704.     Window handle of the owner window.  If this parameter is NULL then the 
  1705.     currently active window is used. 
  1706.  
  1707.  hmod (HMODULE) - input 
  1708.     Module handle of the module that contains the resource.  The resource is 
  1709.     loaded using DosGetResource.  NULL indicates the program file's resources. 
  1710.  
  1711.  resType (ULONG) - input 
  1712.     Defines resource type with one of the following values: 
  1713.  
  1714.     RT_WAVE 
  1715.             Resource type is digital audio. 
  1716.  
  1717.     RT_AVI 
  1718.             Resource type is digital video using the AVI file format. 
  1719.  
  1720.     RT_RMID 
  1721.             Resource type is MIDI. 
  1722.  
  1723.     RT_RIFF 
  1724.             Resource type is RIFF. Any of the resource types can be contained 
  1725.             within this resource type. 
  1726.  
  1727.  resID (ULONG) - input 
  1728.     Identifier for resource. 
  1729.  
  1730.  ulFlags (ULONG) - input 
  1731.  
  1732.     MCI_OWNERISPARENT 
  1733.               Indicates that the owner window should be used as the parent 
  1734.               window for any default window that is created.  If this flag is 
  1735.               passed to a device that does not support a parent window, an 
  1736.               error is returned. 
  1737.  
  1738.     MCI_STOPACTIVE 
  1739.               Indicates that any currently active PLAY command issued by 
  1740.               mciPlayFile or mciPlayResource should be stopped. 
  1741.  
  1742.     MCI_ASYNC 
  1743.               Indicates that the command should be processed asynchronously. A 
  1744.               rendezvous command will not be done. 
  1745.  
  1746.     MCI_ASYNCRENDEZVOUS 
  1747.               Indicates that the command should be processed asynchronously.  A 
  1748.               rendezvous command will be done. 
  1749.  
  1750.     MCI_RENDEZVOUS 
  1751.               Indicates that the call should wait for a currently pending 
  1752.               asynchronous command to complete. 
  1753.  
  1754.                   If no command is pending, then it returns immediately. 
  1755.  
  1756.                   If an asynchronous command is not pending, this function 
  1757.                    returns immediately. This flag indicates that the command 
  1758.                    should wait until a pending asynchronous play command 
  1759.                    completes and then return. 
  1760.  
  1761.                   If a synchronous (default) play command is pending, this 
  1762.                    command returns immediately with a 
  1763.                    MCIERR_NO_ASYNC_PLAY_ACTIVE. 
  1764.  
  1765.                   If another MCI_RENDEZVOUS command is pending, this command 
  1766.                    should return immediately with a MCIERR_ASYNC_PLAY_ACTIVE. 
  1767.  
  1768.  pszTitle (PSZ) - input 
  1769.     Title for window if one is generated.  The title is ignored if a window 
  1770.     would not be generated. 
  1771.  
  1772.  hwndViewport (HWND) - input 
  1773.     Window handle for displaying the video image.  If a viewport window is not 
  1774.     specified, then a default video window is displayed. This parameter only 
  1775.     has an effect when the data type supports video. 
  1776.  
  1777.  rc (ULONG) - returns 
  1778.     Return codes indicating success or type of failure: 
  1779.  
  1780.     MCIERR_SUCCESS 
  1781.             If the function succeeds, 0 is returned. 
  1782.  
  1783.     MCIERR_NO_ASYNC_PLAY_ACTIVE 
  1784.             A synchronous (default) play command is pending or no asynchronous 
  1785.             play is currently active for the associated owner window. 
  1786.  
  1787.     MCIERR_MISSING_PARAMETER 
  1788.             Required parameter is missing. 
  1789.  
  1790.     MCIERR_FILE_ATTRIBUTE 
  1791.             Returned if another application has opened or acquired the same 
  1792.             device for exclusive use. 
  1793.  
  1794.     MCIERR_INSTANCE_INACTIVE 
  1795.             The device is currently inactive. Issue MCI_ACQUIREDEVICE message 
  1796.             to activate device ID. 
  1797.  
  1798.     MCIERR_UNSUPPORTED_FLAG 
  1799.             Given flag is unsupported for this device. 
  1800.  
  1801.     MCIERR_INVALID_CALLBACK_HANDLE 
  1802.             Given callback handle is invalid. 
  1803.  
  1804.     MCIERR_UNSUPPORTED_FUNCTION 
  1805.             Unsupported function. 
  1806.  
  1807.     MCIERR_FLAGS_NOT_COMPATIBLE 
  1808.             Flags can not be used together. 
  1809.  
  1810.     MCIERR_FILE_NOT_FOUND 
  1811.             File has not been loaded. 
  1812.  
  1813.     MCIERR_DUPLICATE_ALIAS 
  1814.             Alias already exists. 
  1815.  
  1816.     MCIERR_INVALID_BUFFER 
  1817.             Invalid return buffer given. 
  1818.  
  1819.     MCIERR_CANNOT_LOAD_DRIVER 
  1820.             The driver could not be loaded. 
  1821.  
  1822.     MCIERR_DEVICE_LOCKED 
  1823.             The device is acquired for exclusive use. 
  1824.  
  1825.     MCIERR_OUT_OF_MEMORY 
  1826.             Out of memory. 
  1827.  
  1828.  
  1829. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource - Remarks ΓòÉΓòÉΓòÉ
  1830.  
  1831. This function provides a simple way of playing a multimedia resource stored in 
  1832. a program resource. 
  1833.  
  1834. The audio is played on the default media control interface device.  A device 
  1835. control panel is not displayed for audio. 
  1836.  
  1837. Still images are not supported. 
  1838.  
  1839. For video, the default media control interface driver window is displayed.  The 
  1840. movie is played from beginning to end.  The window is destroyed when the device 
  1841. is closed.  If an hwndViewport window is specified, then the video will be 
  1842. shown in the viewport window. 
  1843.  
  1844. The default is to play the resource synchronously unless the MCI_ASYNC or 
  1845. MCI_ASYNCRENDEZVOUS flag is specified. The message queue is processed during 
  1846. its processing. 
  1847.  
  1848. Either mciPlayFile or mciPlayResource could return an 
  1849. MCIERR_NO_ASYNC_PLAY_ACTIVE error.  This error indicates that no asynchronous 
  1850. play is currently active for the associated owner window. 
  1851.  
  1852. The title parameter can be NULL.  If a title is specified and a window is 
  1853. displayed, the title is used as the window title. A window is only displayed if 
  1854. a video file is played. 
  1855.  
  1856. If the resID is 0, MCIERR_MISSING_PARAMETER is returned unless the 
  1857. MCI_STOPACTIVE or MCI_RENDEZVOUS flags are set. To stop a currently active 
  1858. command, use the MCI_STOPACTIVE flag. 
  1859.  
  1860.  
  1861. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource - Related Functions ΓòÉΓòÉΓòÉ
  1862.  
  1863.      mciPlayFile 
  1864.      mciRecordAudioFile 
  1865.      mmioRemoveElement 
  1866.      mmioFindElement 
  1867.  
  1868.  
  1869. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource - Example Code ΓòÉΓòÉΓòÉ
  1870.  
  1871. Bring the appropriate multimedia files into your resource file as shown below: 
  1872.  
  1873. #include <os2medef.h>
  1874. RESOURCE RT_WAVE IDR_WAVE "zipper.wav"
  1875. RESOURCE RT_RMID IDR_MIDI "bach.mid"
  1876. RESOURCE RT_AVI  IDR_ULT "\\mmos2\\movies\\macaw.avi"
  1877. RESOURCE RT_RIFF IDR_WAVE "zipper.wav"
  1878. RESOURCE RT_RIFF IDR_MIDI "bach.mid"
  1879. RESOURCE RT_RIFF IDR_ULT "macaw.avi"
  1880.  
  1881. The RT_* values are the "resource types" and the IDR_* values are the resource 
  1882. identifiers you provide. Refer to the PM Programming Guide and Reference for 
  1883. detailed information on creating resource files. 
  1884.  
  1885. You can then use mciPlayResource to play a multimedia resource through the 
  1886. media control interface as shown below: 
  1887.  
  1888. #define INCL_MACHDR
  1889. #define INCL_MCIOS2
  1890. #include <os2me.h>
  1891. rc = mciPlayResource( hwnd,       /* Window handle */
  1892.                       hmod,       /* Resource module handle or 0 for EXE */
  1893.                       RT_WAVE,    /* Resource type */
  1894.                       IDR_WAVE,   /* Resource ID */
  1895.                       ulFlags,
  1896.                       szTitle,    /* Other API values */
  1897.                       hwndClient);
  1898.  
  1899.  
  1900. ΓòÉΓòÉΓòÉ <hidden> mciPlayResource - Topics ΓòÉΓòÉΓòÉ
  1901.  
  1902. Select an item: 
  1903.  
  1904. Syntax
  1905. Parameters
  1906. Returns
  1907. Remarks
  1908. Example Code
  1909. Related Functions
  1910. Glossary
  1911.  
  1912.  
  1913. ΓòÉΓòÉΓòÉ 4.3. mciRecordAudioFile ΓòÉΓòÉΓòÉ
  1914.  
  1915.  
  1916. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile - Syntax ΓòÉΓòÉΓòÉ
  1917.  
  1918. This function records an audio file or MMIO compound audio file element. 
  1919. mciRecordAudioFile is a 32-bit function that is also provided as a 16-bit entry 
  1920. point. 
  1921.  
  1922. The mciRecordAudioFile function requires a message queue and focus window. 
  1923.  
  1924.  
  1925. #define INCL_MACHDR
  1926. #define INCL_MCIOS2
  1927. #include <os2.h>
  1928.  
  1929. HWND     hwndOwner;  /*  Window handle. */
  1930. PSZ      pszFile;    /*  Pointer to file name. */
  1931. PSZ      pszTitle;   /*  Recorder window title. */
  1932. ULONG    ulFlags;    /*  Reserved. */
  1933. ULONG    rc;         /*  Return code. */
  1934.  
  1935. rc = mciRecordAudioFile(hwndOwner, pszFile,
  1936.        pszTitle, ulFlags);
  1937.  
  1938.  
  1939. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile Parameter - hwndOwner ΓòÉΓòÉΓòÉ
  1940.  
  1941.  hwndOwner (HWND) - input 
  1942.     The window handle of the owner window.  If this parameter is NULL then the 
  1943.     currently active window is used. 
  1944.  
  1945.  
  1946. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile Parameter - pszFile ΓòÉΓòÉΓòÉ
  1947.  
  1948.  pszFile (PSZ) - input 
  1949.     Pointer to a multimedia file name.  Compound-file names are also supported. 
  1950.     For example: 
  1951.  
  1952.         a:\path\file+element
  1953.  
  1954.  
  1955. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile Parameter - pszTitle ΓòÉΓòÉΓòÉ
  1956.  
  1957.  pszTitle (PSZ) - input 
  1958.     Specifies the title for the recorder window. 
  1959.  
  1960.  
  1961. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile Parameter - ulFlags ΓòÉΓòÉΓòÉ
  1962.  
  1963.  ulFlags (ULONG) - input 
  1964.     Reserved for future use and must be set to zero. 
  1965.  
  1966.  
  1967. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile Return Value - rc ΓòÉΓòÉΓòÉ
  1968.  
  1969.  rc (ULONG) - returns 
  1970.     Returns MCIERR_SUCCESS if there was no error.  An escape from the recorder 
  1971.     dialog returns the DID_CANCEL return code. 
  1972.  
  1973.     MCIERR_SUCCESS 
  1974.             If the function succeeds, 0 is returned. 
  1975.  
  1976.     MCIERR_UNSUPPORTED_FLAG 
  1977.             ulFlags is not set to zero. 
  1978.  
  1979.     MCIERR_MISSING_PARAMETER 
  1980.             No file name is sent. 
  1981.  
  1982.     MCIERR_FILE_NOT_FOUND 
  1983.             The filename is a NULL string. 
  1984.  
  1985.     MCIERR_OUT_OF_MEMORY 
  1986.             MMPM/2 could not allocate memory. 
  1987.  
  1988.     DID_CANCEL 
  1989.             User cancelled from recording without saving recorded files, or 
  1990.             there was an MCI error. 
  1991.  
  1992.  
  1993. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile - Parameters ΓòÉΓòÉΓòÉ
  1994.  
  1995.  hwndOwner (HWND) - input 
  1996.     The window handle of the owner window.  If this parameter is NULL then the 
  1997.     currently active window is used. 
  1998.  
  1999.  pszFile (PSZ) - input 
  2000.     Pointer to a multimedia file name.  Compound-file names are also supported. 
  2001.     For example: 
  2002.  
  2003.         a:\path\file+element
  2004.  
  2005.  pszTitle (PSZ) - input 
  2006.     Specifies the title for the recorder window. 
  2007.  
  2008.  ulFlags (ULONG) - input 
  2009.     Reserved for future use and must be set to zero. 
  2010.  
  2011.  rc (ULONG) - returns 
  2012.     Returns MCIERR_SUCCESS if there was no error.  An escape from the recorder 
  2013.     dialog returns the DID_CANCEL return code. 
  2014.  
  2015.     MCIERR_SUCCESS 
  2016.             If the function succeeds, 0 is returned. 
  2017.  
  2018.     MCIERR_UNSUPPORTED_FLAG 
  2019.             ulFlags is not set to zero. 
  2020.  
  2021.     MCIERR_MISSING_PARAMETER 
  2022.             No file name is sent. 
  2023.  
  2024.     MCIERR_FILE_NOT_FOUND 
  2025.             The filename is a NULL string. 
  2026.  
  2027.     MCIERR_OUT_OF_MEMORY 
  2028.             MMPM/2 could not allocate memory. 
  2029.  
  2030.     DID_CANCEL 
  2031.             User cancelled from recording without saving recorded files, or 
  2032.             there was an MCI error. 
  2033.  
  2034.  
  2035. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile - Remarks ΓòÉΓòÉΓòÉ
  2036.  
  2037. The mciRecordAudioFile function provides a small, simple recorder window, which 
  2038. allows an object-oriented method of recording audio annotations.  All play and 
  2039. record operations are from beginning to end. 
  2040.  
  2041. This call does not return until the recorder window is closed. The message 
  2042. queue is processed during the operation of this function. Once the recording is 
  2043. completed, the window is dismissed. 
  2044.  
  2045. This function records 11 kHz, mono, PCM audio data from the microphone input of 
  2046. the default waveaudio device. The sample size defaults to the card default. 
  2047.  
  2048. This function creates the file if it doesn't exist.  If a compound-file name is 
  2049. specified (d:\path\file+element), the file will be created.  If it doesn't 
  2050. exist, the element will be created after the record operation completes. 
  2051.  
  2052. The pszFile parameter, which specifies the name of the object to record into, 
  2053. is an input-only parameter. 
  2054.  
  2055. When pszTitle is not specified, the last component of the file name or the MMIO 
  2056. element name is used. 
  2057.  
  2058. This function records only digital audio files. 
  2059.  
  2060.  
  2061. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile - Related Functions ΓòÉΓòÉΓòÉ
  2062.  
  2063.      mciPlayFile 
  2064.      mciPlayResource 
  2065.      mmioRemoveElement 
  2066.      mmioFindElement 
  2067.  
  2068.  
  2069. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile - Example Code ΓòÉΓòÉΓòÉ
  2070.  
  2071. The following code illustrates how to record an audio file. 
  2072.  
  2073. #define INCL_MCIOS2
  2074. #define INCL_MACHDR
  2075. #include <os2me.h>
  2076.  
  2077. ULONG rc;
  2078. HWND  hwnd;
  2079. rc=mciRecordAudioFile (hwnd, "SOUND.WAV", "TITLE", 0);
  2080.  
  2081.  
  2082. ΓòÉΓòÉΓòÉ <hidden> mciRecordAudioFile - Topics ΓòÉΓòÉΓòÉ
  2083.  
  2084. Select an item: 
  2085.  
  2086. Syntax
  2087. Parameters
  2088. Returns
  2089. Remarks
  2090. Example Code
  2091. Related Functions
  2092. Glossary
  2093.  
  2094.  
  2095. ΓòÉΓòÉΓòÉ 5. Subsystem Messages ΓòÉΓòÉΓòÉ
  2096.  
  2097. The MCIDRV commands provide subsystem communication between MDM and the MCDs. 
  2098. The current set of MCIDRV commands provide for device resource management.  The 
  2099. MCIDRV_SAVE and MCIDRV_RESTORE messages allow MDM to manage devices that 
  2100. support multiple device contexts either concurrently or serially.  The 
  2101. MCIDRV_CHANGERESOURCE message allows MCDs to change the resource consumed by a 
  2102. device context as required. MCIDRV_CHANGERESOURCE is sent from an MCD to MDM. A 
  2103. device context is made active when the MCD receives an MCIDRV_RESTORE from MDM. 
  2104. An MCI_OPEN command is not complete (the device is not active) until MDM has 
  2105. sent the MCD an MCIDRV_RESTORE. Similarly, when MDM sends an MCD the 
  2106. MCIDRV_SAVE command, the MCD will make the device context inactive.  These 
  2107. commands provide multiple device contexts the ability to share one device. 
  2108.  
  2109.  Message                        Description 
  2110.  
  2111.  MCIDRV_CHANGERESOURCE          Changes the class or resource units assigned to 
  2112.                                 the given device context. 
  2113.  
  2114.  MCIDRV_RESTORE                 Restores state of an inactive device context. 
  2115.  
  2116.  MCIDRV_SAVE                    Saves state of a device context. 
  2117.  
  2118.  
  2119. ΓòÉΓòÉΓòÉ 5.1. mdmDriverNotify ΓòÉΓòÉΓòÉ
  2120.  
  2121.  
  2122. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify - Syntax ΓòÉΓòÉΓòÉ
  2123.  
  2124. This function is called from MCDs to return message to applications. Returned 
  2125. information includes command status, cuepoints, position changes, playlist 
  2126. messages, and device specific events. 
  2127.  
  2128.  
  2129. #define INCL_MMIO
  2130. #include <os2.h>
  2131.  
  2132. USHORT    usDeviceID;  /*  Device ID for message. */
  2133. HWND      hwnd;        /*  Window handle. */
  2134. USHORT    usMsgType;   /*  Notification type. */
  2135. USHORT    usUserParm;  /*  User-defined. */
  2136. ULONG     ulMsgParm;   /*  Message-defined. */
  2137. ULONG     rc;          /*  Return codes. */
  2138.  
  2139. rc = mdmDriverNotify(usDeviceID, hwnd, usMsgType,
  2140.        usUserParm, ulMsgParm);
  2141.  
  2142.  
  2143. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify Parameter - usDeviceID ΓòÉΓòÉΓòÉ
  2144.  
  2145.  usDeviceID (USHORT) - input 
  2146.     Device ID to be assoicated with this message. 
  2147.  
  2148.  
  2149. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify Parameter - hwnd ΓòÉΓòÉΓòÉ
  2150.  
  2151.  hwnd (HWND) - input 
  2152.     The window handle used to post or send message to application. 
  2153.  
  2154.  
  2155. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify Parameter - usMsgType ΓòÉΓòÉΓòÉ
  2156.  
  2157.  usMsgType (USHORT) - input 
  2158.     Type of notification: 
  2159.  
  2160.         MM_MCICUEPOINT 
  2161.  
  2162.         MM_MCIEVENT 
  2163.  
  2164.         MM_MCINOTIFY 
  2165.  
  2166.         MM_MCIPASSDEVICE 
  2167.  
  2168.         MM_MCIPLAYLISTMESSAGE 
  2169.  
  2170.         MM_MCIPOSITIONCHANGE 
  2171.  
  2172.  
  2173. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify Parameter - usUserParm ΓòÉΓòÉΓòÉ
  2174.  
  2175.  usUserParm (USHORT) - input 
  2176.     User-defined parameter. 
  2177.  
  2178.  
  2179. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify Parameter - ulMsgParm ΓòÉΓòÉΓòÉ
  2180.  
  2181.  ulMsgParm (ULONG) - input 
  2182.     Message-defined parameter. 
  2183.  
  2184.  
  2185. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify Return Value - rc ΓòÉΓòÉΓòÉ
  2186.  
  2187.  rc (ULONG) - returns 
  2188.     Return codes indicating success or type of failure: 
  2189.  
  2190.     MCI_NOTIFY_SUCCESS 
  2191.             If the function succeeds, 0 is returned. 
  2192.  
  2193.     MM_MCIPOSITIONCHANGE 
  2194.             The media position in MMTIME units. 
  2195.  
  2196.     MM_MCICUEPOINT 
  2197.             Media position in MMTIME units. 
  2198.  
  2199.     MM_MCIPLAYLISTMESSAGE 
  2200.             Parameter specified by playlist message instruction (Operand 2). 
  2201.  
  2202.     MM_MCIEVENT 
  2203.             Device-specific parameter. 
  2204.  
  2205.  
  2206. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify - Parameters ΓòÉΓòÉΓòÉ
  2207.  
  2208.  usDeviceID (USHORT) - input 
  2209.     Device ID to be assoicated with this message. 
  2210.  
  2211.  hwnd (HWND) - input 
  2212.     The window handle used to post or send message to application. 
  2213.  
  2214.  usMsgType (USHORT) - input 
  2215.     Type of notification: 
  2216.  
  2217.         MM_MCICUEPOINT 
  2218.  
  2219.         MM_MCIEVENT 
  2220.  
  2221.         MM_MCINOTIFY 
  2222.  
  2223.         MM_MCIPASSDEVICE 
  2224.  
  2225.         MM_MCIPLAYLISTMESSAGE 
  2226.  
  2227.         MM_MCIPOSITIONCHANGE 
  2228.  
  2229.  usUserParm (USHORT) - input 
  2230.     User-defined parameter. 
  2231.  
  2232.  ulMsgParm (ULONG) - input 
  2233.     Message-defined parameter. 
  2234.  
  2235.  rc (ULONG) - returns 
  2236.     Return codes indicating success or type of failure: 
  2237.  
  2238.     MCI_NOTIFY_SUCCESS 
  2239.             If the function succeeds, 0 is returned. 
  2240.  
  2241.     MM_MCIPOSITIONCHANGE 
  2242.             The media position in MMTIME units. 
  2243.  
  2244.     MM_MCICUEPOINT 
  2245.             Media position in MMTIME units. 
  2246.  
  2247.     MM_MCIPLAYLISTMESSAGE 
  2248.             Parameter specified by playlist message instruction (Operand 2). 
  2249.  
  2250.     MM_MCIEVENT 
  2251.             Device-specific parameter. 
  2252.  
  2253.  
  2254. ΓòÉΓòÉΓòÉ <hidden> mdmDriverNotify - Topics ΓòÉΓòÉΓòÉ
  2255.  
  2256. Select an item: 
  2257.  
  2258. Syntax
  2259. Parameters
  2260. Returns
  2261. Glossary
  2262.  
  2263.  
  2264. ΓòÉΓòÉΓòÉ 5.2. MCIDRV_CHANGERESOURCE ΓòÉΓòÉΓòÉ
  2265.  
  2266.  
  2267. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_CHANGERESOURCE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  2268.  
  2269.  ulParam1 (ULONG) 
  2270.     This parameter can contain the following standard flag: 
  2271.  
  2272.     MCI_WAIT 
  2273.             This message is not to be returned until the device context 
  2274.             resource requirements have been changed or an error is found. 
  2275.  
  2276.  
  2277. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_CHANGERESOURCE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  2278.  
  2279.  pParam2 (PMCIDRV_CHANGERESOURCE_PARMS) 
  2280.     A pointer to the MCIDRV_CHANGERESOURCE_PARMS structure. 
  2281.  
  2282.  
  2283. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_CHANGERESOURCE - Description ΓòÉΓòÉΓòÉ
  2284.  
  2285. This message is sent from the MCDs to MDM to change the class and resource 
  2286. units assigned to the given device context. 
  2287.  
  2288.  ulParam1 (ULONG) 
  2289.     This parameter can contain the following standard flag: 
  2290.  
  2291.     MCI_WAIT 
  2292.             This message is not to be returned until the device context 
  2293.             resource requirements have been changed or an error is found. 
  2294.  
  2295.  pParam2 (PMCIDRV_CHANGERESOURCE_PARMS) 
  2296.     A pointer to the MCIDRV_CHANGERESOURCE_PARMS structure. 
  2297.  
  2298.  
  2299. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_CHANGERESOURCE - Topics ΓòÉΓòÉΓòÉ
  2300.  
  2301. Select an item: 
  2302.  
  2303. Description
  2304. Glossary
  2305.  
  2306.  
  2307. ΓòÉΓòÉΓòÉ 5.3. MCIDRV_RESTORE ΓòÉΓòÉΓòÉ
  2308.  
  2309.  
  2310. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_RESTORE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  2311.  
  2312.  ulParam1 (ULONG) 
  2313.     This parameter can contain the following standard flags: 
  2314.  
  2315.     MCI_WAIT 
  2316.             The message is not to be returned until the device context restore 
  2317.             is complete. 
  2318.  
  2319.     MCI_SHAREABLE 
  2320.             Device context is in shareable mode. 
  2321.  
  2322.     MCI_EXCLUSIVE 
  2323.             Device context is in exclusive mode. 
  2324.  
  2325.  
  2326. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_RESTORE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  2327.  
  2328.  pParam2 (PVOID) 
  2329.     Not used. 
  2330.  
  2331.  
  2332. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_RESTORE - Description ΓòÉΓòÉΓòÉ
  2333.  
  2334. This message is sent from MDM to MCDs to restore the state of an inactive 
  2335. device context.  If this message is received for an active device context then 
  2336. the MCD should save the shareability for the device instance.  This is either 
  2337. shareable or exclusive. See ulParam1 for more details. 
  2338.  
  2339.  ulParam1 (ULONG) 
  2340.     This parameter can contain the following standard flags: 
  2341.  
  2342.     MCI_WAIT 
  2343.             The message is not to be returned until the device context restore 
  2344.             is complete. 
  2345.  
  2346.     MCI_SHAREABLE 
  2347.             Device context is in shareable mode. 
  2348.  
  2349.     MCI_EXCLUSIVE 
  2350.             Device context is in exclusive mode. 
  2351.  
  2352.  pParam2 (PVOID) 
  2353.     Not used. 
  2354.  
  2355.  
  2356. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_RESTORE - Topics ΓòÉΓòÉΓòÉ
  2357.  
  2358. Select an item: 
  2359.  
  2360. Description
  2361. Glossary
  2362.  
  2363.  
  2364. ΓòÉΓòÉΓòÉ 5.4. MCIDRV_SAVE ΓòÉΓòÉΓòÉ
  2365.  
  2366.  
  2367. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_SAVE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  2368.  
  2369.  ulParam1 (ULONG) 
  2370.     This parameter can contain the following standard flags: 
  2371.  
  2372.     MCI_WAIT 
  2373.             Control is not to be returned until the action indicated by this 
  2374.             message is completed. 
  2375.  
  2376.  
  2377. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_SAVE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  2378.  
  2379.  pParam2 (PVOID) 
  2380.     Not used. 
  2381.  
  2382.  
  2383. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_SAVE - Description ΓòÉΓòÉΓòÉ
  2384.  
  2385. This message is sent from MDM to MCDs to save the state of an active device 
  2386. context. 
  2387.  
  2388.  ulParam1 (ULONG) 
  2389.     This parameter can contain the following standard flags: 
  2390.  
  2391.     MCI_WAIT 
  2392.             Control is not to be returned until the action indicated by this 
  2393.             message is completed. 
  2394.  
  2395.  pParam2 (PVOID) 
  2396.     Not used. 
  2397.  
  2398.  
  2399. ΓòÉΓòÉΓòÉ <hidden> MCIDRV_SAVE - Topics ΓòÉΓòÉΓòÉ
  2400.  
  2401. Select an item: 
  2402.  
  2403. Description
  2404. Glossary
  2405.  
  2406.  
  2407. ΓòÉΓòÉΓòÉ 6. Notification Messages ΓòÉΓòÉΓòÉ
  2408.  
  2409. The system uses notification messages to respond to applications, indicating 
  2410. system status such as completion of a media device function or passing of the 
  2411. ownership of a media device between processes. 
  2412.  
  2413. Messages are returned to applications asynchronously (using WinPostMsg), except 
  2414. for MM_MCIEVENT, which is sent synchronously (using WinSendMsg). A media 
  2415. control interface call that results in the dispatch of these two messages (such 
  2416. as MCI_OPEN and MCI_ACQUIREDEVICE) must be issued from application threads that 
  2417. have a message queue. 
  2418.  
  2419. All messages except system messages operate in an asynchronous mode without 
  2420. notification unless MCI_NOTIFY or MCI_WAIT is specified. These two flags are 
  2421. mutually exclusive.  If both are used, an MCIERR_FLAGS_NOT_COMPATIBLE error is 
  2422. returned. If MCI_WAIT is used, control is not returned to the caller until the 
  2423. command completes.  MCI_NOTIFY returns control to the caller and then completes 
  2424. the command.  A notification will be sent to the application if MCIERR_SUCCESS 
  2425. was returned on the call. The second parameter specified for each message is a 
  2426. pointer to a control block structure associated with that message. This pointer 
  2427. is passed in the pParam2 parameter of mciSendCommand. 
  2428.  
  2429. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2430. ΓöéFunction                 ΓöéDescription                        Γöé
  2431. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2432. ΓöéMM_MCICUEPOINT           ΓöéNotifies application that a cue    Γöé
  2433. Γöé                         Γöépoint is found in a playlist, or   Γöé
  2434. Γöé                         Γöéthat a cue point has been detected,Γöé
  2435. Γöé                         Γöéwhich was set with the             Γöé
  2436. Γöé                         ΓöéMCI_SET_CUEPOINT message.          Γöé
  2437. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2438. ΓöéMM_MCIEVENT              ΓöéNotifies application of an event   Γöé
  2439. Γöé                         Γöégenerated by a device.             Γöé
  2440. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2441. ΓöéMM_MCINOTIFY             ΓöéNotifies an application after a    Γöé
  2442. Γöé                         Γöédevice completes action or an errorΓöé
  2443. Γöé                         Γöéoccurs.                            Γöé
  2444. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2445. ΓöéMM_MCIPASSDEVICE         ΓöéNotifies application that a shared Γöé
  2446. Γöé                         Γöédevice is being gained or lost.    Γöé
  2447. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2448. ΓöéMM_MCIPLAYLISTMESSAGE    ΓöéNotifies application that playlist Γöé
  2449. Γöé                         Γöéprocessor has found a MESSAGE      Γöé
  2450. Γöé                         Γöéinstruction.                       Γöé
  2451. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2452. ΓöéMM_MCIPOSITIONCHANGE     ΓöéNotifies applications of current   Γöé
  2453. Γöé                         Γöémedia position.                    Γöé
  2454. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2455.  
  2456.  
  2457. ΓòÉΓòÉΓòÉ 6.1. MM_MCICUEPOINT ΓòÉΓòÉΓòÉ
  2458.  
  2459.  
  2460. ΓòÉΓòÉΓòÉ <hidden> MM_MCICUEPOINT Field - usUserParameter ΓòÉΓòÉΓòÉ
  2461.  
  2462.  usUserParameter (USHORT) 
  2463.     User parameter specified in the MCI_CUEPOINT_PARMS structure when the cue 
  2464.     point was set. 
  2465.  
  2466.  
  2467. ΓòÉΓòÉΓòÉ <hidden> MM_MCICUEPOINT Field - usDeviceID ΓòÉΓòÉΓòÉ
  2468.  
  2469.  usDeviceID (USHORT) 
  2470.     Device ID. 
  2471.  
  2472.  
  2473. ΓòÉΓòÉΓòÉ <hidden> MM_MCICUEPOINT Field - ulMMtime ΓòÉΓòÉΓòÉ
  2474.  
  2475.  ulMMtime (ULONG) 
  2476.     Media position in MMTIME units. 
  2477.  
  2478.  
  2479. ΓòÉΓòÉΓòÉ <hidden> MM_MCICUEPOINT - Parameters ΓòÉΓòÉΓòÉ
  2480.  
  2481.  usUserParameter (USHORT) 
  2482.     User parameter specified in the MCI_CUEPOINT_PARMS structure when the cue 
  2483.     point was set. 
  2484.  
  2485.  usDeviceID (USHORT) 
  2486.     Device ID. 
  2487.  
  2488.  ulMMtime (ULONG) 
  2489.     Media position in MMTIME units. 
  2490.  
  2491.  
  2492. ΓòÉΓòÉΓòÉ <hidden> MM_MCICUEPOINT - Description ΓòÉΓòÉΓòÉ
  2493.  
  2494. This message notifies an application that the device has encountered a cue 
  2495. point in a playlist, or that a cue point has been set with MCI_SET_CUEPOINT. 
  2496.  
  2497.  
  2498. MsgParam1
  2499.      USHORT  usUserParameter  /*  User-specified parameter. */
  2500.      USHORT  usDeviceID       /*  Device ID. */
  2501.  
  2502. MsgParam2
  2503.      ULONG   ulMMtime         /*  Media position. */
  2504.  
  2505.  
  2506. ΓòÉΓòÉΓòÉ <hidden> MM_MCICUEPOINT - Remarks ΓòÉΓòÉΓòÉ
  2507.  
  2508. MM_MCICUEPOINT is returned to the window procedure that sent the 
  2509. MCI_SET_CUEPOINT message. 
  2510.  
  2511.  
  2512. ΓòÉΓòÉΓòÉ <hidden> MM_MCICUEPOINT - Topics ΓòÉΓòÉΓòÉ
  2513.  
  2514. Select an item: 
  2515.  
  2516. Description
  2517. Parameters
  2518. Remarks
  2519. Glossary
  2520.  
  2521.  
  2522. ΓòÉΓòÉΓòÉ 6.2. MM_MCIEVENT ΓòÉΓòÉΓòÉ
  2523.  
  2524.  
  2525. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT Field - usEventCode ΓòÉΓòÉΓòÉ
  2526.  
  2527.  usEventCode (USHORT) 
  2528.     Device-specific event code. The following event notification codes are 
  2529.     currently defined: 
  2530.  
  2531.     MCI_MIXEVENT 
  2532.             A mixer attribute has changed. 
  2533.  
  2534.  
  2535. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT Field - usDeviceID ΓòÉΓòÉΓòÉ
  2536.  
  2537.  usDeviceID (USHORT) 
  2538.     Device ID. 
  2539.  
  2540.  
  2541. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT Field - pEventData ΓòÉΓòÉΓòÉ
  2542.  
  2543.  pEventData (PVOID) 
  2544.     Device-specific event data structure. 
  2545.  
  2546.  
  2547. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT Return Value - ulReserved ΓòÉΓòÉΓòÉ
  2548.  
  2549.  ulReserved (ULONG) 
  2550.     Zero.  Reserved value. 
  2551.  
  2552.  
  2553. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT - Parameters ΓòÉΓòÉΓòÉ
  2554.  
  2555.  usEventCode (USHORT) 
  2556.     Device-specific event code. The following event notification codes are 
  2557.     currently defined: 
  2558.  
  2559.     MCI_MIXEVENT 
  2560.             A mixer attribute has changed. 
  2561.  
  2562.  usDeviceID (USHORT) 
  2563.     Device ID. 
  2564.  
  2565.  pEventData (PVOID) 
  2566.     Device-specific event data structure. 
  2567.  
  2568.  ulReserved (ULONG) 
  2569.     Zero.  Reserved value. 
  2570.  
  2571.  
  2572. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT - Description ΓòÉΓòÉΓòÉ
  2573.  
  2574. This message notifies an application of an event generated by a device. 
  2575.  
  2576.  
  2577. MsgParam1
  2578.      USHORT  usEventCode  /*  Device-specific event code. */
  2579.      USHORT  usDeviceID   /*  Device ID. */
  2580.  
  2581. MsgParam2
  2582.      PVOID   pEventData   /*  Device-specific event data. */
  2583.  
  2584.  
  2585. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT - Remarks ΓòÉΓòÉΓòÉ
  2586.  
  2587. The format of the data structure pointed to by MsgParam2 is defined by devices 
  2588. that return this message. 
  2589.  
  2590. Unlike most media control interface notification messages, MM_MCIEVENT is sent 
  2591. (rather than posted) to the application's message queue.  The data structure 
  2592. pointed to by the message parameter is considered valid only during processing 
  2593. of the message. 
  2594.  
  2595.  
  2596. ΓòÉΓòÉΓòÉ <hidden> MM_MCIEVENT - Topics ΓòÉΓòÉΓòÉ
  2597.  
  2598. Select an item: 
  2599.  
  2600. Description
  2601. Parameters
  2602. Returns
  2603. Remarks
  2604. Glossary
  2605.  
  2606.  
  2607. ΓòÉΓòÉΓòÉ 6.3. MM_MCINOTIFY ΓòÉΓòÉΓòÉ
  2608.  
  2609.  
  2610. ΓòÉΓòÉΓòÉ <hidden> MM_MCINOTIFY Field - usNotifycode ΓòÉΓòÉΓòÉ
  2611.  
  2612.  usNotifycode (USHORT) 
  2613.     Specifies the following notification message code: 
  2614.  
  2615.     MCI_NOTIFY_SUCCESSFUL 
  2616.             The command was completed successfully. 
  2617.  
  2618.     MCI_NOTIFY_SUPERSEDED 
  2619.             Another notification request (same type of command) was received. 
  2620.  
  2621.     MCI_NOTIFY_ABORTED 
  2622.             The command was interrupted and is unable to be completed.  For 
  2623.             example, the first command was a PLAY with notify, and the second 
  2624.             command was STOP with or without notify. 
  2625.  
  2626.             Any other value indicates an error, and that value is the error 
  2627.             number.  mciGetErrorString can be used to convert the number into a 
  2628.             textual description of the error. 
  2629.  
  2630.  
  2631. ΓòÉΓòÉΓòÉ <hidden> MM_MCINOTIFY Field - usUserParameter ΓòÉΓòÉΓòÉ
  2632.  
  2633.  usUserParameter (USHORT) 
  2634.     Specifies a usUserParameter notification message code. 
  2635.  
  2636.     Contains the user parameter specified on mciSendCommand or mciSendString 
  2637.     for this command. 
  2638.  
  2639.  
  2640. ΓòÉΓòÉΓòÉ <hidden> MM_MCINOTIFY Field - usDeviceID ΓòÉΓòÉΓòÉ
  2641.  
  2642.  usDeviceID (USHORT) 
  2643.     The media control interface device ID included in the notification. 
  2644.  
  2645.  
  2646. ΓòÉΓòÉΓòÉ <hidden> MM_MCINOTIFY Field - usMessage ΓòÉΓòÉΓòÉ
  2647.  
  2648.  usMessage (USHORT) 
  2649.     Specifies the message ID which generated the notification. 
  2650.  
  2651.  
  2652. ΓòÉΓòÉΓòÉ <hidden> MM_MCINOTIFY - Parameters ΓòÉΓòÉΓòÉ
  2653.  
  2654.  usNotifycode (USHORT) 
  2655.     Specifies the following notification message code: 
  2656.  
  2657.     MCI_NOTIFY_SUCCESSFUL 
  2658.             The command was completed successfully. 
  2659.  
  2660.     MCI_NOTIFY_SUPERSEDED 
  2661.             Another notification request (same type of command) was received. 
  2662.  
  2663.     MCI_NOTIFY_ABORTED 
  2664.             The command was interrupted and is unable to be completed.  For 
  2665.             example, the first command was a PLAY with notify, and the second 
  2666.             command was STOP with or without notify. 
  2667.  
  2668.             Any other value indicates an error, and that value is the error 
  2669.             number.  mciGetErrorString can be used to convert the number into a 
  2670.             textual description of the error. 
  2671.  
  2672.  usUserParameter (USHORT) 
  2673.     Specifies a usUserParameter notification message code. 
  2674.  
  2675.     Contains the user parameter specified on mciSendCommand or mciSendString 
  2676.     for this command. 
  2677.  
  2678.  usDeviceID (USHORT) 
  2679.     The media control interface device ID included in the notification. 
  2680.  
  2681.  usMessage (USHORT) 
  2682.     Specifies the message ID which generated the notification. 
  2683.  
  2684.  
  2685. ΓòÉΓòÉΓòÉ <hidden> MM_MCINOTIFY - Description ΓòÉΓòÉΓòÉ
  2686.  
  2687. This message notifies an application when a device completes the action 
  2688. indicated by a media message or when an error occurs. 
  2689.  
  2690.  
  2691. MsgParam1
  2692.      USHORT  usNotifycode     /*  Notification code. */
  2693.      USHORT  usUserParameter  /*  User parameter. */
  2694.  
  2695. MsgParam2
  2696.      USHORT  usDeviceID       /*  Device ID. */
  2697.      USHORT  usMessage        /*  Message ID. */
  2698.  
  2699.  
  2700. ΓòÉΓòÉΓòÉ <hidden> MM_MCINOTIFY - Topics ΓòÉΓòÉΓòÉ
  2701.  
  2702. Select an item: 
  2703.  
  2704. Description
  2705. Parameters
  2706. Glossary
  2707.  
  2708.  
  2709. ΓòÉΓòÉΓòÉ 6.4. MM_MCIPASSDEVICE ΓòÉΓòÉΓòÉ
  2710.  
  2711.  
  2712. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE Field - usDeviceID ΓòÉΓòÉΓòÉ
  2713.  
  2714.  usDeviceID (USHORT) 
  2715.     Device ID. 
  2716.  
  2717.  
  2718. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE Field - usReserved ΓòÉΓòÉΓòÉ
  2719.  
  2720.  usReserved (USHORT) 
  2721.     Reserved. 
  2722.  
  2723.  
  2724. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE Field - usEvent ΓòÉΓòÉΓòÉ
  2725.  
  2726.  usEvent (USHORT) 
  2727.     Indicates whether use of the device is being gained or lost 
  2728.     (MCI_GAINING_USE or MCI_LOSING_USE). 
  2729.  
  2730.  
  2731. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE Field - usReserved ΓòÉΓòÉΓòÉ
  2732.  
  2733.  usReserved (USHORT) 
  2734.     Reserved. 
  2735.  
  2736.  
  2737. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE - Parameters ΓòÉΓòÉΓòÉ
  2738.  
  2739.  usDeviceID (USHORT) 
  2740.     Device ID. 
  2741.  
  2742.  usReserved (USHORT) 
  2743.     Reserved. 
  2744.  
  2745.  usEvent (USHORT) 
  2746.     Indicates whether use of the device is being gained or lost 
  2747.     (MCI_GAINING_USE or MCI_LOSING_USE). 
  2748.  
  2749.  usReserved (USHORT) 
  2750.     Reserved. 
  2751.  
  2752.  
  2753. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE - Description ΓòÉΓòÉΓòÉ
  2754.  
  2755. This message notifies an application that the use of a device is being gained 
  2756. or lost. 
  2757.  
  2758.  
  2759. MsgParam1
  2760.      USHORT  usDeviceID  /*  Device ID. */
  2761.      USHORT  usReserved  /*  Reserved. */
  2762.  
  2763. MsgParam2
  2764.      USHORT  usEvent     /*  Gaining or losing use of device. */
  2765.      USHORT  usReserved  /*  Reserved. */
  2766.  
  2767.  
  2768. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE - Remarks ΓòÉΓòÉΓòÉ
  2769.  
  2770. The window handle specified in the hwndCallback field of the structure passed 
  2771. with the MCI_OPEN command is used as the window handle for the MM_MCIPASSDEVICE 
  2772. messages. 
  2773.  
  2774.  
  2775. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPASSDEVICE - Topics ΓòÉΓòÉΓòÉ
  2776.  
  2777. Select an item: 
  2778.  
  2779. Description
  2780. Parameters
  2781. Remarks
  2782. Glossary
  2783.  
  2784.  
  2785. ΓòÉΓòÉΓòÉ 6.5. MM_MCIPLAYLISTMESSAGE ΓòÉΓòÉΓòÉ
  2786.  
  2787.  
  2788. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPLAYLISTMESSAGE Field - usInstruction ΓòÉΓòÉΓòÉ
  2789.  
  2790.  usInstruction (USHORT) 
  2791.     Playlist instruction number. 
  2792.  
  2793.  
  2794. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPLAYLISTMESSAGE Field - usDeviceID ΓòÉΓòÉΓòÉ
  2795.  
  2796.  usDeviceID (USHORT) 
  2797.     Device ID. 
  2798.  
  2799.  
  2800. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPLAYLISTMESSAGE Field - ulMessageParm ΓòÉΓòÉΓòÉ
  2801.  
  2802.  ulMessageParm (ULONG) 
  2803.     Parameter specified in playlist MESSAGE instruction (operand 2). 
  2804.  
  2805.  
  2806. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPLAYLISTMESSAGE - Parameters ΓòÉΓòÉΓòÉ
  2807.  
  2808.  usInstruction (USHORT) 
  2809.     Playlist instruction number. 
  2810.  
  2811.  usDeviceID (USHORT) 
  2812.     Device ID. 
  2813.  
  2814.  ulMessageParm (ULONG) 
  2815.     Parameter specified in playlist MESSAGE instruction (operand 2). 
  2816.  
  2817.  
  2818. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPLAYLISTMESSAGE - Description ΓòÉΓòÉΓòÉ
  2819.  
  2820. This message notifies an application that the playlist processor has 
  2821. encountered a MESSAGE instruction. 
  2822.  
  2823.  
  2824. MsgParam1
  2825.      USHORT  usInstruction  /*  Playlist instruction number. */
  2826.      USHORT  usDeviceID     /*  Device ID. */
  2827.  
  2828. MsgParam2
  2829.      ULONG   ulMessageParm  /*  Playlist parameter. */
  2830.  
  2831.  
  2832. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPLAYLISTMESSAGE - Topics ΓòÉΓòÉΓòÉ
  2833.  
  2834. Select an item: 
  2835.  
  2836. Description
  2837. Parameters
  2838. Glossary
  2839.  
  2840.  
  2841. ΓòÉΓòÉΓòÉ 6.6. MM_MCIPOSITIONCHANGE ΓòÉΓòÉΓòÉ
  2842.  
  2843.  
  2844. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPOSITIONCHANGE Field - usUserParameter ΓòÉΓòÉΓòÉ
  2845.  
  2846.  usUserParameter (USHORT) 
  2847.     User parameter specified in the MCI_POSITION_PARMS structure when position 
  2848.     advise notification was requested. 
  2849.  
  2850.  
  2851. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPOSITIONCHANGE Field - usDeviceID ΓòÉΓòÉΓòÉ
  2852.  
  2853.  usDeviceID (USHORT) 
  2854.     Device ID. 
  2855.  
  2856.  
  2857. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPOSITIONCHANGE Field - ulMMtime ΓòÉΓòÉΓòÉ
  2858.  
  2859.  ulMMtime (ULONG) 
  2860.     Media position in MMTIME units. 
  2861.  
  2862.  
  2863. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPOSITIONCHANGE - Parameters ΓòÉΓòÉΓòÉ
  2864.  
  2865.  usUserParameter (USHORT) 
  2866.     User parameter specified in the MCI_POSITION_PARMS structure when position 
  2867.     advise notification was requested. 
  2868.  
  2869.  usDeviceID (USHORT) 
  2870.     Device ID. 
  2871.  
  2872.  ulMMtime (ULONG) 
  2873.     Media position in MMTIME units. 
  2874.  
  2875.  
  2876. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPOSITIONCHANGE - Description ΓòÉΓòÉΓòÉ
  2877.  
  2878. This message notifies an application of the current media position. 
  2879.  
  2880.  
  2881. MsgParam1
  2882.      USHORT  usUserParameter  /*  User-specified parameter. */
  2883.      USHORT  usDeviceID       /*  Device ID. */
  2884.  
  2885. MsgParam2
  2886.      ULONG   ulMMtime         /*  Media position. */
  2887.  
  2888.  
  2889. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPOSITIONCHANGE - Remarks ΓòÉΓòÉΓòÉ
  2890.  
  2891. This message is generated only periodically during a recording or playback 
  2892. operation if the MCI_SET_POSITION_ADVISE message has been sent to the device to 
  2893. enable position advise notifications. This message is posted to the window 
  2894. handle that was specified on the MCI_SET_POSITION_ADVISE message. 
  2895.  
  2896.  
  2897. ΓòÉΓòÉΓòÉ <hidden> MM_MCIPOSITIONCHANGE - Topics ΓòÉΓòÉΓòÉ
  2898.  
  2899. Select an item: 
  2900.  
  2901. Description
  2902. Parameters
  2903. Remarks
  2904. Glossary
  2905.  
  2906.  
  2907. ΓòÉΓòÉΓòÉ 7. MCI Command Messages ΓòÉΓòÉΓòÉ
  2908.  
  2909. This section describes the media control interface command messages. 
  2910.  
  2911. All messages except system messages operate in an asynchronous mode without 
  2912. notification unless MCI_NOTIFY or MCI_WAIT is specified. These two flags are 
  2913. mutually exclusive.  If both are used, the error MCIERR_FLAGS_NOT_COMPATIBLE is 
  2914. returned. 
  2915.  
  2916. If MCI_WAIT is used, control is not returned to the caller until the command 
  2917. completes.  MCI_NOTIFY returns control to the caller and then completes the 
  2918. command.  A notification will be sent to the application if MCIERR_SUCCESS was 
  2919. returned on the call. The second parameter specified for each message is a 
  2920. pointer to a control block structure associated with that message. This pointer 
  2921. is passed in the pParam2 parameter of mciSendCommand. The following table lists 
  2922. the command messages. 
  2923.  
  2924. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2925. ΓöéCommand                  ΓöéDescription                        Γöé
  2926. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2927. ΓöéMCI_ACQUIREDEVICE        ΓöéRequests the use of the media      Γöé
  2928. Γöé                         Γöédevice.                            Γöé
  2929. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2930. ΓöéMCI_BUFFER               ΓöéAllows an application to allocate  Γöé
  2931. Γöé                         Γöé(or deallocate) buffers for use    Γöé
  2932. Γöé                         Γöéwith the audio device.             Γöé
  2933. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2934. ΓöéMCI_CAPTURE              ΓöéCauses a video device to capture   Γöé
  2935. Γöé                         Γöéthe current video image.           Γöé
  2936. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2937. ΓöéMCI_CLOSE                ΓöéCloses a device.                   Γöé
  2938. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2939. ΓöéMCI_CONNECTION           ΓöéQueries the device ID of a         Γöé
  2940. Γöé                         Γöéconnected device.                  Γöé
  2941. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2942. ΓöéMCI_CONNECTOR            ΓöéEnables or disables a connector, orΓöé
  2943. Γöé                         Γöéto query the status of a connector.Γöé
  2944. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2945. ΓöéMCI_CONNECTORINFO        ΓöéDetermines the total number of     Γöé
  2946. Γöé                         Γöéconnectors on a device, the number Γöé
  2947. Γöé                         Γöéof connectors of a specific type,  Γöé
  2948. Γöé                         Γöéthe type of each of the connectors,Γöé
  2949. Γöé                         Γöéand whether or not a particular    Γöé
  2950. Γöé                         Γöétype of connection is valid for a  Γöé
  2951. Γöé                         Γöéconnector.                         Γöé
  2952. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2953. ΓöéMCI_COPY                 ΓöéCopies data from the device elementΓöé
  2954. Γöé                         Γöéto the clipboard or a user-suppliedΓöé
  2955. Γöé                         Γöébuffer.                            Γöé
  2956. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2957. ΓöéMCI_CUE                  ΓöéSignals a device to ready itself   Γöé
  2958. Γöé                         Γöé(preroll) so that a subsequent     Γöé
  2959. Γöé                         Γöéplayback or recording operation    Γöé
  2960. Γöé                         Γöébegins with minimum delay.         Γöé
  2961. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2962. ΓöéMCI_CUT                  ΓöéRemoves data from the device       Γöé
  2963. Γöé                         Γöéelement and copies it to the       Γöé
  2964. Γöé                         Γöéclipboard or a user-supplied       Γöé
  2965. Γöé                         Γöébuffer.                            Γöé
  2966. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2967. ΓöéMCI_DEFAULT_CONNECTION   ΓöéMakes, breaks, and queries default Γöé
  2968. Γöé                         Γöéconnections between devices.       Γöé
  2969. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2970. ΓöéMCI_DELETE               ΓöéRemoves the specified range of dataΓöé
  2971. Γöé                         Γöéfrom the device element.           Γöé
  2972. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2973. ΓöéMCI_DEVICESETTINGS       ΓöéAllows a media control driver (MCD)Γöé
  2974. Γöé                         Γöéto insert custom settings pages    Γöé
  2975. Γöé                         Γöéinto a Settings notebook.          Γöé
  2976. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2977. ΓöéMCI_ESCAPE               ΓöéSends a string directly to the     Γöé
  2978. Γöé                         Γöédriver.                            Γöé
  2979. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2980. ΓöéMCI_FREEZE               ΓöéFreezes the motion of a video      Γöé
  2981. Γöé                         Γöéimage.                             Γöé
  2982. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2983. ΓöéMCI_GETDEVCAPS           ΓöéReturns static information about a Γöé
  2984. Γöé                         Γöéparticular driver.                 Γöé
  2985. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2986. ΓöéMCI_GETIMAGEBUFFER       ΓöéReads data from the image capture  Γöé
  2987. Γöé                         Γöébuffer.                            Γöé
  2988. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2989. ΓöéMCI_GETIMAGEPALETTE      ΓöéObtains a palette or color map for Γöé
  2990. Γöé                         Γöéthe current image.                 Γöé
  2991. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2992. ΓöéMCI_GETTOC               ΓöéInterrogates the device, and       Γöé
  2993. Γöé                         Γöéreturns a table of contents        Γöé
  2994. Γöé                         Γöéstructure for the currently loaded Γöé
  2995. Γöé                         Γöédisk. (CD Audio Only)              Γöé
  2996. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2997. ΓöéMCI_GROUP                ΓöéUsed to provide the appropriate    Γöé
  2998. Γöé                         Γöémessage handling for GROUP         Γöé
  2999. Γöé                         Γöécommands.  GROUP commands allow youΓöé
  3000. Γöé                         Γöéto control several multimedia      Γöé
  3001. Γöé                         Γöédevices from a single MCI command. Γöé
  3002. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3003. ΓöéMCI_INFO                 ΓöéReturns string information from a  Γöé
  3004. Γöé                         Γöémedia device.                      Γöé
  3005. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3006. ΓöéMCI_LOAD                 ΓöéSpecifies a new file or RIFF chunk Γöé
  3007. Γöé                         Γöéto be loaded into an already       Γöé
  3008. Γöé                         Γöéexisting device context.           Γöé
  3009. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3010. ΓöéMCI_MASTERAUDIO          ΓöéProvides support for setting and   Γöé
  3011. Γöé                         Γöéretrieving system-wide audio       Γöé
  3012. Γöé                         Γöécontrol parameters.                Γöé
  3013. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3014. ΓöéMCI_MIXNOTIFY            ΓöéNotifies an application of mixer   Γöé
  3015. Γöé                         Γöéattribute changes.                 Γöé
  3016. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3017. ΓöéMCI_MIXSETUP             ΓöéInforms the mixer device that the  Γöé
  3018. Γöé                         Γöéapplication wishes to read or writeΓöé
  3019. Γöé                         Γöébuffers directly and sets up the   Γöé
  3020. Γöé                         Γöédevice in the correct mode.        Γöé
  3021. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3022. ΓöéMCI_OPEN                 ΓöéOpens a logical multimedia device  Γöé
  3023. Γöé                         Γöéand creates a new device context   Γöé
  3024. Γöé                         Γöéfor use by an application.         Γöé
  3025. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3026. ΓöéMCI_PASTE                ΓöéPastes data from the clipboard or aΓöé
  3027. Γöé                         Γöéuser-supplied buffer into the      Γöé
  3028. Γöé                         Γöéspecified range of a device        Γöé
  3029. Γöé                         Γöéelement.                           Γöé
  3030. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3031. ΓöéMCI_PAUSE                ΓöéSuspends playback or recording.    Γöé
  3032. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3033. ΓöéMCI_PLAY                 ΓöéSignals the device to begin        Γöé
  3034. Γöé                         Γöétransmitting data.                 Γöé
  3035. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3036. ΓöéMCI_PUT                  ΓöéSets the source and destination    Γöé
  3037. Γöé                         Γöérectangle arrays for the           Γöé
  3038. Γöé                         Γöétransformation of the video image. Γöé
  3039. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3040. ΓöéMCI_RECORD               ΓöéStarts the device recording input  Γöé
  3041. Γöé                         Γöédata.                              Γöé
  3042. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3043. ΓöéMCI_REDO                 ΓöéRedoes the record, cut, paste, or  Γöé
  3044. Γöé                         Γöédelete operation most recently     Γöé
  3045. Γöé                         Γöéundone by MCI_UNDO.                Γöé
  3046. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3047. ΓöéMCI_RELEASEDEVICE        ΓöéReleases the exclusive use of      Γöé
  3048. Γöé                         Γöéphysical device resources by a     Γöé
  3049. Γöé                         Γöédevice context or device group.    Γöé
  3050. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3051. ΓöéMCI_RESTORE              ΓöéCauses a video device to restore   Γöé
  3052. Γöé                         Γöéthe image or bitmap.               Γöé
  3053. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3054. ΓöéMCI_RESUME               ΓöéResumes playing or recording from aΓöé
  3055. Γöé                         Γöépaused state.                      Γöé
  3056. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3057. ΓöéMCI_REWIND               ΓöéSeeks the media to the beginning   Γöé
  3058. Γöé                         Γöépoint.                             Γöé
  3059. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3060. ΓöéMCI_SAVE                 ΓöéThis message saves the current     Γöé
  3061. Γöé                         Γöéfile.                              Γöé
  3062. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3063. ΓöéMCI_SEEK                 ΓöéChanges the current media position Γöé
  3064. Γöé                         Γöéof the device.                     Γöé
  3065. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3066. ΓöéMCI_SET                  ΓöéSets device information.           Γöé
  3067. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3068. ΓöéMCI_SET_CUEPOINT         ΓöéSets run-time cue points in the    Γöé
  3069. Γöé                         Γöémedia device.                      Γöé
  3070. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3071. ΓöéMCI_SETIMAGEBUFFER       ΓöéWrites data to the image capture   Γöé
  3072. Γöé                         Γöébuffer.                            Γöé
  3073. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3074. ΓöéMCI_SETIMAGEPALETTE      ΓöéSets a palette or color map to be  Γöé
  3075. Γöé                         Γöéused for mapping images.           Γöé
  3076. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3077. ΓöéMCI_SET_POSITION_ADVISE  ΓöéEnables periodic position-change   Γöé
  3078. Γöé                         Γöémessages from the media device.    Γöé
  3079. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3080. ΓöéMCI_SET_SYNC_OFFSET      ΓöéSpecifies positional offsets for   Γöé
  3081. Γöé                         Γöédevices operating in               Γöé
  3082. Γöé                         Γöésynchronization.                   Γöé
  3083. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3084. ΓöéMCI_SETTUNER             ΓöéSets the frequency for the tuner   Γöé
  3085. Γöé                         Γöédevice.                            Γöé
  3086. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3087. ΓöéMCI_SPIN                 ΓöéSpins the player up or down.       Γöé
  3088. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3089. ΓöéMCI_STATUS               ΓöéObtains information about the      Γöé
  3090. Γöé                         Γöéstatus of a media control interfaceΓöé
  3091. Γöé                         Γöédevice.                            Γöé
  3092. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3093. ΓöéMCI_STEP                 ΓöéSteps the player one or more       Γöé
  3094. Γöé                         Γöéframes.                            Γöé
  3095. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3096. ΓöéMCI_STOP                 ΓöéStops audio or video playback or   Γöé
  3097. Γöé                         Γöérecording.                         Γöé
  3098. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3099. ΓöéMCI_SYSINFO              ΓöéReturns information about media    Γöé
  3100. Γöé                         Γöécontrol interface devices.         Γöé
  3101. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3102. ΓöéMCI_UNDO                 ΓöéUndoes the operation most recently Γöé
  3103. Γöé                         Γöéperformed by record, cut, paste, orΓöé
  3104. Γöé                         Γöédelete.                            Γöé
  3105. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3106. ΓöéMCI_UNFREEZE             ΓöéRestores motion to an area of the  Γöé
  3107. Γöé                         Γöédisplay frozen with MCI_FREEZE.    Γöé
  3108. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3109. ΓöéMCI_WHERE                ΓöéReturns the extent of the clipping Γöé
  3110. Γöé                         Γöérectangles.                        Γöé
  3111. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3112. ΓöéMCI_WINDOW               ΓöéSpecifies the window and the windowΓöé
  3113. Γöé                         Γöécharacteristics that a graphic     Γöé
  3114. Γöé                         Γöédevice should use for display.     Γöé
  3115. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3116.  
  3117.  
  3118. ΓòÉΓòÉΓòÉ 7.1. MCI_ACQUIREDEVICE ΓòÉΓòÉΓòÉ
  3119.  
  3120.  
  3121. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  3122.  
  3123.  ulParam1 (ULONG) 
  3124.     This parameter can contain any of the following flags: 
  3125.  
  3126.     MCI_NOTIFY 
  3127.             A notification message will be posted to the window specified in 
  3128.             the hwndCallback parameter of the data structure pointed to by the 
  3129.             pParam2 parameter.  The notification will be posted when the action 
  3130.             indicated by this message is completed or when an error occurs. 
  3131.  
  3132.     MCI_WAIT 
  3133.             Control is not to be returned until the action indicated by this 
  3134.             message is completed or an error occurs. 
  3135.  
  3136.     MCI_ACQUIRE_QUEUE 
  3137.             An MCI_ACQUIREDEVICE message is queued and executed as soon as 
  3138.             device resources are available. If the request can be satisfied 
  3139.             immediately, then it is not queued.  If an MCI_ACQUIREDEVICE 
  3140.             message is queued and an MCI_RELEASEDEVICE or MCI_CLOSE message is 
  3141.             sent for that instance, the queued MCI_ACQUIREDEVICE message is 
  3142.             cancelled. 
  3143.  
  3144.     MCI_EXCLUSIVE 
  3145.             Resources are to be exclusively allocated for the device instance. 
  3146.             Exclusive use of resources can be released with an 
  3147.             MCI_RELEASEDEVICE message. 
  3148.  
  3149.     MCI_EXCLUSIVE_INSTANCE 
  3150.             Acquires the device instance for exclusive use without acquiring 
  3151.             the entire device resource for exclusive use.  This flag locks the 
  3152.             device instance and prevents it from being made inactive until the 
  3153.             application sends an MCI_RELEASEDEVICE or MCI_CLOSE message. The 
  3154.             MCI_RELEASEDEVICE puts the instance back into the fully shareable 
  3155.             state. 
  3156.  
  3157.  
  3158. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  3159.  
  3160.  pParam2 (PMCI_GENERIC_PARMS) 
  3161.     A pointer to the default media control interface parameter data structure. 
  3162.  
  3163.  
  3164. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE Return Value - rc ΓòÉΓòÉΓòÉ
  3165.  
  3166.  rc (ULONG) 
  3167.     Return codes indicating success or type of failure: 
  3168.  
  3169.     MCIERR_SUCCESS 
  3170.             The function is successful. 
  3171.  
  3172.     MCIERR_INVALID_DEVICE_ID 
  3173.             The device ID is not valid. 
  3174.  
  3175.     MCIERR_DEVICE_LOCKED 
  3176.             The device is acquired for exclusive use. 
  3177.  
  3178.     MCIERR_INVALID_FLAG 
  3179.             Flag is invalid (ulParam1). 
  3180.  
  3181.     MCIERR_FLAGS_NOT_COMPATIBLE 
  3182.             Flags cannot be used together. 
  3183.  
  3184.     MCIERR_INVALID_CALLBACK_HANDLE 
  3185.             The callback handle given is not correct. 
  3186.  
  3187.  
  3188. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE - Description ΓòÉΓòÉΓòÉ
  3189.  
  3190. This message requests that the given device instance be made active.  It is 
  3191. also used to request either exclusive or exclusive instance rights for this 
  3192. instance. 
  3193.  
  3194.  ulParam1 (ULONG) 
  3195.     This parameter can contain any of the following flags: 
  3196.  
  3197.     MCI_NOTIFY 
  3198.             A notification message will be posted to the window specified in 
  3199.             the hwndCallback parameter of the data structure pointed to by the 
  3200.             pParam2 parameter.  The notification will be posted when the action 
  3201.             indicated by this message is completed or when an error occurs. 
  3202.  
  3203.     MCI_WAIT 
  3204.             Control is not to be returned until the action indicated by this 
  3205.             message is completed or an error occurs. 
  3206.  
  3207.     MCI_ACQUIRE_QUEUE 
  3208.             An MCI_ACQUIREDEVICE message is queued and executed as soon as 
  3209.             device resources are available. If the request can be satisfied 
  3210.             immediately, then it is not queued.  If an MCI_ACQUIREDEVICE 
  3211.             message is queued and an MCI_RELEASEDEVICE or MCI_CLOSE message is 
  3212.             sent for that instance, the queued MCI_ACQUIREDEVICE message is 
  3213.             cancelled. 
  3214.  
  3215.     MCI_EXCLUSIVE 
  3216.             Resources are to be exclusively allocated for the device instance. 
  3217.             Exclusive use of resources can be released with an 
  3218.             MCI_RELEASEDEVICE message. 
  3219.  
  3220.     MCI_EXCLUSIVE_INSTANCE 
  3221.             Acquires the device instance for exclusive use without acquiring 
  3222.             the entire device resource for exclusive use.  This flag locks the 
  3223.             device instance and prevents it from being made inactive until the 
  3224.             application sends an MCI_RELEASEDEVICE or MCI_CLOSE message. The 
  3225.             MCI_RELEASEDEVICE puts the instance back into the fully shareable 
  3226.             state. 
  3227.  
  3228.  pParam2 (PMCI_GENERIC_PARMS) 
  3229.     A pointer to the default media control interface parameter data structure. 
  3230.  
  3231.  rc (ULONG) 
  3232.     Return codes indicating success or type of failure: 
  3233.  
  3234.     MCIERR_SUCCESS 
  3235.             The function is successful. 
  3236.  
  3237.     MCIERR_INVALID_DEVICE_ID 
  3238.             The device ID is not valid. 
  3239.  
  3240.     MCIERR_DEVICE_LOCKED 
  3241.             The device is acquired for exclusive use. 
  3242.  
  3243.     MCIERR_INVALID_FLAG 
  3244.             Flag is invalid (ulParam1). 
  3245.  
  3246.     MCIERR_FLAGS_NOT_COMPATIBLE 
  3247.             Flags cannot be used together. 
  3248.  
  3249.     MCIERR_INVALID_CALLBACK_HANDLE 
  3250.             The callback handle given is not correct. 
  3251.  
  3252.  
  3253. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE - Remarks ΓòÉΓòÉΓòÉ
  3254.  
  3255. The application can specify exclusive access, which inhibits other applications 
  3256. from acquiring use of the device until released by the owning application. 
  3257.  
  3258. When a device is opened by an application, the physical device resource is 
  3259. acquired automatically by the newly created device instance.  If the device 
  3260. instance subsequently loses use of the physical resource, it can regain use 
  3261. later by issuing MCI_ACQUIREDEVICE. This message enables applications to 
  3262. participate in a device-sharing scheme, driven by WM_ACTIVATE message 
  3263. processing, wherein the use of physical devices generally is granted to the 
  3264. application with which the user is interacting by the application issuing 
  3265. MCI_ACQUIREDEVICE. 
  3266.  
  3267. If a defined device instance loses use of the physical device to other device 
  3268. instances, that use is regained when the other device instances are closed, 
  3269. even if MCI_ACQUIREDEVICE is not issued. 
  3270.  
  3271. When a process acquires use of a shared device that currently is in use by 
  3272. another process, the device instance is saved for the previous process. 
  3273.  
  3274. Applications receive the MM_MCIPASSDEVICE message whenever they gain or lose 
  3275. use of a device.  Use of a device is not obtained until the MM_MCIPASSDEVICE 
  3276. message is received.  This message is posted (by way of WinPostMsg) to the 
  3277. window handle specified in the hwndCallback field on the MCI_OPEN message.  If 
  3278. an invalid or no hwndCallback parameter is provided on the MCI_OPEN message, 
  3279. then no MM_MCIPASSDEVICE messages are received. 
  3280.  
  3281. If the device has been acquired exclusively by another device instance, the 
  3282. function returns MCIERR_DEVICE_LOCKED. 
  3283.  
  3284.  
  3285. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE - Related Messages ΓòÉΓòÉΓòÉ
  3286.  
  3287.      MCI_OPEN 
  3288.      MCI_RELEASEDEVICE 
  3289.  
  3290.  
  3291. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE - Example Code ΓòÉΓòÉΓòÉ
  3292.  
  3293. The following code illustrates how an application can acquire a device. 
  3294.  
  3295.  
  3296.  MCI_GENERIC_PARMS mciGenericParms;      /* Info data structure for cmd */
  3297.  USHORT   usDeviceID;                    /* Device ID                   */
  3298.  HWND     hwndMyWindow;                  /* Handle to the PM window     */
  3299.  MPARAM   mp1;                           /* Message parameter passed    */
  3300.                                             on window procedure message */
  3301.  
  3302.              /* Assign hwndCallback the handle to the PM window routine */
  3303.  
  3304.    mciGenericParms.hwndCallback =  hwndMyWindow;
  3305.  
  3306.  
  3307.              /* Acquire the device if our window is being activated. */
  3308.  
  3309.    if ((BOOL)mp1)
  3310.      {
  3311.       mciSendCommand(usDeviceID,         /* Requested device           */
  3312.                    MCI_ACQUIREDEVICE,    /* MCI acquire device message */
  3313.                    MCI_NOTIFY,           /* Flags for this message     */
  3314.                    (PVOID)&mciGenericParms,
  3315.                                          /* Parameter data structure   */
  3316.                    0);                   /* No user parameter for      */
  3317.                                          /* notification message       */
  3318.      }
  3319.  
  3320.  
  3321. ΓòÉΓòÉΓòÉ <hidden> MCI_ACQUIREDEVICE - Topics ΓòÉΓòÉΓòÉ
  3322.  
  3323. Select an item: 
  3324.  
  3325. Description
  3326. Returns
  3327. Remarks
  3328. Related Messages
  3329. Example Code
  3330. Glossary
  3331.  
  3332.  
  3333. ΓòÉΓòÉΓòÉ 7.2. MCI_BUFFER ΓòÉΓòÉΓòÉ
  3334.  
  3335.  
  3336. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  3337.  
  3338.  ulParam1 (ULONG) 
  3339.     This parameter can contain any of the following flags: 
  3340.  
  3341.     MCI_NOTIFY 
  3342.             A notification message will be posted to the window specified in 
  3343.             the hwndCallback field of the data structure pointed to by the 
  3344.             pParam2 parameter.  The notification will be posted when the action 
  3345.             indicated by this message is completed or when an error occurs. 
  3346.  
  3347.     MCI_WAIT 
  3348.             Control is not to be returned until the action indicated by this 
  3349.             message is completed or an error occurs. 
  3350.  
  3351.     MCI_ALLOCATE_MEMORY 
  3352.             Allocates memory for the mixer. 
  3353.  
  3354.     MCI_DEALLOCATE_MEMORY 
  3355.             Deallocates memory from the mixer. 
  3356.  
  3357.  
  3358. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER Parameter - pParam2 ΓòÉΓòÉΓòÉ
  3359.  
  3360.  pParam2 (PMCI_BUFFER_PARMS) 
  3361.     A pointer to an MCI_BUFFER_PARMS data structure. 
  3362.  
  3363.  
  3364. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER Return Value - rc ΓòÉΓòÉΓòÉ
  3365.  
  3366.  rc (ULONG) 
  3367.     Return codes indicating success or type of failure: 
  3368.  
  3369.     MCIERR_SUCCESS 
  3370.             If the function succeeds, 0 is returned. 
  3371.  
  3372.     MCIERR_INVALID_DEVICE_ID 
  3373.             Invalid device ID given. 
  3374.  
  3375.     MCIERR_INVALID_FLAG 
  3376.             Invalid flag specified for this command. 
  3377.  
  3378.     MCIERR_INVALID_BUFFER 
  3379.             Buffer specified in the pBufList field of the MCI_BUFFER_PARMS 
  3380.             structure is invalid. 
  3381.  
  3382.     MCIERR_INVALID_MODE 
  3383.             Command invalid for current mode. 
  3384.  
  3385.     MCIERR_OUT_OF_MEMORY 
  3386.             Memory could not be allocated. 
  3387.  
  3388.  
  3389. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER - Description ΓòÉΓòÉΓòÉ
  3390.  
  3391. This message allows an application to allocate (or deallocate) buffers for use 
  3392. with the audio device. Buffers are limited to 64K on Intel machines. 
  3393.  
  3394.  ulParam1 (ULONG) 
  3395.     This parameter can contain any of the following flags: 
  3396.  
  3397.     MCI_NOTIFY 
  3398.             A notification message will be posted to the window specified in 
  3399.             the hwndCallback field of the data structure pointed to by the 
  3400.             pParam2 parameter.  The notification will be posted when the action 
  3401.             indicated by this message is completed or when an error occurs. 
  3402.  
  3403.     MCI_WAIT 
  3404.             Control is not to be returned until the action indicated by this 
  3405.             message is completed or an error occurs. 
  3406.  
  3407.     MCI_ALLOCATE_MEMORY 
  3408.             Allocates memory for the mixer. 
  3409.  
  3410.     MCI_DEALLOCATE_MEMORY 
  3411.             Deallocates memory from the mixer. 
  3412.  
  3413.  pParam2 (PMCI_BUFFER_PARMS) 
  3414.     A pointer to an MCI_BUFFER_PARMS data structure. 
  3415.  
  3416.  rc (ULONG) 
  3417.     Return codes indicating success or type of failure: 
  3418.  
  3419.     MCIERR_SUCCESS 
  3420.             If the function succeeds, 0 is returned. 
  3421.  
  3422.     MCIERR_INVALID_DEVICE_ID 
  3423.             Invalid device ID given. 
  3424.  
  3425.     MCIERR_INVALID_FLAG 
  3426.             Invalid flag specified for this command. 
  3427.  
  3428.     MCIERR_INVALID_BUFFER 
  3429.             Buffer specified in the pBufList field of the MCI_BUFFER_PARMS 
  3430.             structure is invalid. 
  3431.  
  3432.     MCIERR_INVALID_MODE 
  3433.             Command invalid for current mode. 
  3434.  
  3435.     MCIERR_OUT_OF_MEMORY 
  3436.             Memory could not be allocated. 
  3437.  
  3438.  
  3439. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER - Remarks ΓòÉΓòÉΓòÉ
  3440.  
  3441. On input, MCI_BUFFER_PARMS should contain the number of buffers to be 
  3442. allocated, the size for each buffer, and a pointer to an array of 
  3443. MCI_MIX_BUFFER structures (one per buffer). 
  3444.  
  3445. The mixer will attempt to allocate the number of buffers and size of buffers to 
  3446. use. If the mixer cannot satisfy the entire request, it will update the 
  3447. ulNumBuffers field with the total number of buffers that it was able to 
  3448. allocate. If no memory could be allocated, MCIERR_OUT_OF_MEMORY will be 
  3449. returned. If memory has already been allocated, and the MCI_ALLOCATE_BUFFER 
  3450. flag is used, MCIERR_INVALID_MODE is returned. 
  3451.  
  3452.  
  3453. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER - Related Messages ΓòÉΓòÉΓòÉ
  3454.  
  3455.      MCI_MIXSETUP 
  3456.  
  3457.  
  3458. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER - Example Code ΓòÉΓòÉΓòÉ
  3459.  
  3460. The following example illustrates using MCI_BUFFER to allocate memory. 
  3461.  
  3462.  
  3463.  MCI_MIX_BUFFER  MyBuffers[ MAX_BUFFERS ];
  3464.  
  3465.   BufferParms.ulNumBuffers = 40;
  3466.   BufferParms.ulBufferSize = 4096;
  3467.   BufferParms.pBufList = MyBuffers;
  3468.  
  3469.   rc = mciSendCommand( usDeviceID,
  3470.                      MCI_BUFFER,
  3471.                      MCI_WAIT | MCI_ALLOCATE_MEMORY,
  3472.                      ( PVOID ) &BufferParms,
  3473.                      0 );
  3474.  
  3475.   if ( ULONG_LOWD( rc ) != MCIERR_SUCCESS )
  3476.      {
  3477.      printf( "Error allocating memory.  rc is: %d", rc );
  3478.      exit ( 1 );
  3479.      }
  3480.  
  3481.   /*  MCI driver will return the number of buffers     */
  3482.   /*  it was able to allocate.                         */
  3483.   /*  It will also return the size of the information  */
  3484.   /*  allocated with each buffer.                      */
  3485.  
  3486.   ulNumBuffers = BufferParms.ulNumBuffers;
  3487.  
  3488.   for ( ulLoop = 0; ulLoop < ulNumBuffers; ulLoop++ )
  3489.      {
  3490.      rc = mmioRead ( hmmio,
  3491.                      MyBuffers[ ulLoop ].pBuffer,
  3492.                      MyBuffers[ ulLoop ].ulBufferLength );
  3493.  
  3494.      if ( !rc )
  3495.         {
  3496.         exit( rc );
  3497.         }
  3498.      MyBuffers[ ulLoop ].ulUserParm = ulLoop;
  3499.  
  3500.      }
  3501.  
  3502.  
  3503. ΓòÉΓòÉΓòÉ <hidden> MCI_BUFFER - Topics ΓòÉΓòÉΓòÉ
  3504.  
  3505. Select an item: 
  3506.  
  3507. Description
  3508. Returns
  3509. Remarks
  3510. Related Messages
  3511. Example Code
  3512. Glossary
  3513.  
  3514.  
  3515. ΓòÉΓòÉΓòÉ 7.3. MCI_CAPTURE ΓòÉΓòÉΓòÉ
  3516.  
  3517.  
  3518. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  3519.  
  3520.  ulParam1 (ULONG) 
  3521.     This parameter can contain any of the following flags: 
  3522.  
  3523.     MCI_NOTIFY 
  3524.             A notification message will be posted to the window specified in 
  3525.             the hwndCallback parameter of the data structure pointed to by the 
  3526.             pParam2 parameter.  The notification will be posted when the action 
  3527.             indicated by this message is completed or when an error occurs. 
  3528.  
  3529.     MCI_WAIT 
  3530.             Control is not to be returned until the action indicated by this 
  3531.             message is completed or an error occurs. 
  3532.  
  3533.     MCI_CAPTURE_RECT 
  3534.             Indicates that a region of the screen to be captured is provided in 
  3535.             the rect field of the MCI_CAPTURE_PARMS structure pointed to by 
  3536.             pParam2. 
  3537.  
  3538.     MCI_CONVERT 
  3539.             Specifies that the captured image data will be converted to the 
  3540.             OS/2 bit-map format when it is saved to disk. 
  3541.  
  3542.  
  3543. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  3544.  
  3545.  pParam2 (PMCI_CAPTURE_PARMS) 
  3546.     A pointer to an MCI_CAPTURE_PARMS data structure. 
  3547.  
  3548.  
  3549. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE Return Value - rc ΓòÉΓòÉΓòÉ
  3550.  
  3551.  rc (ULONG) 
  3552.     Return codes indicating success or type of failure: 
  3553.  
  3554.     MCIERR_SUCCESS 
  3555.             MMPM/2 command completed successfully. 
  3556.  
  3557.     MCIERR_OUT_OF_MEMORY 
  3558.             System out of memory. 
  3559.  
  3560.     MCIERR_INVALID_DEVICE_ID 
  3561.             Invalid device ID given. 
  3562.  
  3563.     MCIERR_MISSING_PARAMETER 
  3564.             Missing parameter for this command. 
  3565.  
  3566.     MCIERR_DRIVER 
  3567.             Internal MMPM/2 driver error. 
  3568.  
  3569.     MCIERR_INVALID_FLAG 
  3570.             Invalid flag specified for this command. 
  3571.  
  3572.     MCIERR_UNSUPPORTED_FLAG 
  3573.             Flag not supported by this MMPM2 driver for this command. 
  3574.  
  3575.     MCIERR_INSTANCE_INACTIVE 
  3576.             The device has been opened as shareable and is currently in use by 
  3577.             another application. 
  3578.  
  3579.     MCIERR_OVLY_INVALID_RECT 
  3580.             An invalid rectangle parameter was specified. 
  3581.  
  3582.     MCIERR_OVLY_NOT_AVAILABLE 
  3583.             The requested action is not available. (For example, because video 
  3584.             has been set off.) 
  3585.  
  3586.  
  3587. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE - Description ΓòÉΓòÉΓòÉ
  3588.  
  3589. This message requests the digital video device to capture the current movie 
  3590. frame and store it as an image device element. 
  3591.  
  3592. Note:  MCI_CAPTURE captures bit maps from movies rather than hardware. See 
  3593.        MCI_GETIMAGEBUFFER for a description of how to capture from hardware 
  3594.        with a video capture card. 
  3595.  
  3596.  ulParam1 (ULONG) 
  3597.     This parameter can contain any of the following flags: 
  3598.  
  3599.     MCI_NOTIFY 
  3600.             A notification message will be posted to the window specified in 
  3601.             the hwndCallback parameter of the data structure pointed to by the 
  3602.             pParam2 parameter.  The notification will be posted when the action 
  3603.             indicated by this message is completed or when an error occurs. 
  3604.  
  3605.     MCI_WAIT 
  3606.             Control is not to be returned until the action indicated by this 
  3607.             message is completed or an error occurs. 
  3608.  
  3609.     MCI_CAPTURE_RECT 
  3610.             Indicates that a region of the screen to be captured is provided in 
  3611.             the rect field of the MCI_CAPTURE_PARMS structure pointed to by 
  3612.             pParam2. 
  3613.  
  3614.     MCI_CONVERT 
  3615.             Specifies that the captured image data will be converted to the 
  3616.             OS/2 bit-map format when it is saved to disk. 
  3617.  
  3618.  pParam2 (PMCI_CAPTURE_PARMS) 
  3619.     A pointer to an MCI_CAPTURE_PARMS data structure. 
  3620.  
  3621.  rc (ULONG) 
  3622.     Return codes indicating success or type of failure: 
  3623.  
  3624.     MCIERR_SUCCESS 
  3625.             MMPM/2 command completed successfully. 
  3626.  
  3627.     MCIERR_OUT_OF_MEMORY 
  3628.             System out of memory. 
  3629.  
  3630.     MCIERR_INVALID_DEVICE_ID 
  3631.             Invalid device ID given. 
  3632.  
  3633.     MCIERR_MISSING_PARAMETER 
  3634.             Missing parameter for this command. 
  3635.  
  3636.     MCIERR_DRIVER 
  3637.             Internal MMPM/2 driver error. 
  3638.  
  3639.     MCIERR_INVALID_FLAG 
  3640.             Invalid flag specified for this command. 
  3641.  
  3642.     MCIERR_UNSUPPORTED_FLAG 
  3643.             Flag not supported by this MMPM2 driver for this command. 
  3644.  
  3645.     MCIERR_INSTANCE_INACTIVE 
  3646.             The device has been opened as shareable and is currently in use by 
  3647.             another application. 
  3648.  
  3649.     MCIERR_OVLY_INVALID_RECT 
  3650.             An invalid rectangle parameter was specified. 
  3651.  
  3652.     MCIERR_OVLY_NOT_AVAILABLE 
  3653.             The requested action is not available. (For example, because video 
  3654.             has been set off.) 
  3655.  
  3656.  
  3657. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE - Remarks ΓòÉΓòÉΓòÉ
  3658.  
  3659. This command is not supported by all devices.  Use the MCI_GETDEVCAPS command 
  3660. to determine whether the device supports MCI_CAPTURE. 
  3661.  
  3662. Repeated capture commands overwrite the image in the device element buffer.  If 
  3663. the application wants to transfer the image data to a permanent file, it can 
  3664. use the MCI_SAVE message with the MCI_DGV_SAVE_IMAGE_FILE flag set.  If the 
  3665. application wants the image copied to its address space, it issues 
  3666. MCI_GETIMAGEBUFFER. 
  3667.  
  3668. The captured image is retained as the device element. With overlay video 
  3669. devices implemented on dual-plane video hardware, the image is captured from 
  3670. the video or image layer. 
  3671.  
  3672. The media control device can perform the following operations: 
  3673.  
  3674.      Freeze the motion temporarily, if needed, to capture the image. 
  3675.  
  3676.      Obtain image data from the device and place the data into the capture and 
  3677.       restore buffer. 
  3678.  
  3679.      Perform an "unfreeze" (if necessary) to return to the original state. 
  3680.  
  3681.       It will not convert, translate, or change the data from the internal 
  3682.       format into another format. 
  3683.  
  3684.       If no rectangle is specified, the entire video image in the video window 
  3685.       is captured. 
  3686.  
  3687.  
  3688. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE - Related Messages ΓòÉΓòÉΓòÉ
  3689.  
  3690.      MCI_GETIMAGEBUFFER 
  3691.  
  3692.  
  3693. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE - Example Code ΓòÉΓòÉΓòÉ
  3694.  
  3695. The following code illustrates how to cause a video device to capture the 
  3696. current video image and store it as an image device element. 
  3697.  
  3698.    MCI_CAPTURE_PARMS mciCaptureParms;
  3699.    USHORT  usUserParm = 0;
  3700.    ULONG   ulReturn;
  3701.  
  3702.    /* Without a rectangle */
  3703.    memset (&mciCaptureParms, 0x00, sizeof (MCI_CAPTURE_PARMS));
  3704.    mciCaptureParms.hwndCallback = hwndNotify;
  3705.    mciCaptureParms.rect       = 0;
  3706.  
  3707.    ulReturn = mciSendCommand(usDeviceID, MCI_CAPTURE,
  3708.                   MCI_WAIT,
  3709.                   (PVOID)&mciCaptureParms,
  3710.                   usUserParm);
  3711.  
  3712.    /* With a rectangle */
  3713.    memset (&mciCaptureParms, 0x00, sizeof (MCI_CAPTURE_PARMS));
  3714.    mciCaptureParms.hwndCallback = hwndNotify;
  3715.    mciCaptureParms.rect.xLeft   = ulX1;
  3716.    mciCaptureParms.rect.yBottom = ulY1;
  3717.    mciCaptureParms.rect.xRight  = ulX2;
  3718.    mciCaptureParms.rect.yTop    = ulY2;
  3719.  
  3720.  
  3721.    ulReturn = mciSendCommand(usDeviceID, MCI_CAPTURE,
  3722.                   MCI_WAIT | MCI_CAPTURE_RECT,
  3723.                   (PVOID)&mciCaptureParms,
  3724.                   usUserParm);
  3725.  
  3726.  
  3727. ΓòÉΓòÉΓòÉ <hidden> MCI_CAPTURE - Topics ΓòÉΓòÉΓòÉ
  3728.  
  3729. Select an item: 
  3730.  
  3731. Description
  3732. Returns
  3733. Remarks
  3734. Related Messages
  3735. Example Code
  3736. Glossary
  3737.  
  3738.  
  3739. ΓòÉΓòÉΓòÉ 7.4. MCI_CLOSE ΓòÉΓòÉΓòÉ
  3740.  
  3741.  
  3742. ΓòÉΓòÉΓòÉ <hidden> MCI_CLOSE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  3743.  
  3744.  ulParam1 (ULONG) 
  3745.     This parameter can contain any of the following flags: 
  3746.  
  3747.     MCI_NOTIFY 
  3748.             A notification message will be posted to the window specified in 
  3749.             the hwndCallback parameter of the data structure pointed to by the 
  3750.             pParam2 parameter.  The notification will be posted when the action 
  3751.             indicated by this message is completed or when an error occurs. 
  3752.  
  3753.     MCI_WAIT 
  3754.             Control is not to be returned until the action indicated by this 
  3755.             message is completed or an error occurs. 
  3756.  
  3757.     MCI_CLOSE_EXIT 
  3758.             This flag is recognized and accepted by media control drivers 
  3759.             (MCDs); however, it should only be sent by the Media Device Manager 
  3760.             (MDM).  This flag informs the MCD that this particular close 
  3761.             operation is coming from an exit list routine.  When an MCD 
  3762.             receives this, it will terminate in the usual way.  All other 
  3763.             threads have been terminated.  When this flag is received, the MCD 
  3764.             must assume that the current thread is the only thread in its 
  3765.             process. 
  3766.  
  3767.  
  3768. ΓòÉΓòÉΓòÉ <hidden> MCI_CLOSE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  3769.  
  3770.  pParam2 (PMCI_GENERIC_PARMS) 
  3771.     A pointer to a default media control interface parameter data structure. 
  3772.  
  3773.  
  3774. ΓòÉΓòÉΓòÉ <hidden> MCI_CLOSE Return Value - rc ΓòÉΓòÉΓòÉ
  3775.  
  3776.  rc (ULONG) 
  3777.     Return codes indicating success or type of failure: 
  3778.  
  3779.     MCIERR_SUCCESS 
  3780.             MMPM/2 command completed successfully. 
  3781.  
  3782.     MCIERR_OUT_OF_MEMORY 
  3783.             System out of memory. 
  3784.  
  3785.     MCIERR_INVALID_DEVICE_ID 
  3786.             Invalid device ID given. 
  3787.  
  3788.     MCIERR_MISSING_PARAMETER 
  3789.             Missing parameter for this command. 
  3790.  
  3791.     MCIERR_DRIVER 
  3792.             Internal MMPM driver error. 
  3793.  
  3794.     MCIERR_INVALID_FLAG 
  3795.             Invalid flag specified for this command. 
  3796.  
  3797.  
  3798. ΓòÉΓòÉΓòÉ <hidden> MCI_CLOSE - Description ΓòÉΓòÉΓòÉ
  3799.  
  3800. This message requests that the current media device instance be closed and all 
  3801. resources associated with it be released. 
  3802.  
  3803.  ulParam1 (ULONG) 
  3804.     This parameter can contain any of the following flags: 
  3805.  
  3806.     MCI_NOTIFY 
  3807.             A notification message will be posted to the window specified in 
  3808.             the hwndCallback parameter of the data structure pointed to by the 
  3809.             pParam2 parameter.  The notification will be posted when the action 
  3810.             indicated by this message is completed or when an error occurs. 
  3811.  
  3812.     MCI_WAIT 
  3813.             Control is not to be returned until the action indicated by this 
  3814.             message is completed or an error occurs. 
  3815.  
  3816.     MCI_CLOSE_EXIT 
  3817.             This flag is recognized and accepted by media control drivers 
  3818.             (MCDs); however, it should only be sent by the Media Device Manager 
  3819.             (MDM).  This flag informs the MCD that this particular close 
  3820.             operation is coming from an exit list routine.  When an MCD 
  3821.             receives this, it will terminate in the usual way.  All other 
  3822.             threads have been terminated.  When this flag is received, the MCD 
  3823.             must assume that the current thread is the only thread in its 
  3824.             process. 
  3825.  
  3826.  pParam2 (PMCI_GENERIC_PARMS) 
  3827.     A pointer to a default media control interface parameter data structure. 
  3828.  
  3829.  rc (ULONG) 
  3830.     Return codes indicating success or type of failure: 
  3831.  
  3832.     MCIERR_SUCCESS 
  3833.             MMPM/2 command completed successfully. 
  3834.  
  3835.     MCIERR_OUT_OF_MEMORY 
  3836.             System out of memory. 
  3837.  
  3838.     MCIERR_INVALID_DEVICE_ID 
  3839.             Invalid device ID given. 
  3840.  
  3841.     MCIERR_MISSING_PARAMETER 
  3842.             Missing parameter for this command. 
  3843.  
  3844.     MCIERR_DRIVER 
  3845.             Internal MMPM driver error. 
  3846.  
  3847.     MCIERR_INVALID_FLAG 
  3848.             Invalid flag specified for this command. 
  3849.  
  3850.  
  3851. ΓòÉΓòÉΓòÉ <hidden> MCI_CLOSE - Example Code ΓòÉΓòÉΓòÉ
  3852.  
  3853. The following code illustrates how to close a device context. 
  3854.  
  3855.    USHORT usDeviceID;                       /* Device ID              */
  3856.    MCI_GENERIC_PARMS mciGenericParms;       /* Generic message
  3857.                                                parms structure        */
  3858.  
  3859.                                             /* Close a device context */
  3860.    mciSendCommand( usDeviceID,              /* Device ID to close     */
  3861.                    MCI_CLOSE,               /* MCI close message      */
  3862.                    MCI_WAIT,                /* Flag for this message  */
  3863.                    (PVOID) &mciGenericParms,/* Data structure         */
  3864.                    0);                      /* No user parameter      */
  3865.  
  3866.  
  3867. ΓòÉΓòÉΓòÉ <hidden> MCI_CLOSE - Topics ΓòÉΓòÉΓòÉ
  3868.  
  3869. Select an item: 
  3870.  
  3871. Description
  3872. Returns
  3873. Example Code
  3874. Glossary
  3875.  
  3876.  
  3877. ΓòÉΓòÉΓòÉ 7.5. MCI_CONNECTION ΓòÉΓòÉΓòÉ
  3878.  
  3879.  
  3880. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  3881.  
  3882.  ulParam1 (ULONG) 
  3883.     This parameter can contain any of the following flags: 
  3884.  
  3885.     MCI_NOTIFY 
  3886.             A notification message will be posted to the window specified in 
  3887.             the hwndCallback parameter of the data structure pointed to by the 
  3888.             pParam2 parameter.  The notification will be posted when the action 
  3889.             indicated by this message is completed or when an error occurs. 
  3890.  
  3891.     MCI_WAIT 
  3892.             Control is not to be returned until the action indicated by this 
  3893.             message is completed or an error occurs. 
  3894.  
  3895.     MCI_QUERY_CONNECTION 
  3896.             Indicates that the media driver must return the device ID of the 
  3897.             connected device in the usToDeviceID field.  The MCI_CONNECTOR_TYPE 
  3898.             and MCI_CONNECTOR_INDEX flags specify parameters that identify the 
  3899.             desired connector.  Once the device ID is obtained, an application 
  3900.             can send messages directly to the connected device to obtain 
  3901.             advanced functionality not directly provided by the original 
  3902.             device.  If no connection exists, MCIERR_NO_CONNECTION is returned. 
  3903.  
  3904.     MCI_CONNECTOR_TYPE 
  3905.             Indicates that the ulConnectorType field specifies a connector type 
  3906.             for the primary device.  When this flag is used, the 
  3907.             ulConnectorIndex field is interpreted as a relative index rather 
  3908.             than an absolute index.  The following connector types are 
  3909.             currently defined: 
  3910.  
  3911.             MCI_MIDI_STREAM_CONNECTOR 
  3912.                     Digital input or output for the sequencer device.  This 
  3913.                     data typically is streamed to an amplifier mixer device. 
  3914.  
  3915.             MCI_CD_STREAM_CONNECTOR 
  3916.                     Digital output for a CD audio device capable of reading the 
  3917.                     data directly off a disc.  The data typically is streamed 
  3918.                     to an amplifier mixer device. 
  3919.  
  3920.             MCI_WAVE_STREAM_CONNECTOR 
  3921.                     Digital input or output for the waveform audio device.  The 
  3922.                     data typically is streamed to an amplifier mixer device. 
  3923.  
  3924.             MCI_XA_STREAM_CONNECTOR 
  3925.                     Digital output for the CD XA device.  The data typically is 
  3926.                     streamed to an amplifier mixer device. 
  3927.  
  3928.             MCI_AMP_STREAM_CONNECTOR 
  3929.                     Digital input or output for an amplifier mixer device. 
  3930.  
  3931.             MCI_HEADPHONES_CONNECTOR 
  3932.                     The connector on the device that is typically used to 
  3933.                     attach headphones to the device. 
  3934.  
  3935.             MCI_SPEAKERS_CONNECTOR 
  3936.                     The connector on the device that is typically used to 
  3937.                     attach speakers to the device. 
  3938.  
  3939.             MCI_MICROPHONE_CONNECTOR 
  3940.                     The connector on the device that is typically used to 
  3941.                     attach a microphone to the device. 
  3942.  
  3943.             MCI_LINE_IN_CONNECTOR 
  3944.                     The connector on the device that is typically used to 
  3945.                     provide line level input to the device. 
  3946.  
  3947.             MCI_LINE_OUT_CONNECTOR 
  3948.                     The connector on the device that is typically used to 
  3949.                     provide line level output from the device. 
  3950.  
  3951.             MCI_VIDEO_IN_CONNECTOR 
  3952.                     The connector on the device that is typically used to 
  3953.                     provide video input to the device. 
  3954.  
  3955.             MCI_VIDEO_OUT_CONNECTOR 
  3956.                     The connector on the device that is typically used to 
  3957.                     provide video output from the device. 
  3958.  
  3959.             MCI_UNIVERSAL_CONNECTOR 
  3960.                     A connector on a device that does not fall into any of the 
  3961.                     other categories.  This connector can be used to access 
  3962.                     device-dependent function.  The manufacturer of the device 
  3963.                     should define the exact use of this connector. 
  3964.  
  3965.     MCI_CONNECTOR_INDEX 
  3966.             Indicates that the ulConnectorIndex field contains the connector 
  3967.             index for the primary device.  If this flag is not specified then 
  3968.             an index of 1 is assumed. 
  3969.  
  3970.     MCI_CONNECTOR_ALIAS 
  3971.             Indicates that the pszAlias field contains an alias for the device 
  3972.             instance connected to the specified connector.  If the alias 
  3973.             already exists for another device, the error MCIERR_DUPLICATE_ALIAS 
  3974.             is returned. If the connected to device already has an alias, the 
  3975.             error MCIERR_CANNOT_ADD_ALIAS is returned.  The primary purpose of 
  3976.             this function is to permit access to connected devices through the 
  3977.             string interface. 
  3978.  
  3979.  
  3980. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION Parameter - pParam2 ΓòÉΓòÉΓòÉ
  3981.  
  3982.  pParam2 (PMCI_CONNECTION_PARMS) 
  3983.     A pointer to the MCI_CONNECTION_PARMS data structure. 
  3984.  
  3985.  
  3986. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION Return Value - rc ΓòÉΓòÉΓòÉ
  3987.  
  3988.  rc (ULONG) 
  3989.     Return codes indicating success or type of failure: 
  3990.  
  3991.     MCIERR_SUCCESS 
  3992.             The function is successful. 
  3993.  
  3994.     MCIERR_ALREADY_CONNECTED 
  3995.             A connection already exists for the specified connector. 
  3996.  
  3997.     MCIERR_INVALID_CONNECTION 
  3998.             Connection between the specified connection types is invalid. 
  3999.  
  4000.     MCIERR_CANNOT_ADD_ALIAS 
  4001.             The alias was not added. 
  4002.  
  4003.     MCIERR_DUPLICATE_ALIAS 
  4004.             The alias already exists. 
  4005.  
  4006.     MCIERR_NO_CONNECTION 
  4007.             No connection exists for the queried connector. 
  4008.  
  4009.     MCIERR_INVALID_DEVICE_ID 
  4010.             The device ID is not valid. 
  4011.  
  4012.     MCIERR_INVALID_DEVICE_ORDINAL 
  4013.             The device ordinal given is invalid. 
  4014.  
  4015.     MCIERR_MISSING_FLAG 
  4016.             A required flag is missing. 
  4017.  
  4018.     MCIERR_UNSUPPORTED_CONN_TYPE 
  4019.             This device does not support the given connector type. 
  4020.  
  4021.     MCIERR_INVALID_CONNECTOR_TYPE 
  4022.             The given connector type is invalid. 
  4023.  
  4024.     MCIERR_INVALID_CONNECTOR_INDEX 
  4025.             Invalid connector index given. 
  4026.  
  4027.     MCIERR_MISSING_PARAMETER 
  4028.             Required parameter is missing. 
  4029.  
  4030.     MCIERR_FLAGS_NOT_COMPATIBLE 
  4031.             Flags cannot be used together. 
  4032.  
  4033.  
  4034. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION - Description ΓòÉΓòÉΓòÉ
  4035.  
  4036. This message requests the device ID of a connected device instance.  An alias 
  4037. also can be assigned to the connected device to facilitate the sending of 
  4038. string commands to that device. 
  4039.  
  4040.  ulParam1 (ULONG) 
  4041.     This parameter can contain any of the following flags: 
  4042.  
  4043.     MCI_NOTIFY 
  4044.             A notification message will be posted to the window specified in 
  4045.             the hwndCallback parameter of the data structure pointed to by the 
  4046.             pParam2 parameter.  The notification will be posted when the action 
  4047.             indicated by this message is completed or when an error occurs. 
  4048.  
  4049.     MCI_WAIT 
  4050.             Control is not to be returned until the action indicated by this 
  4051.             message is completed or an error occurs. 
  4052.  
  4053.     MCI_QUERY_CONNECTION 
  4054.             Indicates that the media driver must return the device ID of the 
  4055.             connected device in the usToDeviceID field.  The MCI_CONNECTOR_TYPE 
  4056.             and MCI_CONNECTOR_INDEX flags specify parameters that identify the 
  4057.             desired connector.  Once the device ID is obtained, an application 
  4058.             can send messages directly to the connected device to obtain 
  4059.             advanced functionality not directly provided by the original 
  4060.             device.  If no connection exists, MCIERR_NO_CONNECTION is returned. 
  4061.  
  4062.     MCI_CONNECTOR_TYPE 
  4063.             Indicates that the ulConnectorType field specifies a connector type 
  4064.             for the primary device.  When this flag is used, the 
  4065.             ulConnectorIndex field is interpreted as a relative index rather 
  4066.             than an absolute index.  The following connector types are 
  4067.             currently defined: 
  4068.  
  4069.             MCI_MIDI_STREAM_CONNECTOR 
  4070.                     Digital input or output for the sequencer device.  This 
  4071.                     data typically is streamed to an amplifier mixer device. 
  4072.  
  4073.             MCI_CD_STREAM_CONNECTOR 
  4074.                     Digital output for a CD audio device capable of reading the 
  4075.                     data directly off a disc.  The data typically is streamed 
  4076.                     to an amplifier mixer device. 
  4077.  
  4078.             MCI_WAVE_STREAM_CONNECTOR 
  4079.                     Digital input or output for the waveform audio device.  The 
  4080.                     data typically is streamed to an amplifier mixer device. 
  4081.  
  4082.             MCI_XA_STREAM_CONNECTOR 
  4083.                     Digital output for the CD XA device.  The data typically is 
  4084.                     streamed to an amplifier mixer device. 
  4085.  
  4086.             MCI_AMP_STREAM_CONNECTOR 
  4087.                     Digital input or output for an amplifier mixer device. 
  4088.  
  4089.             MCI_HEADPHONES_CONNECTOR 
  4090.                     The connector on the device that is typically used to 
  4091.                     attach headphones to the device. 
  4092.  
  4093.             MCI_SPEAKERS_CONNECTOR 
  4094.                     The connector on the device that is typically used to 
  4095.                     attach speakers to the device. 
  4096.  
  4097.             MCI_MICROPHONE_CONNECTOR 
  4098.                     The connector on the device that is typically used to 
  4099.                     attach a microphone to the device. 
  4100.  
  4101.             MCI_LINE_IN_CONNECTOR 
  4102.                     The connector on the device that is typically used to 
  4103.                     provide line level input to the device. 
  4104.  
  4105.             MCI_LINE_OUT_CONNECTOR 
  4106.                     The connector on the device that is typically used to 
  4107.                     provide line level output from the device. 
  4108.  
  4109.             MCI_VIDEO_IN_CONNECTOR 
  4110.                     The connector on the device that is typically used to 
  4111.                     provide video input to the device. 
  4112.  
  4113.             MCI_VIDEO_OUT_CONNECTOR 
  4114.                     The connector on the device that is typically used to 
  4115.                     provide video output from the device. 
  4116.  
  4117.             MCI_UNIVERSAL_CONNECTOR 
  4118.                     A connector on a device that does not fall into any of the 
  4119.                     other categories.  This connector can be used to access 
  4120.                     device-dependent function.  The manufacturer of the device 
  4121.                     should define the exact use of this connector. 
  4122.  
  4123.     MCI_CONNECTOR_INDEX 
  4124.             Indicates that the ulConnectorIndex field contains the connector 
  4125.             index for the primary device.  If this flag is not specified then 
  4126.             an index of 1 is assumed. 
  4127.  
  4128.     MCI_CONNECTOR_ALIAS 
  4129.             Indicates that the pszAlias field contains an alias for the device 
  4130.             instance connected to the specified connector.  If the alias 
  4131.             already exists for another device, the error MCIERR_DUPLICATE_ALIAS 
  4132.             is returned. If the connected to device already has an alias, the 
  4133.             error MCIERR_CANNOT_ADD_ALIAS is returned.  The primary purpose of 
  4134.             this function is to permit access to connected devices through the 
  4135.             string interface. 
  4136.  
  4137.  pParam2 (PMCI_CONNECTION_PARMS) 
  4138.     A pointer to the MCI_CONNECTION_PARMS data structure. 
  4139.  
  4140.  rc (ULONG) 
  4141.     Return codes indicating success or type of failure: 
  4142.  
  4143.     MCIERR_SUCCESS 
  4144.             The function is successful. 
  4145.  
  4146.     MCIERR_ALREADY_CONNECTED 
  4147.             A connection already exists for the specified connector. 
  4148.  
  4149.     MCIERR_INVALID_CONNECTION 
  4150.             Connection between the specified connection types is invalid. 
  4151.  
  4152.     MCIERR_CANNOT_ADD_ALIAS 
  4153.             The alias was not added. 
  4154.  
  4155.     MCIERR_DUPLICATE_ALIAS 
  4156.             The alias already exists. 
  4157.  
  4158.     MCIERR_NO_CONNECTION 
  4159.             No connection exists for the queried connector. 
  4160.  
  4161.     MCIERR_INVALID_DEVICE_ID 
  4162.             The device ID is not valid. 
  4163.  
  4164.     MCIERR_INVALID_DEVICE_ORDINAL 
  4165.             The device ordinal given is invalid. 
  4166.  
  4167.     MCIERR_MISSING_FLAG 
  4168.             A required flag is missing. 
  4169.  
  4170.     MCIERR_UNSUPPORTED_CONN_TYPE 
  4171.             This device does not support the given connector type. 
  4172.  
  4173.     MCIERR_INVALID_CONNECTOR_TYPE 
  4174.             The given connector type is invalid. 
  4175.  
  4176.     MCIERR_INVALID_CONNECTOR_INDEX 
  4177.             Invalid connector index given. 
  4178.  
  4179.     MCIERR_MISSING_PARAMETER 
  4180.             Required parameter is missing. 
  4181.  
  4182.     MCIERR_FLAGS_NOT_COMPATIBLE 
  4183.             Flags cannot be used together. 
  4184.  
  4185.  
  4186. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION - Remarks ΓòÉΓòÉΓòÉ
  4187.  
  4188. It is recommended that all applications refer to connectors using the 
  4189. MCI_CONNECTOR_TYPE flag.  This provides device independence from differences in 
  4190. connector numbering for various hardware devices.  Additionally, the 
  4191. MCI_CONNECTOR_INDEX flag can be used to address different connectors of the 
  4192. same type. 
  4193.  
  4194. If only the MCI_CONNECTOR_INDEX flag is used, the referenced connector is 
  4195. device dependent.  The connector type of a particular connector index, as well 
  4196. as the number of connectors, can be retrieved using the MCI_CONNECTORINFO or 
  4197. MCI_SYSINFO messages. 
  4198.  
  4199. For a list of connector types which are supported by various device types, see 
  4200. the Remarks section for MCI_CONNECTORINFO. 
  4201.  
  4202.  
  4203. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION - Default Processing ΓòÉΓòÉΓòÉ
  4204.  
  4205. If MCI_CONNECTOR_INDEX is not specified, the connector number defaults to 1. 
  4206. If MCI_CONNECTOR_TYPE is not specified, then an absolute connector number is 
  4207. assumed. 
  4208.  
  4209.  
  4210. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION - Related Messages ΓòÉΓòÉΓòÉ
  4211.  
  4212.      MCI_CONNECTOR 
  4213.      MCI_CONNECTORINFO 
  4214.  
  4215.  
  4216. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION - Example Code ΓòÉΓòÉΓòÉ
  4217.  
  4218. The following code illustrates how to query the device ID of the ampmix device, 
  4219. which is consuming the digital audio data stream from a waveaudio device. 
  4220.  
  4221.  
  4222.    USHORT                     usWaveDeviceID;
  4223.    USHORT                     usAmpDeviceID;
  4224.    MCI_CONNECTION_PARMS       connectionparms;
  4225.  
  4226.    connectionparms.ulConnectorType = MCI_WAVE_STREAM_CONNECTOR;
  4227.  
  4228.                                       /* Get the Amp/Mixer device ID */
  4229.  
  4230.    mciSendCommand ( usWaveDeviceID,           /* WaveAudio device ID */
  4231.       MCI_CONNECTION,                         /* CONNECTION message  */
  4232.       MCI_QUERY_CONNECTION | MCI_WAIT,        /* Flags for this msg  */
  4233.              (PVOID) &connectionparms,        /* Data structure      */
  4234.               0 );                            /* No user parameter   */
  4235.  
  4236.    usAmpDeviceID = connectionparms.usToDeviceID;
  4237.                                               /* Device ID amp mixer */
  4238.  
  4239.  
  4240. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTION - Topics ΓòÉΓòÉΓòÉ
  4241.  
  4242. Select an item: 
  4243.  
  4244. Description
  4245. Returns
  4246. Remarks
  4247. Default Processing
  4248. Related Messages
  4249. Example Code
  4250. Glossary
  4251.  
  4252.  
  4253. ΓòÉΓòÉΓòÉ 7.6. MCI_CONNECTOR ΓòÉΓòÉΓòÉ
  4254.  
  4255.  
  4256. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  4257.  
  4258.  ulParam1 (ULONG) 
  4259.     This parameter can contain any of the following flags: 
  4260.  
  4261.     MCI_NOTIFY 
  4262.             A notification message will be posted to the window specified in 
  4263.             the hwndCallback parameter of the data structure pointed to by the 
  4264.             pParam2 parameter.  The notification will be posted when the action 
  4265.             indicated by this message is completed or when an error occurs. 
  4266.  
  4267.     MCI_WAIT 
  4268.             Control is not to be returned until the action indicated by this 
  4269.             message is completed or an error occurs. 
  4270.  
  4271.     MCI_ENABLE_CONNECTOR 
  4272.             Enables input or output through the specified connector. 
  4273.  
  4274.     MCI_DISABLE_CONNECTOR 
  4275.             Disables input or output through the specified connector. 
  4276.  
  4277.     MCI_QUERY_CONNECTOR_STATUS 
  4278.             Queries the status of the specified connector and returns the 
  4279.             result in the ulReturn field of the parameter data structure 
  4280.             pointed to by pParam2.  The possible states are enabled or 
  4281.             disabled. 
  4282.  
  4283.     MCI_CONNECTOR_TYPE 
  4284.             Indicates that the connector type (ulConnectorType field) for the 
  4285.             primary device is to be used for the query.  When this flag is 
  4286.             used, the ulConnectorIndex field is interpreted as a relative index 
  4287.             rather than an absolute index.  The following connector types are 
  4288.             currently defined: 
  4289.  
  4290.             MCI_MIDI_STREAM_CONNECTOR 
  4291.                     Digital input or output for the sequencer device.  This 
  4292.                     data typically is streamed to an amplifier mixer device. 
  4293.  
  4294.             MCI_CD_STREAM_CONNECTOR 
  4295.                     Digital output for a CD audio device capable of reading the 
  4296.                     data directly off a disc.  The data typically is streamed 
  4297.                     to an amplifier mixer device. 
  4298.  
  4299.             MCI_WAVE_STREAM_CONNECTOR 
  4300.                     Digital input or output for the waveform audio device.  The 
  4301.                     data typically is streamed to an amplifier mixer device. 
  4302.  
  4303.                     This connector type is not supported by the digital video 
  4304.                     MCD. 
  4305.  
  4306.             MCI_XA_STREAM_CONNECTOR 
  4307.                     Digital output for the CD XA device.  The data typically is 
  4308.                     streamed to an amplifier mixer device. 
  4309.  
  4310.             MCI_AMP_STREAM_CONNECTOR 
  4311.                     Digital input or output for an amplifier mixer device. 
  4312.  
  4313.             MCI_HEADPHONES_CONNECTOR 
  4314.                     The connector on the device that is typically used to 
  4315.                     attach headphones to the device. 
  4316.  
  4317.             MCI_SPEAKERS_CONNECTOR 
  4318.                     The connector on the device that is typically used to 
  4319.                     attach speakers to the device. 
  4320.  
  4321.             MCI_MICROPHONE_CONNECTOR 
  4322.                     The connector on the device that is typically used to 
  4323.                     attach a microphone to the device. 
  4324.  
  4325.             MCI_LINE_IN_CONNECTOR 
  4326.                     The connector on the device that is typically used to 
  4327.                     provide line level input to the device. 
  4328.  
  4329.             MCI_LINE_OUT_CONNECTOR 
  4330.                     The connector on the device that is typically used to 
  4331.                     provide line level output from the device. 
  4332.  
  4333.             MCI_AUDIO_IN_CONNECTOR 
  4334.                     The connector on the device that is typically used to 
  4335.                     provide audio input to the device. 
  4336.  
  4337.             MCI_AUDIO_OUT_CONNECTOR 
  4338.                     The connector on the device that is typically used to 
  4339.                     provide audio output from the device. 
  4340.  
  4341.             MCI_VIDEO_IN_CONNECTOR 
  4342.                     The connector on the device that is typically used to 
  4343.                     provide video input to the device. 
  4344.  
  4345.             MCI_VIDEO_OUT_CONNECTOR 
  4346.                     The connector on the device that is typically used to 
  4347.                     provide video output from the device. 
  4348.  
  4349.             MCI_UNIVERSAL_CONNECTOR 
  4350.                     A connector on a device that does not fall into any of the 
  4351.                     other categories.  This connector type can be used to 
  4352.                     access a device-dependent function.  The manufacturer of 
  4353.                     the device should define the exact use of this connector. 
  4354.  
  4355.     MCI_CONNECTOR_INDEX 
  4356.             Indicates that the ulConnectorIndex field contains the connector 
  4357.             index for the primary device.  If this flag is not specified then 
  4358.             an index of 1 is assumed. 
  4359.  
  4360.  
  4361. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR Parameter - pParam2 ΓòÉΓòÉΓòÉ
  4362.  
  4363.  pParam2 (PMCI_CONNECTOR_PARMS) 
  4364.     A pointer to the MCI_CONNECTOR_PARMS data structure. 
  4365.  
  4366.  
  4367. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR Return Value - rc ΓòÉΓòÉΓòÉ
  4368.  
  4369.  rc (ULONG) 
  4370.     Return codes indicating success or type of failure: 
  4371.  
  4372.     MCIERR_SUCCESS 
  4373.             MMPM/2 command completed successfully. 
  4374.  
  4375.     MCIERR_OUT_OF_MEMORY 
  4376.             System out of memory. 
  4377.  
  4378.     MCIERR_INVALID_DEVICE_ID 
  4379.             Invalid device ID given. 
  4380.  
  4381.     MCIERR_MISSING_PARAMETER 
  4382.             Missing parameter for this command. 
  4383.  
  4384.     MCIERR_DRIVER 
  4385.             Internal MMPM/2 driver error. 
  4386.  
  4387.     MCIERR_INVALID_FLAG 
  4388.             Invalid flag specified for this command. 
  4389.  
  4390.     MCIERR_MISSING_FLAG 
  4391.             Flag missing for this MMPM/2 command. 
  4392.  
  4393.     MCIERR_FLAGS_NOT_COMPATIBLE 
  4394.             Flags not compatible. 
  4395.  
  4396.     MCIERR_INSTANCE_INACTIVE 
  4397.             Instance inactive. 
  4398.  
  4399.     MCIERR_INVALID_CONNECTOR_INDEX 
  4400.             Invalid connector index. 
  4401.  
  4402.     MCIERR_INVALID_CONNECTOR_TYPE 
  4403.             Invalid connector type given. 
  4404.  
  4405.     MCIERR_UNSUPPORTED_CONN_TYPE 
  4406.             Connector type is not supported by this device. 
  4407.  
  4408.     MCIERR_CANNOT_MODIFY_CONNECTOR 
  4409.             Cannot enable or disable this connector. 
  4410.  
  4411.  
  4412. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR - Description ΓòÉΓòÉΓòÉ
  4413.  
  4414. This message is used to enable, disable or query the status of a particular 
  4415. connector for a device instance.  The connector can be specified either 
  4416. absolutely or as a relative offset within a specified connector type. 
  4417.  
  4418.  ulParam1 (ULONG) 
  4419.     This parameter can contain any of the following flags: 
  4420.  
  4421.     MCI_NOTIFY 
  4422.             A notification message will be posted to the window specified in 
  4423.             the hwndCallback parameter of the data structure pointed to by the 
  4424.             pParam2 parameter.  The notification will be posted when the action 
  4425.             indicated by this message is completed or when an error occurs. 
  4426.  
  4427.     MCI_WAIT 
  4428.             Control is not to be returned until the action indicated by this 
  4429.             message is completed or an error occurs. 
  4430.  
  4431.     MCI_ENABLE_CONNECTOR 
  4432.             Enables input or output through the specified connector. 
  4433.  
  4434.     MCI_DISABLE_CONNECTOR 
  4435.             Disables input or output through the specified connector. 
  4436.  
  4437.     MCI_QUERY_CONNECTOR_STATUS 
  4438.             Queries the status of the specified connector and returns the 
  4439.             result in the ulReturn field of the parameter data structure 
  4440.             pointed to by pParam2.  The possible states are enabled or 
  4441.             disabled. 
  4442.  
  4443.     MCI_CONNECTOR_TYPE 
  4444.             Indicates that the connector type (ulConnectorType field) for the 
  4445.             primary device is to be used for the query.  When this flag is 
  4446.             used, the ulConnectorIndex field is interpreted as a relative index 
  4447.             rather than an absolute index.  The following connector types are 
  4448.             currently defined: 
  4449.  
  4450.             MCI_MIDI_STREAM_CONNECTOR 
  4451.                     Digital input or output for the sequencer device.  This 
  4452.                     data typically is streamed to an amplifier mixer device. 
  4453.  
  4454.             MCI_CD_STREAM_CONNECTOR 
  4455.                     Digital output for a CD audio device capable of reading the 
  4456.                     data directly off a disc.  The data typically is streamed 
  4457.                     to an amplifier mixer device. 
  4458.  
  4459.             MCI_WAVE_STREAM_CONNECTOR 
  4460.                     Digital input or output for the waveform audio device.  The 
  4461.                     data typically is streamed to an amplifier mixer device. 
  4462.  
  4463.                     This connector type is not supported by the digital video 
  4464.                     MCD. 
  4465.  
  4466.             MCI_XA_STREAM_CONNECTOR 
  4467.                     Digital output for the CD XA device.  The data typically is 
  4468.                     streamed to an amplifier mixer device. 
  4469.  
  4470.             MCI_AMP_STREAM_CONNECTOR 
  4471.                     Digital input or output for an amplifier mixer device. 
  4472.  
  4473.             MCI_HEADPHONES_CONNECTOR 
  4474.                     The connector on the device that is typically used to 
  4475.                     attach headphones to the device. 
  4476.  
  4477.             MCI_SPEAKERS_CONNECTOR 
  4478.                     The connector on the device that is typically used to 
  4479.                     attach speakers to the device. 
  4480.  
  4481.             MCI_MICROPHONE_CONNECTOR 
  4482.                     The connector on the device that is typically used to 
  4483.                     attach a microphone to the device. 
  4484.  
  4485.             MCI_LINE_IN_CONNECTOR 
  4486.                     The connector on the device that is typically used to 
  4487.                     provide line level input to the device. 
  4488.  
  4489.             MCI_LINE_OUT_CONNECTOR 
  4490.                     The connector on the device that is typically used to 
  4491.                     provide line level output from the device. 
  4492.  
  4493.             MCI_AUDIO_IN_CONNECTOR 
  4494.                     The connector on the device that is typically used to 
  4495.                     provide audio input to the device. 
  4496.  
  4497.             MCI_AUDIO_OUT_CONNECTOR 
  4498.                     The connector on the device that is typically used to 
  4499.                     provide audio output from the device. 
  4500.  
  4501.             MCI_VIDEO_IN_CONNECTOR 
  4502.                     The connector on the device that is typically used to 
  4503.                     provide video input to the device. 
  4504.  
  4505.             MCI_VIDEO_OUT_CONNECTOR 
  4506.                     The connector on the device that is typically used to 
  4507.                     provide video output from the device. 
  4508.  
  4509.             MCI_UNIVERSAL_CONNECTOR 
  4510.                     A connector on a device that does not fall into any of the 
  4511.                     other categories.  This connector type can be used to 
  4512.                     access a device-dependent function.  The manufacturer of 
  4513.                     the device should define the exact use of this connector. 
  4514.  
  4515.     MCI_CONNECTOR_INDEX 
  4516.             Indicates that the ulConnectorIndex field contains the connector 
  4517.             index for the primary device.  If this flag is not specified then 
  4518.             an index of 1 is assumed. 
  4519.  
  4520.  pParam2 (PMCI_CONNECTOR_PARMS) 
  4521.     A pointer to the MCI_CONNECTOR_PARMS data structure. 
  4522.  
  4523.  rc (ULONG) 
  4524.     Return codes indicating success or type of failure: 
  4525.  
  4526.     MCIERR_SUCCESS 
  4527.             MMPM/2 command completed successfully. 
  4528.  
  4529.     MCIERR_OUT_OF_MEMORY 
  4530.             System out of memory. 
  4531.  
  4532.     MCIERR_INVALID_DEVICE_ID 
  4533.             Invalid device ID given. 
  4534.  
  4535.     MCIERR_MISSING_PARAMETER 
  4536.             Missing parameter for this command. 
  4537.  
  4538.     MCIERR_DRIVER 
  4539.             Internal MMPM/2 driver error. 
  4540.  
  4541.     MCIERR_INVALID_FLAG 
  4542.             Invalid flag specified for this command. 
  4543.  
  4544.     MCIERR_MISSING_FLAG 
  4545.             Flag missing for this MMPM/2 command. 
  4546.  
  4547.     MCIERR_FLAGS_NOT_COMPATIBLE 
  4548.             Flags not compatible. 
  4549.  
  4550.     MCIERR_INSTANCE_INACTIVE 
  4551.             Instance inactive. 
  4552.  
  4553.     MCIERR_INVALID_CONNECTOR_INDEX 
  4554.             Invalid connector index. 
  4555.  
  4556.     MCIERR_INVALID_CONNECTOR_TYPE 
  4557.             Invalid connector type given. 
  4558.  
  4559.     MCIERR_UNSUPPORTED_CONN_TYPE 
  4560.             Connector type is not supported by this device. 
  4561.  
  4562.     MCIERR_CANNOT_MODIFY_CONNECTOR 
  4563.             Cannot enable or disable this connector. 
  4564.  
  4565.  
  4566. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR - Remarks ΓòÉΓòÉΓòÉ
  4567.  
  4568. It is recommended that all applications refer to connectors using the 
  4569. MCI_CONNECTOR_TYPE flag.  This provides device independence from differences in 
  4570. connector numbering for various devices.  Additionally, the MCI_CONNECTOR_INDEX 
  4571. flag can be used to address more than one connector of the same type. 
  4572.  
  4573. If only the MCI_CONNECTOR_INDEX flag is used, the referenced connector is 
  4574. device dependent.  The connector type of a particular connector index, as well 
  4575. as the number of connectors, can be retrieved using the MCI_CONNECTORINFO 
  4576. message. 
  4577.  
  4578. The amplifier-mixer device for the M-Audio Adapter does not have a headphone 
  4579. connector. 
  4580.  
  4581. Disabling a connector on a device can terminate an active command. 
  4582.  
  4583. For a list of connector types which are supported by various device types, see 
  4584. the Remarks section for MCI_CONNECTORINFO. 
  4585.  
  4586.  
  4587. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR - Default Processing ΓòÉΓòÉΓòÉ
  4588.  
  4589. If MCI_CONNECTOR_INDEX is not specified, the connector index defaults to 1.  If 
  4590. MCI_CONNECTOR_TYPE is not specified, an absolute index is assumed. 
  4591.  
  4592.  
  4593. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR - Example Code ΓòÉΓòÉΓòÉ
  4594.  
  4595. The following code illustrates how to enable microphone input on an audio 
  4596. device. 
  4597.  
  4598.  
  4599.    USHORT                  usAmpDeviceID;
  4600.    MCI_CONNECTOR_PARMS     connectorparms;
  4601.  
  4602.    connectorparms.ulConnectorType = MCI_MICROPHONE_CONNECTOR;
  4603.  
  4604.                                          /* Enable microphone input on */
  4605.                                          /* the audio device           */
  4606.  
  4607.    mciSendCommand (usAmpDeviceID,        /* Amp/mixer device ID        */
  4608.     MCI_CONNECTOR,                       /* CONNECTOR message          */
  4609.     MCI_ENABLE_CONNECTOR | MCI_CONNECTOR_TYPE | MCI _WAIT,
  4610.                                          /* Flags for this message     */
  4611.     (PVOID) &connectorparms,             /* Data structure             */
  4612.     0 );                                 /* No user parm               */
  4613.  
  4614.  
  4615. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTOR - Topics ΓòÉΓòÉΓòÉ
  4616.  
  4617. Select an item: 
  4618.  
  4619. Description
  4620. Returns
  4621. Remarks
  4622. Default Processing
  4623. Example Code
  4624. Glossary
  4625.  
  4626.  
  4627. ΓòÉΓòÉΓòÉ 7.7. MCI_CONNECTORINFO ΓòÉΓòÉΓòÉ
  4628.  
  4629.  
  4630. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  4631.  
  4632.  ulParam1 (ULONG) 
  4633.     The parameter can contain any the following flags with the following 
  4634.     exceptions: The MCI_ENUMERATE_CONNECTORS, MCI_QUERY_CONNECTOR_TYPE, and 
  4635.     MCI_QUERY_VALID_CONNECTION flags are mutually exclusive.  In addition, 
  4636.     MCI_ENUMERATE_CONNECTORS and MCI_CONNECTOR_INDEX are mutually exclusive, 
  4637.     and the error MCIERR_FLAGS_NOT_COMPATIBLE is returned if these flags are 
  4638.     used together. 
  4639.  
  4640.     MCI_NOTIFY 
  4641.             A notification message will be posted to the window specified in 
  4642.             the hwndCallback parameter of the data structure pointed to by the 
  4643.             pParam2 parameter.  The notification will be posted when the action 
  4644.             indicated by this message is completed or when an error occurs. 
  4645.  
  4646.     MCI_WAIT 
  4647.             Control is not to be returned until the action indicated by this 
  4648.             message is completed or an error occurs. 
  4649.  
  4650.     MCI_CONNECTOR_TYPE 
  4651.             This flag indicates that the connector type (ulConnectorType field) 
  4652.             for the primary device is to be used for the query.  When this flag 
  4653.             is used then the ulConnectorIndex field is used as a relative index 
  4654.             rather than an absolute index. 
  4655.  
  4656.     MCI_CONNECTOR_INDEX 
  4657.             This flag indicates that the ulConnectorIndex field contains the 
  4658.             connector index for the primary device.  If this flag is not 
  4659.             specified, an index of 1 is assumed. 
  4660.  
  4661.     MCI_QUERY_CONNECTOR_TYPE 
  4662.             This flag returns connector type in the ulReturn field.  To specify 
  4663.             the connector to query, use the MCI_CONNECTOR_INDEX flag. 
  4664.  
  4665.     MCI_ENUMERATE_CONNECTORS 
  4666.             This flag returns the number of connectors for the given device. 
  4667.             If the MCI_CONNECTOR_TYPE flag is also specified, the number of 
  4668.             connectors for the specified type is returned.  The value is 
  4669.             returned in the ulReturn field. 
  4670.  
  4671.     MCI_QUERY_VALID_CONNECTION 
  4672.             This flag determines if the specified connection is possible. 
  4673.             MCI_TRUE is returned if the connector types specified in the 
  4674.             ulConnectorType and ulToConnectorType fields are compatible, 
  4675.             resulting in a valid connection. Otherwise, MCI_FALSE is returned. 
  4676.  
  4677.     MCI_TO_CONNECTOR_TYPE 
  4678.             This flag specifies that the connector type (ulToConnectorType 
  4679.             field) for the primary device is to be used for the query.  When 
  4680.             this flag is used, the ulConnectorIndex field is used as a relative 
  4681.             index rather than an absolute index. 
  4682.  
  4683.  
  4684. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO Parameter - pParam2 ΓòÉΓòÉΓòÉ
  4685.  
  4686.  pParam2 (PMCI_CONNECTORINFO_PARMS) 
  4687.     A pointer to the MCI_CONNECTORINFO_PARMS data structure. 
  4688.  
  4689.  
  4690. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO Return Value - rc ΓòÉΓòÉΓòÉ
  4691.  
  4692.  rc (ULONG) 
  4693.     Return codes indicating success or type of failure: 
  4694.  
  4695.     MCIERR_SUCCESS 
  4696.             If the function succeeds, 0 is returned. 
  4697.  
  4698.     MCIERR_INVALID_DEVICE_ORDINAL 
  4699.             The device ordinal given is invalid. 
  4700.  
  4701.     MCIERR_INVALID_DEVICE_TYPE 
  4702.             The device type given is invalid. 
  4703.  
  4704.     MCIERR_MISSING_FLAG 
  4705.             A required flag is missing. 
  4706.  
  4707.     MCIERR_INVALID_FLAG 
  4708.             Given flag is invalid. 
  4709.  
  4710.     MCIERR_UNSUPPORTED_FLAG 
  4711.             Given flag is unsupported for this device. 
  4712.  
  4713.     MCIERR_INVALID_CALLBACK_HANDLE 
  4714.             Given callback handle is invalid. 
  4715.  
  4716.     MCIERR_INVALID_CONNECTOR_TYPE 
  4717.             The given connector type is invalid. 
  4718.  
  4719.     MCIERR_INVALID_CONNECTOR_INDEX 
  4720.             Invalid connector index given. 
  4721.  
  4722.     MCIERR_MISSING_PARAMETER 
  4723.             Required parameter is missing. 
  4724.  
  4725.     MCIERR_FLAGS_NOT_COMPATIBLE 
  4726.             Flags cannot be used together. 
  4727.  
  4728.  
  4729. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO - Description ΓòÉΓòÉΓòÉ
  4730.  
  4731. This message is used to determine the total number of connectors on a device, 
  4732. the number of connectors of a specific type, the type of each connector, and 
  4733. whether or not a particular type of connection is valid for a connector. 
  4734.  
  4735.  ulParam1 (ULONG) 
  4736.     The parameter can contain any the following flags with the following 
  4737.     exceptions: The MCI_ENUMERATE_CONNECTORS, MCI_QUERY_CONNECTOR_TYPE, and 
  4738.     MCI_QUERY_VALID_CONNECTION flags are mutually exclusive.  In addition, 
  4739.     MCI_ENUMERATE_CONNECTORS and MCI_CONNECTOR_INDEX are mutually exclusive, 
  4740.     and the error MCIERR_FLAGS_NOT_COMPATIBLE is returned if these flags are 
  4741.     used together. 
  4742.  
  4743.     MCI_NOTIFY 
  4744.             A notification message will be posted to the window specified in 
  4745.             the hwndCallback parameter of the data structure pointed to by the 
  4746.             pParam2 parameter.  The notification will be posted when the action 
  4747.             indicated by this message is completed or when an error occurs. 
  4748.  
  4749.     MCI_WAIT 
  4750.             Control is not to be returned until the action indicated by this 
  4751.             message is completed or an error occurs. 
  4752.  
  4753.     MCI_CONNECTOR_TYPE 
  4754.             This flag indicates that the connector type (ulConnectorType field) 
  4755.             for the primary device is to be used for the query.  When this flag 
  4756.             is used then the ulConnectorIndex field is used as a relative index 
  4757.             rather than an absolute index. 
  4758.  
  4759.     MCI_CONNECTOR_INDEX 
  4760.             This flag indicates that the ulConnectorIndex field contains the 
  4761.             connector index for the primary device.  If this flag is not 
  4762.             specified, an index of 1 is assumed. 
  4763.  
  4764.     MCI_QUERY_CONNECTOR_TYPE 
  4765.             This flag returns connector type in the ulReturn field.  To specify 
  4766.             the connector to query, use the MCI_CONNECTOR_INDEX flag. 
  4767.  
  4768.     MCI_ENUMERATE_CONNECTORS 
  4769.             This flag returns the number of connectors for the given device. 
  4770.             If the MCI_CONNECTOR_TYPE flag is also specified, the number of 
  4771.             connectors for the specified type is returned.  The value is 
  4772.             returned in the ulReturn field. 
  4773.  
  4774.     MCI_QUERY_VALID_CONNECTION 
  4775.             This flag determines if the specified connection is possible. 
  4776.             MCI_TRUE is returned if the connector types specified in the 
  4777.             ulConnectorType and ulToConnectorType fields are compatible, 
  4778.             resulting in a valid connection. Otherwise, MCI_FALSE is returned. 
  4779.  
  4780.     MCI_TO_CONNECTOR_TYPE 
  4781.             This flag specifies that the connector type (ulToConnectorType 
  4782.             field) for the primary device is to be used for the query.  When 
  4783.             this flag is used, the ulConnectorIndex field is used as a relative 
  4784.             index rather than an absolute index. 
  4785.  
  4786.  pParam2 (PMCI_CONNECTORINFO_PARMS) 
  4787.     A pointer to the MCI_CONNECTORINFO_PARMS data structure. 
  4788.  
  4789.  rc (ULONG) 
  4790.     Return codes indicating success or type of failure: 
  4791.  
  4792.     MCIERR_SUCCESS 
  4793.             If the function succeeds, 0 is returned. 
  4794.  
  4795.     MCIERR_INVALID_DEVICE_ORDINAL 
  4796.             The device ordinal given is invalid. 
  4797.  
  4798.     MCIERR_INVALID_DEVICE_TYPE 
  4799.             The device type given is invalid. 
  4800.  
  4801.     MCIERR_MISSING_FLAG 
  4802.             A required flag is missing. 
  4803.  
  4804.     MCIERR_INVALID_FLAG 
  4805.             Given flag is invalid. 
  4806.  
  4807.     MCIERR_UNSUPPORTED_FLAG 
  4808.             Given flag is unsupported for this device. 
  4809.  
  4810.     MCIERR_INVALID_CALLBACK_HANDLE 
  4811.             Given callback handle is invalid. 
  4812.  
  4813.     MCIERR_INVALID_CONNECTOR_TYPE 
  4814.             The given connector type is invalid. 
  4815.  
  4816.     MCIERR_INVALID_CONNECTOR_INDEX 
  4817.             Invalid connector index given. 
  4818.  
  4819.     MCIERR_MISSING_PARAMETER 
  4820.             Required parameter is missing. 
  4821.  
  4822.     MCIERR_FLAGS_NOT_COMPATIBLE 
  4823.             Flags cannot be used together. 
  4824.  
  4825.  
  4826. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO - Remarks ΓòÉΓòÉΓòÉ
  4827.  
  4828. This message does not require a device instance to be open. 
  4829.  
  4830. The following is a list of connector types supported by each OS/2 multimedia 
  4831. device: 
  4832.  
  4833. Amplifier Mixer Device 
  4834.  
  4835.       MCI_AMP_STREAM_CONNECTOR 
  4836.       MCI_HEADPHONES_CONNECTOR 
  4837.       MCI_LINE_IN_CONNECTOR 
  4838.       MCI_LINE_OUT_CONNECTOR 
  4839.       MCI_MICROPHONE_CONNECTOR 
  4840.       MCI_SPEAKERS_CONNECTOR 
  4841.  
  4842.  CD Audio Device 
  4843.  
  4844.       MCI_CD_STREAM_CONNECTOR 
  4845.       MCI_HEADPHONES_CONNECTOR 
  4846.  
  4847.  CD/XA Device 
  4848.  
  4849.       MCI_XA_STREAM_CONNECTOR 
  4850.  
  4851.  Sequencer Device 
  4852.  
  4853.       MCI_MIDI_STREAM_CONNECTOR 
  4854.  
  4855.  The sequencer also understands the following connector types and will attempt 
  4856.  to access the connector on its associated amplifier mixer device. 
  4857.  
  4858.       MCI_HEADPHONES_CONNECTOR 
  4859.       MCI_LINE_OUT_CONNECTOR 
  4860.       MCI_SPEAKERS_CONNECTOR 
  4861.  
  4862.  Waveform Audio Device 
  4863.  
  4864.       MCI_WAVE_STREAM_CONNECTOR 
  4865.  
  4866.  The waveform audio device also understands the following connector types and 
  4867.  will attempt to access the connector on its associated amplifier mixer device. 
  4868.  
  4869.       MCI_HEADPHONES_CONNECTOR 
  4870.       MCI_LINE_IN_CONNECTOR 
  4871.       MCI_LINE_OUT_CONNECTOR 
  4872.       MCI_MICROPHONE_CONNECTOR 
  4873.       MCI_SPEAKERS_CONNECTOR 
  4874.  
  4875.  Videodisc Device 
  4876.  
  4877.       MCI_LINE_OUT_CONNECTOR 
  4878.       MCI_VIDEO_OUT_CONNECTOR 
  4879.  
  4880.  Digital Video Device 
  4881.  
  4882.       MCI_WAVE_STREAM_CONNECTOR 
  4883.  
  4884.  The digital video device also understands the following connector types and 
  4885.  will attempt to access the connector on its associated amplifier mixer device: 
  4886.  
  4887.       MCI_HEADPHONES_CONNECTOR 
  4888.       MCI_LINE_IN_CONNECTOR 
  4889.       MCI_LINE_OUT_CONNECTOR 
  4890.       MCI_MICROPHONE_CONNECTOR 
  4891.       MCI_SPEAKERS_CONNECTOR 
  4892.       MCI_VIDEO_IN_CONNECTOR 
  4893.       MCI_VIDEO_OUT_CONNECTOR 
  4894.  
  4895.  MCI_VIDEO_IN_CONNECTOR and MCI_VIDEO_OUT_CONNECTOR connector types are only 
  4896.  supported in recording environments. 
  4897.  
  4898.  
  4899. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO - Default Processing ΓòÉΓòÉΓòÉ
  4900.  
  4901. If the MCI_CONNECTOR_INDEX flag is not specified, the connector index will 
  4902. default to 1. 
  4903.  
  4904.  
  4905. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO - Related Messages ΓòÉΓòÉΓòÉ
  4906.  
  4907.      MCI_CONNECTOR 
  4908.  
  4909.  
  4910. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO - Example Code ΓòÉΓòÉΓòÉ
  4911.  
  4912. The following code illustrates how to determine whether a device has microphone 
  4913. input capability. 
  4914.  
  4915.  
  4916.                /* Determine if amp/mixer device has a microphone input */
  4917.  
  4918.    MCI_CONNECTORINFO_PARMS conninfoparms;
  4919.    ULONG rc;
  4920.    ULONG NumMicConns;
  4921.  
  4922.    conninfoparms.ulDeviceTypeID = MCI_DEVTYPE_AUDIO_AMPMIX;
  4923.    conninfoparms.ulConnectorType = MCI_MICROPHONE_CONNECTOR;
  4924.  
  4925.  
  4926.    rc = mciSendCommand (0,           /* Ignored field              */
  4927.      MCI_CONNECTORINFO,              /* Connectorinfo message      */
  4928.      MCI_ENUMERATE_CONNECTORS | MCI_WAIT | MCI_CONNECTOR_TYPE,
  4929.                                      /* Flags for this message     */
  4930.      (PVOID) &conninfoparms,         /* Data structure             */
  4931.      0);                             /* No user parm               */
  4932.    if (LOUSHORT(rc) == MCIERR_SUCCESS)
  4933.       {
  4934.        NumMicConns = conninfoparms.ulReturn; /* Return information */
  4935.      }
  4936.  
  4937.  
  4938. ΓòÉΓòÉΓòÉ <hidden> MCI_CONNECTORINFO - Topics ΓòÉΓòÉΓòÉ
  4939.  
  4940. Select an item: 
  4941.  
  4942. Description
  4943. Returns
  4944. Remarks
  4945. Default Processing
  4946. Related Messages
  4947. Example Code
  4948. Glossary
  4949.  
  4950.  
  4951. ΓòÉΓòÉΓòÉ 7.8. MCI_COPY ΓòÉΓòÉΓòÉ
  4952.  
  4953.  
  4954. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  4955.  
  4956.  ulParam1 (ULONG) 
  4957.     This parameter can contain any of the following flags: 
  4958.  
  4959.     MCI_NOTIFY 
  4960.             A notification message will be posted to the window specified in 
  4961.             the hwndCallback parameter of the data structure pointed to by the 
  4962.             pParam2 parameter.  The notification will be posted when the action 
  4963.             indicated by this message is completed or when an error occurs. 
  4964.  
  4965.     MCI_WAIT 
  4966.             Control is not to be returned until the action indicated by this 
  4967.             message is completed or an error occurs. 
  4968.  
  4969.     MCI_FROM 
  4970.             The beginning position of a copy from a file. The position of the 
  4971.             media will either be the position specified in MCI_FROM or the 
  4972.             previous position if MCI_FROM is not specified. 
  4973.  
  4974.     MCI_TO 
  4975.             The ending position of a copy from a file. 
  4976.  
  4977.     MCI_FROM_BUFFER 
  4978.             Places information from a buffer into the clipboard.  If this flag 
  4979.             is not specified, the file is used. 
  4980.  
  4981.     MCI_TO_BUFFER 
  4982.             Places information from a file into a buffer.  If this flag is not 
  4983.             specified, the clipboard is used. 
  4984.  
  4985.  
  4986. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY Parameter - pParam2 ΓòÉΓòÉΓòÉ
  4987.  
  4988.  pParam2 (PMCI_EDIT_PARMS) 
  4989.     A pointer to the MCI_EDIT_PARMS data structure. 
  4990.  
  4991.  
  4992. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY Return Value - rc ΓòÉΓòÉΓòÉ
  4993.  
  4994.  rc (ULONG) 
  4995.     Return codes indicating success or type of failure: 
  4996.  
  4997.     MCIERR_SUCCESS 
  4998.             Copy was successful. 
  4999.  
  5000.     MCIERR_INVALID_BUFFER 
  5001.             Buffer was too small to hold data. 
  5002.  
  5003.     MCIERR_OUTOFRANGE 
  5004.             The units are out of the range. 
  5005.  
  5006.     MCIERR_INVALID_DEVICE_ID 
  5007.             The device ID is not valid. 
  5008.  
  5009.     MCIERR_MISSING_PARAMETER 
  5010.             Required parameter is missing. 
  5011.  
  5012.     MCIERR_INVALID_FLAG 
  5013.             Flag is invalid (ulParam1). 
  5014.  
  5015.     MCIERR_UNSUPPORTED_FLAG 
  5016.             Given flag is unsupported for this device. 
  5017.  
  5018.     MCIERR_INSTANCE_INACTIVE 
  5019.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  5020.             the device context active. 
  5021.  
  5022.     MCIERR_INVALID_CALLBACK_HANDLE 
  5023.             Given callback handle is invalid. 
  5024.  
  5025.     MCIERR_OUT_OF_MEMORY 
  5026.             There is insufficient memory to perform the operation. 
  5027.  
  5028.     MCIERR_CLIPBOARD_ERROR 
  5029.             A problem with the clipboard occurred. 
  5030.  
  5031.  
  5032. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY - Description ΓòÉΓòÉΓòÉ
  5033.  
  5034. This message copies the specified range of data from the device file to the 
  5035. clipboard or application buffer.  The position of the media remains the same as 
  5036. prior to the copy operation. 
  5037.  
  5038.  ulParam1 (ULONG) 
  5039.     This parameter can contain any of the following flags: 
  5040.  
  5041.     MCI_NOTIFY 
  5042.             A notification message will be posted to the window specified in 
  5043.             the hwndCallback parameter of the data structure pointed to by the 
  5044.             pParam2 parameter.  The notification will be posted when the action 
  5045.             indicated by this message is completed or when an error occurs. 
  5046.  
  5047.     MCI_WAIT 
  5048.             Control is not to be returned until the action indicated by this 
  5049.             message is completed or an error occurs. 
  5050.  
  5051.     MCI_FROM 
  5052.             The beginning position of a copy from a file. The position of the 
  5053.             media will either be the position specified in MCI_FROM or the 
  5054.             previous position if MCI_FROM is not specified. 
  5055.  
  5056.     MCI_TO 
  5057.             The ending position of a copy from a file. 
  5058.  
  5059.     MCI_FROM_BUFFER 
  5060.             Places information from a buffer into the clipboard.  If this flag 
  5061.             is not specified, the file is used. 
  5062.  
  5063.     MCI_TO_BUFFER 
  5064.             Places information from a file into a buffer.  If this flag is not 
  5065.             specified, the clipboard is used. 
  5066.  
  5067.  pParam2 (PMCI_EDIT_PARMS) 
  5068.     A pointer to the MCI_EDIT_PARMS data structure. 
  5069.  
  5070.  rc (ULONG) 
  5071.     Return codes indicating success or type of failure: 
  5072.  
  5073.     MCIERR_SUCCESS 
  5074.             Copy was successful. 
  5075.  
  5076.     MCIERR_INVALID_BUFFER 
  5077.             Buffer was too small to hold data. 
  5078.  
  5079.     MCIERR_OUTOFRANGE 
  5080.             The units are out of the range. 
  5081.  
  5082.     MCIERR_INVALID_DEVICE_ID 
  5083.             The device ID is not valid. 
  5084.  
  5085.     MCIERR_MISSING_PARAMETER 
  5086.             Required parameter is missing. 
  5087.  
  5088.     MCIERR_INVALID_FLAG 
  5089.             Flag is invalid (ulParam1). 
  5090.  
  5091.     MCIERR_UNSUPPORTED_FLAG 
  5092.             Given flag is unsupported for this device. 
  5093.  
  5094.     MCIERR_INSTANCE_INACTIVE 
  5095.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  5096.             the device context active. 
  5097.  
  5098.     MCIERR_INVALID_CALLBACK_HANDLE 
  5099.             Given callback handle is invalid. 
  5100.  
  5101.     MCIERR_OUT_OF_MEMORY 
  5102.             There is insufficient memory to perform the operation. 
  5103.  
  5104.     MCIERR_CLIPBOARD_ERROR 
  5105.             A problem with the clipboard occurred. 
  5106.  
  5107.  
  5108. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY - Remarks ΓòÉΓòÉΓòÉ
  5109.  
  5110. MCI_COPY copies the range of media data specified by the ulFrom and ulTo fields 
  5111. in the MCI_EDIT_PARMS data structure to an application-supplied buffer or the 
  5112. system clipboard. If the pBuff field of the data structure contains a pointer 
  5113. and the MCI_TO_BUFFER flag is specified, the data is copied to a buffer. If the 
  5114. MCI_FROM_BUFFER flag is specified, the information is copied from the buffer to 
  5115. the clipboard. 
  5116.  
  5117. The units of the MCI_FROM and MCI_TO parameters are interpreted in the 
  5118. currently selected time format.  If neither MCI_FROM nor MCI_TO are specified, 
  5119. the range is assumed from the current file position to the end of the file. The 
  5120. difference between MCI_FROM and MCI_TO must be greater than zero, otherwise an 
  5121. error is returned. 
  5122.  
  5123. Edited Audio/Video Interleaved (AVI) movie files cannot always be saved with 
  5124. their original name after a copy operation.  If the clipboard contains a 
  5125. reference to data that would be erased during saving or if another instance of 
  5126. the digital video device has a pending paste operation which depends on this 
  5127. data, the file cannot be saved unless a new file name has been provided.  If a 
  5128. new file name is not provided, MMIOERR_NEED_NEW_FILENAME is returned by the AVI 
  5129. I/O procedure and a temporary file is created to save the edited movie. 
  5130.  
  5131. Note:  AVI is the only video file format supporting editing commands. 
  5132.  
  5133.  If data is already in the clipboard, then it is overwritten. If a copy 
  5134.  interrupts an in-progress operation, such as play, the operation is aborted 
  5135.  and an MM_MCINOTIFY message is sent to the application. 
  5136.  
  5137.  If an invalid buffer length is passed in, ulBufLen is updated with the correct 
  5138.  length. 
  5139.  
  5140.  Waveaudio Specific 
  5141.  
  5142.  If MCI_FROM_BUFFER or MCI_TO_BUFFER are used, the pHeader field of 
  5143.  MCI_EDIT_PARMS must contain a pointer to an MMAUDIOHEADER structure. The 
  5144.  ulBufLen field of MCI_EDIT_PARMS must be filled in. 
  5145.  
  5146.  
  5147. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY - Related Messages ΓòÉΓòÉΓòÉ
  5148.  
  5149.      MCI_CUT 
  5150.      MCI_DELETE 
  5151.      MCI_PASTE 
  5152.      MCI_REDO 
  5153.      MCI_UNDO 
  5154.  
  5155.  
  5156. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY - Example Code ΓòÉΓòÉΓòÉ
  5157.  
  5158. The following code illustrates how to copy the first five seconds of a file and 
  5159. place it in the clipboard. 
  5160.  
  5161.     USHORT          usDeviceID;
  5162.     MCI_EDIT_PARMS  mep;
  5163.  
  5164.     mep.hwndCallback = hwndMyWindow;
  5165.     mep.ulFrom = 0;
  5166.     mep.ulTo = 5000;
  5167.  
  5168.     mciSendCommand( usDeviceID,
  5169.                     MCI_COPY
  5170.                     MCI_NOTIFY | MCI_FROM | MCI_TO,
  5171.                     &mep,
  5172.                     0 );
  5173.  
  5174.  
  5175. ΓòÉΓòÉΓòÉ <hidden> MCI_COPY - Topics ΓòÉΓòÉΓòÉ
  5176.  
  5177. Select an item: 
  5178.  
  5179. Description
  5180. Returns
  5181. Remarks
  5182. Related Messages
  5183. Example Code
  5184. Glossary
  5185.  
  5186.  
  5187. ΓòÉΓòÉΓòÉ 7.9. MCI_CUE ΓòÉΓòÉΓòÉ
  5188.  
  5189.  
  5190. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  5191.  
  5192.  ulParam1 (ULONG) 
  5193.     This parameter can contain any of the following flags with the following 
  5194.     limitation.  The MCI_CUE_INPUT and MCI_CUE_OUTPUT flags are mutually 
  5195.     exclusive. 
  5196.  
  5197.     MCI_NOTIFY 
  5198.             A notification message will be posted to the window specified in 
  5199.             the hwndCallback parameter of the data structure pointed to by the 
  5200.             pParam2 parameter.  The notification will be posted when the action 
  5201.             indicated by this message is completed or when an error occurs. 
  5202.  
  5203.     MCI_WAIT 
  5204.             Control is not to be returned until the action indicated by this 
  5205.             message is completed or an error occurs. 
  5206.  
  5207.     MCI_CUE_INPUT 
  5208.             This flag cues or prerolls the device instance for input or 
  5209.             recording. 
  5210.  
  5211.     MCI_CUE_OUTPUT 
  5212.             This flag cues or prerolls the device instance for output or 
  5213.             playback. 
  5214.  
  5215.     Digital Video Extensions 
  5216.  
  5217.     The following additional flags apply to digital video devices. These flags 
  5218.     are only valid when cueing the device instance for output. The MCI_NOSHOW 
  5219.     and MCI_SHOW flags are mutually exclusive. 
  5220.  
  5221.     MCI_NOSHOW 
  5222.             This flag causes the window to be hidden while the cue operation is 
  5223.             performed. This is the default. If MCI_TO is not also specified, 
  5224.             the media position will remain unchanged. 
  5225.  
  5226.     MCI_SHOW 
  5227.             This flag causes the window to be displayed while the cue operation 
  5228.             is performed. If MCI_TO is not also specified, the current frame is 
  5229.             displayed and the media position will advance by one (frame). 
  5230.  
  5231.     MCI_TO 
  5232.             This flag enables seeking to a specific location in the media while 
  5233.             cueing the device for playback. If this flag is specified, the ulTo 
  5234.             field of MCI_SEEK_PARMS indicates the ending position of the seek 
  5235.             operation. If the ulTo position is beyond the end of the media or 
  5236.             segment, an MCIERR_OUTOFRANGE error is returned. 
  5237.  
  5238.     Wave Audio Extensions 
  5239.  
  5240.     The following additional flags apply to wave audio devices. The 
  5241.     MCI_WAVE_INPUT and MCI_WAVE_OUTPUT flags are mutually exclusive. 
  5242.  
  5243.     MCI_WAVE_INPUT 
  5244.             This flag cues or prerolls the device instance for input or 
  5245.             recording. 
  5246.  
  5247.     MCI_WAVE_OUTPUT 
  5248.             This flag cues or prerolls the device instance for output or 
  5249.             playback. 
  5250.  
  5251.  
  5252. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  5253.  
  5254.  pParam2 (PMCI_GENERIC_PARMS) 
  5255.     A pointer to the default media control interface parameter data structure. 
  5256.     Devices with extended command sets might replace this pointer with a 
  5257.     pointer to a device-specific data structure as follows: 
  5258.  
  5259.     PMCI_SEEK_PARMS 
  5260.             A pointer to the MCI_SEEK_PARMS structure. 
  5261.  
  5262.  
  5263. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE Return Value - rc ΓòÉΓòÉΓòÉ
  5264.  
  5265.  rc (ULONG) 
  5266.     Return codes indicating success or type of failure: 
  5267.  
  5268.     MCIERR_SUCCESS 
  5269.             If the function succeeds, 0 is returned. 
  5270.  
  5271.     MCIERR_INVALID_DEVICE_ID 
  5272.             The device ID is not valid. 
  5273.  
  5274.     MCIERR_INSTANCE_INACTIVE 
  5275.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  5276.             make device ID active. 
  5277.  
  5278.     MCIERR_MISSING_FLAG 
  5279.             A required flag is missing. 
  5280.  
  5281.     MCIERR_UNSUPPORTED_FLAG 
  5282.             Given flag is unsupported for this device. 
  5283.  
  5284.     MCIERR_INVALID_CALLBACK_HANDLE 
  5285.             Given callback handle is invalid. 
  5286.  
  5287.     MCIERR_HARDWARE 
  5288.             Device hardware error. 
  5289.  
  5290.     MCIERR_FILE_NOT_FOUND 
  5291.             File has not been loaded. 
  5292.  
  5293.     MCIERR_UNSUPPORTED_FUNCTION 
  5294.             Unsupported function. 
  5295.  
  5296.     MCIERR_INVALID_FLAG 
  5297.             Flag (ulParam1) is invalid. 
  5298.  
  5299.     MCIERR_FLAGS_NOT_COMPATIBLE 
  5300.             Flags cannot be used together. 
  5301.  
  5302.  
  5303. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE - Description ΓòÉΓòÉΓòÉ
  5304.  
  5305. This message prompts a device instance to ready itself (preroll) for a 
  5306. subsequent playback or recording message with minimum delay. 
  5307.  
  5308.  ulParam1 (ULONG) 
  5309.     This parameter can contain any of the following flags with the following 
  5310.     limitation.  The MCI_CUE_INPUT and MCI_CUE_OUTPUT flags are mutually 
  5311.     exclusive. 
  5312.  
  5313.     MCI_NOTIFY 
  5314.             A notification message will be posted to the window specified in 
  5315.             the hwndCallback parameter of the data structure pointed to by the 
  5316.             pParam2 parameter.  The notification will be posted when the action 
  5317.             indicated by this message is completed or when an error occurs. 
  5318.  
  5319.     MCI_WAIT 
  5320.             Control is not to be returned until the action indicated by this 
  5321.             message is completed or an error occurs. 
  5322.  
  5323.     MCI_CUE_INPUT 
  5324.             This flag cues or prerolls the device instance for input or 
  5325.             recording. 
  5326.  
  5327.     MCI_CUE_OUTPUT 
  5328.             This flag cues or prerolls the device instance for output or 
  5329.             playback. 
  5330.  
  5331.     Digital Video Extensions 
  5332.  
  5333.     The following additional flags apply to digital video devices. These flags 
  5334.     are only valid when cueing the device instance for output. The MCI_NOSHOW 
  5335.     and MCI_SHOW flags are mutually exclusive. 
  5336.  
  5337.     MCI_NOSHOW 
  5338.             This flag causes the window to be hidden while the cue operation is 
  5339.             performed. This is the default. If MCI_TO is not also specified, 
  5340.             the media position will remain unchanged. 
  5341.  
  5342.     MCI_SHOW 
  5343.             This flag causes the window to be displayed while the cue operation 
  5344.             is performed. If MCI_TO is not also specified, the current frame is 
  5345.             displayed and the media position will advance by one (frame). 
  5346.  
  5347.     MCI_TO 
  5348.             This flag enables seeking to a specific location in the media while 
  5349.             cueing the device for playback. If this flag is specified, the ulTo 
  5350.             field of MCI_SEEK_PARMS indicates the ending position of the seek 
  5351.             operation. If the ulTo position is beyond the end of the media or 
  5352.             segment, an MCIERR_OUTOFRANGE error is returned. 
  5353.  
  5354.     Wave Audio Extensions 
  5355.  
  5356.     The following additional flags apply to wave audio devices. The 
  5357.     MCI_WAVE_INPUT and MCI_WAVE_OUTPUT flags are mutually exclusive. 
  5358.  
  5359.     MCI_WAVE_INPUT 
  5360.             This flag cues or prerolls the device instance for input or 
  5361.             recording. 
  5362.  
  5363.     MCI_WAVE_OUTPUT 
  5364.             This flag cues or prerolls the device instance for output or 
  5365.             playback. 
  5366.  
  5367.  pParam2 (PMCI_GENERIC_PARMS) 
  5368.     A pointer to the default media control interface parameter data structure. 
  5369.     Devices with extended command sets might replace this pointer with a 
  5370.     pointer to a device-specific data structure as follows: 
  5371.  
  5372.     PMCI_SEEK_PARMS 
  5373.             A pointer to the MCI_SEEK_PARMS structure. 
  5374.  
  5375.  rc (ULONG) 
  5376.     Return codes indicating success or type of failure: 
  5377.  
  5378.     MCIERR_SUCCESS 
  5379.             If the function succeeds, 0 is returned. 
  5380.  
  5381.     MCIERR_INVALID_DEVICE_ID 
  5382.             The device ID is not valid. 
  5383.  
  5384.     MCIERR_INSTANCE_INACTIVE 
  5385.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  5386.             make device ID active. 
  5387.  
  5388.     MCIERR_MISSING_FLAG 
  5389.             A required flag is missing. 
  5390.  
  5391.     MCIERR_UNSUPPORTED_FLAG 
  5392.             Given flag is unsupported for this device. 
  5393.  
  5394.     MCIERR_INVALID_CALLBACK_HANDLE 
  5395.             Given callback handle is invalid. 
  5396.  
  5397.     MCIERR_HARDWARE 
  5398.             Device hardware error. 
  5399.  
  5400.     MCIERR_FILE_NOT_FOUND 
  5401.             File has not been loaded. 
  5402.  
  5403.     MCIERR_UNSUPPORTED_FUNCTION 
  5404.             Unsupported function. 
  5405.  
  5406.     MCIERR_INVALID_FLAG 
  5407.             Flag (ulParam1) is invalid. 
  5408.  
  5409.     MCIERR_FLAGS_NOT_COMPATIBLE 
  5410.             Flags cannot be used together. 
  5411.  
  5412.  
  5413. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE - Remarks ΓòÉΓòÉΓòÉ
  5414.  
  5415. The preroll characteristics of the device can be obtained with MCI_GETDEVCAPS. 
  5416. On devices that require a file, the file must be loaded before the MCI_CUE 
  5417. command is issued; otherwise, MCIERR_FILE_NOT_FOUND is returned. If no flags 
  5418. are specified then the device instance is queued for output by default. 
  5419. MCI_CUE_INPUT is only supported on devices that support recording. 
  5420.  
  5421.  
  5422. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE - Related Messages ΓòÉΓòÉΓòÉ
  5423.  
  5424.      MCI_PLAY 
  5425.      MCI_RECORD 
  5426.  
  5427.  
  5428. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE - Example Code ΓòÉΓòÉΓòÉ
  5429.  
  5430. The following code illustrates how to cue a device instance for playback and 
  5431. wait for completion. 
  5432.  
  5433.  
  5434.    /* Cue the device for playback (output), and wait for completion */
  5435.  
  5436.    USHORT   usDeviceID;
  5437.    HWND     hwndMyWindow;
  5438.    MCI_GENERIC_PARMS mciGenericParms;        /* Generic message
  5439.                                                 parms structure        */
  5440.  
  5441.  
  5442.                     /* Assign hwndCallback the handle to the PM window */
  5443.  
  5444.    mciGenericParms.hwndCallback =  hwndMyWindow;
  5445.  
  5446.    mciSendCommand( usDeviceID,               /* Device ID              */
  5447.       MCI_CUE,                               /* MCI cue message        */
  5448.       MCI_WAIT | MCI_CUE_OUTPUT,             /* Standard flags         */
  5449.       (PVOID)&mciGenericParms,               /* Generic structure      */
  5450.       0 );                                   /* No user parm           */
  5451.  
  5452.  
  5453. ΓòÉΓòÉΓòÉ <hidden> MCI_CUE - Topics ΓòÉΓòÉΓòÉ
  5454.  
  5455. Select an item: 
  5456.  
  5457. Description
  5458. Returns
  5459. Remarks
  5460. Related Messages
  5461. Example Code
  5462. Glossary
  5463.  
  5464.  
  5465. ΓòÉΓòÉΓòÉ 7.10. MCI_CUT ΓòÉΓòÉΓòÉ
  5466.  
  5467.  
  5468. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  5469.  
  5470.  ulParam1 (ULONG) 
  5471.     This parameter can contain any of the following flags: 
  5472.  
  5473.     MCI_NOTIFY 
  5474.             A notification message will be posted to the window specified in 
  5475.             the hwndCallback parameter of the data structure pointed to by the 
  5476.             pParam2 parameter.  The notification will be posted when the action 
  5477.             indicated by this message is completed or when an error occurs. 
  5478.  
  5479.     MCI_WAIT 
  5480.             Control is not to be returned until the action indicated by this 
  5481.             message is completed or an error occurs. 
  5482.  
  5483.     MCI_FROM 
  5484.             The beginning position of a cut operation. The position of the 
  5485.             media is either the position specified in the ulFrom field or the 
  5486.             previous position if MCI_FROM is not specified. 
  5487.  
  5488.     MCI_TO 
  5489.             The ending position of a cut operation. 
  5490.  
  5491.     MCI_TO_BUFFER 
  5492.             Place the data from a file into an application-supplied buffer.  If 
  5493.             this flag is not specified, then the clipboard is used. 
  5494.  
  5495.  
  5496. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT Parameter - pParam2 ΓòÉΓòÉΓòÉ
  5497.  
  5498.  pParam2 (PMCI_EDIT_PARMS) 
  5499.     A pointer to the MCI_EDIT_PARMS data structure. 
  5500.  
  5501.  
  5502. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT Return Value - rc ΓòÉΓòÉΓòÉ
  5503.  
  5504.  rc (ULONG) 
  5505.     Return codes indicating success or type of failure: 
  5506.  
  5507.     MCIERR_SUCCESS 
  5508.             Cut was successful. 
  5509.  
  5510.     MCIERR_INVALID_BUFFER 
  5511.             Buffer too small to hold data. 
  5512.  
  5513.     MCIERR_CANNOT_WRITE 
  5514.             The file was not opened with write access. 
  5515.  
  5516.     MCIERR_OUTOFRANGE 
  5517.             The units are out of the range. 
  5518.  
  5519.     MCIERR_INVALID_DEVICE_ID 
  5520.             The device ID is not valid. 
  5521.  
  5522.     MCIERR_MISSING_PARAMETER 
  5523.             Required parameter is missing. 
  5524.  
  5525.     MCIERR_INVALID_FLAG 
  5526.             Flag is invalid (ulParam1). 
  5527.  
  5528.     MCIERR_UNSUPPORTED_FLAG 
  5529.             Given flag is unsupported for this device. 
  5530.  
  5531.     MCIERR_INSTANCE_INACTIVE 
  5532.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  5533.             the device context active. 
  5534.  
  5535.     MCIERR_INVALID_CALLBACK_HANDLE 
  5536.             Given callback handle is invalid. 
  5537.  
  5538.     MCIERR_OUT_OF_MEMORY 
  5539.             There is insufficient memory to perform the requested operation. 
  5540.  
  5541.     MCIERR_CLIPBOARD_ERROR 
  5542.             An error occurred while attempting to access the clipboard. 
  5543.  
  5544.  
  5545. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT - Description ΓòÉΓòÉΓòÉ
  5546.  
  5547. This message removes the specified range of data from the device element and 
  5548. places it in the system clipboard or application-supplied buffer. The position 
  5549. of the media after a cut command is the FROM position, if MCI_FROM is 
  5550. specified. If MCI_FROM is not specified, the current position is used. 
  5551.  
  5552.  ulParam1 (ULONG) 
  5553.     This parameter can contain any of the following flags: 
  5554.  
  5555.     MCI_NOTIFY 
  5556.             A notification message will be posted to the window specified in 
  5557.             the hwndCallback parameter of the data structure pointed to by the 
  5558.             pParam2 parameter.  The notification will be posted when the action 
  5559.             indicated by this message is completed or when an error occurs. 
  5560.  
  5561.     MCI_WAIT 
  5562.             Control is not to be returned until the action indicated by this 
  5563.             message is completed or an error occurs. 
  5564.  
  5565.     MCI_FROM 
  5566.             The beginning position of a cut operation. The position of the 
  5567.             media is either the position specified in the ulFrom field or the 
  5568.             previous position if MCI_FROM is not specified. 
  5569.  
  5570.     MCI_TO 
  5571.             The ending position of a cut operation. 
  5572.  
  5573.     MCI_TO_BUFFER 
  5574.             Place the data from a file into an application-supplied buffer.  If 
  5575.             this flag is not specified, then the clipboard is used. 
  5576.  
  5577.  pParam2 (PMCI_EDIT_PARMS) 
  5578.     A pointer to the MCI_EDIT_PARMS data structure. 
  5579.  
  5580.  rc (ULONG) 
  5581.     Return codes indicating success or type of failure: 
  5582.  
  5583.     MCIERR_SUCCESS 
  5584.             Cut was successful. 
  5585.  
  5586.     MCIERR_INVALID_BUFFER 
  5587.             Buffer too small to hold data. 
  5588.  
  5589.     MCIERR_CANNOT_WRITE 
  5590.             The file was not opened with write access. 
  5591.  
  5592.     MCIERR_OUTOFRANGE 
  5593.             The units are out of the range. 
  5594.  
  5595.     MCIERR_INVALID_DEVICE_ID 
  5596.             The device ID is not valid. 
  5597.  
  5598.     MCIERR_MISSING_PARAMETER 
  5599.             Required parameter is missing. 
  5600.  
  5601.     MCIERR_INVALID_FLAG 
  5602.             Flag is invalid (ulParam1). 
  5603.  
  5604.     MCIERR_UNSUPPORTED_FLAG 
  5605.             Given flag is unsupported for this device. 
  5606.  
  5607.     MCIERR_INSTANCE_INACTIVE 
  5608.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  5609.             the device context active. 
  5610.  
  5611.     MCIERR_INVALID_CALLBACK_HANDLE 
  5612.             Given callback handle is invalid. 
  5613.  
  5614.     MCIERR_OUT_OF_MEMORY 
  5615.             There is insufficient memory to perform the requested operation. 
  5616.  
  5617.     MCIERR_CLIPBOARD_ERROR 
  5618.             An error occurred while attempting to access the clipboard. 
  5619.  
  5620.  
  5621. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT - Remarks ΓòÉΓòÉΓòÉ
  5622.  
  5623. If MCI_TO_BUFFER is specified and the buffer is not large enough to hold the 
  5624. data, then the error MCIERR_INVALID_BUFFER is returned. 
  5625.  
  5626. The units of the MCI_FROM and MCI_TO parameters are interpreted in the 
  5627. currently selected time format.  If neither MCI_FROM nor MCI_TO are specified, 
  5628. the range is assumed from the current position to the end of the file. 
  5629.  
  5630. The difference between MCI_FROM and MCI_TO must be greater than zero; 
  5631. otherwise, an error is returned. 
  5632.  
  5633. If data is already in the clipboard, then it is overwritten. If a cut 
  5634. interrupts an in-progress operation, such as play, the operation is aborted and 
  5635. an MM_MCINOTIFY message is sent to the application. 
  5636.  
  5637. Edited Audio/Video Interleaved (AVI) movie files cannot always be saved with 
  5638. their original name after the cut operation.  If the clipboard contains a 
  5639. reference to data that would be erased during saving or if another instance of 
  5640. the digital video device has a pending paste operation which depends on this 
  5641. data, the file cannot be saved unless a new file name has been provided. If a 
  5642. new file name is not provided, MMIOERR_NEED_NEW_FILENAME is returned by the AVI 
  5643. I/O procedure and a temporary file is created to save the edited movie. 
  5644.  
  5645. Note:  AVI is the only video file format supporting editing commands. 
  5646.  
  5647.  Waveaudio Specific 
  5648.  
  5649.  If either MCI_FROM or MCI_TO begin in the middle of a digital audio sample, 
  5650.  the wave audio device begins at the beginning of that sample. If 
  5651.  MCI_FROM_BUFFER or MCI_TO_BUFFER are used, the pHeader field of MCI_EDIT_PARMS 
  5652.  must contain a pointer to an MMAUDIOHEADER structure.  The ulBufLen field of 
  5653.  MCI_EDIT_PARMS must be filled in. 
  5654.  
  5655.  
  5656. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT - Related Messages ΓòÉΓòÉΓòÉ
  5657.  
  5658.      MCI_COPY 
  5659.      MCI_PASTE 
  5660.      MCI_DELETE 
  5661.      MCI_UNDO 
  5662.      MCI_REDO 
  5663.  
  5664.  
  5665. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT - Example Code ΓòÉΓòÉΓòÉ
  5666.  
  5667. The following code illustrates removing five seconds of a file. 
  5668.  
  5669.  
  5670.     USHORT                usDeviceID;
  5671.     MCI_EDIT_PARMS        mep;
  5672.  
  5673.     mep.hwndCallback =  hwndMyWindow;
  5674.     mep.ulFrom = 0;
  5675.     mep.ulTo = 5000;
  5676.  
  5677.     mciSendCommand( usDeviceID,
  5678.                     MCI_CUT,
  5679.                     MCI_NOTIFY | MCI_FROM | MCI_TO,
  5680.                     &mep,
  5681.                     0 );
  5682.  
  5683.  
  5684. ΓòÉΓòÉΓòÉ <hidden> MCI_CUT - Topics ΓòÉΓòÉΓòÉ
  5685.  
  5686. Select an item: 
  5687.  
  5688. Description
  5689. Returns
  5690. Remarks
  5691. Related Messages
  5692. Example Code
  5693. Glossary
  5694.  
  5695.  
  5696. ΓòÉΓòÉΓòÉ 7.11. MCI_DEFAULT_CONNECTION ΓòÉΓòÉΓòÉ
  5697.  
  5698.  
  5699. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  5700.  
  5701.  ulParam1 (ULONG) 
  5702.     This parameter can contain any of the following flags: 
  5703.  
  5704.     MCI_NOTIFY 
  5705.             A notification message will be posted to the window specified in 
  5706.             the hwndCallback parameter of the data structure pointed to by the 
  5707.             pParam2 parameter.  The notification will be posted when the action 
  5708.             indicated by this message is completed or when an error occurs. 
  5709.  
  5710.     MCI_WAIT 
  5711.             Control is not to be returned until the action indicated by this 
  5712.             message is completed or an error occurs. 
  5713.  
  5714.     MCI_QUERY_CONNECTION 
  5715.             This flag specifies that the default connection associated with the 
  5716.             indicated connector is to be returned in the pszToDevice, 
  5717.             ulToConnectorType, and ulToConnectorIndex fields of the 
  5718.             MCI_DEFAULT_CONNECTION_PARMS data structure. 
  5719.  
  5720.     MCI_MAKE_CONNECTION 
  5721.             This flag specifies that a default connection is to be established 
  5722.             between the current device and the ulDeviceTypeID field of the data 
  5723.             structure pointed to by pParam2. The precise connectors on each 
  5724.             device can be indicated using the associated connector type and 
  5725.             index flags. 
  5726.  
  5727.     MCI_BREAK_CONNECTION 
  5728.             This flag specifies that the default connection associated with the 
  5729.             indicated connector is to be broken. 
  5730.  
  5731.     MCI_CONNECTOR_TYPE 
  5732.             This flag specifies that the connector type (ulConnectorType field) 
  5733.             for the primary device is to be used for the query.  When this flag 
  5734.             is used the ulConnectorIndex field is used as a relative index 
  5735.             rather than an absolute index. 
  5736.  
  5737.     MCI_CONNECTOR_INDEX 
  5738.             This flag specifies that the ulConnectorIndex field contains the 
  5739.             connector index for the primary device.  If this flag is not 
  5740.             specified an index of 1 is assumed. 
  5741.  
  5742.     MCI_TO_CONNECTOR_TYPE 
  5743.             This flag specifies that the connector type (ulToConnectorType 
  5744.             field) for the primary device is to be used for the query.  When 
  5745.             this flag is used, the ulToConnectorIndex field is used as a 
  5746.             relative index rather than an absolute index. 
  5747.  
  5748.     MCI_TO_CONNECTOR_INDEX 
  5749.             This flag specifies that the ulToConnectorIndex field contains the 
  5750.             connector index for the primary device.  If this flag is not 
  5751.             specified an index of 1 is assumed. 
  5752.  
  5753.  
  5754. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION Parameter - pParam2 ΓòÉΓòÉΓòÉ
  5755.  
  5756.  pParam2 (PMCI_DEFAULT_CONNECTION_PARMS) 
  5757.     A pointer to the MCI_DEFAULT_CONNECTION_PARMS data structure. 
  5758.  
  5759.  
  5760. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION Return Value - rc ΓòÉΓòÉΓòÉ
  5761.  
  5762.  rc (ULONG) 
  5763.     Return codes indicating success or type of failure: 
  5764.  
  5765.     MCIERR_SUCCESS 
  5766.             If the function succeeds, 0 is returned. 
  5767.  
  5768.     MCIERR_INSTANCE_INACTIVE 
  5769.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  5770.             make the device instance active. 
  5771.  
  5772.     MCIERR_MISSING_FLAG 
  5773.             A required flag is missing. 
  5774.  
  5775.     MCIERR_DRIVER 
  5776.             Internal MMPM/2 driver error. 
  5777.  
  5778.     MCIERR_UNSUPPORTED_FLAG 
  5779.             Given flag is unsupported for this device. 
  5780.  
  5781.     MCIERR_INVALID_CALLBACK_HANDLE 
  5782.             Given callback handle is invalid. 
  5783.  
  5784.     MCIERR_UNSUPPORTED_CONN_TYPE 
  5785.             This device does not support the given connector type. 
  5786.  
  5787.     MCIERR_INVALID_CONNECTOR_TYPE 
  5788.             The given connector type is invalid. 
  5789.  
  5790.     MCIERR_INVALID_CONNECTOR_INDEX 
  5791.             Invalid connector index given. 
  5792.  
  5793.     MCIERR_MISSING_PARAMETER 
  5794.             Required parameter is missing. 
  5795.  
  5796.     MCIERR_INVALID_FLAG 
  5797.             Flag is invalid (ulParam1). 
  5798.  
  5799.     MCIERR_FLAGS_NOT_COMPATIBLE 
  5800.             Flags cannot be used together. 
  5801.  
  5802.     MCIERR_INVALID_CONNECTION 
  5803.             An attempt was made to make an invalid connection. 
  5804.  
  5805.     MCIERR_NO_CONNECTION 
  5806.             An attempt was made to break a nonexistent connection. 
  5807.  
  5808.     MCIERR_INVALID_DEVICE_ID 
  5809.             A device ID is not valid. 
  5810.  
  5811.     MCIERR_INVALID_DEVICE_ORDINAL 
  5812.             Invalid device ordinal given. 
  5813.  
  5814.  
  5815. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION - Description ΓòÉΓòÉΓòÉ
  5816.  
  5817. This message is used to make, break, and query default connections between 
  5818. devices. 
  5819.  
  5820.  ulParam1 (ULONG) 
  5821.     This parameter can contain any of the following flags: 
  5822.  
  5823.     MCI_NOTIFY 
  5824.             A notification message will be posted to the window specified in 
  5825.             the hwndCallback parameter of the data structure pointed to by the 
  5826.             pParam2 parameter.  The notification will be posted when the action 
  5827.             indicated by this message is completed or when an error occurs. 
  5828.  
  5829.     MCI_WAIT 
  5830.             Control is not to be returned until the action indicated by this 
  5831.             message is completed or an error occurs. 
  5832.  
  5833.     MCI_QUERY_CONNECTION 
  5834.             This flag specifies that the default connection associated with the 
  5835.             indicated connector is to be returned in the pszToDevice, 
  5836.             ulToConnectorType, and ulToConnectorIndex fields of the 
  5837.             MCI_DEFAULT_CONNECTION_PARMS data structure. 
  5838.  
  5839.     MCI_MAKE_CONNECTION 
  5840.             This flag specifies that a default connection is to be established 
  5841.             between the current device and the ulDeviceTypeID field of the data 
  5842.             structure pointed to by pParam2. The precise connectors on each 
  5843.             device can be indicated using the associated connector type and 
  5844.             index flags. 
  5845.  
  5846.     MCI_BREAK_CONNECTION 
  5847.             This flag specifies that the default connection associated with the 
  5848.             indicated connector is to be broken. 
  5849.  
  5850.     MCI_CONNECTOR_TYPE 
  5851.             This flag specifies that the connector type (ulConnectorType field) 
  5852.             for the primary device is to be used for the query.  When this flag 
  5853.             is used the ulConnectorIndex field is used as a relative index 
  5854.             rather than an absolute index. 
  5855.  
  5856.     MCI_CONNECTOR_INDEX 
  5857.             This flag specifies that the ulConnectorIndex field contains the 
  5858.             connector index for the primary device.  If this flag is not 
  5859.             specified an index of 1 is assumed. 
  5860.  
  5861.     MCI_TO_CONNECTOR_TYPE 
  5862.             This flag specifies that the connector type (ulToConnectorType 
  5863.             field) for the primary device is to be used for the query.  When 
  5864.             this flag is used, the ulToConnectorIndex field is used as a 
  5865.             relative index rather than an absolute index. 
  5866.  
  5867.     MCI_TO_CONNECTOR_INDEX 
  5868.             This flag specifies that the ulToConnectorIndex field contains the 
  5869.             connector index for the primary device.  If this flag is not 
  5870.             specified an index of 1 is assumed. 
  5871.  
  5872.  pParam2 (PMCI_DEFAULT_CONNECTION_PARMS) 
  5873.     A pointer to the MCI_DEFAULT_CONNECTION_PARMS data structure. 
  5874.  
  5875.  rc (ULONG) 
  5876.     Return codes indicating success or type of failure: 
  5877.  
  5878.     MCIERR_SUCCESS 
  5879.             If the function succeeds, 0 is returned. 
  5880.  
  5881.     MCIERR_INSTANCE_INACTIVE 
  5882.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  5883.             make the device instance active. 
  5884.  
  5885.     MCIERR_MISSING_FLAG 
  5886.             A required flag is missing. 
  5887.  
  5888.     MCIERR_DRIVER 
  5889.             Internal MMPM/2 driver error. 
  5890.  
  5891.     MCIERR_UNSUPPORTED_FLAG 
  5892.             Given flag is unsupported for this device. 
  5893.  
  5894.     MCIERR_INVALID_CALLBACK_HANDLE 
  5895.             Given callback handle is invalid. 
  5896.  
  5897.     MCIERR_UNSUPPORTED_CONN_TYPE 
  5898.             This device does not support the given connector type. 
  5899.  
  5900.     MCIERR_INVALID_CONNECTOR_TYPE 
  5901.             The given connector type is invalid. 
  5902.  
  5903.     MCIERR_INVALID_CONNECTOR_INDEX 
  5904.             Invalid connector index given. 
  5905.  
  5906.     MCIERR_MISSING_PARAMETER 
  5907.             Required parameter is missing. 
  5908.  
  5909.     MCIERR_INVALID_FLAG 
  5910.             Flag is invalid (ulParam1). 
  5911.  
  5912.     MCIERR_FLAGS_NOT_COMPATIBLE 
  5913.             Flags cannot be used together. 
  5914.  
  5915.     MCIERR_INVALID_CONNECTION 
  5916.             An attempt was made to make an invalid connection. 
  5917.  
  5918.     MCIERR_NO_CONNECTION 
  5919.             An attempt was made to break a nonexistent connection. 
  5920.  
  5921.     MCIERR_INVALID_DEVICE_ID 
  5922.             A device ID is not valid. 
  5923.  
  5924.     MCIERR_INVALID_DEVICE_ORDINAL 
  5925.             Invalid device ordinal given. 
  5926.  
  5927.  
  5928. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION - Remarks ΓòÉΓòÉΓòÉ
  5929.  
  5930. Connector indexes start at index value 1.  This message does not require a 
  5931. device to be opened. 
  5932.  
  5933. For a list of connector types which are supported by various device types, see 
  5934. the MCI_CONNECTORINFO message. 
  5935.  
  5936.  
  5937. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION - Default Processing ΓòÉΓòÉΓòÉ
  5938.  
  5939. If MCI_CONNECTOR_INDEX or MCI_TO_CONNECTOR flags are not specified, the 
  5940. associated connector index defaults to 1. 
  5941.  
  5942. If MCI_CONNECTOR_TYPE or MCI_TO_CONNECTOR_TYPE flags are not specified, then 
  5943. the associated indexes are absolute. 
  5944.  
  5945.  
  5946. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION - Related Messages ΓòÉΓòÉΓòÉ
  5947.  
  5948.      MCI_CONNECTION 
  5949.      MCI_CONNECTOR 
  5950.      MCI_CONNECTORINFO 
  5951.  
  5952.  
  5953. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION - Example Code ΓòÉΓòÉΓòÉ
  5954.  
  5955. The following code illustrates how to determine the default connection for 
  5956. waveaudio. 
  5957.  
  5958.  
  5959.    MCI_DEFAULT_CONNECTION_PARMS    defaultconnparms;
  5960.  
  5961.    defaultconnparms.ulConnectorType = MCI_WAVE_STREAM_CONNECTOR;
  5962.    defaultconnparms.pszDevice = MCI_DEVTYPE_WAVEFORM_AUDIO_NAME;
  5963.  
  5964.                      /* Determine the default connection for waveaudio */
  5965.  
  5966.    mciSendCommand ( 0,                   /* Ignore field               */
  5967.       MCI_DEFAULT_CONNECTION,            /* Default connection message */
  5968.       MCI_QUERY_CONNECTION | MCI_CONNECTOR_TYPE | MCI_WAIT,
  5969.                                          /* Flags for this message     */
  5970.       (PVOID) &defaultconnparms,         /* Data structure             */
  5971.       0 );                               /* No user parm               */
  5972.  
  5973.     /* Note: defaultconnparms.pszToDevice now contains the name of
  5974.        the device with default connection to the waveaudio (ampmixNN). */
  5975.  
  5976.  
  5977. ΓòÉΓòÉΓòÉ <hidden> MCI_DEFAULT_CONNECTION - Topics ΓòÉΓòÉΓòÉ
  5978.  
  5979. Select an item: 
  5980.  
  5981. Description
  5982. Returns
  5983. Remarks
  5984. Default Processing
  5985. Related Messages
  5986. Example Code
  5987. Glossary
  5988.  
  5989.  
  5990. ΓòÉΓòÉΓòÉ 7.12. MCI_DELETE ΓòÉΓòÉΓòÉ
  5991.  
  5992.  
  5993. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  5994.  
  5995.  ulParam1 (ULONG) 
  5996.     This parameter can contain any of the following flags: 
  5997.  
  5998.     MCI_NOTIFY 
  5999.             A notification message will be posted to the window specified in 
  6000.             the hwndCallback parameter of the data structure pointed to by the 
  6001.             pParam2 parameter.  The notification will be posted when the action 
  6002.             indicated by this message is completed or when an error occurs. 
  6003.  
  6004.     MCI_WAIT 
  6005.             Control is not to be returned until the action indicated by this 
  6006.             message is completed or an error occurs. 
  6007.  
  6008.     MCI_FROM 
  6009.             The beginning position of a delete. The position of the media is 
  6010.             either the position specified in the ulFrom field or the current 
  6011.             position if MCI_FROM is not specified. 
  6012.  
  6013.     MCI_TO 
  6014.             The ending position of a delete operation.  If MCI_TO is not 
  6015.             specified, the end of the file is assumed to be the end of the 
  6016.             range to be deleted. 
  6017.  
  6018.  
  6019. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  6020.  
  6021.  pParam2 (PMCI_EDIT_PARMS) 
  6022.     A pointer to the MCI_EDIT_PARMS data structure. 
  6023.  
  6024.  
  6025. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE Return Value - rc ΓòÉΓòÉΓòÉ
  6026.  
  6027.  rc (ULONG) 
  6028.     Return codes indicating success or type of failure: 
  6029.  
  6030.     MCIERR_SUCCESS 
  6031.             Delete was successful. 
  6032.  
  6033.     MCIERR_CANNOT_WRITE 
  6034.             The file was not opened with write access. 
  6035.  
  6036.     MCIERR_OUTOFRANGE 
  6037.             The units are out of the range. 
  6038.  
  6039.     MCIERR_INVALID_DEVICE_ID 
  6040.             The device ID is not valid. 
  6041.  
  6042.     MCIERR_MISSING_PARAMETER 
  6043.             Required parameter is missing. 
  6044.  
  6045.     MCIERR_INVALID_FLAG 
  6046.             Flag is invalid (ulParam1). 
  6047.  
  6048.     MCIERR_UNSUPPORTED_FLAG 
  6049.             Given flag is unsupported for this device. 
  6050.  
  6051.     MCIERR_INSTANCE_INACTIVE 
  6052.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  6053.             the device context active. 
  6054.  
  6055.     MCIERR_INVALID_CALLBACK_HANDLE 
  6056.             Given callback handle is invalid. 
  6057.  
  6058.     MCIERR_OUT_OF_MEMORY 
  6059.             Insufficient memory to perform the operation requested. 
  6060.  
  6061.  
  6062. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE - Description ΓòÉΓòÉΓòÉ
  6063.  
  6064. This message removes the specified range of data from the device file.  The 
  6065. media position after a delete operation is the MCI_FROM position if used, or 
  6066. the previous position if MCI_FROM is not used. 
  6067.  
  6068.  ulParam1 (ULONG) 
  6069.     This parameter can contain any of the following flags: 
  6070.  
  6071.     MCI_NOTIFY 
  6072.             A notification message will be posted to the window specified in 
  6073.             the hwndCallback parameter of the data structure pointed to by the 
  6074.             pParam2 parameter.  The notification will be posted when the action 
  6075.             indicated by this message is completed or when an error occurs. 
  6076.  
  6077.     MCI_WAIT 
  6078.             Control is not to be returned until the action indicated by this 
  6079.             message is completed or an error occurs. 
  6080.  
  6081.     MCI_FROM 
  6082.             The beginning position of a delete. The position of the media is 
  6083.             either the position specified in the ulFrom field or the current 
  6084.             position if MCI_FROM is not specified. 
  6085.  
  6086.     MCI_TO 
  6087.             The ending position of a delete operation.  If MCI_TO is not 
  6088.             specified, the end of the file is assumed to be the end of the 
  6089.             range to be deleted. 
  6090.  
  6091.  pParam2 (PMCI_EDIT_PARMS) 
  6092.     A pointer to the MCI_EDIT_PARMS data structure. 
  6093.  
  6094.  rc (ULONG) 
  6095.     Return codes indicating success or type of failure: 
  6096.  
  6097.     MCIERR_SUCCESS 
  6098.             Delete was successful. 
  6099.  
  6100.     MCIERR_CANNOT_WRITE 
  6101.             The file was not opened with write access. 
  6102.  
  6103.     MCIERR_OUTOFRANGE 
  6104.             The units are out of the range. 
  6105.  
  6106.     MCIERR_INVALID_DEVICE_ID 
  6107.             The device ID is not valid. 
  6108.  
  6109.     MCIERR_MISSING_PARAMETER 
  6110.             Required parameter is missing. 
  6111.  
  6112.     MCIERR_INVALID_FLAG 
  6113.             Flag is invalid (ulParam1). 
  6114.  
  6115.     MCIERR_UNSUPPORTED_FLAG 
  6116.             Given flag is unsupported for this device. 
  6117.  
  6118.     MCIERR_INSTANCE_INACTIVE 
  6119.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  6120.             the device context active. 
  6121.  
  6122.     MCIERR_INVALID_CALLBACK_HANDLE 
  6123.             Given callback handle is invalid. 
  6124.  
  6125.     MCIERR_OUT_OF_MEMORY 
  6126.             Insufficient memory to perform the operation requested. 
  6127.  
  6128.  
  6129. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE - Remarks ΓòÉΓòÉΓòÉ
  6130.  
  6131. Neither a user-defined buffer nor the clipboard is used by this command.  If 
  6132. neither MCI_FROM nor MCI_TO are specified, the range to be deleted is assumed 
  6133. to be from the current position to the end of the file.  The difference between 
  6134. MCI_FROM and MCI_TO must be greater than zero, otherwise an error is returned. 
  6135.  
  6136. The units of the MCI_FROM and MCI_TO parameters are interpreted in the 
  6137. currently selected time format. 
  6138.  
  6139. The following example illustrates how the MCI_FROM and MCI_TO parameters are 
  6140. interpreted.  If a multimedia element is composed of samples and a file has 100 
  6141. samples; the samples are numbered from 0 to 99.  If the from position is 
  6142. specified as 25 and the to position is specified as 30, MCI_DELETE will delete 
  6143. samples 25, 26, 27, 28, and 29.  After the delete, the current position of the 
  6144. media would be at sample 25. 
  6145.  
  6146. Edited Audio/Video Interleaved (AVI) movie files cannot always be saved with 
  6147. their original name after the delete operation.  If the clipboard contains a 
  6148. reference to data that would be erased during saving or if another instance of 
  6149. the digital video device has a pending paste operation which depends on this 
  6150. data, the file cannot be saved unless a new file name has been provided. If a 
  6151. new file name is not provided, MMIOERR_NEED_NEW_FILENAME is returned by the AVI 
  6152. I/O procedure and a temporary file is created to save the edited movie. 
  6153.  
  6154. Note:  AVI is the only video file format supporting editing commands. 
  6155.  
  6156.  
  6157. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE - Related Messages ΓòÉΓòÉΓòÉ
  6158.  
  6159.      MCI_COPY 
  6160.      MCI_CUT 
  6161.      MCI_PASTE 
  6162.      MCI_UNDO 
  6163.      MCI_REDO 
  6164.  
  6165.  
  6166. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE - Example Code ΓòÉΓòÉΓòÉ
  6167.  
  6168. The following code illustrates how to delete the first five seconds of a file. 
  6169.  
  6170.  
  6171.     USHORT                usDeviceID;
  6172.     MCI_EDIT_PARMS        mep;
  6173.  
  6174.     mep.hwndCallback = hwndMyWindow;
  6175.     mep.ulFrom = 0;
  6176.     mep.ulTo = 5000;   /* Current time format is milliseconds */
  6177.  
  6178.                        /* Delete first five seconds of file   */
  6179.     mciSendCommand( usDeviceID,
  6180.                     MCI_DELETE,
  6181.                     MCI_NOTIFY | MCI_FROM | MCI_TO,
  6182.                     &mep,
  6183.                     0 );
  6184.  
  6185.  
  6186. ΓòÉΓòÉΓòÉ <hidden> MCI_DELETE - Topics ΓòÉΓòÉΓòÉ
  6187.  
  6188. Select an item: 
  6189.  
  6190. Description
  6191. Returns
  6192. Remarks
  6193. Related Messages
  6194. Example Code
  6195. Glossary
  6196.  
  6197.  
  6198. ΓòÉΓòÉΓòÉ 7.13. MCI_DEVICESETTINGS ΓòÉΓòÉΓòÉ
  6199.  
  6200.  
  6201. ΓòÉΓòÉΓòÉ <hidden> MCI_DEVICESETTINGS Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  6202.  
  6203.  ulParam1 (ULONG) 
  6204.     This parameter can contain any of the following flags: 
  6205.  
  6206.     Note:  The MCI_NOTIFY flag is not valid for this message. 
  6207.  
  6208.     MCI_WAIT 
  6209.              Control is not to be returned until the action indicated by this 
  6210.              message is completed or an error occurs. 
  6211.  
  6212.  
  6213. ΓòÉΓòÉΓòÉ <hidden> MCI_DEVICESETTINGS Parameter - pParam2 ΓòÉΓòÉΓòÉ
  6214.  
  6215.  pParam2 (PMCI_DEVICESETTINGS_PARMS) 
  6216.     A pointer to the MCI_DEVICESETTINGS_PARMS data structure. 
  6217.  
  6218.  
  6219. ΓòÉΓòÉΓòÉ <hidden> MCI_DEVICESETTINGS Return Value - hwnd ΓòÉΓòÉΓòÉ
  6220.  
  6221.  hwnd (HWND) 
  6222.     Returns the handle to a settings page or zero if no page is inserted. 
  6223.  
  6224.  
  6225. ΓòÉΓòÉΓòÉ <hidden> MCI_DEVICESETTINGS - Description ΓòÉΓòÉΓòÉ
  6226.  
  6227. This message is sent to a media control interface driver (MCD) when the 
  6228. Multimedia Setup application is inserting pages into a Settings notebook.  This 
  6229. message provides the MCD the opportunity to insert custom settings pages. 
  6230.  
  6231.  ulParam1 (ULONG) 
  6232.     This parameter can contain any of the following flags: 
  6233.  
  6234.     Note:  The MCI_NOTIFY flag is not valid for this message. 
  6235.  
  6236.     MCI_WAIT 
  6237.              Control is not to be returned until the action indicated by this 
  6238.              message is completed or an error occurs. 
  6239.  
  6240.  pParam2 (PMCI_DEVICESETTINGS_PARMS) 
  6241.     A pointer to the MCI_DEVICESETTINGS_PARMS data structure. 
  6242.  
  6243.  hwnd (HWND) 
  6244.     Returns the handle to a settings page or zero if no page is inserted. 
  6245.  
  6246.  
  6247. ΓòÉΓòÉΓòÉ <hidden> MCI_DEVICESETTINGS - Remarks ΓòÉΓòÉΓòÉ
  6248.  
  6249. This message is sent only if the MCI_SYSINFO_DEVICESETTINGS flag is set in the 
  6250. ulDeviceFlag field of the MCI_SYSINFO_LOGDEVICE data structure.  Refer to the 
  6251. OS/2 Multimedia Subsystem Programming Guide for details of inserting settings 
  6252. pages. 
  6253.  
  6254. This command does not require the device to be opened. 
  6255.  
  6256. Note:  This command is used mainly by the Multimedia Setup application and 
  6257.        should not be used by general purpose OS/2 multimedia applications. 
  6258.  
  6259.  
  6260. ΓòÉΓòÉΓòÉ <hidden> MCI_DEVICESETTINGS - Example Code ΓòÉΓòÉΓòÉ
  6261.  
  6262. The following code illustrates how to close a device context. 
  6263.  
  6264.   ULONG mciDriverEntry (PINSTANCE pInst,
  6265.                         USHORT    usMessage,
  6266.                         ULONG     ulParam1,
  6267.                         ULONG     ulParam2,
  6268.                         USHORT    usUserParam)
  6269.  
  6270. {
  6271.   switch  (usMessage)  {
  6272.      case MCI_DEVICESETTINGS:
  6273.        return(InsertPage  ((PMCI_DEVICE_SETTINGS_PARMS) ulParam2));
  6274. }
  6275. }
  6276.  
  6277.  
  6278. ΓòÉΓòÉΓòÉ <hidden> MCI_DEVICESETTINGS - Topics ΓòÉΓòÉΓòÉ
  6279.  
  6280. Select an item: 
  6281.  
  6282. Description
  6283. Returns
  6284. Remarks
  6285. Example Code
  6286. Glossary
  6287.  
  6288.  
  6289. ΓòÉΓòÉΓòÉ 7.14. MCI_ESCAPE ΓòÉΓòÉΓòÉ
  6290.  
  6291.  
  6292. ΓòÉΓòÉΓòÉ <hidden> MCI_ESCAPE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  6293.  
  6294.  ulParam1 (ULONG) 
  6295.     This parameter can contain any of the following flags: 
  6296.  
  6297.     MCI_NOTIFY 
  6298.             A notification message will be posted to the window specified in 
  6299.             the hwndCallback parameter of the data structure pointed to by the 
  6300.             pParam2 parameter.  The notification will be posted when the action 
  6301.             indicated by this message is completed or when an error occurs. 
  6302.  
  6303.     MCI_WAIT 
  6304.             Control is not to be returned until the action indicated by this 
  6305.             message is completed or an error occurs. 
  6306.  
  6307.     MCI_ESCAPE_STRING 
  6308.             This flag indicates a command string is specified in the pszCommand 
  6309.             field of the MCI_ESCAPE_PARMS data structure. 
  6310.  
  6311.  
  6312. ΓòÉΓòÉΓòÉ <hidden> MCI_ESCAPE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  6313.  
  6314.  pParam2 (PMCI_ESCAPE_PARMS) 
  6315.     A pointer to the MCI_ESCAPE_PARMS data structure. 
  6316.  
  6317.  
  6318. ΓòÉΓòÉΓòÉ <hidden> MCI_ESCAPE Return Value - rc ΓòÉΓòÉΓòÉ
  6319.  
  6320.  rc (ULONG) 
  6321.     Return codes indicating success or type of failure: 
  6322.  
  6323.     MCIERR_SUCCESS 
  6324.             If the function succeeds, 0 is returned. 
  6325.  
  6326.     MCIERR_INVALID_DEVICE_ID 
  6327.             The device ID is not valid. 
  6328.  
  6329.     MCIERR_INSTANCE_INACTIVE 
  6330.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  6331.             make the device ID active. 
  6332.  
  6333.     MCIERR_MISSING_FLAG 
  6334.             A required flag is missing. 
  6335.  
  6336.     MCIERR_UNSUPPORTED_FLAG 
  6337.             Given flag is unsupported for this device. 
  6338.  
  6339.     MCIERR_INVALID_CALLBACK_HANDLE 
  6340.             Given callback handle is invalid. 
  6341.  
  6342.     MCIERR_HARDWARE 
  6343.             Device hardware error. 
  6344.  
  6345.     MCIERR_UNSUPPORTED_FUNCTION 
  6346.             Unsupported function. 
  6347.  
  6348.     MCIERR_INVALID_FLAG 
  6349.             Flag (ulParam1) is invalid. 
  6350.  
  6351.     MCIERR_FLAGS_NOT_COMPATIBLE 
  6352.             Flags cannot be used together. 
  6353.  
  6354.     MCIERR_MISSING_PARAMETER 
  6355.             Required parameter is missing. 
  6356.  
  6357.  
  6358. ΓòÉΓòÉΓòÉ <hidden> MCI_ESCAPE - Description ΓòÉΓòÉΓòÉ
  6359.  
  6360. This message sends messages directly to the vendor-specific driver (VSD) or the 
  6361. device driver.  This message is not interpreted by the media control interface 
  6362. driver (MCD). 
  6363.  
  6364.  ulParam1 (ULONG) 
  6365.     This parameter can contain any of the following flags: 
  6366.  
  6367.     MCI_NOTIFY 
  6368.             A notification message will be posted to the window specified in 
  6369.             the hwndCallback parameter of the data structure pointed to by the 
  6370.             pParam2 parameter.  The notification will be posted when the action 
  6371.             indicated by this message is completed or when an error occurs. 
  6372.  
  6373.     MCI_WAIT 
  6374.             Control is not to be returned until the action indicated by this 
  6375.             message is completed or an error occurs. 
  6376.  
  6377.     MCI_ESCAPE_STRING 
  6378.             This flag indicates a command string is specified in the pszCommand 
  6379.             field of the MCI_ESCAPE_PARMS data structure. 
  6380.  
  6381.  pParam2 (PMCI_ESCAPE_PARMS) 
  6382.     A pointer to the MCI_ESCAPE_PARMS data structure. 
  6383.  
  6384.  rc (ULONG) 
  6385.     Return codes indicating success or type of failure: 
  6386.  
  6387.     MCIERR_SUCCESS 
  6388.             If the function succeeds, 0 is returned. 
  6389.  
  6390.     MCIERR_INVALID_DEVICE_ID 
  6391.             The device ID is not valid. 
  6392.  
  6393.     MCIERR_INSTANCE_INACTIVE 
  6394.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  6395.             make the device ID active. 
  6396.  
  6397.     MCIERR_MISSING_FLAG 
  6398.             A required flag is missing. 
  6399.  
  6400.     MCIERR_UNSUPPORTED_FLAG 
  6401.             Given flag is unsupported for this device. 
  6402.  
  6403.     MCIERR_INVALID_CALLBACK_HANDLE 
  6404.             Given callback handle is invalid. 
  6405.  
  6406.     MCIERR_HARDWARE 
  6407.             Device hardware error. 
  6408.  
  6409.     MCIERR_UNSUPPORTED_FUNCTION 
  6410.             Unsupported function. 
  6411.  
  6412.     MCIERR_INVALID_FLAG 
  6413.             Flag (ulParam1) is invalid. 
  6414.  
  6415.     MCIERR_FLAGS_NOT_COMPATIBLE 
  6416.             Flags cannot be used together. 
  6417.  
  6418.     MCIERR_MISSING_PARAMETER 
  6419.             Required parameter is missing. 
  6420.  
  6421.  
  6422. ΓòÉΓòÉΓòÉ <hidden> MCI_ESCAPE - Remarks ΓòÉΓòÉΓòÉ
  6423.  
  6424. MCI_ESCAPE provides a means of passing a command string directly to a VSD or 
  6425. device driver for execution. 
  6426.  
  6427. Support of this message is optional. 
  6428.  
  6429.  
  6430. ΓòÉΓòÉΓòÉ <hidden> MCI_ESCAPE - Topics ΓòÉΓòÉΓòÉ
  6431.  
  6432. Select an item: 
  6433.  
  6434. Description
  6435. Returns
  6436. Remarks
  6437. Glossary
  6438.  
  6439.  
  6440. ΓòÉΓòÉΓòÉ 7.15. MCI_FREEZE ΓòÉΓòÉΓòÉ
  6441.  
  6442.  
  6443. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  6444.  
  6445.  ulParam1 (ULONG) 
  6446.     This parameter can contain the following flags: 
  6447.  
  6448.     MCI_NOTIFY 
  6449.             A notification message will be posted to the window specified in 
  6450.             the hwndCallback parameter of the data structure pointed to by the 
  6451.             pParam2 parameter.  The notification will be posted when the action 
  6452.             indicated by this message is completed or when an error occurs. 
  6453.  
  6454.     MCI_WAIT 
  6455.             Control is not to be returned until the action indicated by this 
  6456.             message is completed or an error occurs. 
  6457.  
  6458.     Video Overlay Extensions 
  6459.  
  6460.     The following additional items apply to video overlay devices: 
  6461.  
  6462.     MCI_OVLY_FREEZE_RECT 
  6463.             Specifies that the rc field of the MCI_OVLY_RECT_PARMS data 
  6464.             structure contains a valid rectangle.  If this flag is not 
  6465.             specified, the entire image is frozen. 
  6466.  
  6467.     MCI_OVLY_FREEZE_RECT_OUTSIDE 
  6468.             Specifies that the area outside the specified rectangle is to be 
  6469.             affected.  If this flag is not specified then the area inside is 
  6470.             affected.  This flag must be specified with the 
  6471.             MCI_OVLY_FREEZE_RECT flag. 
  6472.  
  6473.  
  6474. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  6475.  
  6476.  pParam2 (PMCI_OVLY_RECT_PARMS) 
  6477.     A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  6478.  
  6479.  
  6480. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE Return Value - rc ΓòÉΓòÉΓòÉ
  6481.  
  6482.  rc (ULONG) 
  6483.     Return codes indicating success or type of failure: 
  6484.  
  6485.     MCIERR_SUCCESS 
  6486.             MMPM/2 command completed successfully. 
  6487.  
  6488.     MCIERR_OUT_OF_MEMORY 
  6489.             System out of memory. 
  6490.  
  6491.     MCIERR_INVALID_DEVICE_ID 
  6492.             Invalid device ID given. 
  6493.  
  6494.     MCIERR_MISSING_PARAMETER 
  6495.             Missing parameter for this command. 
  6496.  
  6497.     MCIERR_DRIVER 
  6498.             Internal MMPM/2 driver error. 
  6499.  
  6500.     MCIERR_INVALID_FLAG 
  6501.             Invalid flag specified for this command. 
  6502.  
  6503.     MCIERR_INSTANCE_INACTIVE 
  6504.             Instance inactive. 
  6505.  
  6506.     MCIERR_OVLY_INVALID_RECT 
  6507.             An invalid rectangle parameter was specified. 
  6508.  
  6509.     MCIERR_OVLY_NOT_AVAILABLE 
  6510.             The requested action is not available; for example, because video 
  6511.             has been set off. 
  6512.  
  6513.  
  6514. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE - Description ΓòÉΓòÉΓòÉ
  6515.  
  6516. This message freezes the motion video on an area of the display. 
  6517.  
  6518.  ulParam1 (ULONG) 
  6519.     This parameter can contain the following flags: 
  6520.  
  6521.     MCI_NOTIFY 
  6522.             A notification message will be posted to the window specified in 
  6523.             the hwndCallback parameter of the data structure pointed to by the 
  6524.             pParam2 parameter.  The notification will be posted when the action 
  6525.             indicated by this message is completed or when an error occurs. 
  6526.  
  6527.     MCI_WAIT 
  6528.             Control is not to be returned until the action indicated by this 
  6529.             message is completed or an error occurs. 
  6530.  
  6531.     Video Overlay Extensions 
  6532.  
  6533.     The following additional items apply to video overlay devices: 
  6534.  
  6535.     MCI_OVLY_FREEZE_RECT 
  6536.             Specifies that the rc field of the MCI_OVLY_RECT_PARMS data 
  6537.             structure contains a valid rectangle.  If this flag is not 
  6538.             specified, the entire image is frozen. 
  6539.  
  6540.     MCI_OVLY_FREEZE_RECT_OUTSIDE 
  6541.             Specifies that the area outside the specified rectangle is to be 
  6542.             affected.  If this flag is not specified then the area inside is 
  6543.             affected.  This flag must be specified with the 
  6544.             MCI_OVLY_FREEZE_RECT flag. 
  6545.  
  6546.  pParam2 (PMCI_OVLY_RECT_PARMS) 
  6547.     A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  6548.  
  6549.  rc (ULONG) 
  6550.     Return codes indicating success or type of failure: 
  6551.  
  6552.     MCIERR_SUCCESS 
  6553.             MMPM/2 command completed successfully. 
  6554.  
  6555.     MCIERR_OUT_OF_MEMORY 
  6556.             System out of memory. 
  6557.  
  6558.     MCIERR_INVALID_DEVICE_ID 
  6559.             Invalid device ID given. 
  6560.  
  6561.     MCIERR_MISSING_PARAMETER 
  6562.             Missing parameter for this command. 
  6563.  
  6564.     MCIERR_DRIVER 
  6565.             Internal MMPM/2 driver error. 
  6566.  
  6567.     MCIERR_INVALID_FLAG 
  6568.             Invalid flag specified for this command. 
  6569.  
  6570.     MCIERR_INSTANCE_INACTIVE 
  6571.             Instance inactive. 
  6572.  
  6573.     MCIERR_OVLY_INVALID_RECT 
  6574.             An invalid rectangle parameter was specified. 
  6575.  
  6576.     MCIERR_OVLY_NOT_AVAILABLE 
  6577.             The requested action is not available; for example, because video 
  6578.             has been set off. 
  6579.  
  6580.  
  6581. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE - Remarks ΓòÉΓòÉΓòÉ
  6582.  
  6583. MCI_FREEZE differs from MCI_PAUSE in that it causes the video overlay device to 
  6584. cease updating the video image without affecting the state of the image source 
  6585. device (external video device).  For example, if a motion video is being played 
  6586. and MCI_FREEZE is issued, the motion video continues to play but its display is 
  6587. frozen. 
  6588.  
  6589. Freezing or unfreezing an area outside the current video destination rectangle 
  6590. has no effect. 
  6591.  
  6592. Multiple freeze and unfreeze commands, which specify rectangles to be affected, 
  6593. can be issued sequentially to build up a complex region of frozen and unfrozen 
  6594. video. 
  6595.  
  6596.  
  6597. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE - Default Processing ΓòÉΓòÉΓòÉ
  6598.  
  6599. If MCI_OVLY_FREEZE_RECT is not specified, the entire image is frozen. If 
  6600. MCI_OVLY_FREEZE_RECT_OUTSIDE is not specified, the default is the area inside 
  6601. the rectangle. 
  6602.  
  6603.  
  6604. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE - Related Messages ΓòÉΓòÉΓòÉ
  6605.  
  6606.      MCI_UNFREEZE 
  6607.  
  6608.  
  6609. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE - Example Code ΓòÉΓòÉΓòÉ
  6610.  
  6611. The following code illustrates how to freeze the motion of a video image. 
  6612.  
  6613.     MCI_VID_RECT_PARMS mciFreezeParms;
  6614.     USHORT  usUserParm = 0;
  6615.     ULONG   ulReturn;
  6616.  
  6617.     /* Freezing OUTSIDE a sub-rectangle of the window */
  6618.     memset (&mciFreezeParms, 0x00, sizeof (MCI_VID_RECT_PARMS));
  6619.     mciFreezeParms.hwndCallback = hwndNotify;
  6620.     mciFreezeParms.rc.xLeft   = lX1;
  6621.     mciFreezeParms.rc.yBottom = lY1;
  6622.     mciFreezeParms.rc.xRight  = lX2;
  6623.     mciFreezeParms.rc.yTop    = lY2;
  6624.  
  6625.     ulReturn = mciSendCommand(usDeviceID,
  6626.                           MCI_FREEZE,
  6627.                           MCI_WAIT |
  6628.                           MCI_OVLY_FREEZE_RECT_OUTSIDE |
  6629.                           MCI_OVLY_FREEZE
  6630.                           (PVOID)&mciFreezeParms,
  6631.                           usUserParm);
  6632.  
  6633.  
  6634. ΓòÉΓòÉΓòÉ <hidden> MCI_FREEZE - Topics ΓòÉΓòÉΓòÉ
  6635.  
  6636. Select an item: 
  6637.  
  6638. Description
  6639. Returns
  6640. Remarks
  6641. Default Processing
  6642. Related Messages
  6643. Example Code
  6644. Glossary
  6645.  
  6646.  
  6647. ΓòÉΓòÉΓòÉ 7.16. MCI_GETDEVCAPS ΓòÉΓòÉΓòÉ
  6648.  
  6649.  
  6650. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  6651.  
  6652.  ulParam1 (ULONG) 
  6653.     This parameter can contain any of the following flags: 
  6654.  
  6655.     Note:  Either MCI_GETDEVCAPS_MESSAGE or MCI_GETDEVCAPS_ITEM must be 
  6656.            specified. 
  6657.  
  6658.     MCI_NOTIFY 
  6659.             A notification message will be posted to the window specified in 
  6660.             the hwndCallback parameter of the data structure pointed to by the 
  6661.             pParam2 parameter.  The notification will be posted when the action 
  6662.             indicated by this message is completed or when an error occurs. 
  6663.  
  6664.     MCI_WAIT 
  6665.             Control is not to be returned until the action indicated by this 
  6666.             message is completed or an error occurs. 
  6667.  
  6668.     MCI_GETDEVCAPS_EXTENDED 
  6669.             Indicates extended device capabilities are required. (Specifying 
  6670.             MCI_GETDEVCAPS_EXTENDED implies MCI_GETDEVCAPS_ITEM.) See the 
  6671.             individual device-specific extensions for each device for use of 
  6672.             this flag. 
  6673.  
  6674.     MCI_GETDEVCAPS_MESSAGE 
  6675.             The usMessage field of the data structure identified by pParam2 
  6676.             contains a constant specifying the message to be queried.  If the 
  6677.             device supports the message, MCI_TRUE is returned; otherwise, 
  6678.             MCI_FALSE is returned. 
  6679.  
  6680.             Note:  The string parser converts unrecognized strings into a 
  6681.                    message ID value of 0.  This message value is defined as not 
  6682.                    being supported by any driver.  Other messages are converted 
  6683.                    to their corresponding message ID value. 
  6684.  
  6685.     MCI_GETDEVCAPS_ITEM 
  6686.             The ulItem field of the data structure identified by pParam2 
  6687.             contains a constant specifying the device capabilities to be 
  6688.             queried. 
  6689.  
  6690.             The following list of items can be used regardless of the type of 
  6691.             device: 
  6692.  
  6693.             MCI_GETDEVCAPS_CAN_EJECT 
  6694.                     Returns MCI_TRUE if the device can eject its media; 
  6695.                     otherwise, it returns MCI_FALSE. 
  6696.  
  6697.             MCI_GETDEVCAPS_CAN_LOCKEJECT 
  6698.                     Returns MCI_TRUE if the device can disable the manual 
  6699.                     ejection of its media; otherwise, it returns MCI_FALSE. 
  6700.  
  6701.             MCI_GETDEVCAPS_CAN_PLAY 
  6702.                     Returns MCI_TRUE if the device can play its media; 
  6703.                     otherwise, it returns MCI_FALSE.  If the device returns 
  6704.                     MCI_TRUE, the device supports MCI_PLAY, MCI_PAUSE, 
  6705.                     MCI_RESUME, and MCI_STOP. 
  6706.  
  6707.             MCI_GETDEVCAPS_CAN_PROCESS_INTERNAL 
  6708.                     Returns MCI_TRUE if the device can internally process 
  6709.                     digital data such as a CD Digital Audio drive with a 
  6710.                     built-in digital-to-analog converter (DAC); otherwise, it 
  6711.                     returns MCI_FALSE. 
  6712.  
  6713.             MCI_GETDEVCAPS_CAN_RECORD 
  6714.                     Returns MCI_TRUE if the device can record its media; 
  6715.                     otherwise, it returns MCI_FALSE.  If MCI_TRUE is returned, 
  6716.                     the device supports MCI_RECORD. 
  6717.  
  6718.             MCI_GETDEVCAPS_CAN_RECORD_INSERT 
  6719.                     Returns MCI_TRUE if the device supports insertion of data 
  6720.                     while recording; otherwise, it returns MCI_FALSE. 
  6721.  
  6722.             MCI_GETDEVCAPS_CAN_SAVE 
  6723.                     Returns MCI_TRUE if the device can save files; otherwise, 
  6724.                     it returns MCI_FALSE.  If a device returns TRUE, the 
  6725.                     MCI_SAVE command must be issued to save changes in the 
  6726.                     media file. 
  6727.  
  6728.             MCI_GETDEVCAPS_CAN_SETVOLUME 
  6729.                     Returns MCI_TRUE if the device can change the audio volume 
  6730.                     level; otherwise, it returns MCI_FALSE. 
  6731.  
  6732.             MCI_GETDEVCAPS_CAN_STREAM 
  6733.                     Returns MCI_TRUE if the device can stream digital data 
  6734.                     continuously to or from memory; otherwise, it returns 
  6735.                     MCI_FALSE. The source or destination of the data transfer 
  6736.                     is determined by the device instance connection. 
  6737.  
  6738.             MCI_GETDEVCAPS_DEVICE_TYPE 
  6739.                     Returns the constant defined for this particular device 
  6740.                     type. 
  6741.  
  6742.             MCI_GETDEVCAPS_HAS_AUDIO 
  6743.                     Returns MCI_TRUE if the device is capable of playing audio; 
  6744.                     otherwise, it returns MCI_FALSE. 
  6745.  
  6746.             MCI_GETDEVCAPS_HAS_IMAGE 
  6747.                     Returns MCI_TRUE if the device supports a still image in 
  6748.                     its device instance; otherwise, it returns MCI_FALSE. 
  6749.  
  6750.             MCI_GETDEVCAPS_HAS_VIDEO 
  6751.                     Returns MCI_TRUE if the device is capable of playing video; 
  6752.                     otherwise, it returns MCI_FALSE. 
  6753.  
  6754.             MCI_GETDEVCAPS_PREROLL_TIME 
  6755.                     Returns a deterministic or maximum notified preroll time in 
  6756.                     MMTIME units (regardless of the currently set time base for 
  6757.                     the device).  A value of 0 for the maximum notified preroll 
  6758.                     time indicates that an upper boundary to the preroll time 
  6759.                     is not known. 
  6760.  
  6761.             MCI_GETDEVCAPS_PREROLL_TYPE 
  6762.                     Returns MCI_PREROLL_NONE. 
  6763.  
  6764.             MCI_GETDEVCAPS_USES_FILES 
  6765.                     Returns MCI_TRUE if the device requires a file name or 
  6766.                     playlist pointer; otherwise, it returns MCI_FALSE. 
  6767.  
  6768.     Amplifier Mixer Extensions 
  6769.  
  6770.     If the MCI_GETDEVCAPS_EXTENDED flag is specified, the following flags can 
  6771.     be placed in the ulAttribute field of MCI_AMP_GETDEVCAPS_PARMS. The 
  6772.     ulExtended field of the MCI_AMP_GETDEVCAPS_PARMS structure must contain 
  6773.     MCI_MIXER_LINE if the MCI_GETDEVCAPS_EXTENDED flag is specified. 
  6774.  
  6775.     MCI_AMP_CAN_SET_TREBLE 
  6776.             This flag allows an application to determine whether treble 
  6777.             settings are supported. 
  6778.  
  6779.     MCI_AMP_CAN_SET_MID 
  6780.             This flag allows an application to determine whether mid settings 
  6781.             are supported. 
  6782.  
  6783.     MCI_AMP_CAN_SET_BASS 
  6784.             This flag allows an application to determine whether bass settings 
  6785.             are supported. 
  6786.  
  6787.     MCI_AMP_CAN_SET_BALANCE 
  6788.             This flag allows an application to determine whether balance 
  6789.             settings are supported. 
  6790.  
  6791.     MCI_AMP_CAN_SET_GAIN 
  6792.             This flag allows an application to determine whether gain settings 
  6793.             are supported. 
  6794.  
  6795.     MCI_AMP_CAN_SET_VOLUME 
  6796.             This flag allows an application to determine whether volume 
  6797.             settings are supported. 
  6798.  
  6799.     MCI_AMP_CAN_SET_MONITOR 
  6800.             This flag allows an application to determine whether monitor 
  6801.             settings are supported. 
  6802.  
  6803.     MCI_AMP_CAN_SET_PITCH 
  6804.             This flag allows an application to determine whether pitch settings 
  6805.             are supported. 
  6806.  
  6807.     MCI_AMP_CAN_SET_LOUDNESS 
  6808.             This flag allows an application to determine whether loudness 
  6809.             settings are supported. 
  6810.  
  6811.     MCI_AMP_CAN_SET_CROSSOVER 
  6812.             This flag allows an application to determine whether crossover 
  6813.             settings are supported. 
  6814.  
  6815.     MCI_AMP_CAN_SET_REVERB 
  6816.             This flag allows an application to determine whether reverb 
  6817.             settings are supported. 
  6818.  
  6819.     MCI_AMP_CAN_SET_ALC 
  6820.             This flag allows an application to determine whether auto-level 
  6821.             controls are supported. 
  6822.  
  6823.     MCI_AMP_CAN_SET_CHORUS 
  6824.             This flag allows an application to determine whether chorus 
  6825.             controls are supported. 
  6826.  
  6827.     MCI_AMP_CAN_SET_CUSTOM1 
  6828.             This flag allows an application to determine whether a custom 
  6829.             effect is supported. 
  6830.  
  6831.     MCI_AMP_CAN_SET_CUSTOM2 
  6832.             This flag allows an application to determine whether a custom 
  6833.             effect is supported. 
  6834.  
  6835.     MCI_AMP_CAN_SET_CUSTOM3 
  6836.             This flag allows an application to determine whether a custom 
  6837.             effect is supported. 
  6838.  
  6839.     MCI_AMP_CAN_SET_MUTE 
  6840.             This flag allows an application to determine whether mute settings 
  6841.             are supported. 
  6842.  
  6843.     MCI_AMP_CAN_SET_STEREOENHANCE 
  6844.             This flag allows an application to determine whether stereo enhance 
  6845.             settings are supported. 
  6846.  
  6847.     Digital Video Extensions 
  6848.  
  6849.     The following additional items apply to digital video devices: 
  6850.  
  6851.     MCI_DGV_GETDEVCAPS_CAN_DISTORT 
  6852.             Returns MCI_TRUE if the device can distort the image independently 
  6853.             in horizontal and vertical dimensions; otherwise, it returns 
  6854.             MCI_FALSE.  Returns MCI_FALSE for most frame-grabber types of 
  6855.             hardware, but some hardware (such as Video Blaster) is capable of 
  6856.             performing independent scaling in the horizontal and vertical 
  6857.             directions and returns MCI_TRUE. 
  6858.  
  6859.     MCI_DGV_GETDEVCAPS_CAN_REVERSE 
  6860.             Returns MCI_TRUE if the device can play in reverse; otherwise, it 
  6861.             returns MCI_FALSE. 
  6862.  
  6863.     MCI_DGV_GETDEVCAPS_CAN_STRETCH 
  6864.             Returns MCI_TRUE if the device can stretch the image to fill the 
  6865.             frame; otherwise, it returns MCI_FALSE.  Returns MCI_FALSE for most 
  6866.             frame-grabber types of hardware, but some hardware (such as Video 
  6867.             Blaster) is capable of performing scaling and returns MCI_TRUE. 
  6868.  
  6869.     MCI_DGV_GETDEVCAPS_FAST_RATE 
  6870.             Returns the standard fast playback rate (twice the recorded 
  6871.             playback rate) in the current speed format, either as a percentage 
  6872.             or in frames per second.  Returns the normal play rate if the 
  6873.             device cannot play fast. 
  6874.  
  6875.     MCI_DGV_GETDEVCAPS_SLOW_RATE 
  6876.             Returns the standard slow playback rate (half the recorded playback 
  6877.             rate) in the current speed format, either as a percentage or in 
  6878.             frames per second.  Returns the normal play rate if the device 
  6879.             cannot play at the slow playback rate. 
  6880.  
  6881.     MCI_DGV_GETDEVCAPS_NORMAL_RATE 
  6882.             Returns the recorded playback rate in the current speed format, 
  6883.             either as a percentage or in frames per second. 
  6884.  
  6885.     MCI_DGV_GETDEVCAPS_VIDEO_X_EXTENT 
  6886.             Returns the nominal horizontal (X) extent of the digital motion 
  6887.             video image. 
  6888.  
  6889.     MCI_DGV_GETDEVCAPS_VIDEO_Y_EXTENT 
  6890.             Returns the nominal vertical (Y) extent of the digital motion video 
  6891.             image. 
  6892.  
  6893.     MCI_DGV_GETDEVCAPS_IMAGE_X_EXTENT 
  6894.             Returns the nominal horizontal (X) extent of images, if applicable. 
  6895.  
  6896.     MCI_DGV_GETDEVCAPS_IMAGE_Y_EXTENT 
  6897.             Returns the nominal vertical (Y) extent of images, if applicable. 
  6898.  
  6899.     MCI_DGV_GETDEVCAPS_OVERLAY_GRAPHICS 
  6900.             Returns MCI_TRUE if the device supports overlaying video with 
  6901.             application-generated graphics, otherwise returns MCI_FALSE. 
  6902.             Overlay cards such as Video Blaster enable graphics overlay of the 
  6903.             hardware monitor window, however, overlay is not supported over 
  6904.             video playback in the graphics buffer. 
  6905.  
  6906.     MCI_DGV_GETDEVCAPS_HAS_TUNER 
  6907.             Returns MCI_TRUE if the device has TV tuner capabilities. 
  6908.  
  6909.     Videodisc Extensions 
  6910.  
  6911.     The following additional item values apply to videodisc devices: 
  6912.  
  6913.     MCI_VD_GETDEVCAPS_CAN_REVERSE 
  6914.             Returns MCI_TRUE if the videodisc player can play in reverse; 
  6915.             otherwise, it returns MCI_FALSE.  Some players can play CLV discs 
  6916.             in reverse as well as CAV discs. 
  6917.  
  6918.     MCI_VD_GETDEVCAPS_FAST_RATE 
  6919.             Returns the standard fast play rate in the current speed format, 
  6920.             either as a percentage or in frames per second.  Returns the normal 
  6921.             play rate if the device cannot play at the fast play rate. 
  6922.  
  6923.     MCI_VD_GETDEVCAPS_SLOW_RATE 
  6924.             Returns the standard slow play rate in the current speed format, 
  6925.             either as a percentage or in frames per second.  Returns the normal 
  6926.             play rate if the device cannot play at the slow play rate. 
  6927.  
  6928.     MCI_VD_GETDEVCAPS_NORMAL_RATE 
  6929.             Returns the normal rate of play in frames per second. 
  6930.  
  6931.     MCI_VD_GETDEVCAPS_MAXIMUM_RATE 
  6932.             Returns the maximum play rate in the current speed format, either 
  6933.             as a percentage or in frames per second. 
  6934.  
  6935.     MCI_VD_GETDEVCAPS_MINIMUM_RATE 
  6936.             Returns the minimum play rate in the current speed format, either 
  6937.             as a percentage or in frames per second.  The minimum play rate is 
  6938.             the slowest playback rate the device is capable of other than a 
  6939.             paused or stopped state, that is, non-zero. 
  6940.  
  6941.     MCI_VD_GETDEVCAPS_CLV 
  6942.             Specifies that the requested capability information is relative to 
  6943.             constant linear velocity (CLV) formatted discs. 
  6944.  
  6945.     MCI_VD_GETDEVCAPS_CAV 
  6946.             Specifies that the requested capability information is relative to 
  6947.             constant angular velocity (CAV) formatted discs.  This is the 
  6948.             default. 
  6949.  
  6950.     Video Overlay Extensions 
  6951.  
  6952.     The following additional items apply to video overlay devices: 
  6953.  
  6954.     MCI_OVLY_GETDEVCAPS_CAN_DISTORT 
  6955.             Returns MCI_TRUE if the device can stretch the image independently 
  6956.             in horizontal and vertical dimensions; otherwise, it returns 
  6957.             MCI_FALSE. 
  6958.  
  6959.     MCI_OVLY_GETDEVCAPS_CAN_FREEZE 
  6960.             Returns MCI_TRUE if the device can freeze the image; otherwise, it 
  6961.             returns MCI_FALSE. 
  6962.  
  6963.     MCI_OVLY_GETDEVCAPS_CAN_STRETCH 
  6964.             Returns MCI_TRUE if the device can stretch or shrink the image to 
  6965.             fill the frame; otherwise, it returns MCI_FALSE. 
  6966.  
  6967.     MCI_OVLY_GETDEVCAPS_VIDEO_X_EXTENT 
  6968.             Returns the nominal horizontal (X) extent of the video source. 
  6969.             Returns 706 for both NTSC and PAL video. 
  6970.  
  6971.     MCI_OVLY_GETDEVCAPS_VIDEO_Y_EXTENT 
  6972.             Returns the nominal vertical (Y) extent of the video source. 
  6973.             Returns 484 for NTSC video or 564 for PAL video. 
  6974.  
  6975.     MCI_OVLY_GETDEVCAPS_IMAGE_X_EXTENT 
  6976.             Returns the nominal horizontal (X) extent of images for the device. 
  6977.             Returns 640. 
  6978.  
  6979.     MCI_OVLY_GETDEVCAPS_IMAGE_Y_EXTENT 
  6980.             Returns the nominal vertical (Y) extent of images for the device. 
  6981.             Returns 480. 
  6982.  
  6983.     MCI_OVLY_GETDEVCAPS_OVERLAY_GRAPHICS 
  6984.             Returns MCI_TRUE if the device supports overlaying video with 
  6985.             application-generated graphics; otherwise, it returns MCI_FALSE. 
  6986.  
  6987.     MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 
  6988.             Returns the maximum number of windows that the device can handle 
  6989.             concurrently.  Returns 10. 
  6990.  
  6991.     Waveform Audio Extensions 
  6992.  
  6993.     If the MCI_GETDEVCAPS_EXTENDED flag is specified, the following flags can 
  6994.     be placed in the ulItem field of the MCI_WAVE_GETDEVCAPS_PARMS data 
  6995.     structure for the waveaudio device. 
  6996.  
  6997.     MCI_GETDEVCAPS_WAVE_FORMAT 
  6998.             This flag allows an application to determine whether a specific 
  6999.             waveaudio format is supported.  The application must fill in the 
  7000.             ulBitsPerSample, ulFormatTag, ulSamplesPerSec, ulChannels, and 
  7001.             ulFormatMode fields in the MCI_WAVE_GETDEVCAPS_PARMS structure. If 
  7002.             the format is supported, the driver returns MCI_TRUE. If the format 
  7003.             is not supported, the driver returns a return code that indicates 
  7004.             why the command failed. 
  7005.  
  7006.  
  7007. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS Parameter - pParam2 ΓòÉΓòÉΓòÉ
  7008.  
  7009.  pParam2 (PMCI_GETDEVCAPS_PARMS) 
  7010.     A pointer to the MCI_GETDEVCAPS_PARMS data structure. Devices with extended 
  7011.     command sets might replace this pointer with a pointer to a device-specific 
  7012.     data structure as follows: 
  7013.  
  7014.     PMCI_AMP_GETDEVCAPS_PARMS 
  7015.             A pointer to the MCI_AMP_GETDEVCAPS_PARMS structure. 
  7016.  
  7017.     PMCI_WAVE_GETDEVCAPS_PARMS 
  7018.             A pointer to the MCI_WAVE_GETDEVCAPS_PARMS structure. 
  7019.  
  7020.  
  7021. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS Return Value - rc ΓòÉΓòÉΓòÉ
  7022.  
  7023.  rc (ULONG) 
  7024.     The low-order word of rc contains a code indicating success or failure: 
  7025.  
  7026.         /* Only examine the low-order word of the return code for */
  7027.         /*success/failure */
  7028.         if ( (ulError & 0x0000FFFF) == MCIERR_SUCCESS )
  7029.  
  7030.     The format of the ulReturn value in the MCI_GETDEVCAPS_PARMS structure is 
  7031.     defined by the high-order word of the value returned by mciSendCommand. 
  7032.     This value is used by mciSendString to determine how to convert the 
  7033.     ulReturn value to string form. For a list of the possible format values, 
  7034.     see the MMDRVOS2.H header file. 
  7035.  
  7036.     Return codes indicating success or type of failure: 
  7037.  
  7038.     MCIERR_SUCCESS 
  7039.             MMPM/2 command completed successfully. 
  7040.  
  7041.     MCIERR_DRIVER 
  7042.             Internal MMPM/2 driver error. 
  7043.  
  7044.     MCIERR_FLAGS_NOT_COMPATIBLE 
  7045.             The flags cannot be used together. 
  7046.  
  7047.     MCIERR_INVALID_CONNECTOR_TYPE 
  7048.             Invalid connector type given. 
  7049.  
  7050.     MCIERR_INVALID_DEVICE_ID 
  7051.             Invalid device ID given. 
  7052.  
  7053.     MCIERR_INVALID_FLAG 
  7054.             Invalid flag specified for this command. 
  7055.  
  7056.     MCIERR_INVALID_ITEM_FLAG 
  7057.             Invalid item flag specified for this command. 
  7058.  
  7059.     MCIERR_MISSING_FLAG 
  7060.             Flag missing for this MMPM/2 command. 
  7061.  
  7062.     MCIERR_MISSING_PARAMETER 
  7063.             Missing parameter for this command. 
  7064.  
  7065.     MCIERR_OUT_OF_MEMORY 
  7066.             System out of memory. 
  7067.  
  7068.     MCIERR_UNSUPPORTED_CONN_TYPE 
  7069.             Connector type is not supported by this device. 
  7070.  
  7071.     MCIERR_UNSUPP_CHANNELS 
  7072.             The hardware does not support this channel setting. 
  7073.  
  7074.     MCIERR_UNSUPP_BITSPERSAMPLE 
  7075.             The hardware does not support this bits per sample setting. 
  7076.  
  7077.     MCIERR_UNSUPP_FORMAT_MODE 
  7078.             The hardware does not support this format mode. 
  7079.  
  7080.     MCIERR_UNSUPP_FORMAT_TAG 
  7081.             The hardware does not support this format tag. 
  7082.  
  7083.     MCIERR_UNSUPP_SAMPLESPERSEC 
  7084.             The hardware does not support this sampling rate. 
  7085.  
  7086.     MCIERR_UNSUPPORTED_ATTRIBUTE 
  7087.             Current mixer hardware does not support the attribute. 
  7088.  
  7089.     MCIERR_UNSUPPORTED_FLAG 
  7090.             Given flag is unsupported for this device. 
  7091.  
  7092.  
  7093. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS - Description ΓòÉΓòÉΓòÉ
  7094.  
  7095. This message is used to return static information about the capabilities of a 
  7096. particular device instance. 
  7097.  
  7098.  ulParam1 (ULONG) 
  7099.     This parameter can contain any of the following flags: 
  7100.  
  7101.     Note:  Either MCI_GETDEVCAPS_MESSAGE or MCI_GETDEVCAPS_ITEM must be 
  7102.            specified. 
  7103.  
  7104.     MCI_NOTIFY 
  7105.             A notification message will be posted to the window specified in 
  7106.             the hwndCallback parameter of the data structure pointed to by the 
  7107.             pParam2 parameter.  The notification will be posted when the action 
  7108.             indicated by this message is completed or when an error occurs. 
  7109.  
  7110.     MCI_WAIT 
  7111.             Control is not to be returned until the action indicated by this 
  7112.             message is completed or an error occurs. 
  7113.  
  7114.     MCI_GETDEVCAPS_EXTENDED 
  7115.             Indicates extended device capabilities are required. (Specifying 
  7116.             MCI_GETDEVCAPS_EXTENDED implies MCI_GETDEVCAPS_ITEM.) See the 
  7117.             individual device-specific extensions for each device for use of 
  7118.             this flag. 
  7119.  
  7120.     MCI_GETDEVCAPS_MESSAGE 
  7121.             The usMessage field of the data structure identified by pParam2 
  7122.             contains a constant specifying the message to be queried.  If the 
  7123.             device supports the message, MCI_TRUE is returned; otherwise, 
  7124.             MCI_FALSE is returned. 
  7125.  
  7126.             Note:  The string parser converts unrecognized strings into a 
  7127.                    message ID value of 0.  This message value is defined as not 
  7128.                    being supported by any driver.  Other messages are converted 
  7129.                    to their corresponding message ID value. 
  7130.  
  7131.     MCI_GETDEVCAPS_ITEM 
  7132.             The ulItem field of the data structure identified by pParam2 
  7133.             contains a constant specifying the device capabilities to be 
  7134.             queried. 
  7135.  
  7136.             The following list of items can be used regardless of the type of 
  7137.             device: 
  7138.  
  7139.             MCI_GETDEVCAPS_CAN_EJECT 
  7140.                     Returns MCI_TRUE if the device can eject its media; 
  7141.                     otherwise, it returns MCI_FALSE. 
  7142.  
  7143.             MCI_GETDEVCAPS_CAN_LOCKEJECT 
  7144.                     Returns MCI_TRUE if the device can disable the manual 
  7145.                     ejection of its media; otherwise, it returns MCI_FALSE. 
  7146.  
  7147.             MCI_GETDEVCAPS_CAN_PLAY 
  7148.                     Returns MCI_TRUE if the device can play its media; 
  7149.                     otherwise, it returns MCI_FALSE.  If the device returns 
  7150.                     MCI_TRUE, the device supports MCI_PLAY, MCI_PAUSE, 
  7151.                     MCI_RESUME, and MCI_STOP. 
  7152.  
  7153.             MCI_GETDEVCAPS_CAN_PROCESS_INTERNAL 
  7154.                     Returns MCI_TRUE if the device can internally process 
  7155.                     digital data such as a CD Digital Audio drive with a 
  7156.                     built-in digital-to-analog converter (DAC); otherwise, it 
  7157.                     returns MCI_FALSE. 
  7158.  
  7159.             MCI_GETDEVCAPS_CAN_RECORD 
  7160.                     Returns MCI_TRUE if the device can record its media; 
  7161.                     otherwise, it returns MCI_FALSE.  If MCI_TRUE is returned, 
  7162.                     the device supports MCI_RECORD. 
  7163.  
  7164.             MCI_GETDEVCAPS_CAN_RECORD_INSERT 
  7165.                     Returns MCI_TRUE if the device supports insertion of data 
  7166.                     while recording; otherwise, it returns MCI_FALSE. 
  7167.  
  7168.             MCI_GETDEVCAPS_CAN_SAVE 
  7169.                     Returns MCI_TRUE if the device can save files; otherwise, 
  7170.                     it returns MCI_FALSE.  If a device returns TRUE, the 
  7171.                     MCI_SAVE command must be issued to save changes in the 
  7172.                     media file. 
  7173.  
  7174.             MCI_GETDEVCAPS_CAN_SETVOLUME 
  7175.                     Returns MCI_TRUE if the device can change the audio volume 
  7176.                     level; otherwise, it returns MCI_FALSE. 
  7177.  
  7178.             MCI_GETDEVCAPS_CAN_STREAM 
  7179.                     Returns MCI_TRUE if the device can stream digital data 
  7180.                     continuously to or from memory; otherwise, it returns 
  7181.                     MCI_FALSE. The source or destination of the data transfer 
  7182.                     is determined by the device instance connection. 
  7183.  
  7184.             MCI_GETDEVCAPS_DEVICE_TYPE 
  7185.                     Returns the constant defined for this particular device 
  7186.                     type. 
  7187.  
  7188.             MCI_GETDEVCAPS_HAS_AUDIO 
  7189.                     Returns MCI_TRUE if the device is capable of playing audio; 
  7190.                     otherwise, it returns MCI_FALSE. 
  7191.  
  7192.             MCI_GETDEVCAPS_HAS_IMAGE 
  7193.                     Returns MCI_TRUE if the device supports a still image in 
  7194.                     its device instance; otherwise, it returns MCI_FALSE. 
  7195.  
  7196.             MCI_GETDEVCAPS_HAS_VIDEO 
  7197.                     Returns MCI_TRUE if the device is capable of playing video; 
  7198.                     otherwise, it returns MCI_FALSE. 
  7199.  
  7200.             MCI_GETDEVCAPS_PREROLL_TIME 
  7201.                     Returns a deterministic or maximum notified preroll time in 
  7202.                     MMTIME units (regardless of the currently set time base for 
  7203.                     the device).  A value of 0 for the maximum notified preroll 
  7204.                     time indicates that an upper boundary to the preroll time 
  7205.                     is not known. 
  7206.  
  7207.             MCI_GETDEVCAPS_PREROLL_TYPE 
  7208.                     Returns MCI_PREROLL_NONE. 
  7209.  
  7210.             MCI_GETDEVCAPS_USES_FILES 
  7211.                     Returns MCI_TRUE if the device requires a file name or 
  7212.                     playlist pointer; otherwise, it returns MCI_FALSE. 
  7213.  
  7214.     Amplifier Mixer Extensions 
  7215.  
  7216.     If the MCI_GETDEVCAPS_EXTENDED flag is specified, the following flags can 
  7217.     be placed in the ulAttribute field of MCI_AMP_GETDEVCAPS_PARMS. The 
  7218.     ulExtended field of the MCI_AMP_GETDEVCAPS_PARMS structure must contain 
  7219.     MCI_MIXER_LINE if the MCI_GETDEVCAPS_EXTENDED flag is specified. 
  7220.  
  7221.     MCI_AMP_CAN_SET_TREBLE 
  7222.             This flag allows an application to determine whether treble 
  7223.             settings are supported. 
  7224.  
  7225.     MCI_AMP_CAN_SET_MID 
  7226.             This flag allows an application to determine whether mid settings 
  7227.             are supported. 
  7228.  
  7229.     MCI_AMP_CAN_SET_BASS 
  7230.             This flag allows an application to determine whether bass settings 
  7231.             are supported. 
  7232.  
  7233.     MCI_AMP_CAN_SET_BALANCE 
  7234.             This flag allows an application to determine whether balance 
  7235.             settings are supported. 
  7236.  
  7237.     MCI_AMP_CAN_SET_GAIN 
  7238.             This flag allows an application to determine whether gain settings 
  7239.             are supported. 
  7240.  
  7241.     MCI_AMP_CAN_SET_VOLUME 
  7242.             This flag allows an application to determine whether volume 
  7243.             settings are supported. 
  7244.  
  7245.     MCI_AMP_CAN_SET_MONITOR 
  7246.             This flag allows an application to determine whether monitor 
  7247.             settings are supported. 
  7248.  
  7249.     MCI_AMP_CAN_SET_PITCH 
  7250.             This flag allows an application to determine whether pitch settings 
  7251.             are supported. 
  7252.  
  7253.     MCI_AMP_CAN_SET_LOUDNESS 
  7254.             This flag allows an application to determine whether loudness 
  7255.             settings are supported. 
  7256.  
  7257.     MCI_AMP_CAN_SET_CROSSOVER 
  7258.             This flag allows an application to determine whether crossover 
  7259.             settings are supported. 
  7260.  
  7261.     MCI_AMP_CAN_SET_REVERB 
  7262.             This flag allows an application to determine whether reverb 
  7263.             settings are supported. 
  7264.  
  7265.     MCI_AMP_CAN_SET_ALC 
  7266.             This flag allows an application to determine whether auto-level 
  7267.             controls are supported. 
  7268.  
  7269.     MCI_AMP_CAN_SET_CHORUS 
  7270.             This flag allows an application to determine whether chorus 
  7271.             controls are supported. 
  7272.  
  7273.     MCI_AMP_CAN_SET_CUSTOM1 
  7274.             This flag allows an application to determine whether a custom 
  7275.             effect is supported. 
  7276.  
  7277.     MCI_AMP_CAN_SET_CUSTOM2 
  7278.             This flag allows an application to determine whether a custom 
  7279.             effect is supported. 
  7280.  
  7281.     MCI_AMP_CAN_SET_CUSTOM3 
  7282.             This flag allows an application to determine whether a custom 
  7283.             effect is supported. 
  7284.  
  7285.     MCI_AMP_CAN_SET_MUTE 
  7286.             This flag allows an application to determine whether mute settings 
  7287.             are supported. 
  7288.  
  7289.     MCI_AMP_CAN_SET_STEREOENHANCE 
  7290.             This flag allows an application to determine whether stereo enhance 
  7291.             settings are supported. 
  7292.  
  7293.     Digital Video Extensions 
  7294.  
  7295.     The following additional items apply to digital video devices: 
  7296.  
  7297.     MCI_DGV_GETDEVCAPS_CAN_DISTORT 
  7298.             Returns MCI_TRUE if the device can distort the image independently 
  7299.             in horizontal and vertical dimensions; otherwise, it returns 
  7300.             MCI_FALSE.  Returns MCI_FALSE for most frame-grabber types of 
  7301.             hardware, but some hardware (such as Video Blaster) is capable of 
  7302.             performing independent scaling in the horizontal and vertical 
  7303.             directions and returns MCI_TRUE. 
  7304.  
  7305.     MCI_DGV_GETDEVCAPS_CAN_REVERSE 
  7306.             Returns MCI_TRUE if the device can play in reverse; otherwise, it 
  7307.             returns MCI_FALSE. 
  7308.  
  7309.     MCI_DGV_GETDEVCAPS_CAN_STRETCH 
  7310.             Returns MCI_TRUE if the device can stretch the image to fill the 
  7311.             frame; otherwise, it returns MCI_FALSE.  Returns MCI_FALSE for most 
  7312.             frame-grabber types of hardware, but some hardware (such as Video 
  7313.             Blaster) is capable of performing scaling and returns MCI_TRUE. 
  7314.  
  7315.     MCI_DGV_GETDEVCAPS_FAST_RATE 
  7316.             Returns the standard fast playback rate (twice the recorded 
  7317.             playback rate) in the current speed format, either as a percentage 
  7318.             or in frames per second.  Returns the normal play rate if the 
  7319.             device cannot play fast. 
  7320.  
  7321.     MCI_DGV_GETDEVCAPS_SLOW_RATE 
  7322.             Returns the standard slow playback rate (half the recorded playback 
  7323.             rate) in the current speed format, either as a percentage or in 
  7324.             frames per second.  Returns the normal play rate if the device 
  7325.             cannot play at the slow playback rate. 
  7326.  
  7327.     MCI_DGV_GETDEVCAPS_NORMAL_RATE 
  7328.             Returns the recorded playback rate in the current speed format, 
  7329.             either as a percentage or in frames per second. 
  7330.  
  7331.     MCI_DGV_GETDEVCAPS_VIDEO_X_EXTENT 
  7332.             Returns the nominal horizontal (X) extent of the digital motion 
  7333.             video image. 
  7334.  
  7335.     MCI_DGV_GETDEVCAPS_VIDEO_Y_EXTENT 
  7336.             Returns the nominal vertical (Y) extent of the digital motion video 
  7337.             image. 
  7338.  
  7339.     MCI_DGV_GETDEVCAPS_IMAGE_X_EXTENT 
  7340.             Returns the nominal horizontal (X) extent of images, if applicable. 
  7341.  
  7342.     MCI_DGV_GETDEVCAPS_IMAGE_Y_EXTENT 
  7343.             Returns the nominal vertical (Y) extent of images, if applicable. 
  7344.  
  7345.     MCI_DGV_GETDEVCAPS_OVERLAY_GRAPHICS 
  7346.             Returns MCI_TRUE if the device supports overlaying video with 
  7347.             application-generated graphics, otherwise returns MCI_FALSE. 
  7348.             Overlay cards such as Video Blaster enable graphics overlay of the 
  7349.             hardware monitor window, however, overlay is not supported over 
  7350.             video playback in the graphics buffer. 
  7351.  
  7352.     MCI_DGV_GETDEVCAPS_HAS_TUNER 
  7353.             Returns MCI_TRUE if the device has TV tuner capabilities. 
  7354.  
  7355.     Videodisc Extensions 
  7356.  
  7357.     The following additional item values apply to videodisc devices: 
  7358.  
  7359.     MCI_VD_GETDEVCAPS_CAN_REVERSE 
  7360.             Returns MCI_TRUE if the videodisc player can play in reverse; 
  7361.             otherwise, it returns MCI_FALSE.  Some players can play CLV discs 
  7362.             in reverse as well as CAV discs. 
  7363.  
  7364.     MCI_VD_GETDEVCAPS_FAST_RATE 
  7365.             Returns the standard fast play rate in the current speed format, 
  7366.             either as a percentage or in frames per second.  Returns the normal 
  7367.             play rate if the device cannot play at the fast play rate. 
  7368.  
  7369.     MCI_VD_GETDEVCAPS_SLOW_RATE 
  7370.             Returns the standard slow play rate in the current speed format, 
  7371.             either as a percentage or in frames per second.  Returns the normal 
  7372.             play rate if the device cannot play at the slow play rate. 
  7373.  
  7374.     MCI_VD_GETDEVCAPS_NORMAL_RATE 
  7375.             Returns the normal rate of play in frames per second. 
  7376.  
  7377.     MCI_VD_GETDEVCAPS_MAXIMUM_RATE 
  7378.             Returns the maximum play rate in the current speed format, either 
  7379.             as a percentage or in frames per second. 
  7380.  
  7381.     MCI_VD_GETDEVCAPS_MINIMUM_RATE 
  7382.             Returns the minimum play rate in the current speed format, either 
  7383.             as a percentage or in frames per second.  The minimum play rate is 
  7384.             the slowest playback rate the device is capable of other than a 
  7385.             paused or stopped state, that is, non-zero. 
  7386.  
  7387.     MCI_VD_GETDEVCAPS_CLV 
  7388.             Specifies that the requested capability information is relative to 
  7389.             constant linear velocity (CLV) formatted discs. 
  7390.  
  7391.     MCI_VD_GETDEVCAPS_CAV 
  7392.             Specifies that the requested capability information is relative to 
  7393.             constant angular velocity (CAV) formatted discs.  This is the 
  7394.             default. 
  7395.  
  7396.     Video Overlay Extensions 
  7397.  
  7398.     The following additional items apply to video overlay devices: 
  7399.  
  7400.     MCI_OVLY_GETDEVCAPS_CAN_DISTORT 
  7401.             Returns MCI_TRUE if the device can stretch the image independently 
  7402.             in horizontal and vertical dimensions; otherwise, it returns 
  7403.             MCI_FALSE. 
  7404.  
  7405.     MCI_OVLY_GETDEVCAPS_CAN_FREEZE 
  7406.             Returns MCI_TRUE if the device can freeze the image; otherwise, it 
  7407.             returns MCI_FALSE. 
  7408.  
  7409.     MCI_OVLY_GETDEVCAPS_CAN_STRETCH 
  7410.             Returns MCI_TRUE if the device can stretch or shrink the image to 
  7411.             fill the frame; otherwise, it returns MCI_FALSE. 
  7412.  
  7413.     MCI_OVLY_GETDEVCAPS_VIDEO_X_EXTENT 
  7414.             Returns the nominal horizontal (X) extent of the video source. 
  7415.             Returns 706 for both NTSC and PAL video. 
  7416.  
  7417.     MCI_OVLY_GETDEVCAPS_VIDEO_Y_EXTENT 
  7418.             Returns the nominal vertical (Y) extent of the video source. 
  7419.             Returns 484 for NTSC video or 564 for PAL video. 
  7420.  
  7421.     MCI_OVLY_GETDEVCAPS_IMAGE_X_EXTENT 
  7422.             Returns the nominal horizontal (X) extent of images for the device. 
  7423.             Returns 640. 
  7424.  
  7425.     MCI_OVLY_GETDEVCAPS_IMAGE_Y_EXTENT 
  7426.             Returns the nominal vertical (Y) extent of images for the device. 
  7427.             Returns 480. 
  7428.  
  7429.     MCI_OVLY_GETDEVCAPS_OVERLAY_GRAPHICS 
  7430.             Returns MCI_TRUE if the device supports overlaying video with 
  7431.             application-generated graphics; otherwise, it returns MCI_FALSE. 
  7432.  
  7433.     MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 
  7434.             Returns the maximum number of windows that the device can handle 
  7435.             concurrently.  Returns 10. 
  7436.  
  7437.     Waveform Audio Extensions 
  7438.  
  7439.     If the MCI_GETDEVCAPS_EXTENDED flag is specified, the following flags can 
  7440.     be placed in the ulItem field of the MCI_WAVE_GETDEVCAPS_PARMS data 
  7441.     structure for the waveaudio device. 
  7442.  
  7443.     MCI_GETDEVCAPS_WAVE_FORMAT 
  7444.             This flag allows an application to determine whether a specific 
  7445.             waveaudio format is supported.  The application must fill in the 
  7446.             ulBitsPerSample, ulFormatTag, ulSamplesPerSec, ulChannels, and 
  7447.             ulFormatMode fields in the MCI_WAVE_GETDEVCAPS_PARMS structure. If 
  7448.             the format is supported, the driver returns MCI_TRUE. If the format 
  7449.             is not supported, the driver returns a return code that indicates 
  7450.             why the command failed. 
  7451.  
  7452.  pParam2 (PMCI_GETDEVCAPS_PARMS) 
  7453.     A pointer to the MCI_GETDEVCAPS_PARMS data structure. Devices with extended 
  7454.     command sets might replace this pointer with a pointer to a device-specific 
  7455.     data structure as follows: 
  7456.  
  7457.     PMCI_AMP_GETDEVCAPS_PARMS 
  7458.             A pointer to the MCI_AMP_GETDEVCAPS_PARMS structure. 
  7459.  
  7460.     PMCI_WAVE_GETDEVCAPS_PARMS 
  7461.             A pointer to the MCI_WAVE_GETDEVCAPS_PARMS structure. 
  7462.  
  7463.  rc (ULONG) 
  7464.     The low-order word of rc contains a code indicating success or failure: 
  7465.  
  7466.         /* Only examine the low-order word of the return code for */
  7467.         /*success/failure */
  7468.         if ( (ulError & 0x0000FFFF) == MCIERR_SUCCESS )
  7469.  
  7470.     The format of the ulReturn value in the MCI_GETDEVCAPS_PARMS structure is 
  7471.     defined by the high-order word of the value returned by mciSendCommand. 
  7472.     This value is used by mciSendString to determine how to convert the 
  7473.     ulReturn value to string form. For a list of the possible format values, 
  7474.     see the MMDRVOS2.H header file. 
  7475.  
  7476.     Return codes indicating success or type of failure: 
  7477.  
  7478.     MCIERR_SUCCESS 
  7479.             MMPM/2 command completed successfully. 
  7480.  
  7481.     MCIERR_DRIVER 
  7482.             Internal MMPM/2 driver error. 
  7483.  
  7484.     MCIERR_FLAGS_NOT_COMPATIBLE 
  7485.             The flags cannot be used together. 
  7486.  
  7487.     MCIERR_INVALID_CONNECTOR_TYPE 
  7488.             Invalid connector type given. 
  7489.  
  7490.     MCIERR_INVALID_DEVICE_ID 
  7491.             Invalid device ID given. 
  7492.  
  7493.     MCIERR_INVALID_FLAG 
  7494.             Invalid flag specified for this command. 
  7495.  
  7496.     MCIERR_INVALID_ITEM_FLAG 
  7497.             Invalid item flag specified for this command. 
  7498.  
  7499.     MCIERR_MISSING_FLAG 
  7500.             Flag missing for this MMPM/2 command. 
  7501.  
  7502.     MCIERR_MISSING_PARAMETER 
  7503.             Missing parameter for this command. 
  7504.  
  7505.     MCIERR_OUT_OF_MEMORY 
  7506.             System out of memory. 
  7507.  
  7508.     MCIERR_UNSUPPORTED_CONN_TYPE 
  7509.             Connector type is not supported by this device. 
  7510.  
  7511.     MCIERR_UNSUPP_CHANNELS 
  7512.             The hardware does not support this channel setting. 
  7513.  
  7514.     MCIERR_UNSUPP_BITSPERSAMPLE 
  7515.             The hardware does not support this bits per sample setting. 
  7516.  
  7517.     MCIERR_UNSUPP_FORMAT_MODE 
  7518.             The hardware does not support this format mode. 
  7519.  
  7520.     MCIERR_UNSUPP_FORMAT_TAG 
  7521.             The hardware does not support this format tag. 
  7522.  
  7523.     MCIERR_UNSUPP_SAMPLESPERSEC 
  7524.             The hardware does not support this sampling rate. 
  7525.  
  7526.     MCIERR_UNSUPPORTED_ATTRIBUTE 
  7527.             Current mixer hardware does not support the attribute. 
  7528.  
  7529.     MCIERR_UNSUPPORTED_FLAG 
  7530.             Given flag is unsupported for this device. 
  7531.  
  7532.  
  7533. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS - Remarks ΓòÉΓòÉΓòÉ
  7534.  
  7535. The MCI_GETDEVCAPS_ITEM and MCI_GETDEVCAPS_MESSAGE flags are mutually 
  7536. exclusive. Only a single item or message can be specified. 
  7537.  
  7538. MCI_DGV_GETDEVCAPS_MINIMUM_RATE, MCI_DGV_GETDEVCAPS_MAXIMUM_RATE, and 
  7539. MCI_DGV_GETDEVCAPS_MAX_WINDOWS are not supported.  If these flags are 
  7540. specified, MCIERR_UNSUPPORTED_FLAG is returned. 
  7541.  
  7542. MCI_DGV_GETDEVCAPS_VIDEO_X_EXTENT, MCI_DGV_GETDEVCAPS_VIDEO_Y_EXTENT, 
  7543. MCI_DGV_GETDEVCAPS_IMAGE_X_EXTENT, and MCI_DGV_GETDEVCAPS_IMAGE_Y_EXTENT return 
  7544. hardware-specific values from the vendor-specific driver (VSD).  This is 
  7545. normally the size of the video capture card's frame buffer. 
  7546.  
  7547. The values for video extent specify the largest video image that can be 
  7548. captured and thereby define the extents of the video capture coordinate system. 
  7549. Capture regions specified by MCI_PUT must lie entirely within these extents. 
  7550.  
  7551. The values for image extent specify the largest still image that can be 
  7552. captured with the device.  The values returned are the same as video extents 
  7553. for supported hardware. 
  7554.  
  7555.  
  7556. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS - Default Processing ΓòÉΓòÉΓòÉ
  7557.  
  7558. For videodisc devices, the MCI_VD_GETDEVCAPS_CAV flag is the default. 
  7559.  
  7560.  
  7561. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS - Example Code ΓòÉΓòÉΓòÉ
  7562.  
  7563. The following code illustrates how to determine if a device has audio 
  7564. capability. 
  7565.  
  7566.    USHORT   usDeviceID;
  7567.    ULONG    rc;
  7568.    BOOL     fHas_audio;                   /* Set to TRUE by this example
  7569.                                              if device has audio      */
  7570.    MCI_GETDEVCAPS_PARMS  mgdcp;
  7571.  
  7572.    /* Determine if device has audio capability */
  7573.  
  7574.    mgdcp.ulItem = MCI_GETDEVCAPS_HAS_AUDIO;
  7575.  
  7576.    rc = mciSendCommand(usDeviceID,           /* Device ID              */
  7577.                        MCI_GETDEVCAPS,       /* Get device capability
  7578.                                                 message                */
  7579.                        MCI_WAIT | MCI_GETDEVCAPS_ITEM,
  7580.                                              /* Flags for this message */
  7581.                        (PVOID) &mgdcp,       /* Data structure         */
  7582.                        0);                   /* No user parm           */
  7583.  
  7584.    if (LOUSHORT(rc) == MCIERR_SUCCESS)
  7585.      {
  7586.       fHas_audio = (BOOL) mgdcp.ulReturn; /* Return if device
  7587.                                                 has audio              */
  7588.      }
  7589.  
  7590. The following example illustrates how an application can determine if it can 
  7591. set the volume attribute for a particular connector. 
  7592.  
  7593.     ULONG  rc;
  7594.     MCI_AMP_GETDEVCAPS_PARMS mciAmpCaps;
  7595.     USHORT usDeviceID;
  7596.  
  7597. /* Test to see if the mixer supports volume changes on the mic. */
  7598.     mciAmpCaps.ulValue = MCI_MICROPHONE_CONNECTOR;
  7599.     mciAmpCaps.ulAttribute = MCI_AMP_CAN_SET_VOLUME;
  7600.     mciAmpCaps.ulExtended = MCI_MIXER_LINE;
  7601.     rc = mciSendCommand(usDeviceID,
  7602.                         MCI_GETDEVCAPS,
  7603.                         MCI_WAIT |
  7604.                         MCI_GETDEVCAPS_EXTENDED,
  7605.                         (ULONG)&mciAmpCaps,
  7606.                         0);
  7607.  
  7608.  
  7609. ΓòÉΓòÉΓòÉ <hidden> MCI_GETDEVCAPS - Topics ΓòÉΓòÉΓòÉ
  7610.  
  7611. Select an item: 
  7612.  
  7613. Description
  7614. Returns
  7615. Remarks
  7616. Default Processing
  7617. Example Code
  7618. Glossary
  7619.  
  7620.  
  7621. ΓòÉΓòÉΓòÉ 7.17. MCI_GETIMAGEBUFFER ΓòÉΓòÉΓòÉ
  7622.  
  7623.  
  7624. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  7625.  
  7626.  ulParam1 (ULONG) 
  7627.     This parameter can contain any of the following flags: 
  7628.  
  7629.     MCI_NOTIFY 
  7630.             A notification message will be posted to the window specified in 
  7631.             the hwndCallback parameter of the data structure pointed to by the 
  7632.             pParam2 parameter.  The notification will be posted when the action 
  7633.             indicated by this message is completed or when an error occurs. 
  7634.  
  7635.     MCI_WAIT 
  7636.             Control is not to be returned until the action indicated by this 
  7637.             message is completed or an error occurs. 
  7638.  
  7639.     MCI_CONVERT 
  7640.             Specifies that the image format will be converted to the OS/2 
  7641.             bitmap format.  The default is the device-specific format. 
  7642.  
  7643.     Digital Video Extensions 
  7644.  
  7645.     The following flag applies to digital video devices: 
  7646.  
  7647.     MCI_USE_HW_BUFFER 
  7648.             If this flag is specified, a capture will be from the capture video 
  7649.             buffer. If this flag is not specified, a capture will be from the 
  7650.             movie element and not the contents of the capture video buffer 
  7651.             generated by MCI_CAPTURE. 
  7652.  
  7653.     Video Overlay Extensions 
  7654.  
  7655.     The following flag applies to video overlay devices: 
  7656.  
  7657.     MCI_GET_HW_BUFFER_PTR 
  7658.             Requests a pointer to the hardware buffer. 
  7659.  
  7660.             M-Motion specific: Not supported. 
  7661.  
  7662.     MCI_USE_HW_BUFFER 
  7663.             Indicates that the hardware buffer contains the image data. 
  7664.  
  7665.  
  7666. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER Parameter - pParam2 ΓòÉΓòÉΓòÉ
  7667.  
  7668.  pParam2 (PMCI_IMAGE_PARMS) 
  7669.     A pointer to the MCI_IMAGE_PARMS data structure.  If the pPelBuffer field 
  7670.     in this data structure is 0, this command is treated as a query, and the 
  7671.     other fields in the structure are filled in by the driver. 
  7672.  
  7673.  
  7674. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER Return Value - rc ΓòÉΓòÉΓòÉ
  7675.  
  7676.  rc (ULONG) 
  7677.     Return codes indicating success or type of failure: 
  7678.  
  7679.     MCIERR_SUCCESS 
  7680.             MMPM/2 command completed successfully. 
  7681.  
  7682.     MCIERR_INVALID_DEVICE_ID 
  7683.             Invalid device ID given. 
  7684.  
  7685.     MCIERR_MISSING_PARAMETER 
  7686.             Missing parameter for this command. 
  7687.  
  7688.     MCIERR_DRIVER 
  7689.             Internal MMPM/2 driver error. 
  7690.  
  7691.     MCIERR_INVALID_FLAG 
  7692.             Invalid flag specified for this command. 
  7693.  
  7694.     MCIERR_UNSUPPORTED_FLAG 
  7695.             Given flag is unsupported by this device. 
  7696.  
  7697.     MCIERR_INSTANCE_INACTIVE 
  7698.             Instance inactive. 
  7699.  
  7700.     MCIERR_INVALID_BUFFER 
  7701.             Invalid return buffer given or buffer too small. 
  7702.  
  7703.     MCIERR_FILE_NOT_FOUND 
  7704.             File not found. 
  7705.  
  7706.     MCIERR_TARGET_DEVICE_FULL 
  7707.             Target device is full. 
  7708.  
  7709.  
  7710. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER - Description ΓòÉΓòÉΓòÉ
  7711.  
  7712. The digital video device uses this message to retrieve the contents of the 
  7713. capture video buffer or the current movie frame. (See MCI_CAPTURE for capturing 
  7714. the current movie frame without providing an application buffer.) 
  7715.  
  7716. Note:  Video overlay devices can use this message to read the data in the 
  7717.        element buffer that was captured with the MCI_CAPTURE command, obtained 
  7718.        by the MCI_LOAD command, or provided by the MCI_SETIMAGEBUFFER command. 
  7719.  
  7720.  The image data is returned in the device-specific format, unless MCI_CONVERT 
  7721.  is specified, in which case the data is returned in OS/2 memory bitmap format. 
  7722.  The current values for PELFORMAT and BITSPERPEL will be used if possible.  The 
  7723.  data will be uncompressed. 
  7724.  
  7725.  ulParam1 (ULONG) 
  7726.     This parameter can contain any of the following flags: 
  7727.  
  7728.     MCI_NOTIFY 
  7729.             A notification message will be posted to the window specified in 
  7730.             the hwndCallback parameter of the data structure pointed to by the 
  7731.             pParam2 parameter.  The notification will be posted when the action 
  7732.             indicated by this message is completed or when an error occurs. 
  7733.  
  7734.     MCI_WAIT 
  7735.             Control is not to be returned until the action indicated by this 
  7736.             message is completed or an error occurs. 
  7737.  
  7738.     MCI_CONVERT 
  7739.             Specifies that the image format will be converted to the OS/2 
  7740.             bitmap format.  The default is the device-specific format. 
  7741.  
  7742.     Digital Video Extensions 
  7743.  
  7744.     The following flag applies to digital video devices: 
  7745.  
  7746.     MCI_USE_HW_BUFFER 
  7747.             If this flag is specified, a capture will be from the capture video 
  7748.             buffer. If this flag is not specified, a capture will be from the 
  7749.             movie element and not the contents of the capture video buffer 
  7750.             generated by MCI_CAPTURE. 
  7751.  
  7752.     Video Overlay Extensions 
  7753.  
  7754.     The following flag applies to video overlay devices: 
  7755.  
  7756.     MCI_GET_HW_BUFFER_PTR 
  7757.             Requests a pointer to the hardware buffer. 
  7758.  
  7759.             M-Motion specific: Not supported. 
  7760.  
  7761.     MCI_USE_HW_BUFFER 
  7762.             Indicates that the hardware buffer contains the image data. 
  7763.  
  7764.  pParam2 (PMCI_IMAGE_PARMS) 
  7765.     A pointer to the MCI_IMAGE_PARMS data structure.  If the pPelBuffer field 
  7766.     in this data structure is 0, this command is treated as a query, and the 
  7767.     other fields in the structure are filled in by the driver. 
  7768.  
  7769.  rc (ULONG) 
  7770.     Return codes indicating success or type of failure: 
  7771.  
  7772.     MCIERR_SUCCESS 
  7773.             MMPM/2 command completed successfully. 
  7774.  
  7775.     MCIERR_INVALID_DEVICE_ID 
  7776.             Invalid device ID given. 
  7777.  
  7778.     MCIERR_MISSING_PARAMETER 
  7779.             Missing parameter for this command. 
  7780.  
  7781.     MCIERR_DRIVER 
  7782.             Internal MMPM/2 driver error. 
  7783.  
  7784.     MCIERR_INVALID_FLAG 
  7785.             Invalid flag specified for this command. 
  7786.  
  7787.     MCIERR_UNSUPPORTED_FLAG 
  7788.             Given flag is unsupported by this device. 
  7789.  
  7790.     MCIERR_INSTANCE_INACTIVE 
  7791.             Instance inactive. 
  7792.  
  7793.     MCIERR_INVALID_BUFFER 
  7794.             Invalid return buffer given or buffer too small. 
  7795.  
  7796.     MCIERR_FILE_NOT_FOUND 
  7797.             File not found. 
  7798.  
  7799.     MCIERR_TARGET_DEVICE_FULL 
  7800.             Target device is full. 
  7801.  
  7802.  
  7803. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER - Remarks ΓòÉΓòÉΓòÉ
  7804.  
  7805. This command might not be supported by the digital video device.  To determine 
  7806. whether the device supports the command, issue an MCI_GETDEVCAPS query. 
  7807.  
  7808. The format of the image data returned is specified by the ulPelFormat and 
  7809. usBitCount fields of the MCI_IMAGE_PARMS data structure (if possible), unless 
  7810. MCI_CONVERT is specified, in which case the data is returned in OS/2 memory 
  7811. bitmap format.  The beginning of the buffer contains the BITMAPINFOHEADER2 
  7812. data, followed by the palette (if any) and the pel data. 
  7813.  
  7814. On dual-plane image capture hardware devices, the image layer content is 
  7815. assumed.  Only visible data can be captured with some hardware, particularly 
  7816. single-plane devices. The image data returned will be uncompressed, in either 
  7817. OS/2 memory bitmap format or device-specific format, based on the setting of 
  7818. the MCI_CONVERT flag. 
  7819.  
  7820. The current settings for IMAGE BITSPERPEL and IMAGE PELFORMAT will be used if 
  7821. supported by the device.  The IMAGE FILEFORMAT and IMAGE COMPRESSION settings 
  7822. will be ignored. 
  7823.  
  7824. Conversion from internal YUVB format to OS/2 bitmap format is accomplished with 
  7825. an I/O procedure which can use disk space for temporary storage.  Therefore, it 
  7826. is possible that errors such as MCIERR_TARGET_DEVICE_FULL (no disk space) can 
  7827. occur. 
  7828.  
  7829.  
  7830. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER - Related Messages ΓòÉΓòÉΓòÉ
  7831.  
  7832.      MCI_CAPTURE 
  7833.      MCI_SETIMAGEBUFFER 
  7834.      MCI_SETIMAGEPALETTE 
  7835.  
  7836.  
  7837. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER - Example Code ΓòÉΓòÉΓòÉ
  7838.  
  7839. The following example shows how to capture a bitmap from video. 
  7840.  
  7841.    USHORT usUserParm = 0;
  7842.    BITMAPINFOHEADER2 *pBMPhdr;
  7843.    ULONG   ulReturn;
  7844.    CHAR    szInfoStr[500];
  7845.    CHAR    szTempStr[100];
  7846.    ULONG   ulFlags = 0;
  7847.  
  7848.       ulFlags = MCI_CONVERT;
  7849.  
  7850.    /**********************************************************/
  7851.    /* Determine the length and characteristics of the buffer */
  7852.    /**********************************************************/
  7853.    memset ((PVOID)&mciImageParms, 0x00, sizeof (MCI_IMAGE_PARMS));
  7854.    mciImageParms.hwndCallback = hwndNotify;
  7855.    mciImageParms.ulBufLen = 0;
  7856.    mciImageParms.pPelBuffer = 0;
  7857.  
  7858.    ulReturn = mciSendCommand(usDeviceID, MCI_GETIMAGEBUFFER,
  7859.                   MCI_WAIT | ulFlags,
  7860.                   (PVOID)&mciImageParms,
  7861.                   usUserParm);
  7862.    /*************************************/
  7863.    /* Allocate memory for the buffer    */
  7864.    /*************************************/
  7865.    DosAllocMem (&mciImageParms.pPelBuffer,
  7866.                 mciImageParms.ulBufLen,
  7867.                 PAG_COMMIT | PAG_WRITE);
  7868.  
  7869.    /*********************************/
  7870.    /* Get the data from the buffer  */
  7871.    /*********************************/
  7872.    ulReturn = mciSendCommand(usDeviceID, MCI_GETIMAGEBUFFER,
  7873.                   MCI_WAIT | ulFlags,
  7874.                   (PVOID)&mciImageParms,
  7875.                   usUserParm);
  7876.  
  7877.    pBMPhdr = (BITMAPINFOHEADER2 *)mciImageParms.pPelBuffer;
  7878.  
  7879. Note:  The digital video device returns BITMAPFILEHEADER2 instead of 
  7880.        BITMAPINFOHEADER2. 
  7881.  
  7882.  The following code illustrates how to capture an OS/2 bitmap from the hardware 
  7883.  using the digital video device. 
  7884.  
  7885.   #define INCL_GPI
  7886.   #define INCL_GPIBITMAPS
  7887.  
  7888.   #include <os2.h>
  7889.   #include <pmbitmap.h>
  7890.  
  7891.   #define  INCL_MMIO
  7892.   #define  INCL_MMIO_CODEC
  7893.   #define  INCL_MMIO_DOSIOPROC
  7894.   #include <os2me.h>
  7895.   #include <stdlib.h>
  7896.  
  7897.   /*****************************************************************
  7898.    * Name : BMPCaptureBitmap
  7899.    *
  7900.    * Function: Capture bitmap from hardware
  7901.    *
  7902.    ******************************************************************/
  7903.    VOID BMPCaptureBitmap(PSWVRCB pCB, HWND hwnd)
  7904.    {
  7905.      MCI_IMAGE_PARMS  mciImageParms;
  7906.      PCHAR            pBuf=0L;
  7907.      HFILE            hBMP;
  7908.      ULONG            ulAction;
  7909.      ULONG            cBytes;
  7910.      LONG             rc;
  7911.  
  7912.      memset ((PVOID)&mciImageParms, 0x00, sizeof (MCI_IMAGE_PARMS));
  7913.  
  7914.      /* prepare structures */
  7915.      mciImageParms.pPelBuffer   = 0L;
  7916.      mciImageParms.ulBufLen     = 0L;
  7917.  
  7918.      mciImageParms.rect.xLeft   = pCB->recopts[usIndex].usCapPosX;
  7919.      mciImageParms.rect.yBottom = pCB->recopts[usIndex].usCapPosY;
  7920.      mciImageParms.rect.xRight  = pCB->recopts[usIndex].usCapSizeX +
  7921.                                   pCB->recopts[usIndex].usCapPosX;
  7922.      mciImageParms.rect.yTop    = pCB->recopts[usIndex]usCapSizeY +
  7923.                                   pCB->recopts[usIndex].usCapPosY;
  7924.      mciImageParms.ulPelBufferWidth  = pCB->recopts[usIndex].usMovieSizeX;
  7925.      mciImageParms.ulPelBufferHeight = pCB->recopts[usIndex].usMovieSizeY;
  7926.  
  7927.      rc = mciSendCommand( pCB->OutputMovie.usDeviceID,
  7928.                           MCI_GETIMAGEBUFFER,
  7929.                           MCI_WAIT | MCI_USE_HW_BUFFER | MCI_CONVERT,
  7930.                           (ULONG)&mciImageParms,
  7931.                           0);
  7932.  
  7933.      rc = DosAllocMem ( (PPVOID) &pBuf,
  7934.                         (ULONG)   mciImageParms.ulBufLen,
  7935.                         (ULONG)   PAG_COMMIT | PAG_READ | PAG_WRITE);
  7936.                         mciImageParms.pPelBuffer=(PVOID)pBuf;
  7937.  
  7938.      rc = mciSendCommand( pCB->OutputMovie.usDeviceID,
  7939.                           MCI_GETIMAGEBUFFER,
  7940.                           MCI_WAIT | MCI_USE_HW_BUFFER | MCI_CONVERT,
  7941.                           (ULONG)&mciImageParms,
  7942.                           0);
  7943.      if (!rc)
  7944.       {
  7945.        /* getimage buffer is successful open file and write out bitmap */
  7946.        rc = DosOpen ( (PSZ)pCB->szBitmapFilename, &hBMP, &ulAction, 0, FILE_NORMAL,
  7947.                       FILE_CREATE,
  7948.                       OPEN_ACCESS_WRITEONLY | OPEN_SHARE_DENYWRITE,
  7949.                       0L);
  7950.  
  7951.        rc = DosWrite (hBMP, (PVOID)pBuf,
  7952.                       mciImageParms.ulBufLen,
  7953.                       &cBytes);
  7954.  
  7955.        rc = DosClose (hBMP);
  7956.       }
  7957.  
  7958.       /* free buffers */
  7959.        DosFreeMem( pBuf );
  7960.  
  7961.    }
  7962.  
  7963.  
  7964. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEBUFFER - Topics ΓòÉΓòÉΓòÉ
  7965.  
  7966. Select an item: 
  7967.  
  7968. Description
  7969. Returns
  7970. Remarks
  7971. Related Messages
  7972. Example Code
  7973. Glossary
  7974.  
  7975.  
  7976. ΓòÉΓòÉΓòÉ 7.18. MCI_GETIMAGEPALETTE ΓòÉΓòÉΓòÉ
  7977.  
  7978.  
  7979. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEPALETTE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  7980.  
  7981.  ulParam1 (ULONG) 
  7982.     This parameter can contain any of the following flags: 
  7983.  
  7984.     MCI_NOTIFY 
  7985.             A notification message will be posted to the window specified in 
  7986.             the hwndCallback parameter of the data structure pointed to by the 
  7987.             pParam2 parameter.  The notification will be posted when the action 
  7988.             indicated by this message is completed or when an error occurs. 
  7989.  
  7990.     MCI_WAIT 
  7991.             Control is not to be returned until the action indicated by this 
  7992.             message is completed or an error occurs. 
  7993.  
  7994.     MCI_FIND_BEST_REGISTERED 
  7995.             Select the best palette from the registered color maps and return 
  7996.             its ID in the usRegisteredMap field of the MCI_PALETTE_PARMS data 
  7997.             structure. 
  7998.  
  7999.     MCI_QUERY_REGISTERED_MAP 
  8000.             This flag specifies that the palette specified in the 
  8001.             usRegisteredMap field is to be returned in the array specified in 
  8002.             the pPalette field.  The size of the palette is returned in the 
  8003.             ulPalEntries field. 
  8004.  
  8005.     MCI_QUERY_REGISTERED_MAP_SIZE 
  8006.             This flag specifies that the size of the palette specified in the 
  8007.             usRegisteredMap field is to be returned in the ulPalEntries field. 
  8008.             This can be used to determine the size of the array to use for 
  8009.             MCI_QUERY_REGISTERED_MAP. 
  8010.  
  8011.  
  8012. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEPALETTE Parameter - ulParam2 ΓòÉΓòÉΓòÉ
  8013.  
  8014.  ulParam2 (PMCI_PALETTE_PARMS) 
  8015.     A pointer to the MCI_PALETTE_PARMS data structure. 
  8016.  
  8017.  
  8018. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEPALETTE Return Value - rc ΓòÉΓòÉΓòÉ
  8019.  
  8020.  rc (ULONG) 
  8021.     Return codes indicating success or type of failure: 
  8022.  
  8023.     MCIERR_SUCCESS 
  8024.             The MMPM/2 command completed successfully. 
  8025.  
  8026.     MCIERR_INVALID_DEVICE_ID 
  8027.             The device ID is not valid. 
  8028.  
  8029.     MCIERR_DEVICE_LOCKED 
  8030.             The device is acquired for exclusive use. 
  8031.  
  8032.     MCIERR_INVALID_FLAG 
  8033.             Flag is invalid (ulParam1). 
  8034.  
  8035.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8036.             Flags cannot be used together. 
  8037.  
  8038.     MCIERR_INVALID_CALLBACK_HANDLE 
  8039.             The callback handle given is not correct. 
  8040.  
  8041.  
  8042. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEPALETTE - Description ΓòÉΓòÉΓòÉ
  8043.  
  8044. This message returns the current palette or color map for the currently 
  8045. captured image, if one is available. 
  8046.  
  8047.  ulParam1 (ULONG) 
  8048.     This parameter can contain any of the following flags: 
  8049.  
  8050.     MCI_NOTIFY 
  8051.             A notification message will be posted to the window specified in 
  8052.             the hwndCallback parameter of the data structure pointed to by the 
  8053.             pParam2 parameter.  The notification will be posted when the action 
  8054.             indicated by this message is completed or when an error occurs. 
  8055.  
  8056.     MCI_WAIT 
  8057.             Control is not to be returned until the action indicated by this 
  8058.             message is completed or an error occurs. 
  8059.  
  8060.     MCI_FIND_BEST_REGISTERED 
  8061.             Select the best palette from the registered color maps and return 
  8062.             its ID in the usRegisteredMap field of the MCI_PALETTE_PARMS data 
  8063.             structure. 
  8064.  
  8065.     MCI_QUERY_REGISTERED_MAP 
  8066.             This flag specifies that the palette specified in the 
  8067.             usRegisteredMap field is to be returned in the array specified in 
  8068.             the pPalette field.  The size of the palette is returned in the 
  8069.             ulPalEntries field. 
  8070.  
  8071.     MCI_QUERY_REGISTERED_MAP_SIZE 
  8072.             This flag specifies that the size of the palette specified in the 
  8073.             usRegisteredMap field is to be returned in the ulPalEntries field. 
  8074.             This can be used to determine the size of the array to use for 
  8075.             MCI_QUERY_REGISTERED_MAP. 
  8076.  
  8077.  ulParam2 (PMCI_PALETTE_PARMS) 
  8078.     A pointer to the MCI_PALETTE_PARMS data structure. 
  8079.  
  8080.  rc (ULONG) 
  8081.     Return codes indicating success or type of failure: 
  8082.  
  8083.     MCIERR_SUCCESS 
  8084.             The MMPM/2 command completed successfully. 
  8085.  
  8086.     MCIERR_INVALID_DEVICE_ID 
  8087.             The device ID is not valid. 
  8088.  
  8089.     MCIERR_DEVICE_LOCKED 
  8090.             The device is acquired for exclusive use. 
  8091.  
  8092.     MCIERR_INVALID_FLAG 
  8093.             Flag is invalid (ulParam1). 
  8094.  
  8095.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8096.             Flags cannot be used together. 
  8097.  
  8098.     MCIERR_INVALID_CALLBACK_HANDLE 
  8099.             The callback handle given is not correct. 
  8100.  
  8101.  
  8102. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEPALETTE - Remarks ΓòÉΓòÉΓòÉ
  8103.  
  8104. This command might not be supported by the digital video device.  To determine 
  8105. whether the device supports the command, issue MCI_GETDEVCAPS. 
  8106.  
  8107. On dual-layer image capture hardware devices, the image layer content is 
  8108. assumed.  The computation of the palette is based only on visible data on some 
  8109. hardware, particularly single-plane devices. 
  8110.  
  8111.  
  8112. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEPALETTE - Related Messages ΓòÉΓòÉΓòÉ
  8113.  
  8114.      MCI_GETIMAGEBUFFER 
  8115.      MCI_SETIMAGEPALETTE 
  8116.  
  8117.  
  8118. ΓòÉΓòÉΓòÉ <hidden> MCI_GETIMAGEPALETTE - Topics ΓòÉΓòÉΓòÉ
  8119.  
  8120. Select an item: 
  8121.  
  8122. Description
  8123. Returns
  8124. Remarks
  8125. Related Messages
  8126. Glossary
  8127.  
  8128.  
  8129. ΓòÉΓòÉΓòÉ 7.19. MCI_GETTOC ΓòÉΓòÉΓòÉ
  8130.  
  8131.  
  8132. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  8133.  
  8134.  ulParam1 (ULONG) 
  8135.     This parameter can contain any of the following flags: 
  8136.  
  8137.     MCI_NOTIFY 
  8138.             A notification message will be posted to the window specified in 
  8139.             the hwndCallback parameter of the data structure pointed to by the 
  8140.             pParam2 parameter.  The notification will be posted when the action 
  8141.             indicated by this message is completed or when an error occurs. 
  8142.  
  8143.     MCI_WAIT 
  8144.             Control is not to be returned until the action indicated by this 
  8145.             message is completed or an error occurs. 
  8146.  
  8147.  
  8148. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC Parameter - pParam2 ΓòÉΓòÉΓòÉ
  8149.  
  8150.  pParam2 (PMCI_TOC_PARMS) 
  8151.     A pointer to the MCI_TOC_PARMS data structure. 
  8152.  
  8153.  
  8154. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC Return Value - rc ΓòÉΓòÉΓòÉ
  8155.  
  8156.  rc (ULONG) 
  8157.     Return codes indicating success or type of failure: 
  8158.  
  8159.     MCIERR_SUCCESS 
  8160.             If the function succeeds, 0 is returned. 
  8161.  
  8162.     MCIERR_INVALID_DEVICE_ID 
  8163.             The device ID is not valid. 
  8164.  
  8165.     MCIERR_INSTANCE_INACTIVE 
  8166.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  8167.             make device ID active. 
  8168.  
  8169.     MCIERR_UNSUPPORTED_FLAG 
  8170.             Given flag is unsupported for this device. 
  8171.  
  8172.     MCIERR_INVALID_CALLBACK_HANDLE 
  8173.             Given callback handle is invalid. 
  8174.  
  8175.     MCIERR_UNSUPPORTED_FUNCTION 
  8176.             Unsupported function. 
  8177.  
  8178.     MCIERR_INVALID_FLAG 
  8179.             Flag (ulParam1) is invalid. 
  8180.  
  8181.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8182.             Flags cannot be used together. 
  8183.  
  8184.     MCIERR_INVALID_BUFFER 
  8185.             Invalid return buffer given. 
  8186.  
  8187.     MCIERR_MISSING_PARAMETER 
  8188.             Required parameter missing. 
  8189.  
  8190.     MCIERR_DEVICE_NOT_READY 
  8191.             The device is not ready or is being used by another process. 
  8192.  
  8193.  
  8194. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC - Description ΓòÉΓòÉΓòÉ
  8195.  
  8196. This message returns a table of contents structure for the currently loaded 
  8197. compact disc. 
  8198.  
  8199.  ulParam1 (ULONG) 
  8200.     This parameter can contain any of the following flags: 
  8201.  
  8202.     MCI_NOTIFY 
  8203.             A notification message will be posted to the window specified in 
  8204.             the hwndCallback parameter of the data structure pointed to by the 
  8205.             pParam2 parameter.  The notification will be posted when the action 
  8206.             indicated by this message is completed or when an error occurs. 
  8207.  
  8208.     MCI_WAIT 
  8209.             Control is not to be returned until the action indicated by this 
  8210.             message is completed or an error occurs. 
  8211.  
  8212.  pParam2 (PMCI_TOC_PARMS) 
  8213.     A pointer to the MCI_TOC_PARMS data structure. 
  8214.  
  8215.  rc (ULONG) 
  8216.     Return codes indicating success or type of failure: 
  8217.  
  8218.     MCIERR_SUCCESS 
  8219.             If the function succeeds, 0 is returned. 
  8220.  
  8221.     MCIERR_INVALID_DEVICE_ID 
  8222.             The device ID is not valid. 
  8223.  
  8224.     MCIERR_INSTANCE_INACTIVE 
  8225.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  8226.             make device ID active. 
  8227.  
  8228.     MCIERR_UNSUPPORTED_FLAG 
  8229.             Given flag is unsupported for this device. 
  8230.  
  8231.     MCIERR_INVALID_CALLBACK_HANDLE 
  8232.             Given callback handle is invalid. 
  8233.  
  8234.     MCIERR_UNSUPPORTED_FUNCTION 
  8235.             Unsupported function. 
  8236.  
  8237.     MCIERR_INVALID_FLAG 
  8238.             Flag (ulParam1) is invalid. 
  8239.  
  8240.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8241.             Flags cannot be used together. 
  8242.  
  8243.     MCIERR_INVALID_BUFFER 
  8244.             Invalid return buffer given. 
  8245.  
  8246.     MCIERR_MISSING_PARAMETER 
  8247.             Required parameter missing. 
  8248.  
  8249.     MCIERR_DEVICE_NOT_READY 
  8250.             The device is not ready or is being used by another process. 
  8251.  
  8252.  
  8253. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC - Remarks ΓòÉΓòÉΓòÉ
  8254.  
  8255. Device and table of contents structure for the currently loaded disc is 
  8256. returned in the MCI_TOC_REC data structure. From this point, the controlling 
  8257. program can select the CD audio object (audio track in this case) to play. If 
  8258. the size of the buffer passed in is too small to hold all the data returned, 
  8259. then the ulBufSize field of the MCI_TOC_PARMS structure contains the required 
  8260. buffer size, the error code MCIERR_INVALID_BUFFER is returned, and the buffer 
  8261. contains only as much of the GETTOC data as its size permits. 
  8262.  
  8263. Note:  Not all CD-ROM drives capable of playing digital-audio compact discs 
  8264.        support this feature. 
  8265.  
  8266.  
  8267. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC - Default Processing ΓòÉΓòÉΓòÉ
  8268.  
  8269. None 
  8270.  
  8271.  
  8272. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC - Example Code ΓòÉΓòÉΓòÉ
  8273.  
  8274. The following code illustrates how to get a table of contents structure for the 
  8275. currently loaded device. 
  8276.  
  8277.    USHORT   usDeviceID;
  8278.    MCI_TOC_PARMS tocparms;
  8279.    #define MAXTOCRECS 30       /* Query up to 30 toc entries           */
  8280.    MCI_TOC_REC tocrecs[MAXTOCRECS];
  8281.  
  8282.    /* Get the table of contents for the currently loaded disc          */
  8283.  
  8284.    tocparms.pBuf = tocrecs;
  8285.    tocparms.ulBufSize = sizeof(tocrecs);
  8286.  
  8287.    mciSendCommand(usDeviceID,  /* Device ID                            */
  8288.     MCI_GETTOC,                /* Get table of contents message        */
  8289.     MCI_WAIT,                  /* Flag for this message                */
  8290.     (PVOID) &tocparms,         /* Data structure                       */
  8291.     0);                        /* No user parm                         */
  8292.  
  8293.  
  8294. ΓòÉΓòÉΓòÉ <hidden> MCI_GETTOC - Topics ΓòÉΓòÉΓòÉ
  8295.  
  8296. Select an item: 
  8297.  
  8298. Description
  8299. Returns
  8300. Remarks
  8301. Default Processing
  8302. Example Code
  8303. Glossary
  8304.  
  8305.  
  8306. ΓòÉΓòÉΓòÉ 7.20. MCI_GROUP ΓòÉΓòÉΓòÉ
  8307.  
  8308.  
  8309. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  8310.  
  8311.  ulParam1 (ULONG) 
  8312.     This parameter can contain any of the following flags: 
  8313.  
  8314.     MCI_NOTIFY 
  8315.               A notification message will be posted to the window specified in 
  8316.               the hwndCallback parameter of the data structure pointed to by 
  8317.               the pParam2 parameter.  The notification will be posted when the 
  8318.               action indicated by this message is completed or when an error 
  8319.               occurs. 
  8320.  
  8321.     MCI_WAIT 
  8322.               Control is not to be returned until the action indicated by this 
  8323.               message is completed or an error occurs. 
  8324.  
  8325.               Note:  The MCI_GROUP message supports several flags, some of 
  8326.                      which can be used in combination with each other.  Valid 
  8327.                      combinations are described in the flag descriptions below. 
  8328.                      An invalid combination results in the 
  8329.                      MCIERR_FLAGS_NOT_COMPATIBLE error return code. 
  8330.  
  8331.     MCI_GROUP_MAKE 
  8332.               This flag specifies the creation of a group.  MCI_GROUP_MAKE ties 
  8333.               several instances together such that a single command sent to the 
  8334.               group is actually sent to each instance in the group.  This flag 
  8335.               can be combined with any of the other group flags except 
  8336.               MCI_GROUP_DELETE, in which case an MCIERR_FLAGS_NOT_COMPATIBLE 
  8337.               error is returned.  Instances must have been previously opened 
  8338.               but these instances can be in any mode (such as playing, stopped, 
  8339.               paused, and so forth) for this message to be successful.  An 
  8340.               array of device IDs is provided by the application in the 
  8341.               paulDeviceID field of the MCI_GROUP_PARMS data structure.  The 
  8342.               number of these IDs is provided by the application in the 
  8343.               ulNumDevices field.  If one or more device IDs are invalid, then 
  8344.               the MCIERR_INVALID_DEVICE_ID error is returned. 
  8345.  
  8346.               If a device ID or alias references an instance already in another 
  8347.               group, the MCIERR_ID_ALREADY_IN_GROUP error message is returned. 
  8348.  
  8349.     MCI_GROUP_DELETE 
  8350.               This flag deletes an existing group by disassociating the 
  8351.               instances from each other.  None of the device instances in the 
  8352.               group are closed just the group reference.  None of the other 
  8353.               flags can be combined with MCI_GROUP_DELETE since the only 
  8354.               information required by this flag is a group ID.  If any other 
  8355.               flags are specified, an MCIERR_FLAGS_NOT_COMPATIBLE error is 
  8356.               returned.  The MCIERR_INVALID_GROUP_ID error is returned if an 
  8357.               invalid ID is passed. 
  8358.  
  8359.     MCI_GROUP_ALIAS 
  8360.               This flag specifies that the pszGroupAlias field contains an 
  8361.               alias for the group.  This flag is valid only with the 
  8362.               MCI_GROUP_MAKE flag.  The given alias can then be used to refer 
  8363.               to the group from the mciSendString interface.  If the alias is 
  8364.               already in use, the MCIERR_DUPLICATE_ALIAS error is returned. 
  8365.  
  8366.     MCI_GROUP_NOPIECEMEAL 
  8367.               This flag specifies that the group is to be treated as a whole 
  8368.               entity rather than a group of separate parts.  If one of the 
  8369.               parts (instances) becomes inactive, then all the instances in the 
  8370.               group become inactive.  This flag is only valid with the 
  8371.               MCI_GROUP_MAKE flag.  If a group is created with the 
  8372.               MCI_GROUP_NOPIECEMEAL flag specified and one or more of the 
  8373.               device instances is already inactive, then the entire group (all 
  8374.               device instances) will be made inactive. 
  8375.  
  8376.  
  8377. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP Parameter - pParam2 ΓòÉΓòÉΓòÉ
  8378.  
  8379.  pParam2 (PMCI_GROUP_PARMS) 
  8380.     A pointer to the MCI_GROUP_PARMS structure. 
  8381.  
  8382.  
  8383. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP Return Value - rc ΓòÉΓòÉΓòÉ
  8384.  
  8385.  rc (ULONG) 
  8386.     Return codes indicating success or type of failure: 
  8387.  
  8388.     MCIERR_SUCCESS 
  8389.             If the function succeeds, 0 is returned. 
  8390.  
  8391.     MCIERR_DUPLICATE_ALIAS 
  8392.             An alias is already in use. 
  8393.  
  8394.     MCIERR_GROUP_COMMAND 
  8395.             An unsupported GROUP command is sent to a group. 
  8396.  
  8397.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8398.             Flags cannot be used together. 
  8399.  
  8400.     MCIERR_ID_ALREADY_IN_GROUP 
  8401.             A device ID or alias references an instance already in another 
  8402.             group. 
  8403.  
  8404.     MCIERR_INVALID_GROUP_ID 
  8405.             An invalid group ID is passed. 
  8406.  
  8407.  
  8408. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP - Description ΓòÉΓòÉΓòÉ
  8409.  
  8410. This message allows applications to create and delete groups of device 
  8411. instances.  Group commands allow applications to control several devices using 
  8412. a single command. 
  8413.  
  8414.  ulParam1 (ULONG) 
  8415.     This parameter can contain any of the following flags: 
  8416.  
  8417.     MCI_NOTIFY 
  8418.               A notification message will be posted to the window specified in 
  8419.               the hwndCallback parameter of the data structure pointed to by 
  8420.               the pParam2 parameter.  The notification will be posted when the 
  8421.               action indicated by this message is completed or when an error 
  8422.               occurs. 
  8423.  
  8424.     MCI_WAIT 
  8425.               Control is not to be returned until the action indicated by this 
  8426.               message is completed or an error occurs. 
  8427.  
  8428.               Note:  The MCI_GROUP message supports several flags, some of 
  8429.                      which can be used in combination with each other.  Valid 
  8430.                      combinations are described in the flag descriptions below. 
  8431.                      An invalid combination results in the 
  8432.                      MCIERR_FLAGS_NOT_COMPATIBLE error return code. 
  8433.  
  8434.     MCI_GROUP_MAKE 
  8435.               This flag specifies the creation of a group.  MCI_GROUP_MAKE ties 
  8436.               several instances together such that a single command sent to the 
  8437.               group is actually sent to each instance in the group.  This flag 
  8438.               can be combined with any of the other group flags except 
  8439.               MCI_GROUP_DELETE, in which case an MCIERR_FLAGS_NOT_COMPATIBLE 
  8440.               error is returned.  Instances must have been previously opened 
  8441.               but these instances can be in any mode (such as playing, stopped, 
  8442.               paused, and so forth) for this message to be successful.  An 
  8443.               array of device IDs is provided by the application in the 
  8444.               paulDeviceID field of the MCI_GROUP_PARMS data structure.  The 
  8445.               number of these IDs is provided by the application in the 
  8446.               ulNumDevices field.  If one or more device IDs are invalid, then 
  8447.               the MCIERR_INVALID_DEVICE_ID error is returned. 
  8448.  
  8449.               If a device ID or alias references an instance already in another 
  8450.               group, the MCIERR_ID_ALREADY_IN_GROUP error message is returned. 
  8451.  
  8452.     MCI_GROUP_DELETE 
  8453.               This flag deletes an existing group by disassociating the 
  8454.               instances from each other.  None of the device instances in the 
  8455.               group are closed just the group reference.  None of the other 
  8456.               flags can be combined with MCI_GROUP_DELETE since the only 
  8457.               information required by this flag is a group ID.  If any other 
  8458.               flags are specified, an MCIERR_FLAGS_NOT_COMPATIBLE error is 
  8459.               returned.  The MCIERR_INVALID_GROUP_ID error is returned if an 
  8460.               invalid ID is passed. 
  8461.  
  8462.     MCI_GROUP_ALIAS 
  8463.               This flag specifies that the pszGroupAlias field contains an 
  8464.               alias for the group.  This flag is valid only with the 
  8465.               MCI_GROUP_MAKE flag.  The given alias can then be used to refer 
  8466.               to the group from the mciSendString interface.  If the alias is 
  8467.               already in use, the MCIERR_DUPLICATE_ALIAS error is returned. 
  8468.  
  8469.     MCI_GROUP_NOPIECEMEAL 
  8470.               This flag specifies that the group is to be treated as a whole 
  8471.               entity rather than a group of separate parts.  If one of the 
  8472.               parts (instances) becomes inactive, then all the instances in the 
  8473.               group become inactive.  This flag is only valid with the 
  8474.               MCI_GROUP_MAKE flag.  If a group is created with the 
  8475.               MCI_GROUP_NOPIECEMEAL flag specified and one or more of the 
  8476.               device instances is already inactive, then the entire group (all 
  8477.               device instances) will be made inactive. 
  8478.  
  8479.  pParam2 (PMCI_GROUP_PARMS) 
  8480.     A pointer to the MCI_GROUP_PARMS structure. 
  8481.  
  8482.  rc (ULONG) 
  8483.     Return codes indicating success or type of failure: 
  8484.  
  8485.     MCIERR_SUCCESS 
  8486.             If the function succeeds, 0 is returned. 
  8487.  
  8488.     MCIERR_DUPLICATE_ALIAS 
  8489.             An alias is already in use. 
  8490.  
  8491.     MCIERR_GROUP_COMMAND 
  8492.             An unsupported GROUP command is sent to a group. 
  8493.  
  8494.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8495.             Flags cannot be used together. 
  8496.  
  8497.     MCIERR_ID_ALREADY_IN_GROUP 
  8498.             A device ID or alias references an instance already in another 
  8499.             group. 
  8500.  
  8501.     MCIERR_INVALID_GROUP_ID 
  8502.             An invalid group ID is passed. 
  8503.  
  8504.  
  8505. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP - Remarks ΓòÉΓòÉΓòÉ
  8506.  
  8507. Once a group is created, certain messages sent to the group's ID (or alias) are 
  8508. in turn sent to each device making up that group. The following messages can be 
  8509. sent to a group. 
  8510.  
  8511.  MCI_ACQUIREDEVICE        MCI_RELEASEDEVICE 
  8512.  
  8513.  MCI_CLOSE                MCI_RESUME 
  8514.  
  8515.  MCI_CUE                  MCI_SEEK 
  8516.  
  8517.  MCI_PAUSE                MCI_SET 
  8518.  
  8519.  MCI_PLAY                 MCI_STOP 
  8520.  
  8521.  MCI_RECORD 
  8522.  
  8523.  
  8524. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP - Related Messages ΓòÉΓòÉΓòÉ
  8525.  
  8526.      MCI_ACQUIREDEVICE 
  8527.      MCI_CUE 
  8528.      MCI_CLOSE 
  8529.      MCI_PAUSE 
  8530.      MCI_PLAY 
  8531.      MCI_RECORD 
  8532.      MCI_RELEASEDEVICE 
  8533.      MCI_RESUME 
  8534.      MCI_SEEK 
  8535.      MCI_SET 
  8536.      MCI_STOP 
  8537.  
  8538.  
  8539. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP - Example Code ΓòÉΓòÉΓòÉ
  8540.  
  8541. The following code illustrates how to initialize multiple devices in a group 
  8542. simultaneously. 
  8543.  
  8544.   /***  Sample code to make a group using mciSendCommand.  ***/
  8545.  
  8546. MCI_GROUP_PARMS    mciGroupParameters;
  8547. ULONG              paulDeviceIDs[4];
  8548. ULONG              ulRC;
  8549. ULONG              ulGroupFlags;
  8550.  
  8551.  
  8552.   /********************************************************************/
  8553.   /***  Assume code is here to open four devices and store their    ***/
  8554.   /***  device IDs in the array                                     ***/
  8555.   /***  paulDeviceIDs[0]...paulDeviceIDs[3]     ***/
  8556.   /********************************************************************/
  8557.  
  8558.  
  8559. ulGroupFlags = MCI_GROUP_MAKE;               /* Make a group            */
  8560.  
  8561. mciGroupParameters.hwndCallback= (HWND) NULL;/* No NOTIFY will be used. */
  8562.  
  8563. mciGroupParameters.usGroupID   = 0;          /* This will be returned.  */
  8564.  
  8565. mciGroupParameters.pszGroupAlias= (PSZ) NULL;/* No alias will be used.  */
  8566.  
  8567. mciGroupParameters.ulNumDevices = 4;         /* Group four devices.     */
  8568.  
  8569. mciGroupParameters.paulDeviceID = paulDeviceIDs;/* This array contains  */
  8570.                                                    the four device IDs. */
  8571.  
  8572. ulRC = mciSendCommand(
  8573.         0,                         /* We don't know the group's ID yet. */
  8574.         MCI_GROUP,                 /* MCI_GROUP message.                */
  8575.         ulGroupFlags,              /* Flags for the MCI_GROUP message.  */
  8576.         (PVOID)&mciGroupParameters /* Parameters for the message.       */
  8577.         0 );                       /* User parameter.                   */
  8578.  
  8579.  
  8580.    /********************************************************************/
  8581.    /***  On successful return, a group will have been created        ***/
  8582.    /***  combining the four devices (whose device IDs were in the    ***/
  8583.    /***  paulDeviceIDs array) into one "grouped" device.  This       ***/
  8584.    /***  "grouped" device will have a device ID of its own found in  ***/
  8585.    /***  the mciGroupParameters.usGroupID field.                     ***/
  8586.    /********************************************************************/
  8587.  
  8588.  
  8589. ΓòÉΓòÉΓòÉ <hidden> MCI_GROUP - Topics ΓòÉΓòÉΓòÉ
  8590.  
  8591. Select an item: 
  8592.  
  8593. Description
  8594. Returns
  8595. Remarks
  8596. Related Messages
  8597. Example Code
  8598. Glossary
  8599.  
  8600.  
  8601. ΓòÉΓòÉΓòÉ 7.21. MCI_INFO ΓòÉΓòÉΓòÉ
  8602.  
  8603.  
  8604. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  8605.  
  8606.  ulParam1 (ULONG) 
  8607.     This parameter can contain any of the following flags: 
  8608.  
  8609.     MCI_NOTIFY 
  8610.             A notification message will be posted to the window specified in 
  8611.             the hwndCallback parameter of the data structure pointed to by the 
  8612.             pParam2 parameter.  The notification will be posted when the action 
  8613.             indicated by this message is completed or when an error occurs. 
  8614.  
  8615.     MCI_WAIT 
  8616.             Control is not to be returned until the action indicated by this 
  8617.             message is completed or an error occurs. 
  8618.  
  8619.     MCI_INFO_PRODUCT 
  8620.             This flag returns a description of the particular hardware 
  8621.             associated with a device. 
  8622.  
  8623.     CD Audio Extensions 
  8624.  
  8625.     The following additional flags apply to CD audio devices: 
  8626.  
  8627.     MCI_CD_INFO_ID 
  8628.             This flag returns the disc ID (8 bytes) consisting of the starting 
  8629.             address, ending track number, and address of the lead-out track. 
  8630.             The disc ID is generated by the CD Audio MCD and is not necessarily 
  8631.             unique. 
  8632.  
  8633.     MCI_CD_INFO_UPC 
  8634.             This flag returns the disc's UPC code (serial number) if the device 
  8635.             supports this function; otherwise it returns 0. The UPC is BCD 
  8636.             coded.  Not all discs have UPCs. 
  8637.  
  8638.     CD-XA Extensions 
  8639.  
  8640.     The following additional flags apply to CD-XA devices: 
  8641.  
  8642.     MCI_CD_INFO_UPC 
  8643.             This flag returns the disc's UPC code (serial number) if the device 
  8644.             supports this function; otherwise, it returns 0. The UPC is BCD 
  8645.             coded.  Not all discs have UPCs. 
  8646.  
  8647.     MCI_INFO_FILE 
  8648.             This flag returns the file name of the current file. 
  8649.  
  8650.     Digital Video Extensions 
  8651.  
  8652.     The following additional flags apply to digital video devices: 
  8653.  
  8654.     MCI_DGV_INFO_VIDEO_FILE 
  8655.             This flag returns the file name of the current digital video file 
  8656.             used by the device. 
  8657.  
  8658.     MCI_DGV_INFO_IMAGE_FILE 
  8659.             This flag returns the file name of the current image file used by 
  8660.             the device. 
  8661.  
  8662.     MCI_DGV_INFO_TEXT 
  8663.             This flag returns the caption of the window in which the digital 
  8664.             video is currently displayed. 
  8665.  
  8666.     MCI_DGV_INFO_REGION 
  8667.             This flag returns the name of the current tuner region. 
  8668.  
  8669.     MCI_DGV_INFO_REGION_TEXT 
  8670.             This flag returns a description of the current tuner region. 
  8671.  
  8672.     Sequencer Extensions 
  8673.  
  8674.     The following additional flags apply to sequencer devices: 
  8675.  
  8676.     MCI_INFO_FILE 
  8677.             This flag returns the file name of the current file. 
  8678.  
  8679.     Videodisc Extensions 
  8680.  
  8681.     The following additional flags apply to videodisc devices: 
  8682.  
  8683.     MCI_VD_INFO_LABEL 
  8684.             This flag returns the videodisc label. 
  8685.  
  8686.     Video Overlay Extensions 
  8687.  
  8688.     The following additional flags apply to video overlay devices: 
  8689.  
  8690.     MCI_INFO_FILE 
  8691.             This flag returns the file name of the current file. 
  8692.  
  8693.     MCI_OVLY_INFO_TEXT 
  8694.             This flag returns the caption of the window in which the video 
  8695.             overlay is currently displayed. 
  8696.  
  8697.     Wave Audio Extensions 
  8698.  
  8699.     The following additional flags apply to wave audio devices: 
  8700.  
  8701.     MCI_INFO_FILE 
  8702.             This flag returns the file name of the current file. 
  8703.  
  8704.  
  8705. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO Parameter - pParam2 ΓòÉΓòÉΓòÉ
  8706.  
  8707.  pParam2 (PMCI_INFO_PARMS) 
  8708.     A pointer to the MCI_INFO_PARMS data structure. 
  8709.  
  8710.  
  8711. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO Return Value - rc ΓòÉΓòÉΓòÉ
  8712.  
  8713.  rc (ULONG) 
  8714.     Return codes indicating success or type of failure: 
  8715.  
  8716.     MCIERR_SUCCESS 
  8717.             MMPM/2 command completed successfully. 
  8718.  
  8719.     MCIERR_OUT_OF_MEMORY 
  8720.             System out of memory. 
  8721.  
  8722.     MCIERR_INVALID_DEVICE_ID 
  8723.             Invalid device ID given. 
  8724.  
  8725.     MCIERR_MISSING_PARAMETER 
  8726.             Missing parameter for this command. 
  8727.  
  8728.     MCIERR_UNSUPPORTED_FLAG 
  8729.             Flag not supported by the MMPM/2 driver for this command. 
  8730.  
  8731.     MCIERR_INVALID_CALLBACK_HANDLE 
  8732.             The window callback handle is not valid. 
  8733.  
  8734.     MCIERR_DRIVER 
  8735.             Internal MMPM/2 driver error. 
  8736.  
  8737.     MCIERR_INVALID_FLAG 
  8738.             Invalid flag specified for this command. 
  8739.  
  8740.     MCIERR_INVALID_BUFFER 
  8741.             Invalid return buffer given. 
  8742.  
  8743.     MCIERR_FILE_NOT_FOUND 
  8744.             File not found. 
  8745.  
  8746.     MCIERR_MISSING_FLAG 
  8747.             Flag missing for this MMPM/2 command. 
  8748.  
  8749.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8750.             The flags cannot be used together. 
  8751.  
  8752.  
  8753. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO - Description ΓòÉΓòÉΓòÉ
  8754.  
  8755. This message returns string information from a media device instance.  This 
  8756. information does not describe the capabilities of the device, only static 
  8757. information about the device. 
  8758.  
  8759.  ulParam1 (ULONG) 
  8760.     This parameter can contain any of the following flags: 
  8761.  
  8762.     MCI_NOTIFY 
  8763.             A notification message will be posted to the window specified in 
  8764.             the hwndCallback parameter of the data structure pointed to by the 
  8765.             pParam2 parameter.  The notification will be posted when the action 
  8766.             indicated by this message is completed or when an error occurs. 
  8767.  
  8768.     MCI_WAIT 
  8769.             Control is not to be returned until the action indicated by this 
  8770.             message is completed or an error occurs. 
  8771.  
  8772.     MCI_INFO_PRODUCT 
  8773.             This flag returns a description of the particular hardware 
  8774.             associated with a device. 
  8775.  
  8776.     CD Audio Extensions 
  8777.  
  8778.     The following additional flags apply to CD audio devices: 
  8779.  
  8780.     MCI_CD_INFO_ID 
  8781.             This flag returns the disc ID (8 bytes) consisting of the starting 
  8782.             address, ending track number, and address of the lead-out track. 
  8783.             The disc ID is generated by the CD Audio MCD and is not necessarily 
  8784.             unique. 
  8785.  
  8786.     MCI_CD_INFO_UPC 
  8787.             This flag returns the disc's UPC code (serial number) if the device 
  8788.             supports this function; otherwise it returns 0. The UPC is BCD 
  8789.             coded.  Not all discs have UPCs. 
  8790.  
  8791.     CD-XA Extensions 
  8792.  
  8793.     The following additional flags apply to CD-XA devices: 
  8794.  
  8795.     MCI_CD_INFO_UPC 
  8796.             This flag returns the disc's UPC code (serial number) if the device 
  8797.             supports this function; otherwise, it returns 0. The UPC is BCD 
  8798.             coded.  Not all discs have UPCs. 
  8799.  
  8800.     MCI_INFO_FILE 
  8801.             This flag returns the file name of the current file. 
  8802.  
  8803.     Digital Video Extensions 
  8804.  
  8805.     The following additional flags apply to digital video devices: 
  8806.  
  8807.     MCI_DGV_INFO_VIDEO_FILE 
  8808.             This flag returns the file name of the current digital video file 
  8809.             used by the device. 
  8810.  
  8811.     MCI_DGV_INFO_IMAGE_FILE 
  8812.             This flag returns the file name of the current image file used by 
  8813.             the device. 
  8814.  
  8815.     MCI_DGV_INFO_TEXT 
  8816.             This flag returns the caption of the window in which the digital 
  8817.             video is currently displayed. 
  8818.  
  8819.     MCI_DGV_INFO_REGION 
  8820.             This flag returns the name of the current tuner region. 
  8821.  
  8822.     MCI_DGV_INFO_REGION_TEXT 
  8823.             This flag returns a description of the current tuner region. 
  8824.  
  8825.     Sequencer Extensions 
  8826.  
  8827.     The following additional flags apply to sequencer devices: 
  8828.  
  8829.     MCI_INFO_FILE 
  8830.             This flag returns the file name of the current file. 
  8831.  
  8832.     Videodisc Extensions 
  8833.  
  8834.     The following additional flags apply to videodisc devices: 
  8835.  
  8836.     MCI_VD_INFO_LABEL 
  8837.             This flag returns the videodisc label. 
  8838.  
  8839.     Video Overlay Extensions 
  8840.  
  8841.     The following additional flags apply to video overlay devices: 
  8842.  
  8843.     MCI_INFO_FILE 
  8844.             This flag returns the file name of the current file. 
  8845.  
  8846.     MCI_OVLY_INFO_TEXT 
  8847.             This flag returns the caption of the window in which the video 
  8848.             overlay is currently displayed. 
  8849.  
  8850.     Wave Audio Extensions 
  8851.  
  8852.     The following additional flags apply to wave audio devices: 
  8853.  
  8854.     MCI_INFO_FILE 
  8855.             This flag returns the file name of the current file. 
  8856.  
  8857.  pParam2 (PMCI_INFO_PARMS) 
  8858.     A pointer to the MCI_INFO_PARMS data structure. 
  8859.  
  8860.  rc (ULONG) 
  8861.     Return codes indicating success or type of failure: 
  8862.  
  8863.     MCIERR_SUCCESS 
  8864.             MMPM/2 command completed successfully. 
  8865.  
  8866.     MCIERR_OUT_OF_MEMORY 
  8867.             System out of memory. 
  8868.  
  8869.     MCIERR_INVALID_DEVICE_ID 
  8870.             Invalid device ID given. 
  8871.  
  8872.     MCIERR_MISSING_PARAMETER 
  8873.             Missing parameter for this command. 
  8874.  
  8875.     MCIERR_UNSUPPORTED_FLAG 
  8876.             Flag not supported by the MMPM/2 driver for this command. 
  8877.  
  8878.     MCIERR_INVALID_CALLBACK_HANDLE 
  8879.             The window callback handle is not valid. 
  8880.  
  8881.     MCIERR_DRIVER 
  8882.             Internal MMPM/2 driver error. 
  8883.  
  8884.     MCIERR_INVALID_FLAG 
  8885.             Invalid flag specified for this command. 
  8886.  
  8887.     MCIERR_INVALID_BUFFER 
  8888.             Invalid return buffer given. 
  8889.  
  8890.     MCIERR_FILE_NOT_FOUND 
  8891.             File not found. 
  8892.  
  8893.     MCIERR_MISSING_FLAG 
  8894.             Flag missing for this MMPM/2 command. 
  8895.  
  8896.     MCIERR_FLAGS_NOT_COMPATIBLE 
  8897.             The flags cannot be used together. 
  8898.  
  8899.  
  8900. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO - Remarks ΓòÉΓòÉΓòÉ
  8901.  
  8902. The parameters and flags for this message vary according to the selected 
  8903. device.  If the size of the buffer passed in is too small to hold all the data 
  8904. returned, ulRetSize will contain the required buffer size, the error code 
  8905. MCIERR_INVALID_BUFFER will be returned, and the buffer will only contain as 
  8906. much of the INFO data as its size permits. Only one flag can be used per 
  8907. MCI_INFO message; otherwise the MCIERR_FLAGS_NOT_COMPATIBLE error is returned. 
  8908.  
  8909.  
  8910. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO - Related Messages ΓòÉΓòÉΓòÉ
  8911.  
  8912.      MCI_GETDEVCAPS 
  8913.  
  8914.  
  8915. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO - Example Code ΓòÉΓòÉΓòÉ
  8916.  
  8917. The following code illustrates how to get the file name of the currently loaded 
  8918. device. 
  8919.  
  8920.    #define  RETBUFSIZE 128
  8921.  
  8922.    USHORT   usDeviceID;
  8923.    CHAR     InfoRet [RETBUFSIZE];            /* Return string buffer     */
  8924.    MCI_INFO_PARMS  infoparms;
  8925.  
  8926.    /* Get the file name of the currently loaded file                     */
  8927.  
  8928.    infoparms.pszReturn = (PSZ) &InfoRet;     /* Pointer to return buffer */
  8929.    infoparms.ulRetSize = RETBUFSIZE;         /* Return buffer size       */
  8930.  
  8931.    mciSendCommand(usDeviceID,                /* Device ID                */
  8932.     MCI_INFO,                                /* MCI info message         */
  8933.     MCI_WAIT | MCI_FILE,                     /* Flags for this message   */
  8934.  
  8935.     (PVOID) &infoparms,                      /* Data structure           */
  8936.     0);                                      /* No user parm             */
  8937.  
  8938.    /* NOTE: infoparms.pszReturn now contains the name
  8939.             of the current file                                          */
  8940.  
  8941.  
  8942. ΓòÉΓòÉΓòÉ <hidden> MCI_INFO - Topics ΓòÉΓòÉΓòÉ
  8943.  
  8944. Select an item: 
  8945.  
  8946. Description
  8947. Returns
  8948. Remarks
  8949. Related Messages
  8950. Example Code
  8951. Glossary
  8952.  
  8953.  
  8954. ΓòÉΓòÉΓòÉ 7.22. MCI_LOAD ΓòÉΓòÉΓòÉ
  8955.  
  8956.  
  8957. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  8958.  
  8959.  ulParam1 (ULONG) 
  8960.     This parameter can contain any of the following flags: The MCI_OPEN_ELEMENT 
  8961.     and MCI_OPEN_MMIO flags are mutually exclusive. 
  8962.  
  8963.     MCI_NOTIFY 
  8964.             A notification message will be posted to the window specified in 
  8965.             the hwndCallback parameter of the data structure pointed to by the 
  8966.             pParam2 parameter. The notification will be posted when the action 
  8967.             indicated by this message is completed or when an error occurs. 
  8968.  
  8969.     MCI_WAIT 
  8970.             Control is not to be returned until the action indicated by this 
  8971.             message is completed or an error occurs. 
  8972.  
  8973.     MCI_OPEN_ELEMENT 
  8974.             This flag specifies that an element name is included. The element 
  8975.             name can be that of a file or a file element in a compound file. 
  8976.             The element name is specified in the pszElementName field of the 
  8977.             MCI_LOAD_PARMS data structure. If the element name does not exist 
  8978.             or is NULL, then a temporary element is created for subsequent use. 
  8979.             (This is the equivalent of specifying the NEW keyword with the LOAD 
  8980.             string command.) The temporary file can be made permanent by 
  8981.             providing a name using the MCI_SAVE message. 
  8982.  
  8983.     MCI_OPEN_MMIO 
  8984.             Indicates that an MMIO handle (hmmio) is passed in the 
  8985.             pszElementName field of the open data structure. The file must have 
  8986.             been opened through MMIO with the ulTranslate field of the MMIOINFO 
  8987.             data structure set to MMIO_TRANSLATEHEADER, unless a particular MCD 
  8988.             indicates differently. 
  8989.  
  8990.     Digital Video Extensions 
  8991.  
  8992.     MCI_READONLY 
  8993.             Opens the file in a read-only mode and prevents inadvertent changes 
  8994.             to the file. When no changes to the file are allowed, the digital 
  8995.             video driver can improve load and run-time performance, while 
  8996.             allowing other devices to share the file for playback purposes. 
  8997.  
  8998.             This flag can only be used in conjunction with the MCI_OPEN_ELEMENT 
  8999.             flag. Specifying the MCI_READONLY flag disables support for 
  9000.             MCI_SAVE and MCI_RECORD. 
  9001.  
  9002.     Video Overlay Extensions 
  9003.  
  9004.     The image contained in the file is loaded into the image device element and 
  9005.     overwrites any image currently stored there. It can be displayed using the 
  9006.     MCI_RESTORE command. 
  9007.  
  9008.     The file is opened, accessed, and closed on this command. 
  9009.  
  9010.     If the format of the image file is not recognized as either a device 
  9011.     specific file format or a format supported by MMIO the load fails. 
  9012.  
  9013.     Load performs an automatic set of the following values for: 
  9014.  
  9015.         IMAGE BITSPERPEL 
  9016.         IMAGE PELFORMAT 
  9017.         IMAGE COMPRESSION 
  9018.         IMAGE QUALITY 
  9019.         IMAGE EXTENTS 
  9020.  
  9021.     M-Motion Overlay implementation values would be: 
  9022.  
  9023.         IMAGE BITSPERPEL = 21
  9024.         IMAGE PELFORMAT  = yuvb
  9025.         IMAGE COMPRESSION= BI_NONE
  9026.         IMAGE QUALITY    = photo
  9027.         IMAGE EXTENTS    = image specific
  9028.  
  9029.     The previous values for these attributes are ignored. 
  9030.  
  9031.     Load also automatically sets IMAGE FILEFORMAT to indicate information about 
  9032.     the original file. 
  9033.  
  9034.     Waveform Audio Extensions 
  9035.  
  9036.     MCI_READONLY 
  9037.             Opens the file in a read-only mode and prevents inadvertent changes 
  9038.             to the file. When no changes to the file are allowed, the waveform 
  9039.             audio driver can improve load and run-time performance, while 
  9040.             allowing other devices to share the file for playback purposes. 
  9041.  
  9042.             This flag can only be used in conjunction with the MCI_OPEN_ELEMENT 
  9043.             flag. Specifying the MCI_READONLY flag disables support for 
  9044.             MCI_SAVE and MCI_RECORD. 
  9045.  
  9046.  
  9047. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD Parameter - pParam2 ΓòÉΓòÉΓòÉ
  9048.  
  9049.  pParam2 (PMCI_LOAD_PARMS) 
  9050.     A pointer to the MCI_LOAD_PARMS data structure. 
  9051.  
  9052.  
  9053. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD Return Value - rc ΓòÉΓòÉΓòÉ
  9054.  
  9055.  rc (ULONG) 
  9056.     Return codes indicating success or type of failure: 
  9057.  
  9058.     MCIERR_SUCCESS 
  9059.             MMPM/2 command completed successfully. 
  9060.  
  9061.     MCIERR_OUT_OF_MEMORY 
  9062.             System out of memory. 
  9063.  
  9064.     MCIERR_INVALID_DEVICE_ID 
  9065.             Invalid device ID given. 
  9066.  
  9067.     MCIERR_MISSING_PARAMETER 
  9068.             Missing parameter for this command. 
  9069.  
  9070.     MCIERR_DRIVER 
  9071.             Internal MMPM/2 driver error. 
  9072.  
  9073.     MCIERR_INVALID_FLAG 
  9074.             Invalid flag specified for this command. 
  9075.  
  9076.     MCIERR_FLAGS_NOT_COMPATIBLE 
  9077.             Flags not compatible. 
  9078.  
  9079.     MCIERR_INSTANCE_INACTIVE 
  9080.             Instance inactive. 
  9081.  
  9082.     MCIERR_FILE_NOT_FOUND 
  9083.             File not found. 
  9084.  
  9085.     MCIERR_INVALID_MEDIA_TYPE 
  9086.             Invalid media type given or invalid data format. 
  9087.  
  9088.     MCIERR_HARDWARE 
  9089.             Hardware error. 
  9090.  
  9091.     MCIERR_FILE_ATTRIBUTE 
  9092.             File attribute error specified. 
  9093.  
  9094.     MCIERR_UNSUPP_SAMPLESPERSEC 
  9095.             The hardware does not support this sampling rate 
  9096.  
  9097.     MCIERR_UNSUPP_BITSPERSAMPLE 
  9098.             The hardware does not support this bits per sample setting. 
  9099.  
  9100.     MCIERR_UNSUPP_CHANNELS 
  9101.             The hardware does not support this channel setting. 
  9102.  
  9103.     MCIERR_UNSUPP_FORMAT_MODE 
  9104.             The hardware does not support this format mode. 
  9105.  
  9106.     MCIERR_UNSUPP_FORMAT_TAG 
  9107.             The hardware does not support this format tag. 
  9108.  
  9109.  
  9110. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD - Description ΓòÉΓòÉΓòÉ
  9111.  
  9112. This message is used for specifying a new file or RIFF chunk to be loaded onto 
  9113. an already opened device instance. 
  9114.  
  9115.  ulParam1 (ULONG) 
  9116.     This parameter can contain any of the following flags: The MCI_OPEN_ELEMENT 
  9117.     and MCI_OPEN_MMIO flags are mutually exclusive. 
  9118.  
  9119.     MCI_NOTIFY 
  9120.             A notification message will be posted to the window specified in 
  9121.             the hwndCallback parameter of the data structure pointed to by the 
  9122.             pParam2 parameter. The notification will be posted when the action 
  9123.             indicated by this message is completed or when an error occurs. 
  9124.  
  9125.     MCI_WAIT 
  9126.             Control is not to be returned until the action indicated by this 
  9127.             message is completed or an error occurs. 
  9128.  
  9129.     MCI_OPEN_ELEMENT 
  9130.             This flag specifies that an element name is included. The element 
  9131.             name can be that of a file or a file element in a compound file. 
  9132.             The element name is specified in the pszElementName field of the 
  9133.             MCI_LOAD_PARMS data structure. If the element name does not exist 
  9134.             or is NULL, then a temporary element is created for subsequent use. 
  9135.             (This is the equivalent of specifying the NEW keyword with the LOAD 
  9136.             string command.) The temporary file can be made permanent by 
  9137.             providing a name using the MCI_SAVE message. 
  9138.  
  9139.     MCI_OPEN_MMIO 
  9140.             Indicates that an MMIO handle (hmmio) is passed in the 
  9141.             pszElementName field of the open data structure. The file must have 
  9142.             been opened through MMIO with the ulTranslate field of the MMIOINFO 
  9143.             data structure set to MMIO_TRANSLATEHEADER, unless a particular MCD 
  9144.             indicates differently. 
  9145.  
  9146.     Digital Video Extensions 
  9147.  
  9148.     MCI_READONLY 
  9149.             Opens the file in a read-only mode and prevents inadvertent changes 
  9150.             to the file. When no changes to the file are allowed, the digital 
  9151.             video driver can improve load and run-time performance, while 
  9152.             allowing other devices to share the file for playback purposes. 
  9153.  
  9154.             This flag can only be used in conjunction with the MCI_OPEN_ELEMENT 
  9155.             flag. Specifying the MCI_READONLY flag disables support for 
  9156.             MCI_SAVE and MCI_RECORD. 
  9157.  
  9158.     Video Overlay Extensions 
  9159.  
  9160.     The image contained in the file is loaded into the image device element and 
  9161.     overwrites any image currently stored there. It can be displayed using the 
  9162.     MCI_RESTORE command. 
  9163.  
  9164.     The file is opened, accessed, and closed on this command. 
  9165.  
  9166.     If the format of the image file is not recognized as either a device 
  9167.     specific file format or a format supported by MMIO the load fails. 
  9168.  
  9169.     Load performs an automatic set of the following values for: 
  9170.  
  9171.         IMAGE BITSPERPEL 
  9172.         IMAGE PELFORMAT 
  9173.         IMAGE COMPRESSION 
  9174.         IMAGE QUALITY 
  9175.         IMAGE EXTENTS 
  9176.  
  9177.     M-Motion Overlay implementation values would be: 
  9178.  
  9179.         IMAGE BITSPERPEL = 21
  9180.         IMAGE PELFORMAT  = yuvb
  9181.         IMAGE COMPRESSION= BI_NONE
  9182.         IMAGE QUALITY    = photo
  9183.         IMAGE EXTENTS    = image specific
  9184.  
  9185.     The previous values for these attributes are ignored. 
  9186.  
  9187.     Load also automatically sets IMAGE FILEFORMAT to indicate information about 
  9188.     the original file. 
  9189.  
  9190.     Waveform Audio Extensions 
  9191.  
  9192.     MCI_READONLY 
  9193.             Opens the file in a read-only mode and prevents inadvertent changes 
  9194.             to the file. When no changes to the file are allowed, the waveform 
  9195.             audio driver can improve load and run-time performance, while 
  9196.             allowing other devices to share the file for playback purposes. 
  9197.  
  9198.             This flag can only be used in conjunction with the MCI_OPEN_ELEMENT 
  9199.             flag. Specifying the MCI_READONLY flag disables support for 
  9200.             MCI_SAVE and MCI_RECORD. 
  9201.  
  9202.  pParam2 (PMCI_LOAD_PARMS) 
  9203.     A pointer to the MCI_LOAD_PARMS data structure. 
  9204.  
  9205.  rc (ULONG) 
  9206.     Return codes indicating success or type of failure: 
  9207.  
  9208.     MCIERR_SUCCESS 
  9209.             MMPM/2 command completed successfully. 
  9210.  
  9211.     MCIERR_OUT_OF_MEMORY 
  9212.             System out of memory. 
  9213.  
  9214.     MCIERR_INVALID_DEVICE_ID 
  9215.             Invalid device ID given. 
  9216.  
  9217.     MCIERR_MISSING_PARAMETER 
  9218.             Missing parameter for this command. 
  9219.  
  9220.     MCIERR_DRIVER 
  9221.             Internal MMPM/2 driver error. 
  9222.  
  9223.     MCIERR_INVALID_FLAG 
  9224.             Invalid flag specified for this command. 
  9225.  
  9226.     MCIERR_FLAGS_NOT_COMPATIBLE 
  9227.             Flags not compatible. 
  9228.  
  9229.     MCIERR_INSTANCE_INACTIVE 
  9230.             Instance inactive. 
  9231.  
  9232.     MCIERR_FILE_NOT_FOUND 
  9233.             File not found. 
  9234.  
  9235.     MCIERR_INVALID_MEDIA_TYPE 
  9236.             Invalid media type given or invalid data format. 
  9237.  
  9238.     MCIERR_HARDWARE 
  9239.             Hardware error. 
  9240.  
  9241.     MCIERR_FILE_ATTRIBUTE 
  9242.             File attribute error specified. 
  9243.  
  9244.     MCIERR_UNSUPP_SAMPLESPERSEC 
  9245.             The hardware does not support this sampling rate 
  9246.  
  9247.     MCIERR_UNSUPP_BITSPERSAMPLE 
  9248.             The hardware does not support this bits per sample setting. 
  9249.  
  9250.     MCIERR_UNSUPP_CHANNELS 
  9251.             The hardware does not support this channel setting. 
  9252.  
  9253.     MCIERR_UNSUPP_FORMAT_MODE 
  9254.             The hardware does not support this format mode. 
  9255.  
  9256.     MCIERR_UNSUPP_FORMAT_TAG 
  9257.             The hardware does not support this format tag. 
  9258.  
  9259.  
  9260. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD - Remarks ΓòÉΓòÉΓòÉ
  9261.  
  9262. When an existing media element is loaded into a device, the settings for the 
  9263. device will change if they are overridden by the settings required by the media 
  9264. element. 
  9265.  
  9266. If a new media element is created by loading a nonexistent media element, the 
  9267. new media element should be created with default settings for the particular 
  9268. device. 
  9269.  
  9270.  
  9271. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD - Default Processing ΓòÉΓòÉΓòÉ
  9272.  
  9273. MCI_OPEN_ELEMENT is the default for the MCI_LOAD message. 
  9274.  
  9275.  
  9276. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD - Related Messages ΓòÉΓòÉΓòÉ
  9277.  
  9278.      MCI_OPEN 
  9279.  
  9280.  
  9281. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD - Example Code ΓòÉΓòÉΓòÉ
  9282.  
  9283. The following code illustrates how to load an existing file into the waveaudio 
  9284. device. 
  9285.  
  9286. USHORT         usDeviceID;
  9287. MCI_LOAD_PARMS mlp;
  9288.  
  9289. mlp.hwndCallback = (HWND) NULL;   /* Not required if waiting */
  9290. strcpy(mlp.pszElementName, "oinker.wav");
  9291.                                   /* File name to load        */
  9292.  
  9293. mciSendCommand( usDeviceID,       /* Device ID                */
  9294.  MCI_LOAD,                        /* MCI load message         */
  9295.  MCI_WAIT | MCI_OPEN_ELEMENT,     /* Flags for this message   */
  9296.  (PVOID) &mlp,                    /* Data structure           */
  9297.  0);                              /* No user parm             */
  9298.  
  9299.  
  9300. ΓòÉΓòÉΓòÉ <hidden> MCI_LOAD - Topics ΓòÉΓòÉΓòÉ
  9301.  
  9302. Select an item: 
  9303.  
  9304. Description
  9305. Returns
  9306. Remarks
  9307. Default Processing
  9308. Related Messages
  9309. Example Code
  9310. Glossary
  9311.  
  9312.  
  9313. ΓòÉΓòÉΓòÉ 7.23. MCI_MASTERAUDIO ΓòÉΓòÉΓòÉ
  9314.  
  9315.  
  9316. ΓòÉΓòÉΓòÉ <hidden> MCI_MASTERAUDIO Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  9317.  
  9318.  ulParam1 (ULONG) 
  9319.     This parameter can contain any of the following flags: 
  9320.  
  9321.     Note:  The MCI_NOTIFY flag is not valid for this message. 
  9322.  
  9323.     MCI_WAIT 
  9324.             Control is not to be returned until the action indicated by this 
  9325.             message is completed or an error occurs. 
  9326.  
  9327.     MCI_QUERYCURRENTSETTING 
  9328.             This flag queries the current setting of the indicated audio 
  9329.             attribute. 
  9330.  
  9331.     MCI_QUERYSAVEDSETTING 
  9332.             This flag queries the saved setting of the indicated audio 
  9333.             attribute. 
  9334.  
  9335.     MCI_SAVESETTING 
  9336.             This flag saves the current setting of the indicated audio 
  9337.             attribute to the INI file. 
  9338.  
  9339.     MCI_MASTERVOL 
  9340.             This flag sets the system master volume level as a percentage. If a 
  9341.             number greater than 100 is given then 100 will be used as the 
  9342.             master volume setting and no error will be returned. 
  9343.  
  9344.     MCI_SPEAKERS 
  9345.             This flag sets the output to speakers. 
  9346.  
  9347.     MCI_HEADPHONES 
  9348.             This flag sets the output to headphones. 
  9349.  
  9350.     MCI_ON 
  9351.             This flag sets the output on or enabled.  This flag must be used in 
  9352.             conjunction with the MCI_SPEAKERS or MCI_HEADPHONES flag. 
  9353.  
  9354.     MCI_OFF 
  9355.             This flag sets output off or disabled.  This flag must be used in 
  9356.             conjunction with the MCI_SPEAKERS or MCI_HEADPHONES flag. 
  9357.  
  9358.  
  9359. ΓòÉΓòÉΓòÉ <hidden> MCI_MASTERAUDIO Parameter - pParam2 ΓòÉΓòÉΓòÉ
  9360.  
  9361.  pParam2 (PMCI_MASTERAUDIO_PARMS) 
  9362.     A pointer to the MCI_MASTERAUDIO_PARMS data structure. 
  9363.  
  9364.  
  9365. ΓòÉΓòÉΓòÉ <hidden> MCI_MASTERAUDIO Return Value - rc ΓòÉΓòÉΓòÉ
  9366.  
  9367.  rc (ULONG) 
  9368.     Return codes indicating success or type of failure: 
  9369.  
  9370.     MCIERR_SUCCESS 
  9371.             If the function succeeds, 0 is returned. 
  9372.  
  9373.     MCIERR_MISSING_FLAG 
  9374.             A required flag is missing. 
  9375.  
  9376.     MCIERR_INVALID_FLAG 
  9377.             Flag (ulParam1) is invalid. 
  9378.  
  9379.     MCIERR_FLAGS_NOT_COMPATIBLE 
  9380.             Flags cannot be used together. 
  9381.  
  9382.     MCIERR_MISSING_PARAMETER 
  9383.             Required parameter is missing. 
  9384.  
  9385.  
  9386. ΓòÉΓòÉΓòÉ <hidden> MCI_MASTERAUDIO - Description ΓòÉΓòÉΓòÉ
  9387.  
  9388. This message provides support for setting and retrieving system-wide audio 
  9389. control settings. 
  9390.  
  9391.  ulParam1 (ULONG) 
  9392.     This parameter can contain any of the following flags: 
  9393.  
  9394.     Note:  The MCI_NOTIFY flag is not valid for this message. 
  9395.  
  9396.     MCI_WAIT 
  9397.             Control is not to be returned until the action indicated by this 
  9398.             message is completed or an error occurs. 
  9399.  
  9400.     MCI_QUERYCURRENTSETTING 
  9401.             This flag queries the current setting of the indicated audio 
  9402.             attribute. 
  9403.  
  9404.     MCI_QUERYSAVEDSETTING 
  9405.             This flag queries the saved setting of the indicated audio 
  9406.             attribute. 
  9407.  
  9408.     MCI_SAVESETTING 
  9409.             This flag saves the current setting of the indicated audio 
  9410.             attribute to the INI file. 
  9411.  
  9412.     MCI_MASTERVOL 
  9413.             This flag sets the system master volume level as a percentage. If a 
  9414.             number greater than 100 is given then 100 will be used as the 
  9415.             master volume setting and no error will be returned. 
  9416.  
  9417.     MCI_SPEAKERS 
  9418.             This flag sets the output to speakers. 
  9419.  
  9420.     MCI_HEADPHONES 
  9421.             This flag sets the output to headphones. 
  9422.  
  9423.     MCI_ON 
  9424.             This flag sets the output on or enabled.  This flag must be used in 
  9425.             conjunction with the MCI_SPEAKERS or MCI_HEADPHONES flag. 
  9426.  
  9427.     MCI_OFF 
  9428.             This flag sets output off or disabled.  This flag must be used in 
  9429.             conjunction with the MCI_SPEAKERS or MCI_HEADPHONES flag. 
  9430.  
  9431.  pParam2 (PMCI_MASTERAUDIO_PARMS) 
  9432.     A pointer to the MCI_MASTERAUDIO_PARMS data structure. 
  9433.  
  9434.  rc (ULONG) 
  9435.     Return codes indicating success or type of failure: 
  9436.  
  9437.     MCIERR_SUCCESS 
  9438.             If the function succeeds, 0 is returned. 
  9439.  
  9440.     MCIERR_MISSING_FLAG 
  9441.             A required flag is missing. 
  9442.  
  9443.     MCIERR_INVALID_FLAG 
  9444.             Flag (ulParam1) is invalid. 
  9445.  
  9446.     MCIERR_FLAGS_NOT_COMPATIBLE 
  9447.             Flags cannot be used together. 
  9448.  
  9449.     MCIERR_MISSING_PARAMETER 
  9450.             Required parameter is missing. 
  9451.  
  9452.  
  9453. ΓòÉΓòÉΓòÉ <hidden> MCI_MASTERAUDIO - Remarks ΓòÉΓòÉΓòÉ
  9454.  
  9455. Two levels of volume control are provided:  system wide and device-instance 
  9456. specific.  Where as the MCI_SET command affects only one specific device opened 
  9457. by an application, the MCI_MASTERAUDIO command affects all open logical devices 
  9458. in the system. 
  9459.  
  9460. When opened, each logical device queries these values and automatically adjusts 
  9461. its settings accordingly.  Only applications that are intended to replace the 
  9462. Volume Control application should reference and modify these settings. 
  9463.  
  9464.  
  9465. ΓòÉΓòÉΓòÉ <hidden> MCI_MASTERAUDIO - Example Code ΓòÉΓòÉΓòÉ
  9466.  
  9467. The following code illustrates how to get the current master volume setting. 
  9468.  
  9469.    ULONG mastervolume;              /* Set to master volume
  9470.                                        percentage by this example      */
  9471.    BOOL  speakers_on;               /* Set to TRUE if speaker
  9472.                                        output is enabled               */
  9473.    USHORT usDeviceID;
  9474.    MCI_MASTERAUDIO_PARMS masteraudioparms;
  9475.  
  9476.                                     /* Get current system master
  9477.                                        volume setting                  */
  9478.  
  9479.    mciSendCommand(usDeviceID,       /* Device                          */
  9480.     MCI_MASTERAUDIO,                /* Master audio message            */
  9481.     MCI_WAIT | MCI_QUERYCURRENTSETTING | MCI_MASTERVOL,
  9482.                                     /* Flags for this message          */
  9483.     (PVOID) &masteraudioparms,      /* Data structure                  */
  9484.     0);                             /* User parm                       */
  9485.  
  9486.    mastervolume = masteraudioparms.ulReturn;
  9487.  
  9488.  
  9489.                                     /* Get current system speaker
  9490.                                        enable status                   */
  9491.  
  9492.    mciSendCommand(usDeviceID,       /* Device                          */
  9493.     MCI_MASTERAUDIO,                /* Master audio message            */
  9494.     MCI_WAIT | MCI_QUERYCURRENTSETTING | MCI_SPEAKERS,
  9495.     (PVOID) &masteraudioparms,       /* Flags for this message         */
  9496.     0);                              /* Data structure user parm       */
  9497.    speakers_on = masteraudioparms.ulReturn;
  9498.  
  9499.  
  9500. ΓòÉΓòÉΓòÉ <hidden> MCI_MASTERAUDIO - Topics ΓòÉΓòÉΓòÉ
  9501.  
  9502. Select an item: 
  9503.  
  9504. Description
  9505. Returns
  9506. Remarks
  9507. Example Code
  9508. Glossary
  9509.  
  9510.  
  9511. ΓòÉΓòÉΓòÉ 7.24. MCI_MIXNOTIFY ΓòÉΓòÉΓòÉ
  9512.  
  9513.  
  9514. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXNOTIFY Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  9515.  
  9516.  ulParam1 (ULONG) 
  9517.     The following flags can be used with an amplifier-mixer device. 
  9518.  
  9519.     MCI_NOTIFY 
  9520.             A notification message is posted to the window specified in the 
  9521.             hwndCallback parameter of the data structure identified by pParam2 
  9522.             when the action indicated by this message is completed. 
  9523.  
  9524.     MCI_WAIT 
  9525.             Control is not returned until the action indicated by this message 
  9526.             is completed. 
  9527.  
  9528.     MCI_MIXNOTIFY_ON 
  9529.             Turns mix notifications on. A valid window handle must be specified 
  9530.             in the hwndCallback field of MCI_GENERIC_PARMS. If an invalid 
  9531.             handle is specified, MCIERR_INVALID_CALLBACK_HANDLE will be 
  9532.             returned. 
  9533.  
  9534.     MCI_MIXNOTIFY_OFF 
  9535.             Turns mix notifications off. 
  9536.  
  9537.  
  9538. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXNOTIFY Parameter - pParam2 ΓòÉΓòÉΓòÉ
  9539.  
  9540.  pParam2 (PMCI_GENERIC_PARMS) 
  9541.     A pointer to the MCI_GENERIC_PARMS data structure. 
  9542.  
  9543.  
  9544. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXNOTIFY Return Value - rc ΓòÉΓòÉΓòÉ
  9545.  
  9546.  rc (ULONG) 
  9547.     Return codes indicating success or type of failure: 
  9548.  
  9549.     MCIERR_SUCCESS 
  9550.             Command completed successfully. 
  9551.  
  9552.     MCIERR_INVALID_DEVICE_ID 
  9553.             Invalid device ID given. 
  9554.  
  9555.     MCIERR_MISSING_PARAMETER 
  9556.             Required parameter is missing. 
  9557.  
  9558.     MCIERR_INVALID_FLAG 
  9559.             Invalid flag specified for this command. 
  9560.  
  9561.     MCIERR_UNSUPPORTED_FLAG 
  9562.             Flag is not supported by this device. 
  9563.  
  9564.     MCIERR_INSTANCE_INACTIVE 
  9565.             The device ID is currently inactive. Issue MCI_ACQUIREDEVICE to 
  9566.             make device context active. 
  9567.  
  9568.     MCIERR_INVALID_CALLBACK_HANDLE 
  9569.             Given callback handle is invalid. 
  9570.  
  9571.  
  9572. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXNOTIFY - Description ΓòÉΓòÉΓòÉ
  9573.  
  9574. This message notifies an application of every mixer attribute change if the 
  9575. application registers for the event.  When a mixer attribute is changed, an 
  9576. MM_MCIEVENT message is sent to the requesting application. 
  9577.  
  9578.  ulParam1 (ULONG) 
  9579.     The following flags can be used with an amplifier-mixer device. 
  9580.  
  9581.     MCI_NOTIFY 
  9582.             A notification message is posted to the window specified in the 
  9583.             hwndCallback parameter of the data structure identified by pParam2 
  9584.             when the action indicated by this message is completed. 
  9585.  
  9586.     MCI_WAIT 
  9587.             Control is not returned until the action indicated by this message 
  9588.             is completed. 
  9589.  
  9590.     MCI_MIXNOTIFY_ON 
  9591.             Turns mix notifications on. A valid window handle must be specified 
  9592.             in the hwndCallback field of MCI_GENERIC_PARMS. If an invalid 
  9593.             handle is specified, MCIERR_INVALID_CALLBACK_HANDLE will be 
  9594.             returned. 
  9595.  
  9596.     MCI_MIXNOTIFY_OFF 
  9597.             Turns mix notifications off. 
  9598.  
  9599.  pParam2 (PMCI_GENERIC_PARMS) 
  9600.     A pointer to the MCI_GENERIC_PARMS data structure. 
  9601.  
  9602.  rc (ULONG) 
  9603.     Return codes indicating success or type of failure: 
  9604.  
  9605.     MCIERR_SUCCESS 
  9606.             Command completed successfully. 
  9607.  
  9608.     MCIERR_INVALID_DEVICE_ID 
  9609.             Invalid device ID given. 
  9610.  
  9611.     MCIERR_MISSING_PARAMETER 
  9612.             Required parameter is missing. 
  9613.  
  9614.     MCIERR_INVALID_FLAG 
  9615.             Invalid flag specified for this command. 
  9616.  
  9617.     MCIERR_UNSUPPORTED_FLAG 
  9618.             Flag is not supported by this device. 
  9619.  
  9620.     MCIERR_INSTANCE_INACTIVE 
  9621.             The device ID is currently inactive. Issue MCI_ACQUIREDEVICE to 
  9622.             make device context active. 
  9623.  
  9624.     MCIERR_INVALID_CALLBACK_HANDLE 
  9625.             Given callback handle is invalid. 
  9626.  
  9627.  
  9628. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXNOTIFY - Remarks ΓòÉΓòÉΓòÉ
  9629.  
  9630. When the MM_MCIEVENT message is received, the usEventCode field of MsgParam1 
  9631. contains MCI_MIXEVENT. The pEventData field of MsgParam2 contains a pointer to 
  9632. MCI_MIXEVENT_PARMS. MCI_MIXEVENT_PARMS allows applications to determine the 
  9633. device type that caused the change, the attribute that caused the change 
  9634. (volume, bass, treble, and so on), and the new value of the attribute.  A mixer 
  9635. event will also be sent when a connector has been enabled or disabled. The 
  9636. ulConnectorType and ulConnectorIndex fields will indicate the connector that 
  9637. changed and ulConnStatus contains either MCI_TRUE if the connector is enabled 
  9638. or MCI_FALSE if the connector is disabled.  If a connector has been modified, 
  9639. ulFlags will contain MCI_MIX_CONNECTOR.  If an attribute has been changed, 
  9640. ulFlags will contain MCI_MIX_ATTRIBUTE. 
  9641.  
  9642. Note:  An application must not set an audio attribute while processing the 
  9643.        MM_MCIEVENT message. Otherwise a terminal loop will result. 
  9644.  
  9645.  
  9646. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXNOTIFY - Example Code ΓòÉΓòÉΓòÉ
  9647.  
  9648. The following example illustrates how an application can set up notification 
  9649. for every audio attribute change. 
  9650.  
  9651.  
  9652. MCI_GENERIC_PARMS  mixevent;
  9653.  
  9654. mixevent.hwndCallback = hwndMixer;
  9655.  
  9656. if (hMixer)
  9657.   {
  9658.   mciSendCommand(hMixer,
  9659.   MCI_MIXNOTIFY,                   /* MCI mixer message */
  9660.   MCI_WAIT | MCI_MIXNOTIFY_ON,     /* Flags for this message */
  9661.   (PVOID)&mixevent,                /* Data structure */
  9662.   0);                              /* No user parm */
  9663.  
  9664.  
  9665. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXNOTIFY - Topics ΓòÉΓòÉΓòÉ
  9666.  
  9667. Select an item: 
  9668.  
  9669. Description
  9670. Returns
  9671. Remarks
  9672. Example Code
  9673. Glossary
  9674.  
  9675.  
  9676. ΓòÉΓòÉΓòÉ 7.25. MCI_MIXSETUP ΓòÉΓòÉΓòÉ
  9677.  
  9678.  
  9679. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  9680.  
  9681.  ulParam1 (ULONG) 
  9682.     This parameter can contain any of the following flags: 
  9683.  
  9684.     MCI_NOTIFY 
  9685.             A notification message is posted to the window specified in the 
  9686.             hwndCallback field of the data structure identified by pParam2 when 
  9687.             the action indicated by this message is completed. 
  9688.  
  9689.     MCI_WAIT 
  9690.             Control is not returned until the action indicated by this message 
  9691.             is completed. 
  9692.  
  9693.     MCI_MIXSETUP_INIT 
  9694.             Initializes the mixer for the correct mode according to the value 
  9695.             specified in the ulFormatMode field of MCI_MIXSETUP_PARMS. 
  9696.  
  9697.     MCI_MIXSETUP_DEINIT 
  9698.             Deinitializes the mixer. 
  9699.  
  9700.     MCI_MIXSETUP_QUERYMODE 
  9701.             Queries a device to see if a specific mode is supported. 
  9702.  
  9703.  
  9704. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP Parameter - pParam2 ΓòÉΓòÉΓòÉ
  9705.  
  9706.  pParam2 (PMCI_MIXSETUP_PARMS) 
  9707.     A pointer to the MCI_MIXSETUP_PARMS data structure. 
  9708.  
  9709.  
  9710. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP Return Value - rc ΓòÉΓòÉΓòÉ
  9711.  
  9712.  rc (ULONG) 
  9713.     Return codes indicating success or type of failure: 
  9714.  
  9715.     MCIERR_SUCCESS 
  9716.             Command completed successfully. 
  9717.  
  9718.     MCIERR_INVALID_DEVICE_ID 
  9719.             Invalid device ID given. 
  9720.  
  9721.     MCIERR_MISSING_PARAMETER 
  9722.             Required parameter is missing. 
  9723.  
  9724.     MCIERR_INVALID_MODE 
  9725.             Device mode invalid for this command. 
  9726.  
  9727.     MCIERR_INVALID_DEVICE_TYPE 
  9728.             Mixer does not support the requested device type. 
  9729.  
  9730.     MCIERR_INVALID_FLAG 
  9731.             Invalid flag specified for this command. 
  9732.  
  9733.  
  9734. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP - Description ΓòÉΓòÉΓòÉ
  9735.  
  9736. This message informs the mixer device that the application wishes to read or 
  9737. write buffers directly and sets up the device in the correct mode (for example, 
  9738. PCM, MPEG audio or MIDI). 
  9739.  
  9740.  ulParam1 (ULONG) 
  9741.     This parameter can contain any of the following flags: 
  9742.  
  9743.     MCI_NOTIFY 
  9744.             A notification message is posted to the window specified in the 
  9745.             hwndCallback field of the data structure identified by pParam2 when 
  9746.             the action indicated by this message is completed. 
  9747.  
  9748.     MCI_WAIT 
  9749.             Control is not returned until the action indicated by this message 
  9750.             is completed. 
  9751.  
  9752.     MCI_MIXSETUP_INIT 
  9753.             Initializes the mixer for the correct mode according to the value 
  9754.             specified in the ulFormatMode field of MCI_MIXSETUP_PARMS. 
  9755.  
  9756.     MCI_MIXSETUP_DEINIT 
  9757.             Deinitializes the mixer. 
  9758.  
  9759.     MCI_MIXSETUP_QUERYMODE 
  9760.             Queries a device to see if a specific mode is supported. 
  9761.  
  9762.  pParam2 (PMCI_MIXSETUP_PARMS) 
  9763.     A pointer to the MCI_MIXSETUP_PARMS data structure. 
  9764.  
  9765.  rc (ULONG) 
  9766.     Return codes indicating success or type of failure: 
  9767.  
  9768.     MCIERR_SUCCESS 
  9769.             Command completed successfully. 
  9770.  
  9771.     MCIERR_INVALID_DEVICE_ID 
  9772.             Invalid device ID given. 
  9773.  
  9774.     MCIERR_MISSING_PARAMETER 
  9775.             Required parameter is missing. 
  9776.  
  9777.     MCIERR_INVALID_MODE 
  9778.             Device mode invalid for this command. 
  9779.  
  9780.     MCIERR_INVALID_DEVICE_TYPE 
  9781.             Mixer does not support the requested device type. 
  9782.  
  9783.     MCIERR_INVALID_FLAG 
  9784.             Invalid flag specified for this command. 
  9785.  
  9786.  
  9787. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP - Remarks ΓòÉΓòÉΓòÉ
  9788.  
  9789. On input, the application must fill in the ulDeviceType field of the 
  9790. MCI_MIXSETUP_PARMS structure to inform the mixer of the media type it will be 
  9791. sending. The application must also fill in the pmixEvent field of the 
  9792. MCI_MIXSETUP_PARMS structure with a callback function for the mixer to call 
  9793. when it is finished writing or reading a buffer. 
  9794.  
  9795. If the call is successful, the mixer will update the pmixWrite and pmixRead 
  9796. fields so that the application can write or read buffers to or from the mixer. 
  9797. In addition, the mixer will update the ulBufferSize and ulNumBuffers fields 
  9798. with the suggested buffer size and number of buffers to use with the requested 
  9799. setup. The application does not have to use these suggested values as they are 
  9800. simply recommendations. 
  9801.  
  9802. If the mixer has already been initialized with MCI_MIXSETUP and MCI_MIXSETUP is 
  9803. called again, MCIERR_INVALID_MODE will be returned. 
  9804.  
  9805. After MCI_MIXSETUP has been successfully called, you can use MCI_BUFFER to 
  9806. allocate or deallocate memory for communcation with the audio device. 
  9807.  
  9808.  
  9809. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP - Related Messages ΓòÉΓòÉΓòÉ
  9810.  
  9811.      MCI_BUFFER 
  9812.  
  9813.  
  9814. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP - Example Code ΓòÉΓòÉΓòÉ
  9815.  
  9816. The following code illustrates using MCI_MIXSETUP to prepare the audio device 
  9817. for 16-bit, 22050 kHz, stereo mode. 
  9818.  
  9819.  
  9820.     memset( &MixSetupParms, '\0', sizeof( MCI_MIXSETUP_PARMS ) );
  9821.  
  9822.   MixSetupParms.ulBitsPerSample = 16;
  9823.   MixSetupParms.ulFormatTag = MCI_WAVE_FORMAT_PCM;
  9824.   MixSetupParms.ulSamplesPerSec = 22050;
  9825.   MixSetupParms.ulChannels = 2;  /* Stereo */
  9826.   MixSetupParms.ulBitsPerSample = 16;
  9827.   MixSetupParms.ulFormatMode = MCI_PLAY;
  9828.   MixSetupParms.ulDeviceType = MCI_DEVTYPE_WAVEFORM_AUDIO;
  9829.  
  9830.    /* The mixer will inform us of entry points to */
  9831.    /* read/write buffers to and also give us a    */
  9832.    /* handle to use with these entry points.      */
  9833.  
  9834.   MixSetupParms.pmixEvent = MyEvent;
  9835.  
  9836.     rc = mciSendCommand( usDeviceID,
  9837.                      MCI_MIXSETUP,
  9838.                      MCI_WAIT | MCI_MIXSETUP_INIT,
  9839.                      ( PVOID ) &MixSetupParms,
  9840.                      0 );
  9841.  
  9842.  
  9843. ΓòÉΓòÉΓòÉ <hidden> MCI_MIXSETUP - Topics ΓòÉΓòÉΓòÉ
  9844.  
  9845. Select an item: 
  9846.  
  9847. Description
  9848. Returns
  9849. Remarks
  9850. Related Messages
  9851. Example Code
  9852. Glossary
  9853.  
  9854.  
  9855. ΓòÉΓòÉΓòÉ 7.26. MCI_OPEN ΓòÉΓòÉΓòÉ
  9856.  
  9857.  
  9858. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  9859.  
  9860.  ulParam1 (ULONG) 
  9861.     This parameter can contain any of the following flags. MCI_OPEN_ELEMENT and 
  9862.     MCI_OPEN_MMIO are mutually exclusive flags. 
  9863.  
  9864.     MCI_NOTIFY 
  9865.             A notification message will be posted to the window specified in 
  9866.             the hwndCallback parameter of the data structure pointed to by the 
  9867.             pParam2 parameter.  The notification will be posted when the action 
  9868.             indicated by this message is completed or when an error occurs. 
  9869.  
  9870.     MCI_WAIT 
  9871.             Control is not to be returned until the action indicated by this 
  9872.             message is completed or an error occurs. 
  9873.  
  9874.     MCI_DOS_QUEUE 
  9875.             This flag specifies that window handles passed in for this device 
  9876.             instance will be treated as OS/2 Control Program queue handles. 
  9877.  
  9878.     MCI_OPEN_ALIAS 
  9879.             This flag specifies that the pszAlias field of the open structure 
  9880.             contains an alias for this device instance.  This alias can then be 
  9881.             used on subsequent commands using the string interface. 
  9882.  
  9883.     MCI_OPEN_ELEMENT 
  9884.             This flag specifies that an element name is included.  The element 
  9885.             name can be that of a file or a file element in a compound file. 
  9886.             The element name is specified in the pszElementName field of the 
  9887.             open data structure.  If the element name does not exist or is 
  9888.             NULL, then a temporary element is created for subsequent use.  The 
  9889.             temporary file can be made permanent by providing a name using the 
  9890.             MCI_SAVE message. 
  9891.  
  9892.     MCI_OPEN_MMIO 
  9893.             This flag specifies that an MMIO handle (hmmio) is passed in the 
  9894.             pszElementName field of the open data structure.  The file must 
  9895.             have been opened through MMIO with ulTranslate of the MMIOINFO data 
  9896.             structure set to MMIO_TRANSLATEHEADER, unless a particular MCD 
  9897.             indicates differently. 
  9898.  
  9899.     MCI_OPEN_PLAYLIST 
  9900.             This flag indicates that the pszElementName field of the open data 
  9901.             structure contains a pointer to a memory playlist structure. 
  9902.  
  9903.     MCI_OPEN_READONLY 
  9904.             This flag specifies that the file is to be opened in read-only 
  9905.             mode. The load and run-time performance for the wave audio and 
  9906.             digital video devices can be improved by specifying this flag. 
  9907.             This flag can only be used in conjunction with the MCI_OPEN_ELEMENT 
  9908.             or MCI_OPEN_MMIO flags.  By specifying this flag, MCI_RECORD and 
  9909.             MCI_SAVE are automatically disabled. 
  9910.  
  9911.     MCI_OPEN_SHAREABLE 
  9912.             This flag specifies that the device instance is to be opened in a 
  9913.             fully shareable mode.  Omitting this flag causes the device 
  9914.             instance to be opened for exclusive use. 
  9915.  
  9916.     MCI_OPEN_TYPE_ID 
  9917.             This flag specifies that the pszDeviceType field of the open data 
  9918.             structure is to be interpreted as follows. The low-order word is a 
  9919.             standard device type and the high-order word is the ordinal index 
  9920.             for the device. If MCI_OPEN_TYPE_ID is specified and the index is 
  9921.             0, the default device will be opened. If MCI_OPEN_TYPE_ID is not 
  9922.             specified and the pszDeviceType field is not NULL, the media 
  9923.             control interface will attempt to open the device specified by 
  9924.             pszDeviceType. If MCI_OPEN_TYPE_ID is not specified, pszDeviceType 
  9925.             is NULL, and the MCI_OPEN_ELEMENT flag is specified, the system 
  9926.             attempts to select and open a device based on the element extension 
  9927.             or EA type of the file specified in the pszElementName field of the 
  9928.             open data structure. 
  9929.  
  9930.     Digital Video Extensions 
  9931.  
  9932.     The following flags apply to digital video devices: 
  9933.  
  9934.     MCI_DGV_OPEN_PARENT 
  9935.             This flag indicates that the hwndParent field of the open data 
  9936.             structure contains a valid parent window handle. If this flag is 
  9937.             not specified, HWND_DESKTOP is assumed to be the parent window 
  9938.             handle. 
  9939.  
  9940.     Video Overlay Extensions 
  9941.  
  9942.     The following flag applies to video overlay devices: 
  9943.  
  9944.     MCI_OVLY_OPEN_PARENT 
  9945.             This flag indicates that the hwndParent field of the open data 
  9946.             structure contains a valid parent window handle. If this flag is 
  9947.             not specified, HWND_DESKTOP is assumed to be the parent window 
  9948.             handle. 
  9949.  
  9950.  
  9951. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN Parameter - pParam2 ΓòÉΓòÉΓòÉ
  9952.  
  9953.  pParam2 (PMCI_OPEN_PARMS) 
  9954.     A pointer to the MCI_OPEN_PARMS data structure. Devices with extended 
  9955.     command sets might replace this pointer with a pointer to a device-specific 
  9956.     data structure as follows: 
  9957.  
  9958.     PMCI_AMP_OPEN_PARMS 
  9959.             A pointer to the MCI_AMP_OPEN_PARMS data structure. 
  9960.  
  9961.     PMCI_DGV_OPEN_PARMS 
  9962.             A pointer to the MCI_DGV_OPEN_PARMS data structure. 
  9963.  
  9964.     PMCI_OVLY_OPEN_PARMS 
  9965.             A pointer to the MCI_OVLY_OPEN_PARMS data structure. 
  9966.  
  9967.  
  9968. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN Return Value - rc ΓòÉΓòÉΓòÉ
  9969.  
  9970.  rc (ULONG) 
  9971.     Return codes indicating success or type of failure: 
  9972.  
  9973.     MCIERR_SUCCESS 
  9974.             MMPM/2 command completed successfully. 
  9975.  
  9976.     MCIERR_OUT_OF_MEMORY 
  9977.             System out of memory. 
  9978.  
  9979.     MCIERR_INVALID_DEVICE_ID 
  9980.             Invalid device ID given. 
  9981.  
  9982.     MCIERR_MISSING_PARAMETER 
  9983.             Missing parameter for this command. 
  9984.  
  9985.     MCIERR_DRIVER 
  9986.             Internal MMPM/2 driver error. 
  9987.  
  9988.     MCIERR_INVALID_FLAG 
  9989.             Invalid flag specified for this command. 
  9990.  
  9991.     MCIERR_UNSUPPORTED_FLAG 
  9992.             Flag not supported by this MMPM/2 driver for this command. 
  9993.  
  9994.     MCIERR_DEVICE_LOCKED 
  9995.             Device is locked. 
  9996.  
  9997.     MCIERR_FLAGS_NOT_COMPATIBLE 
  9998.             Flags cannot be used together. 
  9999.  
  10000.     MCIERR_FILE_NOT_FOUND 
  10001.             File not found. 
  10002.  
  10003.     MCIERR_INI_FILE 
  10004.             MMPM2.INI file error. 
  10005.  
  10006.     MCIERR_OVLY_MAX_OPEN_LIMIT 
  10007.             Opened maximum limit. 
  10008.  
  10009.     MCIERR_INVALID_MEDIA_TYPE 
  10010.             Invalid media type given. 
  10011.  
  10012.     MCIERR_HARDWARE 
  10013.             Hardware error. 
  10014.  
  10015.     MCIERR_FILE_ATTRIBUTE 
  10016.             File attribute error specified. 
  10017.  
  10018.     MCIERR_NO_DEVICEDRIVER 
  10019.             There was no device driver found or it is not operational. 
  10020.  
  10021.     MCIERR_UNSUPP_SAMPLESPERSEC 
  10022.             The hardware does not support this sampling rate 
  10023.  
  10024.     MCIERR_UNSUPP_BITSPERSAMPLE 
  10025.             The hardware does not support this bits per sample setting. 
  10026.  
  10027.     MCIERR_UNSUPP_CHANNELS 
  10028.             The hardware does not support this channel setting. 
  10029.  
  10030.     MCIERR_UNSUPP_FORMAT_MODE 
  10031.             The hardware does not support this format mode. 
  10032.  
  10033.     MCIERR_UNSUPP_FORMAT_TAG 
  10034.             The hardware does not support this format tag. 
  10035.  
  10036.     MMIOERR_ACCESS_DENIED 
  10037.             The file cannot be opened. 
  10038.  
  10039.  
  10040. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN - Description ΓòÉΓòÉΓòÉ
  10041.  
  10042. This message is used to open or create a new device instance. 
  10043.  
  10044.  ulParam1 (ULONG) 
  10045.     This parameter can contain any of the following flags. MCI_OPEN_ELEMENT and 
  10046.     MCI_OPEN_MMIO are mutually exclusive flags. 
  10047.  
  10048.     MCI_NOTIFY 
  10049.             A notification message will be posted to the window specified in 
  10050.             the hwndCallback parameter of the data structure pointed to by the 
  10051.             pParam2 parameter.  The notification will be posted when the action 
  10052.             indicated by this message is completed or when an error occurs. 
  10053.  
  10054.     MCI_WAIT 
  10055.             Control is not to be returned until the action indicated by this 
  10056.             message is completed or an error occurs. 
  10057.  
  10058.     MCI_DOS_QUEUE 
  10059.             This flag specifies that window handles passed in for this device 
  10060.             instance will be treated as OS/2 Control Program queue handles. 
  10061.  
  10062.     MCI_OPEN_ALIAS 
  10063.             This flag specifies that the pszAlias field of the open structure 
  10064.             contains an alias for this device instance.  This alias can then be 
  10065.             used on subsequent commands using the string interface. 
  10066.  
  10067.     MCI_OPEN_ELEMENT 
  10068.             This flag specifies that an element name is included.  The element 
  10069.             name can be that of a file or a file element in a compound file. 
  10070.             The element name is specified in the pszElementName field of the 
  10071.             open data structure.  If the element name does not exist or is 
  10072.             NULL, then a temporary element is created for subsequent use.  The 
  10073.             temporary file can be made permanent by providing a name using the 
  10074.             MCI_SAVE message. 
  10075.  
  10076.     MCI_OPEN_MMIO 
  10077.             This flag specifies that an MMIO handle (hmmio) is passed in the 
  10078.             pszElementName field of the open data structure.  The file must 
  10079.             have been opened through MMIO with ulTranslate of the MMIOINFO data 
  10080.             structure set to MMIO_TRANSLATEHEADER, unless a particular MCD 
  10081.             indicates differently. 
  10082.  
  10083.     MCI_OPEN_PLAYLIST 
  10084.             This flag indicates that the pszElementName field of the open data 
  10085.             structure contains a pointer to a memory playlist structure. 
  10086.  
  10087.     MCI_OPEN_READONLY 
  10088.             This flag specifies that the file is to be opened in read-only 
  10089.             mode. The load and run-time performance for the wave audio and 
  10090.             digital video devices can be improved by specifying this flag. 
  10091.             This flag can only be used in conjunction with the MCI_OPEN_ELEMENT 
  10092.             or MCI_OPEN_MMIO flags.  By specifying this flag, MCI_RECORD and 
  10093.             MCI_SAVE are automatically disabled. 
  10094.  
  10095.     MCI_OPEN_SHAREABLE 
  10096.             This flag specifies that the device instance is to be opened in a 
  10097.             fully shareable mode.  Omitting this flag causes the device 
  10098.             instance to be opened for exclusive use. 
  10099.  
  10100.     MCI_OPEN_TYPE_ID 
  10101.             This flag specifies that the pszDeviceType field of the open data 
  10102.             structure is to be interpreted as follows. The low-order word is a 
  10103.             standard device type and the high-order word is the ordinal index 
  10104.             for the device. If MCI_OPEN_TYPE_ID is specified and the index is 
  10105.             0, the default device will be opened. If MCI_OPEN_TYPE_ID is not 
  10106.             specified and the pszDeviceType field is not NULL, the media 
  10107.             control interface will attempt to open the device specified by 
  10108.             pszDeviceType. If MCI_OPEN_TYPE_ID is not specified, pszDeviceType 
  10109.             is NULL, and the MCI_OPEN_ELEMENT flag is specified, the system 
  10110.             attempts to select and open a device based on the element extension 
  10111.             or EA type of the file specified in the pszElementName field of the 
  10112.             open data structure. 
  10113.  
  10114.     Digital Video Extensions 
  10115.  
  10116.     The following flags apply to digital video devices: 
  10117.  
  10118.     MCI_DGV_OPEN_PARENT 
  10119.             This flag indicates that the hwndParent field of the open data 
  10120.             structure contains a valid parent window handle. If this flag is 
  10121.             not specified, HWND_DESKTOP is assumed to be the parent window 
  10122.             handle. 
  10123.  
  10124.     Video Overlay Extensions 
  10125.  
  10126.     The following flag applies to video overlay devices: 
  10127.  
  10128.     MCI_OVLY_OPEN_PARENT 
  10129.             This flag indicates that the hwndParent field of the open data 
  10130.             structure contains a valid parent window handle. If this flag is 
  10131.             not specified, HWND_DESKTOP is assumed to be the parent window 
  10132.             handle. 
  10133.  
  10134.  pParam2 (PMCI_OPEN_PARMS) 
  10135.     A pointer to the MCI_OPEN_PARMS data structure. Devices with extended 
  10136.     command sets might replace this pointer with a pointer to a device-specific 
  10137.     data structure as follows: 
  10138.  
  10139.     PMCI_AMP_OPEN_PARMS 
  10140.             A pointer to the MCI_AMP_OPEN_PARMS data structure. 
  10141.  
  10142.     PMCI_DGV_OPEN_PARMS 
  10143.             A pointer to the MCI_DGV_OPEN_PARMS data structure. 
  10144.  
  10145.     PMCI_OVLY_OPEN_PARMS 
  10146.             A pointer to the MCI_OVLY_OPEN_PARMS data structure. 
  10147.  
  10148.  rc (ULONG) 
  10149.     Return codes indicating success or type of failure: 
  10150.  
  10151.     MCIERR_SUCCESS 
  10152.             MMPM/2 command completed successfully. 
  10153.  
  10154.     MCIERR_OUT_OF_MEMORY 
  10155.             System out of memory. 
  10156.  
  10157.     MCIERR_INVALID_DEVICE_ID 
  10158.             Invalid device ID given. 
  10159.  
  10160.     MCIERR_MISSING_PARAMETER 
  10161.             Missing parameter for this command. 
  10162.  
  10163.     MCIERR_DRIVER 
  10164.             Internal MMPM/2 driver error. 
  10165.  
  10166.     MCIERR_INVALID_FLAG 
  10167.             Invalid flag specified for this command. 
  10168.  
  10169.     MCIERR_UNSUPPORTED_FLAG 
  10170.             Flag not supported by this MMPM/2 driver for this command. 
  10171.  
  10172.     MCIERR_DEVICE_LOCKED 
  10173.             Device is locked. 
  10174.  
  10175.     MCIERR_FLAGS_NOT_COMPATIBLE 
  10176.             Flags cannot be used together. 
  10177.  
  10178.     MCIERR_FILE_NOT_FOUND 
  10179.             File not found. 
  10180.  
  10181.     MCIERR_INI_FILE 
  10182.             MMPM2.INI file error. 
  10183.  
  10184.     MCIERR_OVLY_MAX_OPEN_LIMIT 
  10185.             Opened maximum limit. 
  10186.  
  10187.     MCIERR_INVALID_MEDIA_TYPE 
  10188.             Invalid media type given. 
  10189.  
  10190.     MCIERR_HARDWARE 
  10191.             Hardware error. 
  10192.  
  10193.     MCIERR_FILE_ATTRIBUTE 
  10194.             File attribute error specified. 
  10195.  
  10196.     MCIERR_NO_DEVICEDRIVER 
  10197.             There was no device driver found or it is not operational. 
  10198.  
  10199.     MCIERR_UNSUPP_SAMPLESPERSEC 
  10200.             The hardware does not support this sampling rate 
  10201.  
  10202.     MCIERR_UNSUPP_BITSPERSAMPLE 
  10203.             The hardware does not support this bits per sample setting. 
  10204.  
  10205.     MCIERR_UNSUPP_CHANNELS 
  10206.             The hardware does not support this channel setting. 
  10207.  
  10208.     MCIERR_UNSUPP_FORMAT_MODE 
  10209.             The hardware does not support this format mode. 
  10210.  
  10211.     MCIERR_UNSUPP_FORMAT_TAG 
  10212.             The hardware does not support this format tag. 
  10213.  
  10214.     MMIOERR_ACCESS_DENIED 
  10215.             The file cannot be opened. 
  10216.  
  10217.  
  10218. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN - Remarks ΓòÉΓòÉΓòÉ
  10219.  
  10220. Case is ignored in the device name, but there must not be any leading or 
  10221. trailing blanks. Note that the device type is the pszDeviceType element of the 
  10222. open data structure, but it does not have a corresponding flag because it is 
  10223. required and does not have a command-string parameter. Also, if automatic type 
  10224. selection is desired (through the extensions or EA section or INI), the file 
  10225. name (including the file extension) must be passed in the pszElementName field, 
  10226. the pszDeviceType field must be left NULL, and the MCI_OPEN_ELEMENT flag must 
  10227. be set. 
  10228.  
  10229. If a parent window handle is specified, but the window handle is invalid, the 
  10230. overlay device opens successfully, but uses HWND_DESKTOP as its parent. 
  10231.  
  10232.  
  10233. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN - Default Processing ΓòÉΓòÉΓòÉ
  10234.  
  10235. If the MCI_OPEN_SHAREABLE flag is not specified, the device instance is opened 
  10236. for exclusive use. 
  10237.  
  10238. If the MCI_OPEN_TYPE_ID flag is not specified and the pszDeviceType field of 
  10239. the open data structure is not NULL, the media control interface attempts to 
  10240. open the device specified by the pszDeviceType string.  If pszDeviceType is 
  10241. NULL and MCI_OPEN_ELEMENT flag is specified, the media control interface 
  10242. attempts to select and open a device based on the element extension or EA type 
  10243. of the file specified in the pszElementName field of the open data structure. 
  10244.  
  10245. If pszDeviceType is a device type ID with a NULL ordinal or a string device 
  10246. name with no ordinals, then the default device of the specified type is opened. 
  10247. The default device can be selected using the Multimedia Setup application. 
  10248.  
  10249.  
  10250. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN - Related Messages ΓòÉΓòÉΓòÉ
  10251.  
  10252.      MCI_LOAD 
  10253.  
  10254.  
  10255. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN - Example Code ΓòÉΓòÉΓòÉ
  10256.  
  10257. The following code illustrates how to open a waveaudio device instance by 
  10258. specifying SPEECH.WAV. 
  10259.  
  10260. /* Open a waveaudio device context, specifying the element
  10261.    "speech.wav".
  10262.  
  10263. ULONG          rc;
  10264. MCI_OPEN_PARMS mop;
  10265.  
  10266. mop.hwndCallback = (HWND) NULL;      /* N/A - we're waiting       */
  10267. mop.usDeviceID = (USHORT) NULL;      /* This is returned          */
  10268. mop.pszDeviceType = (PSZ) NULL;      /* using default device type */
  10269. mop.pszElementName = (PSZ) "speech.wav"
  10270.                                      /* File name to open         */
  10271. rc = mciSendCommand( 0,
  10272.     MCI_OPEN,                        /* MCI open message          */
  10273.     MCI_WAIT | MCI_OPEN_ELEMENT |
  10274.     MCI_OPEN_SHAREABLE,              /* Flags for this message    */
  10275.     (ULONG) &mop,                    /* Data structure            */
  10276.     0);                              /* No user parm              */
  10277. if (LOUSHORT(rc) == MCIERR_SUCCESS)
  10278.   {
  10279.    usDeviceID = mop.usDeviceID;      /* Return device ID          */
  10280.   }
  10281.  
  10282.  
  10283. ΓòÉΓòÉΓòÉ <hidden> MCI_OPEN - Topics ΓòÉΓòÉΓòÉ
  10284.  
  10285. Select an item: 
  10286.  
  10287. Description
  10288. Returns
  10289. Remarks
  10290. Default Processing
  10291. Related Messages
  10292. Example Code
  10293. Glossary
  10294.  
  10295.  
  10296. ΓòÉΓòÉΓòÉ 7.27. MCI_PASTE ΓòÉΓòÉΓòÉ
  10297.  
  10298.  
  10299. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  10300.  
  10301.  ulParam1 (ULONG) 
  10302.     This parameter can contain any of the following flags: 
  10303.  
  10304.     MCI_NOTIFY 
  10305.             A notification message will be posted to the window specified in 
  10306.             the hwndCallback parameter of the data structure pointed to by the 
  10307.             pParam2 parameter. The notification will be posted when the action 
  10308.             indicated by this message is completed or when an error occurs. 
  10309.  
  10310.     MCI_WAIT 
  10311.             Control is not to be returned until the action indicated by this 
  10312.             message is completed or an error occurs. 
  10313.  
  10314.     MCI_FROM 
  10315.             Marks the beginning position of the paste operation. This position 
  10316.             is specified in the ulFrom field of the MCI_EDIT_PARMS data 
  10317.             structure. If MCI_FROM is not specified, the paste operation begins 
  10318.             from the current position. 
  10319.  
  10320.     MCI_TO 
  10321.             Marks the ending position of the paste. The pasted data replaces 
  10322.             data from the FROM position (or the current position if MCI_FROM is 
  10323.             not specified) to the TO position. 
  10324.  
  10325.             If MCI_TO is not specified, the end of file is assumed and the 
  10326.             pasted data is inserted beginning at the FROM position (or the 
  10327.             current position if MCI_FROM is not specified). 
  10328.  
  10329.     MCI_CONVERT_FORMAT 
  10330.             Converts data in the clipboard to a destination format. 
  10331.  
  10332.     MCI_TO_BUFFER 
  10333.             Places data from the clipboard into the application's buffer. If 
  10334.             this flag is not specified, the information is placed in a file. 
  10335.  
  10336.     MCI_FROM_BUFFER 
  10337.             Places data from the application's buffer into the file. If this 
  10338.             flag is not specified, the clipboard is used as the source. 
  10339.  
  10340.  
  10341. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  10342.  
  10343.  pParam2 (PMCI_EDIT_PARMS) 
  10344.     A pointer to the MCI_EDIT_PARMS structure. 
  10345.  
  10346.  
  10347. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE Return Value - rc ΓòÉΓòÉΓòÉ
  10348.  
  10349.  rc (ULONG) 
  10350.     Return codes indicating success or type of failure: 
  10351.  
  10352.     MCIERR_SUCCESS 
  10353.             The paste was successful. 
  10354.  
  10355.     MCIERR_INVALID_BUFFER 
  10356.             The buffer is too small to hold data. 
  10357.  
  10358.     MCIERR_CANNOT_WRITE 
  10359.             The file was not opened with write access. 
  10360.  
  10361.     MCIERR_OUTOFRANGE 
  10362.             The units are out of the range. 
  10363.  
  10364.     MCIERR_INVALID_MEDIA 
  10365.             The clipboard format is not valid. 
  10366.  
  10367.     MCIERR_INVALID_DEVICE_ID 
  10368.             The device ID is not valid. 
  10369.  
  10370.     MCIERR_MISSING_PARAMETER 
  10371.             Required parameter is missing. 
  10372.  
  10373.     MCIERR_INVALID_FLAG 
  10374.             Flag (ulParam1) is invalid. 
  10375.  
  10376.     MCIERR_UNSUPPORTED_FLAG 
  10377.             Given flag is unsupported for this device. 
  10378.  
  10379.     MCIERR_INSTANCE_INACTIVE 
  10380.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  10381.             the device context active. 
  10382.  
  10383.     MCIERR_INVALID_CALLBACK_HANDLE 
  10384.             Given callback handle is invalid. 
  10385.  
  10386.     MCIERR_OUT_OF_MEMORY 
  10387.             There is insufficient memory to perform the operation requested. 
  10388.  
  10389.     MCIERR_CLIPBOARD_EMPTY 
  10390.             No recognizable information is in the clipboard. 
  10391.  
  10392.     MCIERR_CANNOT_CONVERT 
  10393.             Unable to convert clipboard information to destination. 
  10394.  
  10395.     MMIOERR_CLIPBRD_EMPTY 
  10396.             There is no compatible data in the clipboard for use by the paste 
  10397.             operation. 
  10398.  
  10399.     MMIOERR_CLIPBRD_ERROR 
  10400.             An unrecoverable error occurred while attempting to access the 
  10401.             clipboard. 
  10402.  
  10403.     MMIOERR_INCOMPATIBLE_DATA 
  10404.             The data in the clipboard cannot be pasted into this file because 
  10405.             the characteristics of either the video or audio data, or both, do 
  10406.             not match the characteristics of the target file. 
  10407.  
  10408.  
  10409. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE - Description ΓòÉΓòÉΓòÉ
  10410.  
  10411. This message pastes data from the clipboard or application buffer into a file 
  10412. starting at the from position. Following a paste operation the media position 
  10413. is at the end of the pasted data. However, after pasting into a new file, the 
  10414. media position will be at 0. 
  10415.  
  10416. The MCI_CONVERT_FORMAT flag is not supported by the digital video device. 
  10417.  
  10418.  ulParam1 (ULONG) 
  10419.     This parameter can contain any of the following flags: 
  10420.  
  10421.     MCI_NOTIFY 
  10422.             A notification message will be posted to the window specified in 
  10423.             the hwndCallback parameter of the data structure pointed to by the 
  10424.             pParam2 parameter. The notification will be posted when the action 
  10425.             indicated by this message is completed or when an error occurs. 
  10426.  
  10427.     MCI_WAIT 
  10428.             Control is not to be returned until the action indicated by this 
  10429.             message is completed or an error occurs. 
  10430.  
  10431.     MCI_FROM 
  10432.             Marks the beginning position of the paste operation. This position 
  10433.             is specified in the ulFrom field of the MCI_EDIT_PARMS data 
  10434.             structure. If MCI_FROM is not specified, the paste operation begins 
  10435.             from the current position. 
  10436.  
  10437.     MCI_TO 
  10438.             Marks the ending position of the paste. The pasted data replaces 
  10439.             data from the FROM position (or the current position if MCI_FROM is 
  10440.             not specified) to the TO position. 
  10441.  
  10442.             If MCI_TO is not specified, the end of file is assumed and the 
  10443.             pasted data is inserted beginning at the FROM position (or the 
  10444.             current position if MCI_FROM is not specified). 
  10445.  
  10446.     MCI_CONVERT_FORMAT 
  10447.             Converts data in the clipboard to a destination format. 
  10448.  
  10449.     MCI_TO_BUFFER 
  10450.             Places data from the clipboard into the application's buffer. If 
  10451.             this flag is not specified, the information is placed in a file. 
  10452.  
  10453.     MCI_FROM_BUFFER 
  10454.             Places data from the application's buffer into the file. If this 
  10455.             flag is not specified, the clipboard is used as the source. 
  10456.  
  10457.  pParam2 (PMCI_EDIT_PARMS) 
  10458.     A pointer to the MCI_EDIT_PARMS structure. 
  10459.  
  10460.  rc (ULONG) 
  10461.     Return codes indicating success or type of failure: 
  10462.  
  10463.     MCIERR_SUCCESS 
  10464.             The paste was successful. 
  10465.  
  10466.     MCIERR_INVALID_BUFFER 
  10467.             The buffer is too small to hold data. 
  10468.  
  10469.     MCIERR_CANNOT_WRITE 
  10470.             The file was not opened with write access. 
  10471.  
  10472.     MCIERR_OUTOFRANGE 
  10473.             The units are out of the range. 
  10474.  
  10475.     MCIERR_INVALID_MEDIA 
  10476.             The clipboard format is not valid. 
  10477.  
  10478.     MCIERR_INVALID_DEVICE_ID 
  10479.             The device ID is not valid. 
  10480.  
  10481.     MCIERR_MISSING_PARAMETER 
  10482.             Required parameter is missing. 
  10483.  
  10484.     MCIERR_INVALID_FLAG 
  10485.             Flag (ulParam1) is invalid. 
  10486.  
  10487.     MCIERR_UNSUPPORTED_FLAG 
  10488.             Given flag is unsupported for this device. 
  10489.  
  10490.     MCIERR_INSTANCE_INACTIVE 
  10491.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  10492.             the device context active. 
  10493.  
  10494.     MCIERR_INVALID_CALLBACK_HANDLE 
  10495.             Given callback handle is invalid. 
  10496.  
  10497.     MCIERR_OUT_OF_MEMORY 
  10498.             There is insufficient memory to perform the operation requested. 
  10499.  
  10500.     MCIERR_CLIPBOARD_EMPTY 
  10501.             No recognizable information is in the clipboard. 
  10502.  
  10503.     MCIERR_CANNOT_CONVERT 
  10504.             Unable to convert clipboard information to destination. 
  10505.  
  10506.     MMIOERR_CLIPBRD_EMPTY 
  10507.             There is no compatible data in the clipboard for use by the paste 
  10508.             operation. 
  10509.  
  10510.     MMIOERR_CLIPBRD_ERROR 
  10511.             An unrecoverable error occurred while attempting to access the 
  10512.             clipboard. 
  10513.  
  10514.     MMIOERR_INCOMPATIBLE_DATA 
  10515.             The data in the clipboard cannot be pasted into this file because 
  10516.             the characteristics of either the video or audio data, or both, do 
  10517.             not match the characteristics of the target file. 
  10518.  
  10519.  
  10520. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE - Remarks ΓòÉΓòÉΓòÉ
  10521.  
  10522. The units of the MCI_FROM and MCI_TO parameters must be supplied in the 
  10523. selected time format. If neither MCI_FROM or MCI_TO are specified, MCI_PASTE 
  10524. inserts the clipboard contents at the current position. 
  10525.  
  10526. The MCI_CONVERT_FORMAT converts what was in the clipboard to the destination 
  10527. file format.  The following conversions can be done: 
  10528.  
  10529.  Settings         Conversions 
  10530.  Channels         Mono to stereo, stereo to mono. 
  10531.  Sampling rate    11025, 22050, or 44100 to 11025, 22050, or 44100. 
  10532.  Data Type        16-bit to 8-bit, 8-bit to 16-bit. 
  10533.  
  10534.  Note:  No smoothing is performed on the paste. 
  10535.  
  10536.  If a paste interrupts an in-progress operation, such as play, the command is 
  10537.  aborted and an MM_MCINOTIFY message is sent to the application. 
  10538.  
  10539.  The implementation of the paste operation for AVI movie files does not support 
  10540.  data transformations. The AVI movie file being pasted into must have the same 
  10541.  video and audio characteristics as the file from which the clipboard data was 
  10542.  obtained. (The video data must have the same nominal frame rate, frame size, 
  10543.  and use the same decompressor; the audio data must be the same type and must 
  10544.  match in number of channels, samples per second, and bits per sample.) 
  10545.  MMIOERR_INCOMPATIBLE_DATA is returned if the clipboard data does not match the 
  10546.  data in the target file. 
  10547.  
  10548.  Edited Audio/Video Interleaved (AVI) movie files cannot always be saved with 
  10549.  their original name after the paste operation. If the clipboard contains a 
  10550.  reference to data that would be erased during saving or if another instance of 
  10551.  the digital video device has a pending paste operation which depends on this 
  10552.  data, the file cannot be saved unless a new file name has been provided. If a 
  10553.  new file name is not provided, MMIOERR_NEED_NEW_FILENAME is returned by the 
  10554.  AVI I/O procedure and a temporary file is created to save the edited movie. 
  10555.  
  10556.  Note:  AVI is the only video file format supporting editing commands. 
  10557.  
  10558.  Waveaudio Specific 
  10559.  
  10560.  If MCI_FROM_BUFFER or MCI_TO_BUFFER are used, the pHeader field of 
  10561.  MCI_EDIT_PARMS must contain a pointer to an MMAUDIOHEADER structure. The 
  10562.  ulBufLen field of MCI_EDIT_PARMS must be filled in. 
  10563.  
  10564.  
  10565. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE - Related Messages ΓòÉΓòÉΓòÉ
  10566.  
  10567.      MCI_COPY 
  10568.      MCI_CUT 
  10569.      MCI_DELETE 
  10570.      MCI_UNDO 
  10571.      MCI_REDO 
  10572.  
  10573.  
  10574. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE - Example Code ΓòÉΓòÉΓòÉ
  10575.  
  10576. The following code illustrates pasting data from the clipboard into the current 
  10577. file position. 
  10578.  
  10579.     USHORT                usDeviceID;
  10580.     MCI_EDIT_PARMS        mep;
  10581.  
  10582.     mep.hwndCallback = hwndMyWindow;
  10583.  
  10584.     mciSendCommand( usDeviceID,
  10585.                     MCI_PASTE,
  10586.                     MCI_NOTIFY,
  10587.                     &mep,
  10588.                     0 );
  10589.  
  10590.  
  10591. ΓòÉΓòÉΓòÉ <hidden> MCI_PASTE - Topics ΓòÉΓòÉΓòÉ
  10592.  
  10593. Select an item: 
  10594.  
  10595. Description
  10596. Returns
  10597. Remarks
  10598. Related Messages
  10599. Example Code
  10600. Glossary
  10601.  
  10602.  
  10603. ΓòÉΓòÉΓòÉ 7.28. MCI_PAUSE ΓòÉΓòÉΓòÉ
  10604.  
  10605.  
  10606. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  10607.  
  10608.  ulParam1 (ULONG) 
  10609.     This parameter can contain any of the following flags: 
  10610.  
  10611.     MCI_NOTIFY 
  10612.             A notification message will be posted to the window specified in 
  10613.             the hwndCallback parameter of the data structure pointed to by the 
  10614.             pParam2 parameter.  The notification will be posted when the action 
  10615.             indicated by this message is completed or when an error occurs. 
  10616.  
  10617.     MCI_WAIT 
  10618.             Control is not to be returned until the action indicated by this 
  10619.             message is completed or an error occurs. 
  10620.  
  10621.  
  10622. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  10623.  
  10624.  pParam2 (PMCI_GENERIC_PARMS) 
  10625.     A pointer to the default media control interface parameter data structure. 
  10626.  
  10627.  
  10628. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE Return Value - rc ΓòÉΓòÉΓòÉ
  10629.  
  10630.  rc (ULONG) 
  10631.     Return codes indicating success or failure: 
  10632.  
  10633.     MCIERR_SUCCESS 
  10634.             If the function succeeds, 0 is returned. 
  10635.  
  10636.     MCIERR_INVALID_DEVICE_ID 
  10637.             The device ID is not valid. 
  10638.  
  10639.     MCIERR_INSTANCE_INACTIVE 
  10640.             The device is currently inactive. Issue MCI_ACQUIREDEVICE to make 
  10641.             device ID active. 
  10642.  
  10643.     MCIERR_UNSUPPORTED_FLAG 
  10644.             Given flag is unsupported for this device. 
  10645.  
  10646.     MCIERR_INVALID_CALLBACK_HANDLE 
  10647.             Given callback handle is invalid. 
  10648.  
  10649.     MCIERR_UNSUPPORTED_FUNCTION 
  10650.             Unsupported function. 
  10651.  
  10652.     MCIERR_INVALID_FLAG 
  10653.             Flag (ulParam1) is invalid. 
  10654.  
  10655.     MCIERR_FLAGS_NOT_COMPATIBLE 
  10656.             Flags cannot be used together. 
  10657.  
  10658.  
  10659. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE - Description ΓòÉΓòÉΓòÉ
  10660.  
  10661. This message is sent to suspend playback or recording. 
  10662.  
  10663.  ulParam1 (ULONG) 
  10664.     This parameter can contain any of the following flags: 
  10665.  
  10666.     MCI_NOTIFY 
  10667.             A notification message will be posted to the window specified in 
  10668.             the hwndCallback parameter of the data structure pointed to by the 
  10669.             pParam2 parameter.  The notification will be posted when the action 
  10670.             indicated by this message is completed or when an error occurs. 
  10671.  
  10672.     MCI_WAIT 
  10673.             Control is not to be returned until the action indicated by this 
  10674.             message is completed or an error occurs. 
  10675.  
  10676.  pParam2 (PMCI_GENERIC_PARMS) 
  10677.     A pointer to the default media control interface parameter data structure. 
  10678.  
  10679.  rc (ULONG) 
  10680.     Return codes indicating success or failure: 
  10681.  
  10682.     MCIERR_SUCCESS 
  10683.             If the function succeeds, 0 is returned. 
  10684.  
  10685.     MCIERR_INVALID_DEVICE_ID 
  10686.             The device ID is not valid. 
  10687.  
  10688.     MCIERR_INSTANCE_INACTIVE 
  10689.             The device is currently inactive. Issue MCI_ACQUIREDEVICE to make 
  10690.             device ID active. 
  10691.  
  10692.     MCIERR_UNSUPPORTED_FLAG 
  10693.             Given flag is unsupported for this device. 
  10694.  
  10695.     MCIERR_INVALID_CALLBACK_HANDLE 
  10696.             Given callback handle is invalid. 
  10697.  
  10698.     MCIERR_UNSUPPORTED_FUNCTION 
  10699.             Unsupported function. 
  10700.  
  10701.     MCIERR_INVALID_FLAG 
  10702.             Flag (ulParam1) is invalid. 
  10703.  
  10704.     MCIERR_FLAGS_NOT_COMPATIBLE 
  10705.             Flags cannot be used together. 
  10706.  
  10707.  
  10708. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE - Remarks ΓòÉΓòÉΓòÉ
  10709.  
  10710. The MCI_RESUME message is used to return the device to the previous playback or 
  10711. recording operation from the paused state to the parameters of the previous 
  10712. operation that remain in effect. 
  10713.  
  10714. If the device is paused and MCI_PLAY or MCI_RECORD is issued, the previous 
  10715. action is superseded and from and to parameters are used from the newly issued 
  10716. message. 
  10717.  
  10718.  
  10719. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE - Related Messages ΓòÉΓòÉΓòÉ
  10720.  
  10721.      MCI_PLAY 
  10722.      MCI_RECORD 
  10723.      MCI_RESUME 
  10724.  
  10725.  
  10726. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE - Example Code ΓòÉΓòÉΓòÉ
  10727.  
  10728. The following code illustrates how to pause a device and request notification 
  10729. when the operation is completed. 
  10730.  
  10731.    /* Pause the device, requesting notification when operation completes */
  10732.  
  10733.    #define UP_PAUSE 1
  10734.  
  10735.    USHORT usDeviceID;
  10736.    HWND hwndMyWindow;
  10737.    MCI_GENERIC_PARMS mciGenericParms;        /* Generic message
  10738.                                                 parms structure   */
  10739.  
  10740.                     /* Assign hwndCallback the handle to the PM Window */
  10741.  
  10742.    mciGenericParms.hwndCallback = hwndMyWindow;
  10743.  
  10744.    mciSendCommand(usDeviceID,      /* Device ID                        */
  10745.                    MCI_PAUSE,      /* MCI pause message                */
  10746.                    MCI_NOTIFY,     /* Flag for this message            */
  10747.                    (PVOID) &mciGenericParms,     /* Data structure     */
  10748.                    UP_PAUSE);      /* User parameter to be returned
  10749.                                       on notification message          */
  10750.  
  10751.  
  10752. ΓòÉΓòÉΓòÉ <hidden> MCI_PAUSE - Topics ΓòÉΓòÉΓòÉ
  10753.  
  10754. Select an item: 
  10755.  
  10756. Description
  10757. Returns
  10758. Remarks
  10759. Related Messages
  10760. Example Code
  10761. Glossary
  10762.  
  10763.  
  10764. ΓòÉΓòÉΓòÉ 7.29. MCI_PLAY ΓòÉΓòÉΓòÉ
  10765.  
  10766.  
  10767. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  10768.  
  10769.  ulParam1 (ULONG) 
  10770.     This parameter can contain any of the following flags: 
  10771.  
  10772.     MCI_NOTIFY 
  10773.             A notification message will be posted to the window specified in 
  10774.             the hwndCallback parameter of the data structure pointed to by the 
  10775.             pParam2 parameter.  The notification will be posted when the action 
  10776.             indicated by this message is completed or when an error occurs. 
  10777.  
  10778.     MCI_WAIT 
  10779.             Control is not to be returned until the action indicated by this 
  10780.             message is completed or an error occurs. 
  10781.  
  10782.     MCI_FROM 
  10783.             This flag indicates that the ulFrom field of the play data 
  10784.             structure is to be used as the starting position for the play 
  10785.             operation. If this flag is not set, the current position is 
  10786.             assumed. 
  10787.  
  10788.     MCI_TO 
  10789.             This flag indicates that the ulTo field of the play data structure 
  10790.             is to be used as the ending position of the play operation.  If 
  10791.             this flag is not set, playback continues to the end of the media or 
  10792.             segment, as defined by the device.  If the to position is beyond 
  10793.             the end of the media or segment, an MCIERR_OUTOFRANGE error is 
  10794.             returned. 
  10795.  
  10796.     Digital Video Extensions 
  10797.  
  10798.     The following additional flags apply to digital video devices: 
  10799.  
  10800.     MCI_DGV_PLAY_SPEED 
  10801.             This flag adds a speed parameter.  The units are specified by the 
  10802.             currently set speed format.  The speed value is in the ulSpeed 
  10803.             field in the play data structure. 
  10804.  
  10805.     MCI_DGV_PLAY_REVERSE 
  10806.             This flag specifies to play in reverse. 
  10807.  
  10808.     MCI_DGV_PLAY_FAST 
  10809.             This flag specifies to play at the fast rate (twice the normal 
  10810.             recorded playback rate). 
  10811.  
  10812.     MCI_DGV_PLAY_SCAN 
  10813.             Specifies to scan.  Scan usually means to play as quickly as 
  10814.             possible, with audio disabled. 
  10815.  
  10816.     MCI_DGV_PLAY_SLOW 
  10817.             This flag specifies to play at the slow rate (half the normal 
  10818.             recorded playback rate). 
  10819.  
  10820.     MCI_DGV_PLAY_REPEAT 
  10821.             This flag specifies that the play operation be repeated until the 
  10822.             command is superseded by another command or aborted. 
  10823.  
  10824.             This flag is not supported by the digital video MCD. 
  10825.  
  10826.     Videodisc Extensions 
  10827.  
  10828.     The following additional flags apply to videodisc devices. 
  10829.     MCI_VD_PLAY_REVERSE and MCI_VD_PLAY_SCAN are mutually exclusive.  Only one 
  10830.     of the other flags is allowed with this message. 
  10831.  
  10832.     MCI_VD_PLAY_REVERSE 
  10833.             This flag specifies to play in reverse. 
  10834.  
  10835.     MCI_VD_PLAY_FAST 
  10836.             This flag specifies to play at the fast rate. 
  10837.  
  10838.     MCI_VD_PLAY_SCAN 
  10839.             This flag specifies to scan.  Scan usually means to play as fast as 
  10840.             possible, with audio disabled. 
  10841.  
  10842.     MCI_VD_PLAY_SPEED 
  10843.             This flag adds a speed parameter.  The units are specified by the 
  10844.             currently set speed format.  The speed value is in the ulSpeed 
  10845.             field of the play data structure. 
  10846.  
  10847.     MCI_VD_PLAY_SLOW 
  10848.             This flag specifies to play at the slow rate. 
  10849.  
  10850.  
  10851. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY Parameter - pParam2 ΓòÉΓòÉΓòÉ
  10852.  
  10853.  pParam2 (PMCI_PLAY_PARMS) 
  10854.     A pointer to an MCI_PLAY_PARMS data structure. Devices with extended 
  10855.     command sets might replace this pointer with a pointer to a device-specific 
  10856.     data structure as follows: 
  10857.  
  10858.     PMCI_DGV_PLAY_PARMS 
  10859.             A pointer to an MCI_DGV_PLAY_PARMS data structure. 
  10860.  
  10861.     PMCI_VD_PLAY_PARMS 
  10862.             A pointer to an MCI_VD_PLAY_PARMS data structure. 
  10863.  
  10864.  
  10865. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY Return Value - rc ΓòÉΓòÉΓòÉ
  10866.  
  10867.  rc (ULONG) 
  10868.     Return codes indicating success or type of failure: 
  10869.  
  10870.     MCIERR_SUCCESS 
  10871.             If the function succeeds, 0 is returned. 
  10872.  
  10873.     MCIERR_MEDIA_CHANGED 
  10874.             The required media has changed. 
  10875.  
  10876.     MCIERR_DEVICE_NOT_READY 
  10877.             The device is not ready. 
  10878.  
  10879.     MCIERR_INVALID_DEVICE_ID 
  10880.             The device id is not VALID. 
  10881.  
  10882.     MCIERR_INSTANCE_INACTIVE 
  10883.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  10884.             device context active. 
  10885.  
  10886.     MCIERR_MISSING_FLAG 
  10887.             A required flag is missing. 
  10888.  
  10889.     MCIERR_UNSUPPORTED_FLAG 
  10890.             Given flag is unsupported for this device. 
  10891.  
  10892.     MCIERR_INVALID_CALLBACK_HANDLE 
  10893.             Given callback handle is invalid. 
  10894.  
  10895.     MCIERR_UNSUPPORTED_FUNCTION 
  10896.             Unsupported function. 
  10897.  
  10898.     MCIERR_INVALID_FLAG 
  10899.             Flag (ulParam1) is invalid. 
  10900.  
  10901.     MCIERR_FLAGS_NOT_COMPATIBLE 
  10902.             Flags cannot be used together. 
  10903.  
  10904.     MCIERR_OUTOFRANGE 
  10905.             Units are out of range. 
  10906.  
  10907.     MCIERR_MISSING_PARAMETER 
  10908.             Required parameter is missing. 
  10909.  
  10910.     MCIERR_CHANNEL_OFF 
  10911.             Primary channel is off. 
  10912.  
  10913.  
  10914. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY - Description ΓòÉΓòÉΓòÉ
  10915.  
  10916. This message is sent to begin playback. 
  10917.  
  10918.  ulParam1 (ULONG) 
  10919.     This parameter can contain any of the following flags: 
  10920.  
  10921.     MCI_NOTIFY 
  10922.             A notification message will be posted to the window specified in 
  10923.             the hwndCallback parameter of the data structure pointed to by the 
  10924.             pParam2 parameter.  The notification will be posted when the action 
  10925.             indicated by this message is completed or when an error occurs. 
  10926.  
  10927.     MCI_WAIT 
  10928.             Control is not to be returned until the action indicated by this 
  10929.             message is completed or an error occurs. 
  10930.  
  10931.     MCI_FROM 
  10932.             This flag indicates that the ulFrom field of the play data 
  10933.             structure is to be used as the starting position for the play 
  10934.             operation. If this flag is not set, the current position is 
  10935.             assumed. 
  10936.  
  10937.     MCI_TO 
  10938.             This flag indicates that the ulTo field of the play data structure 
  10939.             is to be used as the ending position of the play operation.  If 
  10940.             this flag is not set, playback continues to the end of the media or 
  10941.             segment, as defined by the device.  If the to position is beyond 
  10942.             the end of the media or segment, an MCIERR_OUTOFRANGE error is 
  10943.             returned. 
  10944.  
  10945.     Digital Video Extensions 
  10946.  
  10947.     The following additional flags apply to digital video devices: 
  10948.  
  10949.     MCI_DGV_PLAY_SPEED 
  10950.             This flag adds a speed parameter.  The units are specified by the 
  10951.             currently set speed format.  The speed value is in the ulSpeed 
  10952.             field in the play data structure. 
  10953.  
  10954.     MCI_DGV_PLAY_REVERSE 
  10955.             This flag specifies to play in reverse. 
  10956.  
  10957.     MCI_DGV_PLAY_FAST 
  10958.             This flag specifies to play at the fast rate (twice the normal 
  10959.             recorded playback rate). 
  10960.  
  10961.     MCI_DGV_PLAY_SCAN 
  10962.             Specifies to scan.  Scan usually means to play as quickly as 
  10963.             possible, with audio disabled. 
  10964.  
  10965.     MCI_DGV_PLAY_SLOW 
  10966.             This flag specifies to play at the slow rate (half the normal 
  10967.             recorded playback rate). 
  10968.  
  10969.     MCI_DGV_PLAY_REPEAT 
  10970.             This flag specifies that the play operation be repeated until the 
  10971.             command is superseded by another command or aborted. 
  10972.  
  10973.             This flag is not supported by the digital video MCD. 
  10974.  
  10975.     Videodisc Extensions 
  10976.  
  10977.     The following additional flags apply to videodisc devices. 
  10978.     MCI_VD_PLAY_REVERSE and MCI_VD_PLAY_SCAN are mutually exclusive.  Only one 
  10979.     of the other flags is allowed with this message. 
  10980.  
  10981.     MCI_VD_PLAY_REVERSE 
  10982.             This flag specifies to play in reverse. 
  10983.  
  10984.     MCI_VD_PLAY_FAST 
  10985.             This flag specifies to play at the fast rate. 
  10986.  
  10987.     MCI_VD_PLAY_SCAN 
  10988.             This flag specifies to scan.  Scan usually means to play as fast as 
  10989.             possible, with audio disabled. 
  10990.  
  10991.     MCI_VD_PLAY_SPEED 
  10992.             This flag adds a speed parameter.  The units are specified by the 
  10993.             currently set speed format.  The speed value is in the ulSpeed 
  10994.             field of the play data structure. 
  10995.  
  10996.     MCI_VD_PLAY_SLOW 
  10997.             This flag specifies to play at the slow rate. 
  10998.  
  10999.  pParam2 (PMCI_PLAY_PARMS) 
  11000.     A pointer to an MCI_PLAY_PARMS data structure. Devices with extended 
  11001.     command sets might replace this pointer with a pointer to a device-specific 
  11002.     data structure as follows: 
  11003.  
  11004.     PMCI_DGV_PLAY_PARMS 
  11005.             A pointer to an MCI_DGV_PLAY_PARMS data structure. 
  11006.  
  11007.     PMCI_VD_PLAY_PARMS 
  11008.             A pointer to an MCI_VD_PLAY_PARMS data structure. 
  11009.  
  11010.  rc (ULONG) 
  11011.     Return codes indicating success or type of failure: 
  11012.  
  11013.     MCIERR_SUCCESS 
  11014.             If the function succeeds, 0 is returned. 
  11015.  
  11016.     MCIERR_MEDIA_CHANGED 
  11017.             The required media has changed. 
  11018.  
  11019.     MCIERR_DEVICE_NOT_READY 
  11020.             The device is not ready. 
  11021.  
  11022.     MCIERR_INVALID_DEVICE_ID 
  11023.             The device id is not VALID. 
  11024.  
  11025.     MCIERR_INSTANCE_INACTIVE 
  11026.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  11027.             device context active. 
  11028.  
  11029.     MCIERR_MISSING_FLAG 
  11030.             A required flag is missing. 
  11031.  
  11032.     MCIERR_UNSUPPORTED_FLAG 
  11033.             Given flag is unsupported for this device. 
  11034.  
  11035.     MCIERR_INVALID_CALLBACK_HANDLE 
  11036.             Given callback handle is invalid. 
  11037.  
  11038.     MCIERR_UNSUPPORTED_FUNCTION 
  11039.             Unsupported function. 
  11040.  
  11041.     MCIERR_INVALID_FLAG 
  11042.             Flag (ulParam1) is invalid. 
  11043.  
  11044.     MCIERR_FLAGS_NOT_COMPATIBLE 
  11045.             Flags cannot be used together. 
  11046.  
  11047.     MCIERR_OUTOFRANGE 
  11048.             Units are out of range. 
  11049.  
  11050.     MCIERR_MISSING_PARAMETER 
  11051.             Required parameter is missing. 
  11052.  
  11053.     MCIERR_CHANNEL_OFF 
  11054.             Primary channel is off. 
  11055.  
  11056.  
  11057. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY - Remarks ΓòÉΓòÉΓòÉ
  11058.  
  11059. The parameters and flags for this message vary according to the selected 
  11060. device. The units of the MCI_FROM and MCI_TO parameters must be supplied in the 
  11061. currently selected time format. See the MCI_SET message and the 
  11062. MCI_SET_TIME_FORMAT flag for more information. 
  11063.  
  11064. The following example illustrates how the MCI_FROM and MCI_TO parameters are 
  11065. interpreted. If a multimedia element is composed of samples; in a file with 100 
  11066. samples, the samples are numbered from 0 to 99. If MCI_FROM is specified as 10 
  11067. and MCI_TO is specified as 80, MCI_PLAY will play samples 10 through 79. 
  11068. Following the play operation, the current position of the media would be 80. 
  11069.  
  11070. If the length of a file cannot be determined, MCIERR_SUCCESS might be returned 
  11071. even if the MCI_TO parameter is out of range. 
  11072.  
  11073. Digital Video Specific 
  11074.  
  11075. If you are using an application-defined window and your application is running 
  11076. on a system without direct-access device driver support for motion video, do 
  11077. not issue MCI_PLAY with the MCI_WAIT flag specified unless the thread issuing 
  11078. the message is separate from the thread reading the message queue. 
  11079.  
  11080.  
  11081. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY - Default Processing ΓòÉΓòÉΓòÉ
  11082.  
  11083. If MCI_FROM is not specified, the starting position defaults to the current 
  11084. location. 
  11085.  
  11086. IF MCI_TO is not specified, playback continues to the end of the media or 
  11087. segment, as defined by the device. 
  11088.  
  11089.  
  11090. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY - Related Messages ΓòÉΓòÉΓòÉ
  11091.  
  11092.      MCI_RECORD 
  11093.      MCI_PAUSE 
  11094.      MCI_RESUME 
  11095.      MCI_STOP 
  11096.  
  11097.  
  11098. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY - Example Code ΓòÉΓòÉΓòÉ
  11099.  
  11100. The following code illustrates how to play a device from 5 to 25 seconds with 
  11101. the time format set to milliseconds. 
  11102.  
  11103.    USHORT          usDeviceID;
  11104.    MCI_PLAY_PARMS  mpp;
  11105.  
  11106.    /* Play from 5 seconds to 25 seconds (time format set to
  11107.       milliseconds)                                                    */
  11108.  
  11109.    /* Assign hwndCallback the handle to the PM Window routine          */
  11110.    mpp.hwndCallback = (HWND) hwndMyWindow;
  11111.  
  11112.    mpp.ulFrom = (ULONG) 5000;       /* Play from this position         */
  11113.    mpp.ulTo = (ULONG) 25000;        /* Play to this position           */
  11114.  
  11115.    mciSendCommand(usDeviceID,       /* Device ID                       */
  11116.                    MCI_PLAY,        /* MCI play message                */
  11117.                    MCI_NOTIFY | MCI_FROM | MCI_TO,
  11118.                                     /* Flags for this message          */
  11119.                    (PVOID) &mpp,    /* Data structure                  */
  11120.                    0);              /* No user parm                    */
  11121.  
  11122.  
  11123. ΓòÉΓòÉΓòÉ <hidden> MCI_PLAY - Topics ΓòÉΓòÉΓòÉ
  11124.  
  11125. Select an item: 
  11126.  
  11127. Description
  11128. Returns
  11129. Remarks
  11130. Default Processing
  11131. Related Messages
  11132. Example Code
  11133. Glossary
  11134.  
  11135.  
  11136. ΓòÉΓòÉΓòÉ 7.30. MCI_PUT ΓòÉΓòÉΓòÉ
  11137.  
  11138.  
  11139. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  11140.  
  11141.  ulParam1 (ULONG) 
  11142.     This parameter can contain any of the following: 
  11143.  
  11144.     MCI_NOTIFY 
  11145.             A notification message will be posted to the window specified in 
  11146.             the hwndCallback parameter of the data structure pointed to by the 
  11147.             pParam2 parameter.  The notification will be posted when the action 
  11148.             indicated by this message is completed or when an error occurs. 
  11149.  
  11150.     MCI_WAIT 
  11151.             Control is not to be returned until the action indicated by this 
  11152.             message is completed or an error occurs. 
  11153.  
  11154.     Digital Video Extensions 
  11155.  
  11156.     The following additional flags apply to digital video devices supporting 
  11157.     MCI_PUT: 
  11158.  
  11159.     MCI_DGV_PUT_RECT 
  11160.             This flag specifies that the rc field of the data structure 
  11161.             identified by pParam2 contains a valid display rectangle array. 
  11162.             This is a required parameter. 
  11163.  
  11164.     MCI_DGV_PUT_SOURCE 
  11165.             Indicates that the rc field of the data structure identified by 
  11166.             pParam2 contains a display rectangle array specifying the offset 
  11167.             and size of a clipping rectangle for the digital video source 
  11168.             image.  The source rectangle array specifies a capture rectangle 
  11169.             relative to the digital video origin.  MCI_DGV_PUT_SOURCE is only 
  11170.             valid with the MCI_DGV_RECORD flag. 
  11171.  
  11172.             Note:  The size of the origin (or source) can be found using 
  11173.                    MCI_DGV_STATUS_VIDEO_X_EXTENT and 
  11174.                    MCI_DGV_STATUS_VIDEO_Y_EXTENT. 
  11175.  
  11176.     MCI_DGV_PUT_DESTINATION 
  11177.             Indicates that the rc field of the data structure identified by 
  11178.             pParam2 contains a display rectangle array specifying the offset 
  11179.             and visible extent of the digital video within the client window. 
  11180.             The destination rectangle array specifies a clipping rectangle for 
  11181.             frames relative to the lower-left corner of the window.  When 
  11182.             MCI_DGV_PUT_DESTINATION is used with MCI_DGV_RECORD, the size of 
  11183.             the movie to be recorded is determined and the position is ignored. 
  11184.             When MCI_DGV_PUT_DESTINATION is used with MCI_DGV_MONITOR, the size 
  11185.             and position of the monitor video relative to the monitor window is 
  11186.             determined.  If MCI_DGV_PUT_DESTINATION is used without either 
  11187.             MCI_DGV_MONITOR or MCI_DGV_RECORD, the size and position of the 
  11188.             playback video relative to the playback window is determined. 
  11189.  
  11190.     MCI_DGV_PUT_WINDOW_MOVE 
  11191.             Indicates that the rc field of the data structure identified by 
  11192.             pParam2 contains a display rectangle specifying the window 
  11193.             position.  All four values (X1 Y1 X2 Y2) must be specified, but X2 
  11194.             and Y2 are ignored unless the MCI_DGV_PUT_WINDOW_SIZE parameter is 
  11195.             also specified. 
  11196.  
  11197.     MCI_DGV_PUT_WINDOW_SIZE 
  11198.             Indicates that the rc field of the data structure identified by 
  11199.             pParam2 contains a display rectangle that specifies the size of the 
  11200.             window. All four values (X1 Y1 X2 Y2) must be specified. 
  11201.  
  11202.     MCI_DGV_RECORD 
  11203.             Specifies the source and destination rectangles for video capture. 
  11204.  
  11205.             Note:  For recording, the source rectangle specifies the portion of 
  11206.                    the image to be captured and the destination rectangle 
  11207.                    specifies the size of the video to be recorded, thereby 
  11208.                    indicating the scaling to be applied to the source 
  11209.                    rectangle. 
  11210.  
  11211.     MCI_DGV_MONITOR 
  11212.             This flag specifies the window size and position for the monitor 
  11213.             window. 
  11214.  
  11215.     Video Overlay Extensions 
  11216.  
  11217.     The following additional flags apply to video overlay devices: 
  11218.  
  11219.     MCI_OVLY_PUT_RECT 
  11220.             Specifies that the rc field of the data structure identified by 
  11221.             pParam2 contains a valid display rectangle. 
  11222.  
  11223.     MCI_OVLY_PUT_DESTINATION 
  11224.             Indicates that the rc field of the data structure identified by 
  11225.             pParam2 contains a display rectangle for the video overlay within 
  11226.             the client window.  The destination rectangle specifies a clipping 
  11227.             rectangle for frames relative to the lower-left corner of the 
  11228.             window.  If MCI_OVLY_PUT_DESTINATION is specified without the 
  11229.             MCI_OVLY_PUT_RECT flag specified, the default destination is set. 
  11230.  
  11231.     MCI_OVLY_PUT_SOURCE 
  11232.             Indicates that the rc field of the data structure identified by 
  11233.             pParam2 contains a display rectangle for the analog video source. 
  11234.             The source rectangle specifies the portion of the incoming video 
  11235.             signal which will be displayed.  If MCI_OVLY_PUT_SOURCE is 
  11236.             specified without the MCI_OVLY_PUT_RECT flag specified, the default 
  11237.             source is set. 
  11238.  
  11239.     MCI_OVLY_PUT_WINDOW_MOVE 
  11240.             Indicates that the rc field of the data structure identified by 
  11241.             pParam2 contains a display rectangle, where the X1 Y1 coordinates 
  11242.             specify the new location of the default video window.  The 
  11243.             coordinates are relative to the parent window.  The X2 and Y2 
  11244.             coordinates are ignored unless the MCI_OVLY_PUT_WINDOW_SIZE flag is 
  11245.             also specified. 
  11246.  
  11247.     MCI_OVLY_PUT_WINDOW_SIZE 
  11248.             Indicates that the rc field of the data structure identified by 
  11249.             pParam2 contains a display rectangle.  The new default window size 
  11250.             is calculated to ((X2 - X1) + 1) and ((Y2 - Y1) + 1). 
  11251.  
  11252.  
  11253. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT Parameter - pParam2 ΓòÉΓòÉΓòÉ
  11254.  
  11255.  pParam2 (PMCI_VID_RECT_PARMS) 
  11256.     A pointer to the MCI_VID_RECT_PARMS data structure.  Devices with 
  11257.     additional parameters might replace this pointer with a pointer to a 
  11258.     device-specific data structure as follows: 
  11259.  
  11260.     PMCI_DGV_RECT_PARMS 
  11261.             A pointer to the MCI_DGV_RECT_PARMS data structure. 
  11262.  
  11263.     PMCI_OVLY_RECT_PARMS 
  11264.             A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  11265.  
  11266.  
  11267. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT Return Value - rc ΓòÉΓòÉΓòÉ
  11268.  
  11269.  rc (ULONG) 
  11270.     Return codes indicating success or type of failure: 
  11271.  
  11272.     MCIERR_SUCCESS 
  11273.             MMPM/2 command completed successfully. 
  11274.  
  11275.     MCIERR_OUT_OF_MEMORY 
  11276.             System out of memory. 
  11277.  
  11278.     MCIERR_INVALID_DEVICE_ID 
  11279.             Invalid device ID given. 
  11280.  
  11281.     MCIERR_MISSING_PARAMETER 
  11282.             Missing parameter for this command. 
  11283.  
  11284.     MCIERR_DRIVER 
  11285.             Internal MMPM/2 driver error. 
  11286.  
  11287.     MCIERR_INVALID_FLAG 
  11288.             Invalid flag specified for this command. 
  11289.  
  11290.     MCIERR_MISSING_FLAG 
  11291.             Flag missing for this MMPM/2 command. 
  11292.  
  11293.     MCIERR_FLAGS_NOT_COMPATIBLE 
  11294.             Flags not compatible. 
  11295.  
  11296.     MCIERR_INSTANCE_INACTIVE 
  11297.             Instance inactive. 
  11298.  
  11299.  
  11300. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT - Description ΓòÉΓòÉΓòÉ
  11301.  
  11302. This message sets the source and destination rectangles for the transformation 
  11303. of the video image and the position of the default video window. 
  11304.  
  11305.  ulParam1 (ULONG) 
  11306.     This parameter can contain any of the following: 
  11307.  
  11308.     MCI_NOTIFY 
  11309.             A notification message will be posted to the window specified in 
  11310.             the hwndCallback parameter of the data structure pointed to by the 
  11311.             pParam2 parameter.  The notification will be posted when the action 
  11312.             indicated by this message is completed or when an error occurs. 
  11313.  
  11314.     MCI_WAIT 
  11315.             Control is not to be returned until the action indicated by this 
  11316.             message is completed or an error occurs. 
  11317.  
  11318.     Digital Video Extensions 
  11319.  
  11320.     The following additional flags apply to digital video devices supporting 
  11321.     MCI_PUT: 
  11322.  
  11323.     MCI_DGV_PUT_RECT 
  11324.             This flag specifies that the rc field of the data structure 
  11325.             identified by pParam2 contains a valid display rectangle array. 
  11326.             This is a required parameter. 
  11327.  
  11328.     MCI_DGV_PUT_SOURCE 
  11329.             Indicates that the rc field of the data structure identified by 
  11330.             pParam2 contains a display rectangle array specifying the offset 
  11331.             and size of a clipping rectangle for the digital video source 
  11332.             image.  The source rectangle array specifies a capture rectangle 
  11333.             relative to the digital video origin.  MCI_DGV_PUT_SOURCE is only 
  11334.             valid with the MCI_DGV_RECORD flag. 
  11335.  
  11336.             Note:  The size of the origin (or source) can be found using 
  11337.                    MCI_DGV_STATUS_VIDEO_X_EXTENT and 
  11338.                    MCI_DGV_STATUS_VIDEO_Y_EXTENT. 
  11339.  
  11340.     MCI_DGV_PUT_DESTINATION 
  11341.             Indicates that the rc field of the data structure identified by 
  11342.             pParam2 contains a display rectangle array specifying the offset 
  11343.             and visible extent of the digital video within the client window. 
  11344.             The destination rectangle array specifies a clipping rectangle for 
  11345.             frames relative to the lower-left corner of the window.  When 
  11346.             MCI_DGV_PUT_DESTINATION is used with MCI_DGV_RECORD, the size of 
  11347.             the movie to be recorded is determined and the position is ignored. 
  11348.             When MCI_DGV_PUT_DESTINATION is used with MCI_DGV_MONITOR, the size 
  11349.             and position of the monitor video relative to the monitor window is 
  11350.             determined.  If MCI_DGV_PUT_DESTINATION is used without either 
  11351.             MCI_DGV_MONITOR or MCI_DGV_RECORD, the size and position of the 
  11352.             playback video relative to the playback window is determined. 
  11353.  
  11354.     MCI_DGV_PUT_WINDOW_MOVE 
  11355.             Indicates that the rc field of the data structure identified by 
  11356.             pParam2 contains a display rectangle specifying the window 
  11357.             position.  All four values (X1 Y1 X2 Y2) must be specified, but X2 
  11358.             and Y2 are ignored unless the MCI_DGV_PUT_WINDOW_SIZE parameter is 
  11359.             also specified. 
  11360.  
  11361.     MCI_DGV_PUT_WINDOW_SIZE 
  11362.             Indicates that the rc field of the data structure identified by 
  11363.             pParam2 contains a display rectangle that specifies the size of the 
  11364.             window. All four values (X1 Y1 X2 Y2) must be specified. 
  11365.  
  11366.     MCI_DGV_RECORD 
  11367.             Specifies the source and destination rectangles for video capture. 
  11368.  
  11369.             Note:  For recording, the source rectangle specifies the portion of 
  11370.                    the image to be captured and the destination rectangle 
  11371.                    specifies the size of the video to be recorded, thereby 
  11372.                    indicating the scaling to be applied to the source 
  11373.                    rectangle. 
  11374.  
  11375.     MCI_DGV_MONITOR 
  11376.             This flag specifies the window size and position for the monitor 
  11377.             window. 
  11378.  
  11379.     Video Overlay Extensions 
  11380.  
  11381.     The following additional flags apply to video overlay devices: 
  11382.  
  11383.     MCI_OVLY_PUT_RECT 
  11384.             Specifies that the rc field of the data structure identified by 
  11385.             pParam2 contains a valid display rectangle. 
  11386.  
  11387.     MCI_OVLY_PUT_DESTINATION 
  11388.             Indicates that the rc field of the data structure identified by 
  11389.             pParam2 contains a display rectangle for the video overlay within 
  11390.             the client window.  The destination rectangle specifies a clipping 
  11391.             rectangle for frames relative to the lower-left corner of the 
  11392.             window.  If MCI_OVLY_PUT_DESTINATION is specified without the 
  11393.             MCI_OVLY_PUT_RECT flag specified, the default destination is set. 
  11394.  
  11395.     MCI_OVLY_PUT_SOURCE 
  11396.             Indicates that the rc field of the data structure identified by 
  11397.             pParam2 contains a display rectangle for the analog video source. 
  11398.             The source rectangle specifies the portion of the incoming video 
  11399.             signal which will be displayed.  If MCI_OVLY_PUT_SOURCE is 
  11400.             specified without the MCI_OVLY_PUT_RECT flag specified, the default 
  11401.             source is set. 
  11402.  
  11403.     MCI_OVLY_PUT_WINDOW_MOVE 
  11404.             Indicates that the rc field of the data structure identified by 
  11405.             pParam2 contains a display rectangle, where the X1 Y1 coordinates 
  11406.             specify the new location of the default video window.  The 
  11407.             coordinates are relative to the parent window.  The X2 and Y2 
  11408.             coordinates are ignored unless the MCI_OVLY_PUT_WINDOW_SIZE flag is 
  11409.             also specified. 
  11410.  
  11411.     MCI_OVLY_PUT_WINDOW_SIZE 
  11412.             Indicates that the rc field of the data structure identified by 
  11413.             pParam2 contains a display rectangle.  The new default window size 
  11414.             is calculated to ((X2 - X1) + 1) and ((Y2 - Y1) + 1). 
  11415.  
  11416.  pParam2 (PMCI_VID_RECT_PARMS) 
  11417.     A pointer to the MCI_VID_RECT_PARMS data structure.  Devices with 
  11418.     additional parameters might replace this pointer with a pointer to a 
  11419.     device-specific data structure as follows: 
  11420.  
  11421.     PMCI_DGV_RECT_PARMS 
  11422.             A pointer to the MCI_DGV_RECT_PARMS data structure. 
  11423.  
  11424.     PMCI_OVLY_RECT_PARMS 
  11425.             A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  11426.  
  11427.  rc (ULONG) 
  11428.     Return codes indicating success or type of failure: 
  11429.  
  11430.     MCIERR_SUCCESS 
  11431.             MMPM/2 command completed successfully. 
  11432.  
  11433.     MCIERR_OUT_OF_MEMORY 
  11434.             System out of memory. 
  11435.  
  11436.     MCIERR_INVALID_DEVICE_ID 
  11437.             Invalid device ID given. 
  11438.  
  11439.     MCIERR_MISSING_PARAMETER 
  11440.             Missing parameter for this command. 
  11441.  
  11442.     MCIERR_DRIVER 
  11443.             Internal MMPM/2 driver error. 
  11444.  
  11445.     MCIERR_INVALID_FLAG 
  11446.             Invalid flag specified for this command. 
  11447.  
  11448.     MCIERR_MISSING_FLAG 
  11449.             Flag missing for this MMPM/2 command. 
  11450.  
  11451.     MCIERR_FLAGS_NOT_COMPATIBLE 
  11452.             Flags not compatible. 
  11453.  
  11454.     MCIERR_INSTANCE_INACTIVE 
  11455.             Instance inactive. 
  11456.  
  11457.  
  11458. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT - Remarks ΓòÉΓòÉΓòÉ
  11459.  
  11460. Not all devices support distorting the source rectangle image to fit the 
  11461. display rectangle. The MCI_GETDEVCAPS message (MCI_DGV_GETDEVCAPS_CAN_DISTORT) 
  11462. can be used to determine whether the device supports distorting. 
  11463.  
  11464. If either the width or the height of the rectangle specified with 
  11465. MCI_DGV_PUT_DESTINATION and MCI_DGV_RECORD is not a multiple of eight, then 
  11466. that value is rounded to the nearest multiple of eight.  If the device cannot 
  11467. distort and the rectangle specified with MCI_DGV_PUT_SOURCE and MCI_DGV_RECORD 
  11468. is not an integral multiple of the rectangle specified with 
  11469. MCI_DGV_PUT_DESTINATION and MCI_DGV_RECORD, the source and destination 
  11470. rectangles are adjusted to find the nearest values that will make the source be 
  11471. an integral multiple of the destination and the destination be a multiple of 
  11472. eight. 
  11473.  
  11474. When the device is monitoring while recording or monitoring while cued for 
  11475. input, the video seen in the monitor window will be the content in the record 
  11476. source rectangle set with MCI_DGV_PUT_SOURCE and MCI_DGV_RECORD.  When the 
  11477. device is monitoring while not recording or cued for input, the video seen in 
  11478. the monitor window will be the maximum source (full video extent of the capture 
  11479. card reported by MCI_DGV_STATUS_X_EXTENT and MCI_DGV_STATUS_Y_EXTENT), and an 
  11480. animated, dashed-line rectangle will be drawn on the monitor window to indicate 
  11481. the relative position of the record source rectangle. 
  11482.  
  11483. If both window move and size flags are specified, then all four window 
  11484. coordinates must be provided. 
  11485.  
  11486. An application-supplied alternate video window will not be affected by the 
  11487. window move or size flags. 
  11488.  
  11489.  
  11490. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT - Related Messages ΓòÉΓòÉΓòÉ
  11491.  
  11492.      MCI_WINDOW 
  11493.  
  11494.  
  11495. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT - Example Code ΓòÉΓòÉΓòÉ
  11496.  
  11497. The following code illustrates how to set the source and destination rectangle 
  11498. arrays for the transformation of the video. 
  11499.  
  11500.   MCI_DGV_RECT_PARMS mciRectParms;
  11501.   USHORT  usUserParm = 0;
  11502.   ULONG   ulReturn;
  11503.  
  11504.   /* An example of changing the SOURCE area to a
  11505.      sub-rectangle of the total input */
  11506.   memset (&mciRectParms, 0x00, sizeof (MCI_DGV_RECT_PARMS));
  11507.   mciRectParms.hwndCallback = hwndNotify;
  11508.   mciRectParms.rc.xLeft   = lX1;
  11509.   mciRectParms.rc.yBottom = lY1;
  11510.   mciRectParms.rc.xRight  = lX2;
  11511.   mciRectParms.rc.yTop    = lY2;
  11512.  
  11513.  
  11514.   ulReturn = mciSendCommand(usDeviceID, MCI_PUT,
  11515.                  MCI_WAIT | MCI_DGV_PUT_RECT |
  11516.                  MCI_DGV_RECORD | MCI_DGV_PUT_SOURCE,
  11517.                  (PVOID)&mciRectParms,
  11518.                  usUserParm);
  11519.  
  11520.  
  11521. ΓòÉΓòÉΓòÉ <hidden> MCI_PUT - Topics ΓòÉΓòÉΓòÉ
  11522.  
  11523. Select an item: 
  11524.  
  11525. Description
  11526. Returns
  11527. Remarks
  11528. Related Messages
  11529. Example Code
  11530. Glossary
  11531.  
  11532.  
  11533. ΓòÉΓòÉΓòÉ 7.31. MCI_RECORD ΓòÉΓòÉΓòÉ
  11534.  
  11535.  
  11536. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  11537.  
  11538.  ulParam1 (ULONG) 
  11539.     This parameter can contain any of the following flags: 
  11540.  
  11541.     MCI_NOTIFY 
  11542.             A notification message will be posted to the window specified in 
  11543.             the hwndCallback parameter of the data structure pointed to by the 
  11544.             pParam2 parameter.  The notification will be posted when the action 
  11545.             indicated by this message is completed or when an error occurs. 
  11546.  
  11547.     MCI_WAIT 
  11548.             Control is not to be returned until the action indicated by this 
  11549.             message is completed or an error occurs. 
  11550.  
  11551.     MCI_FROM 
  11552.             Indicates a starting position is included in the ulFrom field of 
  11553.             the data structure pointed to by pParam2. The units assigned to the 
  11554.             position values are specified with the MCI_SET_TIME_FORMAT flag of 
  11555.             the MCI_SET command.  If MCI_FROM is not specified, the starting 
  11556.             position defaults to the current location.  The ulFrom field refers 
  11557.             to a position in the destination media. 
  11558.  
  11559.     MCI_TO 
  11560.             Indicates an ending position is included in the ulTo field of the 
  11561.             data structure pointed to by pParam2.  The units assigned to the 
  11562.             position values are specified with the MCI_SET_TIME_FORMAT flag of 
  11563.             the MCI_SET command.  If MCI_TO is not specified, the record will 
  11564.             continue until a pause or stop message is received.  The ulTo field 
  11565.             refers to a position in the destination media. 
  11566.  
  11567.     MCI_RECORD_INSERT 
  11568.             Indicates that newly recorded information is to be inserted into 
  11569.             existing data at the current location.  Some devices, such as 
  11570.             non-file-oriented devices, do not support this. 
  11571.  
  11572.     MCI_RECORD_OVERWRITE 
  11573.             Indicates that recorded data is to overwrite existing data at the 
  11574.             current location.  Note that MCI_RECORD_INSERT and 
  11575.             MCI_RECORD_OVERWRITE are mutually exclusive. 
  11576.  
  11577.  
  11578. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD Parameter - pParam2 ΓòÉΓòÉΓòÉ
  11579.  
  11580.  pParam2 (PMCI_RECORD_PARMS) 
  11581.     A pointer to the MCI_RECORD_PARMS data structure. 
  11582.  
  11583.  
  11584. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD Return Value - rc ΓòÉΓòÉΓòÉ
  11585.  
  11586.  rc (ULONG) 
  11587.     Return codes indicating success or type of failure: 
  11588.  
  11589.     MCIERR_SUCCESS 
  11590.             If the function succeeds, 0 is returned. 
  11591.  
  11592.     MCIERR_INVALID_DEVICE_ID 
  11593.             The device ID is not valid. 
  11594.  
  11595.     MCIERR_INSTANCE_INACTIVE 
  11596.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  11597.             device context active. 
  11598.  
  11599.     MCIERR_MISSING_FLAG 
  11600.             A required flag is missing. 
  11601.  
  11602.     MCIERR_UNSUPPORTED_FLAG 
  11603.             Given flag is unsupported for this device. 
  11604.  
  11605.     MCIERR_INVALID_CALLBACK_HANDLE 
  11606.             Given callback handle is invalid. 
  11607.  
  11608.     MCIERR_UNSUPPORTED_FUNCTION 
  11609.             Unsupported function. 
  11610.  
  11611.     MCIERR_INVALID_FLAG 
  11612.             Flag (ulParam1) is invalid. 
  11613.  
  11614.     MCIERR_FLAGS_NOT_COMPATIBLE 
  11615.             Flags cannot be used together. 
  11616.  
  11617.     MCIERR_FILE_NOT_FOUND 
  11618.             File has not been loaded. 
  11619.  
  11620.     MCIERR_MISSING_PARAMETER 
  11621.             Required parameter is missing. 
  11622.  
  11623.     MCIERR_OUTOFRANGE 
  11624.             The value supplied in the ulFrom field of the data structure 
  11625.             identified by pParam2 is greater than the size of the element. 
  11626.  
  11627.     MCIERR_OUT_OF_MEMORY 
  11628.             There is insufficient memory to complete the requested action. 
  11629.  
  11630.     MCIERR_TARGET_DEVICE_FULL 
  11631.             The target device is full. 
  11632.  
  11633.  
  11634. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD - Description ΓòÉΓòÉΓòÉ
  11635.  
  11636. This message causes the device to start recording. Before you send this 
  11637. message, it is recommended that you issue MCI_ACQUIREDEVICE with the 
  11638. MCI_EXCLUSIVE_INSTANCE flag set.  This will lock the device context and prevent 
  11639. it from being made inactive. 
  11640.  
  11641. Digital Video Specific 
  11642.  
  11643. This message initiates real-time recording of motion video with simultaneous 
  11644. audio capture. Any options, such as frame rate, quality, and so on, in effect 
  11645. at the time recording starts are applied to the recording and cannot be changed 
  11646. during the recording process.  If changes to recording options or parameters 
  11647. are attempted during recording, MCIERR_INVALID_MODE is returned. All recording 
  11648. operations entirely replace the contents of the device element at the starting 
  11649. location. MCI_FROM is not supported and MCI_TO is used only as an indication of 
  11650. the length of the recording to be performed. 
  11651.  
  11652.  ulParam1 (ULONG) 
  11653.     This parameter can contain any of the following flags: 
  11654.  
  11655.     MCI_NOTIFY 
  11656.             A notification message will be posted to the window specified in 
  11657.             the hwndCallback parameter of the data structure pointed to by the 
  11658.             pParam2 parameter.  The notification will be posted when the action 
  11659.             indicated by this message is completed or when an error occurs. 
  11660.  
  11661.     MCI_WAIT 
  11662.             Control is not to be returned until the action indicated by this 
  11663.             message is completed or an error occurs. 
  11664.  
  11665.     MCI_FROM 
  11666.             Indicates a starting position is included in the ulFrom field of 
  11667.             the data structure pointed to by pParam2. The units assigned to the 
  11668.             position values are specified with the MCI_SET_TIME_FORMAT flag of 
  11669.             the MCI_SET command.  If MCI_FROM is not specified, the starting 
  11670.             position defaults to the current location.  The ulFrom field refers 
  11671.             to a position in the destination media. 
  11672.  
  11673.     MCI_TO 
  11674.             Indicates an ending position is included in the ulTo field of the 
  11675.             data structure pointed to by pParam2.  The units assigned to the 
  11676.             position values are specified with the MCI_SET_TIME_FORMAT flag of 
  11677.             the MCI_SET command.  If MCI_TO is not specified, the record will 
  11678.             continue until a pause or stop message is received.  The ulTo field 
  11679.             refers to a position in the destination media. 
  11680.  
  11681.     MCI_RECORD_INSERT 
  11682.             Indicates that newly recorded information is to be inserted into 
  11683.             existing data at the current location.  Some devices, such as 
  11684.             non-file-oriented devices, do not support this. 
  11685.  
  11686.     MCI_RECORD_OVERWRITE 
  11687.             Indicates that recorded data is to overwrite existing data at the 
  11688.             current location.  Note that MCI_RECORD_INSERT and 
  11689.             MCI_RECORD_OVERWRITE are mutually exclusive. 
  11690.  
  11691.  pParam2 (PMCI_RECORD_PARMS) 
  11692.     A pointer to the MCI_RECORD_PARMS data structure. 
  11693.  
  11694.  rc (ULONG) 
  11695.     Return codes indicating success or type of failure: 
  11696.  
  11697.     MCIERR_SUCCESS 
  11698.             If the function succeeds, 0 is returned. 
  11699.  
  11700.     MCIERR_INVALID_DEVICE_ID 
  11701.             The device ID is not valid. 
  11702.  
  11703.     MCIERR_INSTANCE_INACTIVE 
  11704.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  11705.             device context active. 
  11706.  
  11707.     MCIERR_MISSING_FLAG 
  11708.             A required flag is missing. 
  11709.  
  11710.     MCIERR_UNSUPPORTED_FLAG 
  11711.             Given flag is unsupported for this device. 
  11712.  
  11713.     MCIERR_INVALID_CALLBACK_HANDLE 
  11714.             Given callback handle is invalid. 
  11715.  
  11716.     MCIERR_UNSUPPORTED_FUNCTION 
  11717.             Unsupported function. 
  11718.  
  11719.     MCIERR_INVALID_FLAG 
  11720.             Flag (ulParam1) is invalid. 
  11721.  
  11722.     MCIERR_FLAGS_NOT_COMPATIBLE 
  11723.             Flags cannot be used together. 
  11724.  
  11725.     MCIERR_FILE_NOT_FOUND 
  11726.             File has not been loaded. 
  11727.  
  11728.     MCIERR_MISSING_PARAMETER 
  11729.             Required parameter is missing. 
  11730.  
  11731.     MCIERR_OUTOFRANGE 
  11732.             The value supplied in the ulFrom field of the data structure 
  11733.             identified by pParam2 is greater than the size of the element. 
  11734.  
  11735.     MCIERR_OUT_OF_MEMORY 
  11736.             There is insufficient memory to complete the requested action. 
  11737.  
  11738.     MCIERR_TARGET_DEVICE_FULL 
  11739.             The target device is full. 
  11740.  
  11741.  
  11742. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD - Remarks ΓòÉΓòÉΓòÉ
  11743.  
  11744. The units of the MCI_FROM and MCI_TO parameters must be supplied in the 
  11745. currently selected time format. See the MCI_SET message and the 
  11746. MCI_SET_TIME_FORMAT flag for more information. 
  11747.  
  11748. Only devices that return TRUE to the MCI_GETDEVCAPS_CAN_RECORD flag of the 
  11749. MCI_GETDEVCAPS command support this message. 
  11750.  
  11751. A STOP is performed implicitly if the device is not stopped when MCI_RECORD is 
  11752. issued.  If a STOP is issued during recording, MCI_NOTIFY_ABORTED will be 
  11753. returned.  If an MCI_TO position is specified on a record operation and the 
  11754. record operation completes, MCI_NOTIFY_SUCCESSFUL is returned. 
  11755.  
  11756.  
  11757. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD - Default Processing ΓòÉΓòÉΓòÉ
  11758.  
  11759. If MCI_FROM is not specified, the starting position defaults to the current 
  11760. location. 
  11761.  
  11762. If MCI_TO is not specified, the record continues until a pause or stop message 
  11763. is received. 
  11764.  
  11765. MCI_RECORD_INSERT is the default for devices that support insert. 
  11766. MCI_RECORD_OVERWRITE is the default for devices that do not support insert. 
  11767.  
  11768. Waveaudio Specific 
  11769.  
  11770. Although insert is supported by the waveaudio device, the default is overwrite 
  11771. for recording operations. 
  11772.  
  11773.  
  11774. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD - Related Messages ΓòÉΓòÉΓòÉ
  11775.  
  11776.      MCI_PAUSE 
  11777.      MCI_RESUME 
  11778.      MCI_SAVE 
  11779.      MCI_STOP 
  11780.  
  11781.  
  11782. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD - Example Code ΓòÉΓòÉΓòÉ
  11783.  
  11784. The following code illustrates how to start recording at the 5 second position 
  11785. in the current device element, and then overwrite existing data by recording 
  11786. for 5 seconds. 
  11787.  
  11788.  USHORT            usDeviceID;
  11789.  MCI_RECORD_PARMS  mrp;
  11790.  
  11791.   /* Start recording at the 5 second position in the current device
  11792.      element, and record for 5 seconds, overwriting existing data.     */
  11793.  
  11794.   /* Assumes time format set to milliseconds                           */
  11795.  
  11796.  mrp.hwndCallback = hwndMyWindow;
  11797.                   /* Assign hwndCallback the handle to the PM Window   */
  11798.  mrp.ulFrom = (ULONG)  5000;                 /* Record from position   */
  11799.  mrp.ulTo = (ULONG) 10000;                   /* Record to position     */
  11800.  
  11801.  mciSendCommand(usDeviceID,                  /* Device ID              */
  11802.                 MCI_RECORD,                  /* MCI record message     */
  11803.                 MCI_NOTIFY | MCI_FROM |
  11804.                 MCI_TO |MCI_RECORD_OVERWRITE,
  11805.                                              /* Flags for this message */
  11806.                 (ULONG) &mrp,                /* Data structure         */
  11807.                 0);                          /* No user parm           */
  11808.  
  11809.  
  11810. ΓòÉΓòÉΓòÉ <hidden> MCI_RECORD - Topics ΓòÉΓòÉΓòÉ
  11811.  
  11812. Select an item: 
  11813.  
  11814. Description
  11815. Returns
  11816. Remarks
  11817. Default Processing
  11818. Related Messages
  11819. Example Code
  11820. Glossary
  11821.  
  11822.  
  11823. ΓòÉΓòÉΓòÉ 7.32. MCI_REDO ΓòÉΓòÉΓòÉ
  11824.  
  11825.  
  11826. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  11827.  
  11828.  ulParam1 (ULONG) 
  11829.     This parameter can contain any of the following flags: 
  11830.  
  11831.     MCI_NOTIFY 
  11832.             A notification message will be posted to the window specified in 
  11833.             the hwndCallback parameter of the data structure pointed to by the 
  11834.             pParam2 parameter.  The notification will be posted when the action 
  11835.             indicated by this message is completed or when an error occurs. 
  11836.  
  11837.     MCI_WAIT 
  11838.             Control is not to be returned until the action indicated by this 
  11839.             message is completed or an error occurs. 
  11840.  
  11841.  
  11842. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO Parameter - pParam2 ΓòÉΓòÉΓòÉ
  11843.  
  11844.  pParam2 (PMCI_GENERIC_PARMS) 
  11845.     A pointer to the default media control interface parameter data structure. 
  11846.  
  11847.  
  11848. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO Return Value - rc ΓòÉΓòÉΓòÉ
  11849.  
  11850.  rc (ULONG) 
  11851.     Return codes indicating success or type of failure: 
  11852.  
  11853.     MCIERR_SUCCESS 
  11854.             Redo was successful. 
  11855.  
  11856.     MCIERR_INVALID_DEVICE_ID 
  11857.             The device ID is not valid. 
  11858.  
  11859.     MCIERR_INVALID_FLAG 
  11860.             Flag (ulParam1) is invalid. 
  11861.  
  11862.     MCIERR_INSTANCE_INACTIVE 
  11863.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  11864.             the device context active. 
  11865.  
  11866.     MCIERR_INVALID_CALLBACK_HANDLE 
  11867.             Given callback handle is invalid. 
  11868.  
  11869.     MCIERR_CANNOT_REDO 
  11870.             Redo is not possible in the current state. 
  11871.  
  11872.  
  11873. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO - Description ΓòÉΓòÉΓòÉ
  11874.  
  11875. This message redoes the cut, paste, or delete operation most recently undone by 
  11876. MCI_UNDO. MCI_REDO should immediately follow MCI_UNDO; otherwise, editing 
  11877. actions performed after MCI_UNDO (and before a corresponding MCI_REDO) will be 
  11878. lost when MCI_REDO is issued. The media position is at the beginning of the 
  11879. file after a redo operation. 
  11880.  
  11881.  ulParam1 (ULONG) 
  11882.     This parameter can contain any of the following flags: 
  11883.  
  11884.     MCI_NOTIFY 
  11885.             A notification message will be posted to the window specified in 
  11886.             the hwndCallback parameter of the data structure pointed to by the 
  11887.             pParam2 parameter.  The notification will be posted when the action 
  11888.             indicated by this message is completed or when an error occurs. 
  11889.  
  11890.     MCI_WAIT 
  11891.             Control is not to be returned until the action indicated by this 
  11892.             message is completed or an error occurs. 
  11893.  
  11894.  pParam2 (PMCI_GENERIC_PARMS) 
  11895.     A pointer to the default media control interface parameter data structure. 
  11896.  
  11897.  rc (ULONG) 
  11898.     Return codes indicating success or type of failure: 
  11899.  
  11900.     MCIERR_SUCCESS 
  11901.             Redo was successful. 
  11902.  
  11903.     MCIERR_INVALID_DEVICE_ID 
  11904.             The device ID is not valid. 
  11905.  
  11906.     MCIERR_INVALID_FLAG 
  11907.             Flag (ulParam1) is invalid. 
  11908.  
  11909.     MCIERR_INSTANCE_INACTIVE 
  11910.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  11911.             the device context active. 
  11912.  
  11913.     MCIERR_INVALID_CALLBACK_HANDLE 
  11914.             Given callback handle is invalid. 
  11915.  
  11916.     MCIERR_CANNOT_REDO 
  11917.             Redo is not possible in the current state. 
  11918.  
  11919.  
  11920. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO - Remarks ΓòÉΓòÉΓòÉ
  11921.  
  11922. MCI_REDO operates on one editing action (for example, cut, delete, paste) at a 
  11923. time.  If there are no more possible actions to be redone (that is, the file is 
  11924. in the state where the last change was made), then MCIERR_CANNOT_REDO is 
  11925. returned. 
  11926.  
  11927. Note:  The redo operation is unlimited corresponding to the number of undo 
  11928.        operations that have been performed. However, after a save, any previous 
  11929.        editing actions are cleared and cannot be redone. 
  11930.  
  11931.  Not all devices support this message. To determine if a device supports 
  11932.  MCI_REDO, issue MCI_GETDEVCAPS. 
  11933.  
  11934.  If the redo operation interrupts an in-progress operation, such as play, the 
  11935.  command is aborted and an MM_MCINOTIFY message will be sent to the 
  11936.  application. 
  11937.  
  11938.  
  11939. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO - Related Messages ΓòÉΓòÉΓòÉ
  11940.  
  11941.      MCI_COPY 
  11942.      MCI_CUT 
  11943.      MCI_PASTE 
  11944.      MCI_DELETE 
  11945.      MCI_UNDO 
  11946.  
  11947.  
  11948. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO - Example Code ΓòÉΓòÉΓòÉ
  11949.  
  11950. The following code illustrates redoing the last editing action most recently 
  11951. undone. 
  11952.  
  11953.  
  11954.     USHORT               usDeviceID;
  11955.     MCI_EDIT_PARMS       mep;
  11956.  
  11957.     mep.hwndCallback = hwndMyWindow;
  11958.  
  11959.     mciSendCommand(usDeviceID,
  11960.                     MCI_REDO,
  11961.                     MCI_NOTIFY,
  11962.                     &mep,
  11963.                     0 );
  11964.  
  11965.  
  11966. ΓòÉΓòÉΓòÉ <hidden> MCI_REDO - Topics ΓòÉΓòÉΓòÉ
  11967.  
  11968. Select an item: 
  11969.  
  11970. Description
  11971. Returns
  11972. Remarks
  11973. Related Messages
  11974. Example Code
  11975. Glossary
  11976.  
  11977.  
  11978. ΓòÉΓòÉΓòÉ 7.33. MCI_RELEASEDEVICE ΓòÉΓòÉΓòÉ
  11979.  
  11980.  
  11981. ΓòÉΓòÉΓòÉ <hidden> MCI_RELEASEDEVICE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  11982.  
  11983.  ulParam1 (ULONG) 
  11984.     This parameter can contain the following flags: 
  11985.  
  11986.     MCI_NOTIFY 
  11987.             A notification message will be posted to the window specified in 
  11988.             the hwndCallback parameter of the data structure pointed to by the 
  11989.             pParam2 parameter.  The notification will be posted when the action 
  11990.             indicated by this message is completed or when an error occurs. 
  11991.  
  11992.     MCI_WAIT 
  11993.             Control is not to be returned until the action indicated by this 
  11994.             message is completed or an error occurs. 
  11995.  
  11996.     MCI_RETURN_RESOURCE 
  11997.             This flag releases a device instance from the active state and 
  11998.             makes the next available inactive device instance active.  The 
  11999.             device instance will not be made active again unless 
  12000.             MCI_ACQUIREDEVICE is issued for this device instance, or no other 
  12001.             application is using the device. If the instance is already 
  12002.             inactive, the message is ignored. 
  12003.  
  12004.  
  12005. ΓòÉΓòÉΓòÉ <hidden> MCI_RELEASEDEVICE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  12006.  
  12007.  pParam2 (PMCI_GENERIC_PARMS) 
  12008.     A pointer to the default media control interface parameter data structure. 
  12009.  
  12010.  
  12011. ΓòÉΓòÉΓòÉ <hidden> MCI_RELEASEDEVICE Return Value - rc ΓòÉΓòÉΓòÉ
  12012.  
  12013.  rc (ULONG) 
  12014.     Return codes indicating success or type of failure: 
  12015.  
  12016.     MCIERR_SUCCESS 
  12017.             If the function succeeds, 0 is returned. 
  12018.  
  12019.     MCIERR_INVALID_DEVICE_ID 
  12020.             The device ID is not valid. 
  12021.  
  12022.     MCIERR_INVALID_FLAG 
  12023.             Flag (ulParam1) is invalid. 
  12024.  
  12025.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12026.             Flags cannot be used together. 
  12027.  
  12028.  
  12029. ΓòÉΓòÉΓòÉ <hidden> MCI_RELEASEDEVICE - Description ΓòÉΓòÉΓòÉ
  12030.  
  12031. This message is sent to release the exclusive use of physical device resources 
  12032. by a group or device instance. 
  12033.  
  12034.  ulParam1 (ULONG) 
  12035.     This parameter can contain the following flags: 
  12036.  
  12037.     MCI_NOTIFY 
  12038.             A notification message will be posted to the window specified in 
  12039.             the hwndCallback parameter of the data structure pointed to by the 
  12040.             pParam2 parameter.  The notification will be posted when the action 
  12041.             indicated by this message is completed or when an error occurs. 
  12042.  
  12043.     MCI_WAIT 
  12044.             Control is not to be returned until the action indicated by this 
  12045.             message is completed or an error occurs. 
  12046.  
  12047.     MCI_RETURN_RESOURCE 
  12048.             This flag releases a device instance from the active state and 
  12049.             makes the next available inactive device instance active.  The 
  12050.             device instance will not be made active again unless 
  12051.             MCI_ACQUIREDEVICE is issued for this device instance, or no other 
  12052.             application is using the device. If the instance is already 
  12053.             inactive, the message is ignored. 
  12054.  
  12055.  pParam2 (PMCI_GENERIC_PARMS) 
  12056.     A pointer to the default media control interface parameter data structure. 
  12057.  
  12058.  rc (ULONG) 
  12059.     Return codes indicating success or type of failure: 
  12060.  
  12061.     MCIERR_SUCCESS 
  12062.             If the function succeeds, 0 is returned. 
  12063.  
  12064.     MCIERR_INVALID_DEVICE_ID 
  12065.             The device ID is not valid. 
  12066.  
  12067.     MCIERR_INVALID_FLAG 
  12068.             Flag (ulParam1) is invalid. 
  12069.  
  12070.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12071.             Flags cannot be used together. 
  12072.  
  12073.  
  12074. ΓòÉΓòÉΓòÉ <hidden> MCI_RELEASEDEVICE - Remarks ΓòÉΓòÉΓòÉ
  12075.  
  12076. Releasing a device does not always cause the device to be passed to another 
  12077. application.  Ownership of a device is changed only when the MCI_ACQUIREDEVICE 
  12078. message is used, or if another application closes or opens a device. 
  12079.  
  12080.  
  12081. ΓòÉΓòÉΓòÉ <hidden> MCI_RELEASEDEVICE - Example Code ΓòÉΓòÉΓòÉ
  12082.  
  12083. The following code illustrates how to acquire and then release a device. 
  12084.  
  12085.   MCI_GENERIC_PARMS mciGenericParms;
  12086.                                         /* Info data structure for cmd */
  12087.   USHORT   usDeviceID;
  12088.   HWND     hwndMyWindow;
  12089.  
  12090.            /* Assign hwndCallback the handle to the PM Window routine */
  12091.  
  12092.   mciGenericParms.hwndCallback = hwndMyWindow;
  12093.  
  12094.  
  12095.    /* Acquire the device for exclusive access and assume it is inactive */
  12096.  
  12097.   mciSendCommand(usDeviceID,            /* Device ID                   */
  12098.        MCI_ACQUIREDEVICE,               /* MCI acquire device message  */
  12099.        MCI_NOTIFY |  MCI_EXCLUSIVE,
  12100.                                         /* Flags for this message      */
  12101.        (PVOID) &mciGenericParms,        /* Data structure              */
  12102.        0);                              /* No user parm                */
  12103.  
  12104.      /* Device will be exclusively acquired once MM_MCIPASSDEVICE      */
  12105.         message is received indicating MCI_GAINING_USE                 */
  12106.  
  12107.      /* Perform whatever operations require exclusive access to device */
  12108.  
  12109.    mciSendCommand(usDeviceID,           /* Device ID                   */
  12110.      MCI_RELEASEDEVICE,                 /* MCI release device message  */
  12111.      MCI_NOTIFY,                        /* Flag for this message       */
  12112.      (PVOID) &mciGenericParms,          /* Data structure              */
  12113.      0);                                /* No user parm                */
  12114.  
  12115.  
  12116. ΓòÉΓòÉΓòÉ <hidden> MCI_RELEASEDEVICE - Topics ΓòÉΓòÉΓòÉ
  12117.  
  12118. Select an item: 
  12119.  
  12120. Description
  12121. Returns
  12122. Remarks
  12123. Example Code
  12124. Glossary
  12125.  
  12126.  
  12127. ΓòÉΓòÉΓòÉ 7.34. MCI_RESTORE ΓòÉΓòÉΓòÉ
  12128.  
  12129.  
  12130. ΓòÉΓòÉΓòÉ <hidden> MCI_RESTORE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  12131.  
  12132.  ulParam1 (ULONG) 
  12133.     This parameter can contain any of the following flags: 
  12134.  
  12135.     MCI_NOTIFY 
  12136.             A notification message will be posted to the window specified in 
  12137.             the hwndCallback parameter of the data structure pointed to by the 
  12138.             pParam2 parameter.  The notification will be posted when the action 
  12139.             indicated by this message is completed or when an error occurs. 
  12140.  
  12141.     MCI_WAIT 
  12142.             Control is not to be returned until the action indicated by this 
  12143.             message is completed or an error occurs. 
  12144.  
  12145.     MCI_RESTORE_SRC_RECT 
  12146.             The SrcRect field of the MCI_RESTORE_PARMS data structure contains 
  12147.             a rectangle specifying the area to be restored from the capture 
  12148.             device element.  If this flag is not specified, the entire image is 
  12149.             restored. 
  12150.  
  12151.     MCI_RESTORE_DEST_RECT 
  12152.             The DestRect field of the MCI_RESTORE_PARMS data structure contains 
  12153.             a rectangle specifying the destination area of the window to be 
  12154.             restored.  If this flag is not specified, the destination size is 
  12155.             assumed to be the same as the image size in device coordinates 
  12156.             placed at the lower-left corner of the window. 
  12157.  
  12158.  
  12159. ΓòÉΓòÉΓòÉ <hidden> MCI_RESTORE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  12160.  
  12161.  pParam2 (PMCI_RESTORE_PARMS) 
  12162.     A pointer to an MCI_RESTORE_PARMS data structure. 
  12163.  
  12164.  
  12165. ΓòÉΓòÉΓòÉ <hidden> MCI_RESTORE Return Value - rc ΓòÉΓòÉΓòÉ
  12166.  
  12167.  rc (ULONG) 
  12168.     This function fails if nothing is currently in the capture device element. 
  12169.  
  12170.     Return codes indicating success or type of failure: 
  12171.  
  12172.     MCIERR_SUCCESS 
  12173.             MMPM/2 command completed successfully. 
  12174.  
  12175.     MCIERR_OUT_OF_MEMORY 
  12176.             System out of memory. 
  12177.  
  12178.     MCIERR_INVALID_DEVICE_ID 
  12179.             Invalid device ID given. 
  12180.  
  12181.     MCIERR_MISSING_PARAMETER 
  12182.             Missing parameter for this command. 
  12183.  
  12184.     MCIERR_DRIVER 
  12185.             Internal MMPM/2 driver error. 
  12186.  
  12187.     MCIERR_INVALID_FLAG 
  12188.             Invalid flag specified for this command. 
  12189.  
  12190.     MCIERR_UNSUPPORTED_FLAG 
  12191.             Flag not supported by this MMPM/2 driver for this command. 
  12192.  
  12193.     MCIERR_INSTANCE_INACTIVE 
  12194.             The device is currently inactive. 
  12195.  
  12196.     MCIERR_OVLY_INVALID_RECT 
  12197.             An invalid rectangle was specified. 
  12198.  
  12199.     MCIERR_OVLY_NOT_AVAILABLE 
  12200.             The requested action is not available.  (For example, video has 
  12201.             been set off.) 
  12202.  
  12203.  
  12204. ΓòÉΓòÉΓòÉ <hidden> MCI_RESTORE - Description ΓòÉΓòÉΓòÉ
  12205.  
  12206. This message causes a video device to transfer an image from the element buffer 
  12207. to the display surface.  To ensure that the image is displayed, the device 
  12208. automatically performs a freeze operation where necessary. 
  12209.  
  12210.  ulParam1 (ULONG) 
  12211.     This parameter can contain any of the following flags: 
  12212.  
  12213.     MCI_NOTIFY 
  12214.             A notification message will be posted to the window specified in 
  12215.             the hwndCallback parameter of the data structure pointed to by the 
  12216.             pParam2 parameter.  The notification will be posted when the action 
  12217.             indicated by this message is completed or when an error occurs. 
  12218.  
  12219.     MCI_WAIT 
  12220.             Control is not to be returned until the action indicated by this 
  12221.             message is completed or an error occurs. 
  12222.  
  12223.     MCI_RESTORE_SRC_RECT 
  12224.             The SrcRect field of the MCI_RESTORE_PARMS data structure contains 
  12225.             a rectangle specifying the area to be restored from the capture 
  12226.             device element.  If this flag is not specified, the entire image is 
  12227.             restored. 
  12228.  
  12229.     MCI_RESTORE_DEST_RECT 
  12230.             The DestRect field of the MCI_RESTORE_PARMS data structure contains 
  12231.             a rectangle specifying the destination area of the window to be 
  12232.             restored.  If this flag is not specified, the destination size is 
  12233.             assumed to be the same as the image size in device coordinates 
  12234.             placed at the lower-left corner of the window. 
  12235.  
  12236.  pParam2 (PMCI_RESTORE_PARMS) 
  12237.     A pointer to an MCI_RESTORE_PARMS data structure. 
  12238.  
  12239.  rc (ULONG) 
  12240.     This function fails if nothing is currently in the capture device element. 
  12241.  
  12242.     Return codes indicating success or type of failure: 
  12243.  
  12244.     MCIERR_SUCCESS 
  12245.             MMPM/2 command completed successfully. 
  12246.  
  12247.     MCIERR_OUT_OF_MEMORY 
  12248.             System out of memory. 
  12249.  
  12250.     MCIERR_INVALID_DEVICE_ID 
  12251.             Invalid device ID given. 
  12252.  
  12253.     MCIERR_MISSING_PARAMETER 
  12254.             Missing parameter for this command. 
  12255.  
  12256.     MCIERR_DRIVER 
  12257.             Internal MMPM/2 driver error. 
  12258.  
  12259.     MCIERR_INVALID_FLAG 
  12260.             Invalid flag specified for this command. 
  12261.  
  12262.     MCIERR_UNSUPPORTED_FLAG 
  12263.             Flag not supported by this MMPM/2 driver for this command. 
  12264.  
  12265.     MCIERR_INSTANCE_INACTIVE 
  12266.             The device is currently inactive. 
  12267.  
  12268.     MCIERR_OVLY_INVALID_RECT 
  12269.             An invalid rectangle was specified. 
  12270.  
  12271.     MCIERR_OVLY_NOT_AVAILABLE 
  12272.             The requested action is not available.  (For example, video has 
  12273.             been set off.) 
  12274.  
  12275.  
  12276. ΓòÉΓòÉΓòÉ <hidden> MCI_RESTORE - Remarks ΓòÉΓòÉΓòÉ
  12277.  
  12278. The image is restored from the device element in an overlay video device. It is 
  12279. also restored from the still image device element of a digital video device. 
  12280.  
  12281. In the case of overlay video and digital video devices implemented on 
  12282. dual-plane video hardware, the image is restored to the video or image layer. 
  12283.  
  12284. Devices capable of scaling the image will attempt to do so in order to 
  12285. transform the output to the destination rectangle.  If a destination rectangle 
  12286. is not specified or the device is not capable of scaling the image, the output 
  12287. is clipped to the destination rectangle as required. 
  12288.  
  12289.  
  12290. ΓòÉΓòÉΓòÉ <hidden> MCI_RESTORE - Example Code ΓòÉΓòÉΓòÉ
  12291.  
  12292. The following code illustrates how to cause a video device to transfer an image 
  12293. from the image device element buffer to the display surface. 
  12294.  
  12295.   MCI_IMAGE_PARMS mciImageParms;
  12296.   MCI_RESTORE_PARMS mciRestoreParms;
  12297.   USHORT  usUserParm = 0;
  12298.   ULONG   ulReturn;
  12299.  
  12300.   /* Without a rectangle */
  12301.   memset (&mciRestoreParms, 0x00, sizeof (MCI_RESTORE_PARMS));
  12302.   mciRestoreParms.hwndCallback = hwndNotify;
  12303.   mciRestoreParms.DestRect   = 0;
  12304.  
  12305.   ulReturn = mciSendCommand(usDeviceID, MCI_RESTORE,
  12306.                  MCI_WAIT,
  12307.                  (PVOID)&mciRestoreParms,
  12308.                  usUserParm);
  12309.  
  12310.   /* With a rectangle */
  12311.   memset (&mciRestoreParms, 0x00, sizeof (MCI_RESTORE_PARMS));
  12312.   mciRestoreParms.hwndCallback = hwndNotify;
  12313.   mciRestoreParms.DestRect.xLeft   = lX1;
  12314.   mciRestoreParms.DestRect.yBottom = lY1;
  12315.   mciRestoreParms.DestRect.xRight  = lX2;
  12316.   mciRestoreParms.DestRect.yTop    = lY2;
  12317.  
  12318.   ulReturn = mciSendCommand(usDeviceID, MCI_RESTORE,
  12319.                  MCI_WAIT | MCI_RESTORE_DEST_RECT,
  12320.                  (PVOID)&mciRestoreParms,
  12321.                  usUserParm);
  12322.  
  12323.  
  12324. ΓòÉΓòÉΓòÉ <hidden> MCI_RESTORE - Topics ΓòÉΓòÉΓòÉ
  12325.  
  12326. Select an item: 
  12327.  
  12328. Description
  12329. Returns
  12330. Remarks
  12331. Example Code
  12332. Glossary
  12333.  
  12334.  
  12335. ΓòÉΓòÉΓòÉ 7.35. MCI_RESUME ΓòÉΓòÉΓòÉ
  12336.  
  12337.  
  12338. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  12339.  
  12340.  ulParam1 (ULONG) 
  12341.     This parameter can contain any of the following flags: 
  12342.  
  12343.     MCI_NOTIFY 
  12344.             A notification message will be posted to the window specified in 
  12345.             the hwndCallback parameter of the data structure pointed to by the 
  12346.             pParam2 parameter.  The notification will be posted when the action 
  12347.             indicated by this message is completed or when an error occurs. 
  12348.  
  12349.     MCI_WAIT 
  12350.             Control is not to be returned until the action indicated by this 
  12351.             message is completed or an error occurs. 
  12352.  
  12353.  
  12354. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME Parameter - pParam2 ΓòÉΓòÉΓòÉ
  12355.  
  12356.  pParam2 (PMCI_GENERIC_PARMS) 
  12357.     A pointer to the default media control interface parameter data structure. 
  12358.  
  12359.  
  12360. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME Return Value - rc ΓòÉΓòÉΓòÉ
  12361.  
  12362.  rc (ULONG) 
  12363.     Return codes indicating success or type of failure: 
  12364.  
  12365.     MCIERR_SUCCESS 
  12366.             If the function succeeds, 0 is returned. 
  12367.  
  12368.     MCIERR_INVALID_DEVICE_ID 
  12369.             The device context is not valid. 
  12370.  
  12371.     MCIERR_INSTANCE_INACTIVE 
  12372.             The device context is currently inactive. Issue MCI_ACQUIREDEVICE 
  12373.             to make device context active. 
  12374.  
  12375.     MCIERR_UNSUPPORTED_FLAG 
  12376.             Specified flag is unsupported for this device. 
  12377.  
  12378.     MCIERR_INVALID_CALLBACK_HANDLE 
  12379.             Specified callback handle is invalid. 
  12380.  
  12381.     MCIERR_UNSUPPORTED_FUNCTION 
  12382.             Unsupported function. 
  12383.  
  12384.     MCIERR_INVALID_FLAG 
  12385.             Flag (ulParam1) is invalid. 
  12386.  
  12387.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12388.             Flags cannot be used together. 
  12389.  
  12390.  
  12391. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME - Description ΓòÉΓòÉΓòÉ
  12392.  
  12393. This message is sent to resume playing or recording from a paused state. 
  12394.  
  12395.  ulParam1 (ULONG) 
  12396.     This parameter can contain any of the following flags: 
  12397.  
  12398.     MCI_NOTIFY 
  12399.             A notification message will be posted to the window specified in 
  12400.             the hwndCallback parameter of the data structure pointed to by the 
  12401.             pParam2 parameter.  The notification will be posted when the action 
  12402.             indicated by this message is completed or when an error occurs. 
  12403.  
  12404.     MCI_WAIT 
  12405.             Control is not to be returned until the action indicated by this 
  12406.             message is completed or an error occurs. 
  12407.  
  12408.  pParam2 (PMCI_GENERIC_PARMS) 
  12409.     A pointer to the default media control interface parameter data structure. 
  12410.  
  12411.  rc (ULONG) 
  12412.     Return codes indicating success or type of failure: 
  12413.  
  12414.     MCIERR_SUCCESS 
  12415.             If the function succeeds, 0 is returned. 
  12416.  
  12417.     MCIERR_INVALID_DEVICE_ID 
  12418.             The device context is not valid. 
  12419.  
  12420.     MCIERR_INSTANCE_INACTIVE 
  12421.             The device context is currently inactive. Issue MCI_ACQUIREDEVICE 
  12422.             to make device context active. 
  12423.  
  12424.     MCIERR_UNSUPPORTED_FLAG 
  12425.             Specified flag is unsupported for this device. 
  12426.  
  12427.     MCIERR_INVALID_CALLBACK_HANDLE 
  12428.             Specified callback handle is invalid. 
  12429.  
  12430.     MCIERR_UNSUPPORTED_FUNCTION 
  12431.             Unsupported function. 
  12432.  
  12433.     MCIERR_INVALID_FLAG 
  12434.             Flag (ulParam1) is invalid. 
  12435.  
  12436.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12437.             Flags cannot be used together. 
  12438.  
  12439.  
  12440. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME - Remarks ΓòÉΓòÉΓòÉ
  12441.  
  12442. The previously specified to parameter remains in effect. 
  12443.  
  12444.  
  12445. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME - Related Messages ΓòÉΓòÉΓòÉ
  12446.  
  12447.      MCI_RECORD 
  12448.      MCI_PAUSE 
  12449.      MCI_PLAY 
  12450.  
  12451.  
  12452. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME - Example Code ΓòÉΓòÉΓòÉ
  12453.  
  12454. The following code illustrates how to resume a paused operation. 
  12455.  
  12456.    USHORT            usDeviceID;
  12457.    HWND              hwndMyWindow;
  12458.    MCI_GENERIC_PARMS mciGenericParms;           /* Generic message
  12459.                                                    parms structure       */
  12460.  
  12461.     /* Resume the previous operation that was paused                     */
  12462.  
  12463.     /* Assign hwndCallback the handle to the PM Window routine           */
  12464.    mciGenericParms.hwndCallback = hwndMyWindow;
  12465.  
  12466.    mciSendCommand( usDeviceID,                  /* Device ID             */
  12467.                    MCI_RESUME,                  /* MCI resume message    */
  12468.                    MCI_NOTIFY,                  /* Flag for this message */
  12469.                    (PVOID) &mciGenericParms,    /* Data structure        */
  12470.                    0);                          /* No user parm          */
  12471.  
  12472.  
  12473. ΓòÉΓòÉΓòÉ <hidden> MCI_RESUME - Topics ΓòÉΓòÉΓòÉ
  12474.  
  12475. Select an item: 
  12476.  
  12477. Description
  12478. Returns
  12479. Remarks
  12480. Related Messages
  12481. Example Code
  12482. Glossary
  12483.  
  12484.  
  12485. ΓòÉΓòÉΓòÉ 7.36. MCI_REWIND ΓòÉΓòÉΓòÉ
  12486.  
  12487.  
  12488. ΓòÉΓòÉΓòÉ <hidden> MCI_REWIND Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  12489.  
  12490.  ulParam1 (ULONG) 
  12491.     This parameter can contain any of the following standard flags: 
  12492.  
  12493.     MCI_NOTIFY 
  12494.             A notification message will be posted to the window specified in 
  12495.             the hwndCallback parameter of the data structure pointed to by the 
  12496.             pParam2 parameter.  The notification will be posted when the action 
  12497.             indicated by this message is completed or when an error occurs. 
  12498.  
  12499.     MCI_WAIT 
  12500.             Control is not to be returned until the action indicated by this 
  12501.             message is completed or an error occurs. 
  12502.  
  12503.  
  12504. ΓòÉΓòÉΓòÉ <hidden> MCI_REWIND Parameter - pParam2 ΓòÉΓòÉΓòÉ
  12505.  
  12506.  pParam2 (PMCI_GENERIC_PARMS) 
  12507.     A pointer to the default media control interface parameter data structure. 
  12508.  
  12509.  
  12510. ΓòÉΓòÉΓòÉ <hidden> MCI_REWIND Return Value - rc ΓòÉΓòÉΓòÉ
  12511.  
  12512.  rc (ULONG) 
  12513.     Return codes indicating success or type of failure: 
  12514.  
  12515.     MCIERR_SUCCESS 
  12516.             If the function succeeds. 
  12517.  
  12518.     MCIERR_INVALID_DEVICE_ID 
  12519.             The device ID is not valid. 
  12520.  
  12521.     MCIERR_DEVICE_LOCKED 
  12522.             The device is acquired for exclusive use. 
  12523.  
  12524.     MCIERR_INVALID_FLAG 
  12525.             Flag (ulParam1) is invalid. 
  12526.  
  12527.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12528.             Flags cannot be used together. 
  12529.  
  12530.     MCIERR_INVALID_CALLBACK_HANDLE 
  12531.             The callback handle given is not correct. 
  12532.  
  12533.  
  12534. ΓòÉΓòÉΓòÉ <hidden> MCI_REWIND - Description ΓòÉΓòÉΓòÉ
  12535.  
  12536. This message seeks the media to the starting position. This position is defined 
  12537. as the first "playable" area, beyond any header or table-of-contents data. 
  12538.  
  12539.  ulParam1 (ULONG) 
  12540.     This parameter can contain any of the following standard flags: 
  12541.  
  12542.     MCI_NOTIFY 
  12543.             A notification message will be posted to the window specified in 
  12544.             the hwndCallback parameter of the data structure pointed to by the 
  12545.             pParam2 parameter.  The notification will be posted when the action 
  12546.             indicated by this message is completed or when an error occurs. 
  12547.  
  12548.     MCI_WAIT 
  12549.             Control is not to be returned until the action indicated by this 
  12550.             message is completed or an error occurs. 
  12551.  
  12552.  pParam2 (PMCI_GENERIC_PARMS) 
  12553.     A pointer to the default media control interface parameter data structure. 
  12554.  
  12555.  rc (ULONG) 
  12556.     Return codes indicating success or type of failure: 
  12557.  
  12558.     MCIERR_SUCCESS 
  12559.             If the function succeeds. 
  12560.  
  12561.     MCIERR_INVALID_DEVICE_ID 
  12562.             The device ID is not valid. 
  12563.  
  12564.     MCIERR_DEVICE_LOCKED 
  12565.             The device is acquired for exclusive use. 
  12566.  
  12567.     MCIERR_INVALID_FLAG 
  12568.             Flag (ulParam1) is invalid. 
  12569.  
  12570.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12571.             Flags cannot be used together. 
  12572.  
  12573.     MCIERR_INVALID_CALLBACK_HANDLE 
  12574.             The callback handle given is not correct. 
  12575.  
  12576.  
  12577. ΓòÉΓòÉΓòÉ <hidden> MCI_REWIND - Remarks ΓòÉΓòÉΓòÉ
  12578.  
  12579. This message is the equivalent of the MCI_SEEK message with the MCI_TO_START 
  12580. flag specified. 
  12581.  
  12582.  
  12583. ΓòÉΓòÉΓòÉ <hidden> MCI_REWIND - Example Code ΓòÉΓòÉΓòÉ
  12584.  
  12585. The following code illustrates how to seek the media to the starting position. 
  12586.  
  12587.    USHORT            usDeviceID;
  12588.    HWND              hwndMyWindow;
  12589.    MCI_GENERIC_PARMS mciGenericParms;
  12590.                              /* Generic message parms structure */
  12591.  
  12592.    /* Assign hwndCallback the handle to the PM Window routine */
  12593.    mciGenericParms.hwndCallback = hwndMyWindow;
  12594.  
  12595.    mciSendCommand( usDeviceID,               /* Device ID             */
  12596.                    MCI_REWIND,               /* MCI rewind message    */
  12597.                    MCI_NOTIFY,               /* Flag for this message */
  12598.                    (PVOID) &mciGenericParms, /* Data structure        */
  12599.                    0);                       /* No user parm          */
  12600.  
  12601.  
  12602. ΓòÉΓòÉΓòÉ <hidden> MCI_REWIND - Topics ΓòÉΓòÉΓòÉ
  12603.  
  12604. Select an item: 
  12605.  
  12606. Description
  12607. Returns
  12608. Remarks
  12609. Example Code
  12610. Glossary
  12611.  
  12612.  
  12613. ΓòÉΓòÉΓòÉ 7.37. MCI_SAVE ΓòÉΓòÉΓòÉ
  12614.  
  12615.  
  12616. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  12617.  
  12618.  ulParam1 (ULONG) 
  12619.     This parameter can contain any of the following flags: 
  12620.  
  12621.     MCI_NOTIFY 
  12622.             A notification message will be posted to the window specified in 
  12623.             the hwndCallback parameter of the data structure pointed to by the 
  12624.             pParam2 parameter.  The notification will be posted when the action 
  12625.             indicated by this message is completed or when an error occurs. 
  12626.  
  12627.     MCI_WAIT 
  12628.             Control is not to be returned until the action indicated by this 
  12629.             message is completed or an error occurs. 
  12630.  
  12631.     MCI_SAVE_FILE 
  12632.             The pszFileName field of the MCI_SAVE_PARMS data structure contains 
  12633.             the destination file name. If a file name is not specified, the 
  12634.             original file opened or the most recently loaded file name is 
  12635.             assumed. 
  12636.  
  12637.     Digital Video Extensions 
  12638.  
  12639.     The following additional flags apply to digital video devices. 
  12640.  
  12641.     MCI_DGV_SAVE_VIDEO_FILE 
  12642.             Saves the motion video device element. 
  12643.  
  12644.     MCI_DGV_SAVE_IMAGE_FILE 
  12645.             Saves the still image device element. 
  12646.  
  12647.  
  12648. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  12649.  
  12650.  pParam2 (PMCI_SAVE_PARMS) 
  12651.     A pointer to the MCI_SAVE_PARMS data structure. 
  12652.  
  12653.  
  12654. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE Return Value - rc ΓòÉΓòÉΓòÉ
  12655.  
  12656.  rc (ULONG) 
  12657.     Return codes indicating success or type of failure: 
  12658.  
  12659.     MCIERR_SUCCESS 
  12660.             MMPM/2 command completed successfully. 
  12661.  
  12662.     MCIERR_OUT_OF_MEMORY 
  12663.             System out of memory. 
  12664.  
  12665.     MCIERR_INVALID_DEVICE_ID 
  12666.             Invalid device ID given. 
  12667.  
  12668.     MCIERR_MISSING_PARAMETER 
  12669.             Missing parameter for this command. 
  12670.  
  12671.     MCIERR_DRIVER 
  12672.             Internal MMPM/2 driver error. 
  12673.  
  12674.     MCIERR_INVALID_FLAG 
  12675.             Invalid flag specified for this command. 
  12676.  
  12677.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12678.             Flags cannot be used together. 
  12679.  
  12680.     MCIERR_INVALID_CALLBACK_HANDLE 
  12681.             Given callback handle is invalid. 
  12682.  
  12683.     MCIERR_INSTANCE_INACTIVE 
  12684.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  12685.             the device context active. 
  12686.  
  12687.     MCIERR_TARGET_DEVICE_FULL 
  12688.             Target device is full. 
  12689.  
  12690.     MCIERR_FILE_NOT_FOUND 
  12691.             File not found. 
  12692.  
  12693.     MCIERR_FILE_NOT_SAVED 
  12694.             File not saved. 
  12695.  
  12696.     MCIERR_FILE_ATTRIBUTE 
  12697.             File attribute error. 
  12698.  
  12699.     MMIOERR_NEED_NEW_FILE_NAME 
  12700.             The file cannot be saved with its original name because there are 
  12701.             other processes that have outstanding paste operations using the 
  12702.             data in this file.  Saving the file with its original name will 
  12703.             cause this data to be lost. 
  12704.  
  12705.     MMIOERR_CLIPBRD_ACTIVE 
  12706.             The file cannot be saved with its original name because there is an 
  12707.             active reference to its data in the clipboard.  Saving the file 
  12708.             with its original name will cause this data to be lost. 
  12709.  
  12710.  
  12711. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE - Description ΓòÉΓòÉΓòÉ
  12712.  
  12713. This message saves the current file. 
  12714.  
  12715.  ulParam1 (ULONG) 
  12716.     This parameter can contain any of the following flags: 
  12717.  
  12718.     MCI_NOTIFY 
  12719.             A notification message will be posted to the window specified in 
  12720.             the hwndCallback parameter of the data structure pointed to by the 
  12721.             pParam2 parameter.  The notification will be posted when the action 
  12722.             indicated by this message is completed or when an error occurs. 
  12723.  
  12724.     MCI_WAIT 
  12725.             Control is not to be returned until the action indicated by this 
  12726.             message is completed or an error occurs. 
  12727.  
  12728.     MCI_SAVE_FILE 
  12729.             The pszFileName field of the MCI_SAVE_PARMS data structure contains 
  12730.             the destination file name. If a file name is not specified, the 
  12731.             original file opened or the most recently loaded file name is 
  12732.             assumed. 
  12733.  
  12734.     Digital Video Extensions 
  12735.  
  12736.     The following additional flags apply to digital video devices. 
  12737.  
  12738.     MCI_DGV_SAVE_VIDEO_FILE 
  12739.             Saves the motion video device element. 
  12740.  
  12741.     MCI_DGV_SAVE_IMAGE_FILE 
  12742.             Saves the still image device element. 
  12743.  
  12744.  pParam2 (PMCI_SAVE_PARMS) 
  12745.     A pointer to the MCI_SAVE_PARMS data structure. 
  12746.  
  12747.  rc (ULONG) 
  12748.     Return codes indicating success or type of failure: 
  12749.  
  12750.     MCIERR_SUCCESS 
  12751.             MMPM/2 command completed successfully. 
  12752.  
  12753.     MCIERR_OUT_OF_MEMORY 
  12754.             System out of memory. 
  12755.  
  12756.     MCIERR_INVALID_DEVICE_ID 
  12757.             Invalid device ID given. 
  12758.  
  12759.     MCIERR_MISSING_PARAMETER 
  12760.             Missing parameter for this command. 
  12761.  
  12762.     MCIERR_DRIVER 
  12763.             Internal MMPM/2 driver error. 
  12764.  
  12765.     MCIERR_INVALID_FLAG 
  12766.             Invalid flag specified for this command. 
  12767.  
  12768.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12769.             Flags cannot be used together. 
  12770.  
  12771.     MCIERR_INVALID_CALLBACK_HANDLE 
  12772.             Given callback handle is invalid. 
  12773.  
  12774.     MCIERR_INSTANCE_INACTIVE 
  12775.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  12776.             the device context active. 
  12777.  
  12778.     MCIERR_TARGET_DEVICE_FULL 
  12779.             Target device is full. 
  12780.  
  12781.     MCIERR_FILE_NOT_FOUND 
  12782.             File not found. 
  12783.  
  12784.     MCIERR_FILE_NOT_SAVED 
  12785.             File not saved. 
  12786.  
  12787.     MCIERR_FILE_ATTRIBUTE 
  12788.             File attribute error. 
  12789.  
  12790.     MMIOERR_NEED_NEW_FILE_NAME 
  12791.             The file cannot be saved with its original name because there are 
  12792.             other processes that have outstanding paste operations using the 
  12793.             data in this file.  Saving the file with its original name will 
  12794.             cause this data to be lost. 
  12795.  
  12796.     MMIOERR_CLIPBRD_ACTIVE 
  12797.             The file cannot be saved with its original name because there is an 
  12798.             active reference to its data in the clipboard.  Saving the file 
  12799.             with its original name will cause this data to be lost. 
  12800.  
  12801.  
  12802. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE - Remarks ΓòÉΓòÉΓòÉ
  12803.  
  12804. If the MCI_SAVE_FILE flag is specified, the current device element is saved 
  12805. with the file name specified in the pszFileName field.  The file specified in 
  12806. pszFileName becomes the currently loaded element. If the MCI_SAVE_FILE flag is 
  12807. not specified or if pszFileName is NULL, MCI_SAVE saves to the currently loaded 
  12808. element name of the device instance.  If the current element has not been 
  12809. named, MCIERR_FILE_NOT_FOUND is returned. 
  12810.  
  12811. This command is supported by devices which return TRUE to the 
  12812. MCI_GETDEVCAPS_CAN_SAVE query using the MCI_GETDEVCAPS message. 
  12813.  
  12814. The IBM sequencer device does not currently support this message. 
  12815.  
  12816. Digital Video Specific 
  12817.  
  12818. The MCI_DGV_SAVE_VIDEO_FILE flag is not required; saving a video file is 
  12819. assumed by default. An edited AVI movie file cannot always be saved with its 
  12820. original name. If the clipboard contains a reference to data that would be 
  12821. erased during saving or if another instance of the digital video device has a 
  12822. pending paste operation that depends on this data, the file cannot be saved 
  12823. unless a new file name is provided. If a new file name is not provided, the 
  12824. MMIOERR_NEED_NEW_FILENAME error is returned by the AVI I/O procedure and a 
  12825. temporary file is created to save the edited movie.  The AVI I/O procedure 
  12826. alerts the user by displaying a message with the name of the temporary file 
  12827. that was created.  The application must reopen the temporary file to use the 
  12828. edited version of the movie. 
  12829.  
  12830. During setup for MMIOM_SAVE processing, the AVI I/O procedure checks to see if 
  12831. the clipboard contains data from a file and if the file needs to be rewritten. 
  12832. If these conditions are true, the save operation is aborted and the 
  12833. MMIOERR_CLIPBRD_ACTIVE error is returned. 
  12834.  
  12835.  
  12836. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE - Related Messages ΓòÉΓòÉΓòÉ
  12837.  
  12838.      MCI_LOAD 
  12839.      MCI_OPEN 
  12840.      MCI_RECORD 
  12841.  
  12842.  
  12843. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE - Example Code ΓòÉΓòÉΓòÉ
  12844.  
  12845. The following code illustrates how to save a device element to a new file and 
  12846. receive notification upon completion. 
  12847.  
  12848.  
  12849.  USHORT               usDeviceID;
  12850.  HWND                 hwndMyWindow;
  12851.  MCI_SAVE_PARMS       msp;
  12852.  
  12853.  /* Assign hwndCallback the handle to the PM Window                    */
  12854.  
  12855.  msp.hwndCallback = hwndMyWindow;
  12856.  
  12857.  
  12858.  msp.pszFileName = (PVOID) "movie.avi";      /* File name to save      */
  12859.  
  12860.  mciSendCommand( usDeviceID,                 /* Device ID              */
  12861.    MCI_SAVE,                                 /* MCI save message       */
  12862.    MCI_NOTIFY | MCI_SAVE_VIDEO_FILE,
  12863.                                              /* Flags for this message */
  12864.    (PVOID) &msp,                             /* Data structure         */
  12865.    0);                                       /* No user parm           */
  12866.  
  12867.  
  12868. ΓòÉΓòÉΓòÉ <hidden> MCI_SAVE - Topics ΓòÉΓòÉΓòÉ
  12869.  
  12870. Select an item: 
  12871.  
  12872. Description
  12873. Returns
  12874. Remarks
  12875. Related Messages
  12876. Example Code
  12877. Glossary
  12878.  
  12879.  
  12880. ΓòÉΓòÉΓòÉ 7.38. MCI_SEEK ΓòÉΓòÉΓòÉ
  12881.  
  12882.  
  12883. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  12884.  
  12885.  ulParam1 (ULONG) 
  12886.     This parameter can contain any of the following flags: 
  12887.  
  12888.     MCI_NOTIFY 
  12889.             A notification message will be posted to the window specified in 
  12890.             the hwndCallback parameter of the data structure pointed to by the 
  12891.             pParam2 parameter.  The notification will be posted when the action 
  12892.             indicated by this message is completed or when an error occurs. 
  12893.  
  12894.     MCI_WAIT 
  12895.             Control is not to be returned until the action indicated by this 
  12896.             message is completed or an error occurs. 
  12897.  
  12898.     MCI_TO 
  12899.             This flag indicates that the ulTo field of the MCI_SEEK_PARMS data 
  12900.             structure specifies the ending position of the seek operation. If 
  12901.             the ulTo position is beyond the end of the media or segment, an 
  12902.             MCIERR_OUTOFRANGE error is returned. 
  12903.  
  12904.     MCI_TO_START 
  12905.             This flag causes the device to seek to the first playable position 
  12906.             on the media.  This is not necessarily position 0. 
  12907.  
  12908.     MCI_TO_END 
  12909.             This flag causes the device to seek to the end of the media. 
  12910.  
  12911.     Digital Video Extensions 
  12912.  
  12913.     The following additional flag applies to digital video drivers. 
  12914.  
  12915.     MCI_TO_NEAREST_IFRAME 
  12916.             This flag causes the device to seek to the nearest I-frame 
  12917.             preceding the point specified by MCI_TO. 
  12918.  
  12919.     Videodisc Extensions 
  12920.  
  12921.     The following additional flag applies to videodisc device drivers. 
  12922.  
  12923.     MCI_VD_SEEK_REVERSE 
  12924.             This flag initiates a seek backward. 
  12925.  
  12926.  
  12927. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK Parameter - pParam2 ΓòÉΓòÉΓòÉ
  12928.  
  12929.  pParam2 (PMCI_SEEK_PARMS) 
  12930.     A pointer to the MCI_SEEK_PARMS structure. 
  12931.  
  12932.  
  12933. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK Return Value - rc ΓòÉΓòÉΓòÉ
  12934.  
  12935.  rc (ULONG) 
  12936.     Return codes indicating success or type of failure: 
  12937.  
  12938.     MCIERR_SUCCESS 
  12939.             If the function succeeds, 0 is returned. 
  12940.  
  12941.     MCIERR_INVALID_DEVICE_ID 
  12942.             The device ID is not valid. 
  12943.  
  12944.     MCIERR_INSTANCE_INACTIVE 
  12945.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  12946.             the device context active. 
  12947.  
  12948.     MCIERR_MISSING_FLAG 
  12949.             A required flag is missing. 
  12950.  
  12951.     MCIERR_UNSUPPORTED_FLAG 
  12952.             Given flag is unsupported for this device. 
  12953.  
  12954.     MCIERR_INVALID_CALLBACK_HANDLE 
  12955.             Given callback handle is invalid. 
  12956.  
  12957.     MCIERR_HARDWARE 
  12958.             Device hardware error. 
  12959.  
  12960.     MCIERR_UNSUPPORTED_FUNCTION 
  12961.             Unsupported function. 
  12962.  
  12963.     MCIERR_INVALID_FLAG 
  12964.             Flag (ulParam1) is invalid. 
  12965.  
  12966.     MCIERR_FLAGS_NOT_COMPATIBLE 
  12967.             Flags cannot be used together. 
  12968.  
  12969.     MCIERR_FILE_NOT_FOUND 
  12970.             File has not been loaded. 
  12971.  
  12972.     MCIERR_MISSING_PARAMETER 
  12973.             Required parameter is missing. 
  12974.  
  12975.  
  12976. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK - Description ΓòÉΓòÉΓòÉ
  12977.  
  12978. This message is sent to change the current media position of the device. 
  12979.  
  12980.  ulParam1 (ULONG) 
  12981.     This parameter can contain any of the following flags: 
  12982.  
  12983.     MCI_NOTIFY 
  12984.             A notification message will be posted to the window specified in 
  12985.             the hwndCallback parameter of the data structure pointed to by the 
  12986.             pParam2 parameter.  The notification will be posted when the action 
  12987.             indicated by this message is completed or when an error occurs. 
  12988.  
  12989.     MCI_WAIT 
  12990.             Control is not to be returned until the action indicated by this 
  12991.             message is completed or an error occurs. 
  12992.  
  12993.     MCI_TO 
  12994.             This flag indicates that the ulTo field of the MCI_SEEK_PARMS data 
  12995.             structure specifies the ending position of the seek operation. If 
  12996.             the ulTo position is beyond the end of the media or segment, an 
  12997.             MCIERR_OUTOFRANGE error is returned. 
  12998.  
  12999.     MCI_TO_START 
  13000.             This flag causes the device to seek to the first playable position 
  13001.             on the media.  This is not necessarily position 0. 
  13002.  
  13003.     MCI_TO_END 
  13004.             This flag causes the device to seek to the end of the media. 
  13005.  
  13006.     Digital Video Extensions 
  13007.  
  13008.     The following additional flag applies to digital video drivers. 
  13009.  
  13010.     MCI_TO_NEAREST_IFRAME 
  13011.             This flag causes the device to seek to the nearest I-frame 
  13012.             preceding the point specified by MCI_TO. 
  13013.  
  13014.     Videodisc Extensions 
  13015.  
  13016.     The following additional flag applies to videodisc device drivers. 
  13017.  
  13018.     MCI_VD_SEEK_REVERSE 
  13019.             This flag initiates a seek backward. 
  13020.  
  13021.  pParam2 (PMCI_SEEK_PARMS) 
  13022.     A pointer to the MCI_SEEK_PARMS structure. 
  13023.  
  13024.  rc (ULONG) 
  13025.     Return codes indicating success or type of failure: 
  13026.  
  13027.     MCIERR_SUCCESS 
  13028.             If the function succeeds, 0 is returned. 
  13029.  
  13030.     MCIERR_INVALID_DEVICE_ID 
  13031.             The device ID is not valid. 
  13032.  
  13033.     MCIERR_INSTANCE_INACTIVE 
  13034.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  13035.             the device context active. 
  13036.  
  13037.     MCIERR_MISSING_FLAG 
  13038.             A required flag is missing. 
  13039.  
  13040.     MCIERR_UNSUPPORTED_FLAG 
  13041.             Given flag is unsupported for this device. 
  13042.  
  13043.     MCIERR_INVALID_CALLBACK_HANDLE 
  13044.             Given callback handle is invalid. 
  13045.  
  13046.     MCIERR_HARDWARE 
  13047.             Device hardware error. 
  13048.  
  13049.     MCIERR_UNSUPPORTED_FUNCTION 
  13050.             Unsupported function. 
  13051.  
  13052.     MCIERR_INVALID_FLAG 
  13053.             Flag (ulParam1) is invalid. 
  13054.  
  13055.     MCIERR_FLAGS_NOT_COMPATIBLE 
  13056.             Flags cannot be used together. 
  13057.  
  13058.     MCIERR_FILE_NOT_FOUND 
  13059.             File has not been loaded. 
  13060.  
  13061.     MCIERR_MISSING_PARAMETER 
  13062.             Required parameter is missing. 
  13063.  
  13064.  
  13065. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK - Remarks ΓòÉΓòÉΓòÉ
  13066.  
  13067. The parameters and flags for this message vary according to the selected 
  13068. device. The values of the MCI_TO parameters must be specified in the currently 
  13069. selected time format.  See the MCI_SET message and the MCI_SET_TIME_FORMAT flag 
  13070. for more information. 
  13071.  
  13072. The following example illustrates how the MCI_TO parameter is interpreted.  If 
  13073. a multimedia element is composed of samples; in a file with 100 samples, the 
  13074. samples are numbered from 0 to 99. If MCI_TO is specified as 0, the media is 
  13075. positioned at its start. If an MCI_PLAY message is issued, the first sample 
  13076. would be the first to play. If MCI_TO is specified as 99, the media is 
  13077. positioned before the last sample. Issuing an MCI_PLAY message would play the 
  13078. last sample. Specifying MCI_TO_END would position the media at the end of the 
  13079. file and the current position would be 100. At this point, if an MCI_PLAY 
  13080. message is issued, the command would return successfully without performing any 
  13081. operation. 
  13082.  
  13083.  
  13084. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK - Related Messages ΓòÉΓòÉΓòÉ
  13085.  
  13086.      MCI_SET 
  13087.  
  13088.  
  13089. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK - Example Code ΓòÉΓòÉΓòÉ
  13090.  
  13091. The following code illustrates how to seek to the beginning of the playable 
  13092. media for a device.  Note that this might not be zero for all device types. 
  13093.  
  13094.    USHORT           usDeviceID;
  13095.    MCI_SEEK_PARMS   mseekp;
  13096.  
  13097.    /* Seek the device to the beginning                                 */
  13098.  
  13099.    /* Assign hwndCallback the handle to the PM Window                  */
  13100.    mseekp.hwndCallback = hwndMyWindow;
  13101.  
  13102.    mciSendCommand( usDeviceID,              /* Device ID               */
  13103.     MCI_SEEK,                               /* MCI seek message        */
  13104.     MCI_NOTIFY | MCI_TO_START,              /* Flags for this message  */
  13105.     (PVOID) &mseekp,                        /* Data structure          */
  13106.     0);                                     /* No user parm            */
  13107.  
  13108.  
  13109. ΓòÉΓòÉΓòÉ <hidden> MCI_SEEK - Topics ΓòÉΓòÉΓòÉ
  13110.  
  13111. Select an item: 
  13112.  
  13113. Description
  13114. Returns
  13115. Remarks
  13116. Related Messages
  13117. Example Code
  13118. Glossary
  13119.  
  13120.  
  13121. ΓòÉΓòÉΓòÉ 7.39. MCI_SET ΓòÉΓòÉΓòÉ
  13122.  
  13123.  
  13124. ΓòÉΓòÉΓòÉ <hidden> MCI_SET Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  13125.  
  13126.  ulParam1 (ULONG) 
  13127.     This parameter can contain the following flags: 
  13128.  
  13129.     MCI_NOTIFY 
  13130.             A notification message will be posted to the window specified in 
  13131.             the hwndCallback parameter of the data structure pointed to by the 
  13132.             pParam2 parameter.  The notification will be posted when the action 
  13133.             indicated by this message is completed or when an error occurs. 
  13134.  
  13135.     MCI_WAIT 
  13136.             Control is not to be returned until the action indicated by this 
  13137.             message is completed or an error occurs. 
  13138.  
  13139.     MCI_SET_AUDIO 
  13140.             Sets audio attributes of the device instance.  A device with audio 
  13141.             capabilities might support both left and right channels. The 
  13142.             channel is specified in the ulAudio field of the data structure 
  13143.             specified by pParam2. The action to be taken is specified with the 
  13144.             flags MCI_SET_ON (which enables audio output at the current volume 
  13145.             level), MCI_SET_OFF (which mutes audio output), or MCI_SET_VOLUME. 
  13146.             Specifying MCI_SET_VOLUME does not enable audio output if 
  13147.             MCI_SET_OFF has been previously specified. 
  13148.  
  13149.             The following constants are defined for specifying the audio 
  13150.             channel in the ulAudio field. 
  13151.  
  13152.             MCI_SET_AUDIO_ALL 
  13153.                     Apply to both channels. 
  13154.  
  13155.             MCI_SET_AUDIO_LEFT 
  13156.                     Apply to the left channel only. 
  13157.  
  13158.             MCI_SET_AUDIO_RIGHT 
  13159.                     Apply to the right channel only. 
  13160.  
  13161.     MCI_SET_DOOR_OPEN 
  13162.             Instructs the device to open the media cover (if any).  This 
  13163.             message ejects the media from devices where appropriate. 
  13164.  
  13165.     MCI_SET_DOOR_CLOSED 
  13166.             Instructs the device to close the media cover (if any). 
  13167.  
  13168.     MCI_SET_DOOR_LOCK 
  13169.             Locks the media cover on the device (if any).  This disables manual 
  13170.             ejection of the media from the device. 
  13171.  
  13172.     MCI_SET_DOOR_UNLOCK 
  13173.             Unlocks the media cover on the device (if any).  This enables 
  13174.             manual ejection of the media from the device. 
  13175.  
  13176.     MCI_SET_VOLUME 
  13177.             Sets the level of audio as a percentage of the maximum audio level 
  13178.             as indicated in the ulLevel field.  The volume level that can be 
  13179.             set on the device might be of coarser granularity than that 
  13180.             specified.  In this case, the actual level can be obtained by 
  13181.             issuing a MCI_STATUS message.  If a number greater than 100 is 
  13182.             given, then 100 will be used as the volume setting, and no error 
  13183.             will be returned. See Examples section for an example using this 
  13184.             flag. 
  13185.  
  13186.     MCI_SET_VIDEO 
  13187.             Sets the video signal on or off. This flag must be used with either 
  13188.             MCI_SET_ON or MCI_SET_OFF. 
  13189.  
  13190.     MCI_SET_ON 
  13191.             Sets the video or specified audio channel on. 
  13192.  
  13193.     MCI_SET_OFF 
  13194.             Sets the video or specified audio channel off. 
  13195.  
  13196.     MCI_SET_SPEED_FORMAT 
  13197.             Specifies the speed format to be used on subsequent commands 
  13198.             contained in the ulSpeedFormat field. The following values can be 
  13199.             used: 
  13200.  
  13201.             MCI_FORMAT_PERCENTAGE 
  13202.                     Specifies the subsequent speed values as a percentage of 
  13203.                     the normal speed. 
  13204.  
  13205.             MCI_FORMAT_FPS 
  13206.                     Specifies the subsequent speed values in frames per second. 
  13207.                     This is the default setting. 
  13208.  
  13209.     MCI_SET_TIME_FORMAT 
  13210.             Uses a time format on subsequent commands.  A time-format parameter 
  13211.             must be indicated in the ulTimeFormat field of the data structure 
  13212.             specified by pParam2 if this flag is used.  The default is 
  13213.             MCI_FORMAT_MMTIME. The following time formats are generic; devices 
  13214.             can also provide device-specific time units: 
  13215.  
  13216.             MCI_FORMAT_MILLISECONDS 
  13217.                     Indicates that all subsequent commands that specify time 
  13218.                     will do so in milliseconds for both input and output. 
  13219.  
  13220.             MCI_FORMAT_MMTIME 
  13221.                     Indicates that all subsequent commands that specify time 
  13222.                     will do so in MMTIME units for both input and output.  This 
  13223.                     does not apply to command parameters that explicitly 
  13224.                     specify time units, such as milliseconds on ulOver. 
  13225.  
  13226.     MCI_OVER 
  13227.             Sets the vectored delay time to change the volume (or other 
  13228.             attribute) in milliseconds. 
  13229.  
  13230.     MCI_SET_ITEM 
  13231.             Indicates that the item to be set is specified in the ulItem field 
  13232.             of the data structure identified by pParam2. Any value associated 
  13233.             with the item is contained in the ulValue field.  Each item defines 
  13234.             the use (if any) and meaning of the value in the ulValue field. 
  13235.  
  13236.     Amplifier Mixer Extensions 
  13237.  
  13238.     The following additional flags apply to amplifier-mixer devices. Only one 
  13239.     audio attribute set function can be performed at a time with the MCI_SET 
  13240.     message. The treble, bass, balance, pitch, and gain flags require the 
  13241.     MCI_SET_AUDIO flag also to be set.  The level to be set for each function 
  13242.     is contained in the ulLevel field and represents a percentage of the 
  13243.     maximum available audio effect provided by the device.  Zero is the minimum 
  13244.     effect, while 100 is the maximum effect. 
  13245.  
  13246.     The following audio effects apply to the final output mix. Any 
  13247.     specification of a particular channel will be ignored. 
  13248.  
  13249.     MCI_AMP_SET_BALANCE 
  13250.             Sets the final output balance.  Zero is defined as full left 
  13251.             balance while one hundred is defined as full right balance. 
  13252.  
  13253.     MCI_AMP_SET_BASS 
  13254.             Controls bass as a percentage of the maximum achievable effect. 
  13255.  
  13256.     MCI_AMP_SET_GAIN 
  13257.             Sets the gain as a percentage of the maximum achievable effect. 
  13258.  
  13259.     MCI_AMP_SET_PITCH 
  13260.             Sets the pitch as a percentage of the maximum achievable effect. 
  13261.  
  13262.     MCI_AMP_SET_TREBLE 
  13263.             Controls treble as a percentage of the maximum achievable effect. 
  13264.  
  13265.     The following items can be specified for the ulItem field of the data 
  13266.     structure pointed to by pParam2 for use with the MCI_SET_ITEM flag: 
  13267.  
  13268.     MCI_AMP_SET_AUDIO 
  13269.             Used with the extended ampmix audio attribute flags. 
  13270.  
  13271.     MCI_AMP_SET_MONITOR 
  13272.             Used with the MCI_SET_ON or MCI_SET_OFF flags. It instructs the 
  13273.             ampmix device to monitor the currently selected connector. This 
  13274.             flag is typically used to listen to (monitor) a source while it is 
  13275.             being recorded by another device. 
  13276.  
  13277.     If the MCI_SET_ITEM flag is set and MCI_AMP_SET_AUDIO is in the ulItem 
  13278.     field of MCI_AMP_SET_PARMS, the connector specified in ulValue can be 
  13279.     modified with the following audio attribute flags in ulAudio and the 
  13280.     appropriate level in ulLevel. 
  13281.  
  13282.     MCI_AMP_SET_ALC 
  13283.             The ulLevel field in MCI_AMP_SET_PARMS contains the auto-level 
  13284.             control setting as a percentage (0-100) for the connector specified 
  13285.             in ulValue. 
  13286.  
  13287.     MCI_AMP_SET_BALANCE 
  13288.             The ulLevel field in MCI_AMP_SET_PARMS contains the balance setting 
  13289.             as a percentage (0-100) for the connector specified in ulValue. 
  13290.  
  13291.     MCI_AMP_SET_BASS 
  13292.             The ulLevel field in MCI_AMP_SET_PARMS contains the bass setting as 
  13293.             a percentage (0-100) for the connector specified in ulValue. 
  13294.  
  13295.     MCI_AMP_SET_CHORUS 
  13296.             The ulLevel field in MCI_AMP_SET_PARMS contains the chorus setting 
  13297.             as a percentage (0-100) for the connector specified in ulValue. 
  13298.  
  13299.     MCI_AMP_SET_CROSSOVER 
  13300.             The ulLevel field in MCI_AMP_SET_PARMS contains the crossover 
  13301.             setting as a percentage (0-100) for the connector specified in 
  13302.             ulValue. 
  13303.  
  13304.     MCI_AMP_SET_CUSTOM1 
  13305.             The ulLevel field in MCI_AMP_SET_PARMS contains the custom effect 
  13306.             setting as a percentage (0-100). for the connector specified in 
  13307.             ulValue. 
  13308.  
  13309.     MCI_AMP_SET_CUSTOM2 
  13310.             The ulLevel field in MCI_AMP_SET_PARMS contains the custom effect 
  13311.             setting as a percentage (0-100) for the connector specified in 
  13312.             ulValue. 
  13313.  
  13314.     MCI_AMP_SET_CUSTOM3 
  13315.             The ulLevel field in MCI_AMP_SET_PARMS contains the custom effect 
  13316.             setting as a percentage (0-100) for the connector specified in 
  13317.             ulValue. 
  13318.  
  13319.     MCI_AMP_SET_GAIN 
  13320.             The ulLevel field in MCI_AMP_SET_PARMS contains the gain setting as 
  13321.             a percentage (0-100) for the connector specified in ulValue. 
  13322.  
  13323.     MCI_AMP_SET_LOUDNESS 
  13324.             The ulLevel field in MCI_AMP_SET_PARMS contains the loudness 
  13325.             setting as a percentage (0-100) for the connector specified in 
  13326.             ulValue. 
  13327.  
  13328.     MCI_AMP_SET_MID 
  13329.             The ulLevel field in MCI_AMP_SET_PARMS contains the mid setting as 
  13330.             a percentage (0-100) for the connector specified in ulValue. 
  13331.  
  13332.     MCI_AMP_SET_MONITOR 
  13333.             The ulLevel field in MCI_AMP_SET_PARMS contains the monitor setting 
  13334.             as a percentage (0-100) for the connector specified in ulValue. 
  13335.  
  13336.     MCI_AMP_SET_MUTE 
  13337.             The ulLevel field in MCI_AMP_SET_PARMS contains the mute setting 
  13338.             for the connector specified in ulValue. 
  13339.  
  13340.     MCI_AMP_SET_PITCH 
  13341.             The ulLevel field in MCI_AMP_SET_PARMS contains the pitch setting 
  13342.             as a percentage (0-100) for the connector specified in ulValue. 
  13343.  
  13344.     MCI_AMP_SET_REVERB 
  13345.             The ulLevel field in MCI_AMP_SET_PARMS contains the reverb setting 
  13346.             as a percentage (0-100) for the connector specified in ulValue. 
  13347.  
  13348.     MCI_AMP_SET_STEREOENHANCE 
  13349.             The ulLevel field in MCI_AMP_SET_PARMS contains the stereo enhance 
  13350.             setting as a percentage (0-100) for the connector specified in 
  13351.             ulValue. 
  13352.  
  13353.     MCI_AMP_SET_TREBLE 
  13354.             The ulLevel field in MCI_AMP_SET_PARMS contains the treble setting 
  13355.             as a percentage (0-100) for the connector specified in ulValue. 
  13356.  
  13357.     MCI_AMP_SET_VOLUME 
  13358.             The ulLevel field in MCI_AMP_SET_PARMS contains the volume setting 
  13359.             as a percentage (0-100) for the connector specified in ulValue. 
  13360.  
  13361.     CD Audio Extensions 
  13362.  
  13363.     The following additional time formats are supported by CD audio devices and 
  13364.     can be specified as values for the ulTimeFormat field of the data structure 
  13365.     pointed to by pParam2 for use with the MCI_SET_TIME_FORMAT flag: 
  13366.  
  13367.     MCI_FORMAT_MSF 
  13368.             Indicates that all subsequent commands that specify time will do so 
  13369.             in mm:ss:ff where mm is minutes, ss is seconds and ff is frames. 
  13370.  
  13371.     MCI_FORMAT_TMSF 
  13372.             Indicates that all subsequent commands that specify time will do so 
  13373.             in tt:mm:ss:ff where tt is tracks, mm is minutes, ss is seconds, 
  13374.             and ff is frames. 
  13375.  
  13376.     CD/XA Extensions 
  13377.  
  13378.     The following additional flags apply to the CD/XA device. Only one channel 
  13379.     set function can be performed at a time with the MCI_SET message.  The 
  13380.     channel is specified in the ulChannel field of the data structure.  The 
  13381.     destination of the data in that channel is determined by the flags below. 
  13382.     Only one destination can be selected at a time with the MCI_SET message. 
  13383.     This message must be used with the MCI_CDXA_SET_CHANNEL flag and either the 
  13384.     MCI_SET_ON or MCI_SET_OFF flags. 
  13385.  
  13386.     MCI_CDXA_AUDIO_DEVICE 
  13387.             Sends the audio stream to the audio card. 
  13388.  
  13389.     MCI_CDXA_AUDIO_BUFFER 
  13390.             Sends the audio stream to a playlist. 
  13391.  
  13392.     MCI_CDXA_VIDEO_BUFFER 
  13393.             Sends the video stream to a playlist. 
  13394.  
  13395.     MCI_CDXA_DATA_BUFFER 
  13396.             Sends the data stream to a playlist. 
  13397.  
  13398.     Digital Video Extensions 
  13399.  
  13400.     The following additional items can be specified for the ulItem field of the 
  13401.     data structure pointed to by pParam2 for use with the MCI_SET_ITEM flag: 
  13402.  
  13403.     MCI_DGV_SET_VIDEO_COMPRESSION 
  13404.             Specifies the FOURCC compression format used for recording digital 
  13405.             motion video.  The values that can be specified are: 
  13406.  
  13407.             MCI_VID_COMP_ULTI 
  13408.                     Ultimotion 
  13409.  
  13410.             MCI_VID_COMP_DIB 
  13411.                     Raw (uncompressed format) 
  13412.  
  13413.             MCI_VID_COMP_RT21 
  13414.                     Indeo 2.1 
  13415.  
  13416.             MCI_VID_COMP_IV31 
  13417.                     Indeo 3.1 
  13418.  
  13419.             The default compression type is specified through the Setup page 
  13420.             for the digital video device.  The initial setting is 
  13421.             MCI_VID_COMP_ULTI until changed in the Setup. 
  13422.  
  13423.             Note:  Compressors are not available for FLIC, MPEG, and Indeo 3.2 
  13424.                    in this version of OS/2. 
  13425.  
  13426.     MCI_DGV_SET_RECORD_AUDIO 
  13427.             Sets audio soundtrack recording on or off. The default is MCI_ON. 
  13428.             This flag is used with MCI_ON or MCI_OFF. 
  13429.  
  13430.     MCI_DGV_SET_REF_INTERVAL 
  13431.             Sets the frequency at which reference frames (or I-frames) are to 
  13432.             be compressed in the output data stream. A value of 0 results in no 
  13433.             I-frames, a value of 1 causes every frame to be an I-frame, a value 
  13434.             of 2 causes every other frame to be an I-frame, and so on.  While 
  13435.             there is no upper bound on the reference frame interval, a 
  13436.             reference frame interval of 2 seconds or less produces the best 
  13437.             results.  The default reference frame interval is every 15th frame 
  13438.             (once a second at the default frame rate of 15 frames per second). 
  13439.  
  13440.     MCI_DGV_SET_BRIGHTNESS 
  13441.             Sets the brightness level in the range 0-100. 
  13442.  
  13443.     MCI_DGV_SET_CONTRAST 
  13444.             Sets the contrast level in the range 0-100. 
  13445.  
  13446.     MCI_DGV_SET_HUE 
  13447.             Sets the hue level in the range 0-100, where 0 indicates maximum 
  13448.             green tint, 100 indicates maximum red tint, and 50 indicates a 
  13449.             neutral tint. 
  13450.  
  13451.     MCI_DGV_SET_SATURATION 
  13452.             Sets the saturation level in the range 0-100. 
  13453.  
  13454.     MCI_DGV_SET_VIDEO_QUALITY 
  13455.             Specifies the compression quality level setting to be sent to the 
  13456.             CODEC.  This value is in the range 0-10,000. Not all CODECs support 
  13457.             setting a quality level. The default setting for video quality is 
  13458.             5000. 
  13459.  
  13460.     MCI_DGV_SET_MONITOR 
  13461.             Sets monitoring of the incoming video signal on or off. Must be 
  13462.             used in conjunction with MCI_SET_ON or MCI_SET_OFF. The default 
  13463.             setting is MCI_OFF. 
  13464.  
  13465.             When monitoring is turned on, a monitor window is created. Monitor 
  13466.             window function is similar to that of the playback window: half, 
  13467.             normal, double size, clipping, and so on.  When the monitor window 
  13468.             is active and recording is not in progress, the monitor window will 
  13469.             display the entire video source image, regardless of any source 
  13470.             rectangle setting.  During recording, only the area being captured 
  13471.             is displayed. 
  13472.  
  13473.             If a recording source rectangle is set, the monitor window 
  13474.             continues to display the entire video source image with the source 
  13475.             capture rectangle displayed in the monitor window image as an 
  13476.             animated dashed-line rectangle (unless the source rectangle is the 
  13477.             entire video source extent, that is, the entire image is to be 
  13478.             captured, in which case the dashed-line rectangle is not 
  13479.             displayed). The recording source rectangle may be set directly on 
  13480.             the monitor window image by pointing to one corner of the area to 
  13481.             be captured, pressing and holding the left mouse button to expand 
  13482.             the rectangle to the opposite corner, and then releasing the left 
  13483.             mouse button. The dashed-line rectangle will track the mouse 
  13484.             movement while the button is held, and will "snap" to the nearest 
  13485.             allowable rectangle size. 
  13486.  
  13487.             Monitoring during real-time recording is supported but at a reduced 
  13488.             performance.  Monitoring can not be turned on or off during 
  13489.             recording, that is, if it is on when recording starts it must 
  13490.             remain on while recording is in progress; if it is off it must 
  13491.             remain off while recording is in progress. Attempting to turn 
  13492.             monitoring on or off during real-time recording will result in an 
  13493.             MCIERR_INVALID_MODE return. Monitoring during frame-step recording 
  13494.             is an application function. 
  13495.  
  13496.             During monitoring, audio is passed through and heard on the 
  13497.             speakers or headphones connected to the sound card, if present. 
  13498.  
  13499.     MCI_DGV_SET_CHANNELS 
  13500.             Sets the number of channels in the audio soundtrack recording (1 = 
  13501.             mono, 2 = stereo).  The default setting is 1. 
  13502.  
  13503.     MCI_DGV_SET_SAMPLESPERSEC 
  13504.             Sets the number of waveform samples per second in the audio 
  13505.             soundtrack recording.  This value is usually 11025, 22050, or 
  13506.             44100. The default is 11025. 
  13507.  
  13508.     MCI_DGV_SET_BITSPERSAMPLE 
  13509.             Sets the waveform sample size for the audio soundtrack recording. 
  13510.             This value is usually 8 or 16 (bits).  The default is 8. 
  13511.  
  13512.     MCI_DGV_SET_TRANSPARENT_COLOR 
  13513.             Sets the transparent color used as the chroma-key value for 
  13514.             transparency in graphics on video overlay hardware devices. 
  13515.             Specifying this item has the same effect as specifying 
  13516.             MCI_DGV_SET_GRAPHIC_TRANSPARENT_COLOR. Video will be seen wherever 
  13517.             the transparency color is painted in graphics.  The color is set as 
  13518.             a numeric value in the range 0...(n - 1).  Where n represents the 
  13519.             number of available colors. 
  13520.  
  13521.     MCI_DGV_SET_GRAPHIC_TRANSPARENT_COLOR 
  13522.             Sets the transparent color (used as the chroma-key value) for 
  13523.             transparency in graphics on video-overlay hardware devices. 
  13524.             Specifying this item has the same effect as specifying 
  13525.             MCI_DGV_SET_TRANSPARENT_COLOR. Video will be seen wherever the 
  13526.             transparency color is painted in graphics.  The color is set as a 
  13527.             numeric value in the range 0...(n - 1).  Where n represents the 
  13528.             number of available colors. 
  13529.  
  13530.     MCI_DGV_SET_VIDEO_TRANSPARENT_COLOR 
  13531.             Sets transparency color for transparency in video on dual-plane 
  13532.             hardware devices. Graphics will be seen wherever the transparency 
  13533.             color appears in the video.  The color is set as a numeric value in 
  13534.             the range 0...(n - 1).  Where n represents the number of available 
  13535.             colors. 
  13536.  
  13537.             Note:  Transparency color settings apply to both monitor and 
  13538.                    playback windows for a device instance, and while 
  13539.                    transparency values are maintained on a per-instance basis, 
  13540.                    most dual-plane video adapters only allow for a single 
  13541.                    setting that is applied to the entire screen.  Default 
  13542.                    values for transparency colors are stored in a device .INI 
  13543.                    file. 
  13544.  
  13545.     MCI_DGV_SET_VIDEO_RECORD_RATE 
  13546.             Sets the frame rate for recording as an integral number of frames 
  13547.             per second in the range 0-30. This sets the target capture rate, 
  13548.             but there is no guarantee this rate will be attained. Drop frame 
  13549.             records will be inserted into the output data stream to indicate 
  13550.             frames dropped during the record process. The default record frame 
  13551.             rate is 15 frames per second. 
  13552.  
  13553.     MCI_DGV_SET_VIDEO_RECORD_FRAME_DURATION 
  13554.             Sets the frame rate for recording as the time duration of each 
  13555.             frame in microseconds.  This is useful for setting non-integer 
  13556.             frame rates, for example, 12.5 frames per second of a PAL 
  13557.             videodisc:  1000000/12.5 = 8000 microseconds. The default frame 
  13558.             duration is 66,667 microseconds (equivalent to 15 frames per 
  13559.             second). 
  13560.  
  13561.     The following additional time formats are supported by digital video 
  13562.     devices and can be specified as values for the ulTimeFormat of the data 
  13563.     structure pointed to by pParam2 for use with the MCI_SET_TIME_FORMAT flag: 
  13564.  
  13565.     MCI_FORMAT_MILLISECONDS 
  13566.             Changes the time format to milliseconds. 
  13567.  
  13568.     MCI_FORMAT_MMTIME 
  13569.             Changes the time format to MMTIME. 
  13570.  
  13571.     MCI_FORMAT_FRAMES 
  13572.             Changes the time format to frames. 
  13573.  
  13574.     MCI_FORMAT_HMS 
  13575.             Changes the time format to hours, minutes, seconds. 
  13576.  
  13577.     MCI_FORMAT_HMSF 
  13578.             Changes the time format to hours, minutes, seconds, and frames. 
  13579.  
  13580.     Sequencer Extensions 
  13581.  
  13582.     The following additional flags apply to MIDI sequencer devices. All 
  13583.     sequencer flags are mutually exclusive, because only one set function can 
  13584.     be performed at a time with the MCI_SET message. 
  13585.  
  13586.     MCI_SEQ_SET_MASTER 
  13587.             Sets the sequencer as a source of synchronization data and 
  13588.             indicates that the type of synchronization is specified in the 
  13589.             ulMaster field of the data structure identified by pParam2. The 
  13590.             following constants are defined for the synchronization type: 
  13591.  
  13592.             MCI_SEQ_MIDI 
  13593.                     The sequencer will send MIDI format synchronization data. 
  13594.  
  13595.             MCI_SEQ_SMPTE 
  13596.                     The sequencer will send SMPTE format synchronization data. 
  13597.  
  13598.             MCI_SEQ_NONE 
  13599.                     The sequencer will not send synchronization data. 
  13600.  
  13601.     MCI_SEQ_SET_OFFSET 
  13602.             Changes the SMPTE offset of a sequencer to that specified by the 
  13603.             ulOffset field of the structure pointed to by pParam2. This only 
  13604.             affects sequences with a SMPTE division type. 
  13605.  
  13606.     MCI_SEQ_SET_PORT 
  13607.             Sets the output MIDI port of a sequencer to that specified by the 
  13608.             MIDI device ID in the ulPort field of the data structure identified 
  13609.             by pParam2. The device will close the previous port (if any), and 
  13610.             attempt to open and use the new port.  If it fails, it will return 
  13611.             an error and reopen the previously used port (if any).  The 
  13612.             following constants are defined for the ports: 
  13613.  
  13614.             MCI_SET_NONE 
  13615.                     Closes the previously used port (if any).  The sequencer 
  13616.                     will behave exactly the same as if a port were open, except 
  13617.                     no MIDI message will be sent. 
  13618.  
  13619.             MIDI_MAPPER 
  13620.                     Sets the port opened to the MIDI Mapper. 
  13621.  
  13622.     MCI_SEQ_SET_SLAVE 
  13623.             Sets the sequencer to receive synchronization data and indicates 
  13624.             the type of synchronization is specified in the ulSlave field of 
  13625.             the data structure pointed to by pParam2. The following constants 
  13626.             are defined for the synchronization type: 
  13627.  
  13628.             MCI_SEQ_FILE 
  13629.                     Sets the sequencer to receive synchronization data 
  13630.                     contained in the MIDI file. 
  13631.  
  13632.             MCI_SEQ_MIDI 
  13633.                     Sets the sequencer to receive MIDI format synchronization 
  13634.                     data. 
  13635.  
  13636.             MCI_SEQ_SMPTE 
  13637.                     Sets the sequencer to receive SMPTE format synchronization 
  13638.                     data. 
  13639.  
  13640.             MCI_SEQ_NONE 
  13641.                     Sets the sequencer to ignore synchronization data in a MIDI 
  13642.                     stream. 
  13643.  
  13644.     MCI_SEQ_SET_TEMPO 
  13645.             Changes the tempo of the MIDI sequence to that specified by the 
  13646.             ulTempo field of the structure pointed to by pParam2. For sequences 
  13647.             with division type PPQN, tempo is specified in beats per minute; 
  13648.             for sequences with division type SMPTE, tempo is specified in 
  13649.             frames per second. This function is not currently supported by the 
  13650.             IBM sequencer. 
  13651.  
  13652.     The following additional time-format flags apply to MIDI devices: 
  13653.  
  13654.     MCI_SEQ_SET_SMPTE_24 
  13655.             Sets the time format to 24 frame SMPTE. 
  13656.  
  13657.     MCI_SEQ_SET_SMPTE_25 
  13658.             Sets the time format to 25 frame SMPTE. 
  13659.  
  13660.     MCI_SEQ_SET_SMPTE_30 
  13661.             Sets the time format to 30 frame SMPTE. 
  13662.  
  13663.     MCI_SEQ_SET_SMPTE_30DROP 
  13664.             Sets the time format to 30 drop-frame SMPTE. 
  13665.  
  13666.     MCI_SEQ_SET_SONGPTR 
  13667.             Sets the time format to song pointer units. 
  13668.  
  13669.     Videodisc Extensions 
  13670.  
  13671.     The following additional flags apply to videodisc devices: 
  13672.  
  13673.     MCI_VD_SET_CHANNEL 
  13674.             This flag sets the video channel to the channel specified in 
  13675.             ulChannel of MCI_VD_SET_PARMS. 
  13676.  
  13677.     MCI_VD_SET_VIDEO 
  13678.             This flag sets Video. 
  13679.  
  13680.     MCI_VD_SET_DISPLAY 
  13681.             This flag sets the display index. 
  13682.  
  13683.     MCI_VD_SET_ON 
  13684.             This flag sets videodisc driver ON. 
  13685.  
  13686.     MCI_VD_SET_OFF 
  13687.             This flag sets videodisc driver OFF. 
  13688.  
  13689.     The following additional time formats apply to videodisc devices and can be 
  13690.     specified as values for the ulTimeFormat field of the data structure 
  13691.     pointed to by pParam2 for use with the MCI_SET_TIME_FORMAT flag: 
  13692.  
  13693.     MCI_FORMAT_CHAPTERS 
  13694.             This flag changes the time format to chapters. 
  13695.  
  13696.     MCI_FORMAT_FRAMES 
  13697.             This flag changes the time format to frames. 
  13698.  
  13699.     MCI_FORMAT_HMS 
  13700.             This flag changes the time format to hours, minutes, and seconds. 
  13701.  
  13702.     MCI_FORMAT_HMSF 
  13703.             This flag changes the time format to hours, minutes, seconds, and 
  13704.             frames. 
  13705.  
  13706.     The MCI_VD_SET_CHANNEL and MCI_VD_SET_VIDEO flags are mutually exclusive 
  13707.     and must be used with the MCI_VD_SET_ON and MCI_VD_SET_OFF flags. 
  13708.  
  13709.     Video Overlay Extensions 
  13710.  
  13711.     The following additional items apply to video overlay devices and can be 
  13712.     specified for the ulItem field of the data structure pointed to by pParam2 
  13713.     for use with the MCI_SET_ITEM flag: 
  13714.  
  13715.     MCI_OVLY_SET_IMAGE_FILE_FORMAT 
  13716.             Sets the specified image file format in which the image capture is 
  13717.             to be stored (when saved).  This format must be specified by a 
  13718.             four-character code (for example, MMOT or OS13), and must be one of 
  13719.             the currently supported and installed MMIO image file formats, or 
  13720.             the device-specific format.  This does not effect the loading or 
  13721.             restoring of images.  It overwrites any previous file-format value, 
  13722.             such as that obtained through a LOAD operation. 
  13723.  
  13724.     MCI_OVLY_SET_IMAGE_COMPRESSION 
  13725.             This flag sets the compression type used for saving still images. 
  13726.             The specified compression type is used if it is supported by the 
  13727.             device, the file format, or both.  The compression type is not used 
  13728.             if it contradicts settings for file format, BITSPERPEL, or 
  13729.             PELFORMAT. 
  13730.  
  13731.             If the compression type value is valid, it supersedes any image 
  13732.             quality setting and overwrites any format tag or compression value 
  13733.             obtained by a LOAD operation.  However, it does not affect the 
  13734.             loading or restoring of images. 
  13735.  
  13736.             Compression algorithms are often proprietary and can require 
  13737.             hardware assistance for performance.  Therefore, when possible, the 
  13738.             setting of this item is controlled by the device. If the specified 
  13739.             compression type is not compatible with file format or BITSPERPEL 
  13740.             settings, the device selects a compression type based on the file 
  13741.             format, PELFORMAT, and quality settings. 
  13742.  
  13743.             If the compression type is not available, the device returns 
  13744.             "function not supported" and uses the current setting. 
  13745.  
  13746.             M-Motion specific:  The default is MCI_IMG_COMP_NONE. 
  13747.  
  13748.     MCI_OVLY_SET_IMAGE_BITSPERPEL 
  13749.             Sets the number of bits per pixel used for the image file to be 
  13750.             saved.  Generally supported values are those defined for OS/2 2.0 
  13751.             bit maps.  Some devices might support other values. 
  13752.  
  13753.             The value specified for this setting might not be the same as the 
  13754.             number of colors currently visible on the display.  Selecting a 
  13755.             BITSPERPEL value greater than that currently displayed results in 
  13756.             unused colors.  Selecting a BITSPERPEL value less than that 
  13757.             currently displayed results in a degradation of color and a reduced 
  13758.             quality image. 
  13759.  
  13760.             Most file formats do not support all BITSPERPEL values. This item 
  13761.             overwrites any BITSPERPEL value obtained by a LOAD operation. 
  13762.             However, it does not affect the loading or restoring of images. 
  13763.  
  13764.             Some devices are not capable of adjusting the number of colors to 
  13765.             be saved in the image file.  When this is the case, the device 
  13766.             captures and saves the image in whatever number of colors it 
  13767.             supports. The actual value used can be obtained using the 
  13768.             MCI_OVLY_STATUS_IMAGE_BITSPERPEL flag. 
  13769.  
  13770.             If variable BITSPERPEL representation is not available, the device 
  13771.             returns "function not supported" and uses the current setting. 
  13772.  
  13773.             M-Motion specific: The default is 12. 
  13774.  
  13775.     MCI_OVLY_SET_IMAGE_PELFORMAT 
  13776.             This flag sets the pixel format used for saving bit maps.  This 
  13777.             value indicates the desired image file color representation, and is 
  13778.             used in conjunction with the BITSPERPEL value.  Supported pixel 
  13779.             format values are: 
  13780.  
  13781.             MCI_IMG_PALETTE 
  13782.                     A palettized video image with 1, 4, or 8 bits per pixel. 
  13783.  
  13784.             MCI_IMG_RGB 
  13785.                     An RGB video image with 16 or 24 bits per pixel. 
  13786.  
  13787.             MCI_IMG_YUV 
  13788.                     A YUVB video image with 9, 12, or 16 bits per pixel. 
  13789.  
  13790.             Most file formats do not support all pixel formats.  This item 
  13791.             overwrites any pixel format value obtained by a LOAD operation. 
  13792.             However, it does not affect the loading or restoring of images. 
  13793.  
  13794.             Some devices are not capable of adjusting the color representation 
  13795.             of the image.  When this is the case, the device captures and saves 
  13796.             the image in whatever color representation it supports. If variable 
  13797.             color representation is not available, the device returns "function 
  13798.             not supported" and uses the current setting. 
  13799.  
  13800.             M-Motion specific:  The default is MCI_IMG_YUV. 
  13801.  
  13802.     MCI_OVLY_SET_BRIGHTNESS 
  13803.             This flag sets the brightness level in the range 0-100. 
  13804.  
  13805.     MCI_OVLY_SET_CONTRAST 
  13806.             This flag sets the contrast level in the range 0-100. 
  13807.  
  13808.     MCI_OVLY_SET_HUE 
  13809.             This flag sets the hue level in the range 0-100.  A value of 50 
  13810.             indicates neutral tint. 
  13811.  
  13812.     MCI_OVLY_SET_SATURATION 
  13813.             This flag sets the saturation level in the range 0-100. 
  13814.  
  13815.     MCI_OVLY_SET_SHARPNESS 
  13816.             This flag sets the sharpness level in the range 0-100. 
  13817.  
  13818.     MCI_OVLY_SET_GREYSCALE 
  13819.             This flag turns the grey scale on or off.  Must be used in 
  13820.             conjunction with MCI_SET_ON or MCI_SET_OFF. 
  13821.  
  13822.     MCI_OVLY_SET_IMAGE_QUALITY 
  13823.             This flag sets the specified image quality level.  This item 
  13824.             indicates the perceived quality of the image to be saved and allows 
  13825.             the device to select the most appropriate compression method when 
  13826.             more than one is available. The value specified for this item can 
  13827.             affect the size of the resulting file. 
  13828.  
  13829.             This item overwrites any quality value obtained by a LOAD 
  13830.             operation. However, it does not affect the loading or restoring of 
  13831.             images. If image quality is not previously set, the device selects 
  13832.             a compression scheme as accurately as possible. 
  13833.  
  13834.             If variable image quality is not available, the device returns 
  13835.             "function not supported" and uses the current setting. 
  13836.  
  13837.             Supported values are: 
  13838.  
  13839.             MCI_IMG_QUALITY_HIGH 
  13840.                     This flag normally describes photo-realistic images with 
  13841.                     high resolution and color content. 
  13842.  
  13843.             MCI_IMG_QUALITY_MED 
  13844.                     This flag normally describes images such as complete 
  13845.                     graphs, charts, or diagrams, with fewer color transitions 
  13846.                     and complexity. 
  13847.  
  13848.             MCI_IMG_QUALITY_LOW 
  13849.                     This flag normally describes images such as cartoons and 
  13850.                     simple drawings. 
  13851.  
  13852.             M-Motion specific:  The default is MCI_IMG_QUALITY_HIGH. 
  13853.  
  13854.     MCI_OVLY_SET_IMAGE_COMPRESSION_METHOD 
  13855.             This flag sets the method by which image compression or 
  13856.             decompression is done. Supported values and their meanings are: 
  13857.  
  13858.             MCI_CODEC_DEFAULT 
  13859.                     This flag selects the default compression method specified 
  13860.                     in the INI file. 
  13861.  
  13862.             MCI_CODEC_SW_ONLY 
  13863.                     This flag selects to use software emulation as the 
  13864.                     compression method. 
  13865.  
  13866.             MCI_CODEC_HW 
  13867.                     This flag selects to use the compression method supported 
  13868.                     by the hardware, if available. Otherwise, software 
  13869.                     emulation is used. 
  13870.  
  13871.     MCI_OVLY_SET_MINIMUM_VIDEO_REFRESH_RATE 
  13872.             This flag sets the minimum refresh rate for the device instance. 
  13873.             This is the minimum frame display refresh rate the application will 
  13874.             accept for this device instance.  This parameter is used on 
  13875.             hardware that can multiplex the digitization between different 
  13876.             windows at reduced rates.  The default is one, allowing degraded 
  13877.             display on hardware that supports this capability. 
  13878.  
  13879.     Waveform Audio Extensions 
  13880.  
  13881.     The following additional flags apply to wave audio devices and are mutually 
  13882.     exclusive. If MCI_WAVE_SET_FORMATTAG is specified, the driver can change 
  13883.     other settings to maintain compatibility.  After setting the waveform 
  13884.     format, the other parameters can be set as necessary within the currently 
  13885.     selected waveform format.  An error will be returned if the requested 
  13886.     change results in an unsupported configuration. 
  13887.  
  13888.     An application can use the MCI_STATUS message to see if any of the other 
  13889.     settings were changed to maintain a valid configuration. 
  13890.  
  13891.     MCI_WAVE_SET_FORMATTAG 
  13892.             Sets the format type used for playing, recording, and saving to the 
  13893.             usFormatTag field of the MCI_WAVE_SET_PARMS data structure.  Refer 
  13894.             to the RIFF WAVE format documentation for more information.  The 
  13895.             following constants are defined to set the format type. Additional 
  13896.             subtype values can be found in OS2MEDEF.H. 
  13897.  
  13898.             MCI_WAVE_FORMAT_PCM 
  13899.                     Changes the format to pulse code modulation (PCM). 
  13900.  
  13901.             MCI_WAVE_FORMAT_ADPCM 
  13902.                     Changes the format to adaptive differential pulse code 
  13903.                     modulation (ADPCM). 
  13904.  
  13905.             MCI_WAVE_FORMAT_IBM_CVSD 
  13906.                     Changes the format to IBM Speech Viewer. 
  13907.  
  13908.             MCI_WAVE_FORMAT_ALAW 
  13909.                     Changes the format to A-Law. 
  13910.  
  13911.             MCI_WAVE_FORMAT_MULAW 
  13912.                     Changes the format to Mu-Law. 
  13913.  
  13914.             MCI_WAVE_FORMAT_IBM_ALAW 
  13915.                     Changes the format to A-Law. 
  13916.  
  13917.             MCI_WAVE_FORMAT_IBM_MULAW 
  13918.                     Changes the format to Mu-Law. 
  13919.  
  13920.             MCI_WAVE_FORMAT_OKI_ADPCM 
  13921.                     Changes the format to OKI ADPCM. 
  13922.  
  13923.             MCI_WAVE_FORMAT_DVI_ADPCM 
  13924.                     Changes the format to DVI ADPCM. 
  13925.  
  13926.             MCI_WAVE_FORMAT_IBM_ADPCM 
  13927.                     Changes the format to ADPCM. 
  13928.  
  13929.             MCI_WAVE_FORMAT_DIGISTD 
  13930.                     Changes the format to IBM Digispeech (standard format). 
  13931.  
  13932.             MCI_WAVE_FORMAT_DIGIFIX 
  13933.                     Changes the format to IBM Digispeech (fixed format). 
  13934.  
  13935.             MCI_WAVE_FORMAT_AVC_ADPCM 
  13936.                     Changes the format to AVC ADPCM. 
  13937.  
  13938.             MCI_WAVE_FORMAT_CT_ADPCM 
  13939.                     Changes the format to Creative Labs ADPCM. 
  13940.  
  13941.             MCI_WAVE_FORMAT_MPEG1 
  13942.                     Changes the format to MPEG audio. 
  13943.  
  13944.     MCI_WAVE_SET_CHANNELS 
  13945.             Sets the channel count used for playing, recording, and saving to 
  13946.             the usChannels field of the MCI_WAVE_SET_PARMS data structure. 
  13947.  
  13948.     MCI_WAVE_SET_SAMPLESPERSEC 
  13949.             Sets the samples per second used for playing, recording, and saving 
  13950.             to the ulSamplesPerSec field of the MCI_WAVE_SET_PARMS data 
  13951.             structure. 
  13952.  
  13953.     MCI_WAVE_SET_AVGBYTESPERSEC 
  13954.             Sets the bytes per second used for playing, recording, and saving 
  13955.             to the ulAvgBytesPerSec field of the MCI_WAVE_SET_PARMS data 
  13956.             structure.  Playback software may use this number to estimate 
  13957.             required buffer sizes. 
  13958.  
  13959.     MCI_WAVE_SET_BLOCKALIGN 
  13960.             Sets the block alignment used for playing, recording, and saving to 
  13961.             the usBlockAlign field of the MCI_WAVE_SET_PARMS data structure. 
  13962.  
  13963.     MCI_WAVE_SET_BITSPERSAMPLE 
  13964.             Sets the bits per sample used for playing, recording, and saving to 
  13965.             the usBitsPerSample field of the MCI_WAVE_SET_PARMS data structure. 
  13966.  
  13967.     The following additional time format flags apply to wave audio devices and 
  13968.     can be specified for the ulTimeFormat field: for use with the 
  13969.     MCI_SET_TIME_FORMAT flag: 
  13970.  
  13971.     MCI_FORMAT_SAMPLES 
  13972.             Change time format to samples. 
  13973.  
  13974.     MCI_FORMAT_BYTES 
  13975.             Change time format to bytes. 
  13976.  
  13977.  
  13978. ΓòÉΓòÉΓòÉ <hidden> MCI_SET Parameter - pParam2 ΓòÉΓòÉΓòÉ
  13979.  
  13980.  pParam2 (PMCI_SET_PARMS) 
  13981.     A pointer to an MCI_SET_PARMS data structure.  (This is the default 
  13982.     parameter data structure.) Devices with extended command sets might replace 
  13983.     this pointer with a pointer to a device-specific data structure as follows: 
  13984.  
  13985.     PMCI_AMP_SET_PARMS 
  13986.             A pointer to the MCI_AMP_SET_PARMS data structure. 
  13987.  
  13988.     PMCI_CDXA_SET_PARMS 
  13989.             A pointer to the MCI_CDXA_SET_PARMS data structure. 
  13990.  
  13991.     PMCI_DGV_SET_PARMS 
  13992.             A pointer to the MCI_DGV_SET_PARMS data structure. 
  13993.  
  13994.     PMCI_SEQ_SET_PARMS 
  13995.             A pointer to the MCI_SEQ_SET_PARMS data structure. 
  13996.  
  13997.     PMCI_VD_SET_PARMS 
  13998.             A pointer to the MCI_VD_SET_PARMS data structure. 
  13999.  
  14000.     PMCI_OVLY_SET_PARMS 
  14001.             A pointer to the MCI_OVLY_SET_PARMS data structure. 
  14002.  
  14003.     PMCI_WAVE_SET_PARMS 
  14004.             A pointer to the MCI_WAVE_SET_PARMS data structure. This data 
  14005.             structure replaces the standard default data structure, 
  14006.             MCI_SET_PARMS. 
  14007.  
  14008.  
  14009. ΓòÉΓòÉΓòÉ <hidden> MCI_SET Return Value - rc ΓòÉΓòÉΓòÉ
  14010.  
  14011.  rc (ULONG) 
  14012.     Return codes indicating success or type of failure: 
  14013.  
  14014.     MCIERR_SUCCESS 
  14015.             MMPM/2 command completed successfully. 
  14016.  
  14017.     MCIERR_OUT_OF_MEMORY 
  14018.             System out of memory. 
  14019.  
  14020.     MCIERR_INVALID_DEVICE_ID 
  14021.             Invalid device ID given. 
  14022.  
  14023.     MCIERR_MISSING_PARAMETER 
  14024.             Missing parameter for this command. 
  14025.  
  14026.     MCIERR_DRIVER 
  14027.             Internal MMPM/2 driver error. 
  14028.  
  14029.     MCIERR_INVALID_FLAG 
  14030.             Invalid flag specified for this command. 
  14031.  
  14032.     MCIERR_UNSUPPORTED_FLAG 
  14033.             Flag not supported by this MMPM/2 driver for this command. 
  14034.  
  14035.     MCIERR_MISSING_FLAG 
  14036.             Flag missing for this MMPM/2 command. 
  14037.  
  14038.     MCIERR_FLAGS_NOT_COMPATIBLE 
  14039.             The flags cannot be used together. 
  14040.  
  14041.     MCIERR_MISSING_STRING_ARGUMENT 
  14042.             Missing required string argument. 
  14043.  
  14044.     MCIERR_INVALID_ITEM_FLAG 
  14045.             Invalid item flag specified for this command. 
  14046.  
  14047.     MCIERR_INSTANCE_INACTIVE 
  14048.             Instance inactive. 
  14049.  
  14050.     MCIERR_OUTOFRANGE 
  14051.             Value given is out of range. 
  14052.  
  14053.     MCIERR_UNSUPPORTED_FUNCTION 
  14054.             Function not supported. 
  14055.  
  14056.  
  14057. ΓòÉΓòÉΓòÉ <hidden> MCI_SET - Description ΓòÉΓòÉΓòÉ
  14058.  
  14059. This message is used to set device parameters or information. 
  14060.  
  14061.  ulParam1 (ULONG) 
  14062.     This parameter can contain the following flags: 
  14063.  
  14064.     MCI_NOTIFY 
  14065.             A notification message will be posted to the window specified in 
  14066.             the hwndCallback parameter of the data structure pointed to by the 
  14067.             pParam2 parameter.  The notification will be posted when the action 
  14068.             indicated by this message is completed or when an error occurs. 
  14069.  
  14070.     MCI_WAIT 
  14071.             Control is not to be returned until the action indicated by this 
  14072.             message is completed or an error occurs. 
  14073.  
  14074.     MCI_SET_AUDIO 
  14075.             Sets audio attributes of the device instance.  A device with audio 
  14076.             capabilities might support both left and right channels. The 
  14077.             channel is specified in the ulAudio field of the data structure 
  14078.             specified by pParam2. The action to be taken is specified with the 
  14079.             flags MCI_SET_ON (which enables audio output at the current volume 
  14080.             level), MCI_SET_OFF (which mutes audio output), or MCI_SET_VOLUME. 
  14081.             Specifying MCI_SET_VOLUME does not enable audio output if 
  14082.             MCI_SET_OFF has been previously specified. 
  14083.  
  14084.             The following constants are defined for specifying the audio 
  14085.             channel in the ulAudio field. 
  14086.  
  14087.             MCI_SET_AUDIO_ALL 
  14088.                     Apply to both channels. 
  14089.  
  14090.             MCI_SET_AUDIO_LEFT 
  14091.                     Apply to the left channel only. 
  14092.  
  14093.             MCI_SET_AUDIO_RIGHT 
  14094.                     Apply to the right channel only. 
  14095.  
  14096.     MCI_SET_DOOR_OPEN 
  14097.             Instructs the device to open the media cover (if any).  This 
  14098.             message ejects the media from devices where appropriate. 
  14099.  
  14100.     MCI_SET_DOOR_CLOSED 
  14101.             Instructs the device to close the media cover (if any). 
  14102.  
  14103.     MCI_SET_DOOR_LOCK 
  14104.             Locks the media cover on the device (if any).  This disables manual 
  14105.             ejection of the media from the device. 
  14106.  
  14107.     MCI_SET_DOOR_UNLOCK 
  14108.             Unlocks the media cover on the device (if any).  This enables 
  14109.             manual ejection of the media from the device. 
  14110.  
  14111.     MCI_SET_VOLUME 
  14112.             Sets the level of audio as a percentage of the maximum audio level 
  14113.             as indicated in the ulLevel field.  The volume level that can be 
  14114.             set on the device might be of coarser granularity than that 
  14115.             specified.  In this case, the actual level can be obtained by 
  14116.             issuing a MCI_STATUS message.  If a number greater than 100 is 
  14117.             given, then 100 will be used as the volume setting, and no error 
  14118.             will be returned. See Examples section for an example using this 
  14119.             flag. 
  14120.  
  14121.     MCI_SET_VIDEO 
  14122.             Sets the video signal on or off. This flag must be used with either 
  14123.             MCI_SET_ON or MCI_SET_OFF. 
  14124.  
  14125.     MCI_SET_ON 
  14126.             Sets the video or specified audio channel on. 
  14127.  
  14128.     MCI_SET_OFF 
  14129.             Sets the video or specified audio channel off. 
  14130.  
  14131.     MCI_SET_SPEED_FORMAT 
  14132.             Specifies the speed format to be used on subsequent commands 
  14133.             contained in the ulSpeedFormat field. The following values can be 
  14134.             used: 
  14135.  
  14136.             MCI_FORMAT_PERCENTAGE 
  14137.                     Specifies the subsequent speed values as a percentage of 
  14138.                     the normal speed. 
  14139.  
  14140.             MCI_FORMAT_FPS 
  14141.                     Specifies the subsequent speed values in frames per second. 
  14142.                     This is the default setting. 
  14143.  
  14144.     MCI_SET_TIME_FORMAT 
  14145.             Uses a time format on subsequent commands.  A time-format parameter 
  14146.             must be indicated in the ulTimeFormat field of the data structure 
  14147.             specified by pParam2 if this flag is used.  The default is 
  14148.             MCI_FORMAT_MMTIME. The following time formats are generic; devices 
  14149.             can also provide device-specific time units: 
  14150.  
  14151.             MCI_FORMAT_MILLISECONDS 
  14152.                     Indicates that all subsequent commands that specify time 
  14153.                     will do so in milliseconds for both input and output. 
  14154.  
  14155.             MCI_FORMAT_MMTIME 
  14156.                     Indicates that all subsequent commands that specify time 
  14157.                     will do so in MMTIME units for both input and output.  This 
  14158.                     does not apply to command parameters that explicitly 
  14159.                     specify time units, such as milliseconds on ulOver. 
  14160.  
  14161.     MCI_OVER 
  14162.             Sets the vectored delay time to change the volume (or other 
  14163.             attribute) in milliseconds. 
  14164.  
  14165.     MCI_SET_ITEM 
  14166.             Indicates that the item to be set is specified in the ulItem field 
  14167.             of the data structure identified by pParam2. Any value associated 
  14168.             with the item is contained in the ulValue field.  Each item defines 
  14169.             the use (if any) and meaning of the value in the ulValue field. 
  14170.  
  14171.     Amplifier Mixer Extensions 
  14172.  
  14173.     The following additional flags apply to amplifier-mixer devices. Only one 
  14174.     audio attribute set function can be performed at a time with the MCI_SET 
  14175.     message. The treble, bass, balance, pitch, and gain flags require the 
  14176.     MCI_SET_AUDIO flag also to be set.  The level to be set for each function 
  14177.     is contained in the ulLevel field and represents a percentage of the 
  14178.     maximum available audio effect provided by the device.  Zero is the minimum 
  14179.     effect, while 100 is the maximum effect. 
  14180.  
  14181.     The following audio effects apply to the final output mix. Any 
  14182.     specification of a particular channel will be ignored. 
  14183.  
  14184.     MCI_AMP_SET_BALANCE 
  14185.             Sets the final output balance.  Zero is defined as full left 
  14186.             balance while one hundred is defined as full right balance. 
  14187.  
  14188.     MCI_AMP_SET_BASS 
  14189.             Controls bass as a percentage of the maximum achievable effect. 
  14190.  
  14191.     MCI_AMP_SET_GAIN 
  14192.             Sets the gain as a percentage of the maximum achievable effect. 
  14193.  
  14194.     MCI_AMP_SET_PITCH 
  14195.             Sets the pitch as a percentage of the maximum achievable effect. 
  14196.  
  14197.     MCI_AMP_SET_TREBLE 
  14198.             Controls treble as a percentage of the maximum achievable effect. 
  14199.  
  14200.     The following items can be specified for the ulItem field of the data 
  14201.     structure pointed to by pParam2 for use with the MCI_SET_ITEM flag: 
  14202.  
  14203.     MCI_AMP_SET_AUDIO 
  14204.             Used with the extended ampmix audio attribute flags. 
  14205.  
  14206.     MCI_AMP_SET_MONITOR 
  14207.             Used with the MCI_SET_ON or MCI_SET_OFF flags. It instructs the 
  14208.             ampmix device to monitor the currently selected connector. This 
  14209.             flag is typically used to listen to (monitor) a source while it is 
  14210.             being recorded by another device. 
  14211.  
  14212.     If the MCI_SET_ITEM flag is set and MCI_AMP_SET_AUDIO is in the ulItem 
  14213.     field of MCI_AMP_SET_PARMS, the connector specified in ulValue can be 
  14214.     modified with the following audio attribute flags in ulAudio and the 
  14215.     appropriate level in ulLevel. 
  14216.  
  14217.     MCI_AMP_SET_ALC 
  14218.             The ulLevel field in MCI_AMP_SET_PARMS contains the auto-level 
  14219.             control setting as a percentage (0-100) for the connector specified 
  14220.             in ulValue. 
  14221.  
  14222.     MCI_AMP_SET_BALANCE 
  14223.             The ulLevel field in MCI_AMP_SET_PARMS contains the balance setting 
  14224.             as a percentage (0-100) for the connector specified in ulValue. 
  14225.  
  14226.     MCI_AMP_SET_BASS 
  14227.             The ulLevel field in MCI_AMP_SET_PARMS contains the bass setting as 
  14228.             a percentage (0-100) for the connector specified in ulValue. 
  14229.  
  14230.     MCI_AMP_SET_CHORUS 
  14231.             The ulLevel field in MCI_AMP_SET_PARMS contains the chorus setting 
  14232.             as a percentage (0-100) for the connector specified in ulValue. 
  14233.  
  14234.     MCI_AMP_SET_CROSSOVER 
  14235.             The ulLevel field in MCI_AMP_SET_PARMS contains the crossover 
  14236.             setting as a percentage (0-100) for the connector specified in 
  14237.             ulValue. 
  14238.  
  14239.     MCI_AMP_SET_CUSTOM1 
  14240.             The ulLevel field in MCI_AMP_SET_PARMS contains the custom effect 
  14241.             setting as a percentage (0-100). for the connector specified in 
  14242.             ulValue. 
  14243.  
  14244.     MCI_AMP_SET_CUSTOM2 
  14245.             The ulLevel field in MCI_AMP_SET_PARMS contains the custom effect 
  14246.             setting as a percentage (0-100) for the connector specified in 
  14247.             ulValue. 
  14248.  
  14249.     MCI_AMP_SET_CUSTOM3 
  14250.             The ulLevel field in MCI_AMP_SET_PARMS contains the custom effect 
  14251.             setting as a percentage (0-100) for the connector specified in 
  14252.             ulValue. 
  14253.  
  14254.     MCI_AMP_SET_GAIN 
  14255.             The ulLevel field in MCI_AMP_SET_PARMS contains the gain setting as 
  14256.             a percentage (0-100) for the connector specified in ulValue. 
  14257.  
  14258.     MCI_AMP_SET_LOUDNESS 
  14259.             The ulLevel field in MCI_AMP_SET_PARMS contains the loudness 
  14260.             setting as a percentage (0-100) for the connector specified in 
  14261.             ulValue. 
  14262.  
  14263.     MCI_AMP_SET_MID 
  14264.             The ulLevel field in MCI_AMP_SET_PARMS contains the mid setting as 
  14265.             a percentage (0-100) for the connector specified in ulValue. 
  14266.  
  14267.     MCI_AMP_SET_MONITOR 
  14268.             The ulLevel field in MCI_AMP_SET_PARMS contains the monitor setting 
  14269.             as a percentage (0-100) for the connector specified in ulValue. 
  14270.  
  14271.     MCI_AMP_SET_MUTE 
  14272.             The ulLevel field in MCI_AMP_SET_PARMS contains the mute setting 
  14273.             for the connector specified in ulValue. 
  14274.  
  14275.     MCI_AMP_SET_PITCH 
  14276.             The ulLevel field in MCI_AMP_SET_PARMS contains the pitch setting 
  14277.             as a percentage (0-100) for the connector specified in ulValue. 
  14278.  
  14279.     MCI_AMP_SET_REVERB 
  14280.             The ulLevel field in MCI_AMP_SET_PARMS contains the reverb setting 
  14281.             as a percentage (0-100) for the connector specified in ulValue. 
  14282.  
  14283.     MCI_AMP_SET_STEREOENHANCE 
  14284.             The ulLevel field in MCI_AMP_SET_PARMS contains the stereo enhance 
  14285.             setting as a percentage (0-100) for the connector specified in 
  14286.             ulValue. 
  14287.  
  14288.     MCI_AMP_SET_TREBLE 
  14289.             The ulLevel field in MCI_AMP_SET_PARMS contains the treble setting 
  14290.             as a percentage (0-100) for the connector specified in ulValue. 
  14291.  
  14292.     MCI_AMP_SET_VOLUME 
  14293.             The ulLevel field in MCI_AMP_SET_PARMS contains the volume setting 
  14294.             as a percentage (0-100) for the connector specified in ulValue. 
  14295.  
  14296.     CD Audio Extensions 
  14297.  
  14298.     The following additional time formats are supported by CD audio devices and 
  14299.     can be specified as values for the ulTimeFormat field of the data structure 
  14300.     pointed to by pParam2 for use with the MCI_SET_TIME_FORMAT flag: 
  14301.  
  14302.     MCI_FORMAT_MSF 
  14303.             Indicates that all subsequent commands that specify time will do so 
  14304.             in mm:ss:ff where mm is minutes, ss is seconds and ff is frames. 
  14305.  
  14306.     MCI_FORMAT_TMSF 
  14307.             Indicates that all subsequent commands that specify time will do so 
  14308.             in tt:mm:ss:ff where tt is tracks, mm is minutes, ss is seconds, 
  14309.             and ff is frames. 
  14310.  
  14311.     CD/XA Extensions 
  14312.  
  14313.     The following additional flags apply to the CD/XA device. Only one channel 
  14314.     set function can be performed at a time with the MCI_SET message.  The 
  14315.     channel is specified in the ulChannel field of the data structure.  The 
  14316.     destination of the data in that channel is determined by the flags below. 
  14317.     Only one destination can be selected at a time with the MCI_SET message. 
  14318.     This message must be used with the MCI_CDXA_SET_CHANNEL flag and either the 
  14319.     MCI_SET_ON or MCI_SET_OFF flags. 
  14320.  
  14321.     MCI_CDXA_AUDIO_DEVICE 
  14322.             Sends the audio stream to the audio card. 
  14323.  
  14324.     MCI_CDXA_AUDIO_BUFFER 
  14325.             Sends the audio stream to a playlist. 
  14326.  
  14327.     MCI_CDXA_VIDEO_BUFFER 
  14328.             Sends the video stream to a playlist. 
  14329.  
  14330.     MCI_CDXA_DATA_BUFFER 
  14331.             Sends the data stream to a playlist. 
  14332.  
  14333.     Digital Video Extensions 
  14334.  
  14335.     The following additional items can be specified for the ulItem field of the 
  14336.     data structure pointed to by pParam2 for use with the MCI_SET_ITEM flag: 
  14337.  
  14338.     MCI_DGV_SET_VIDEO_COMPRESSION 
  14339.             Specifies the FOURCC compression format used for recording digital 
  14340.             motion video.  The values that can be specified are: 
  14341.  
  14342.             MCI_VID_COMP_ULTI 
  14343.                     Ultimotion 
  14344.  
  14345.             MCI_VID_COMP_DIB 
  14346.                     Raw (uncompressed format) 
  14347.  
  14348.             MCI_VID_COMP_RT21 
  14349.                     Indeo 2.1 
  14350.  
  14351.             MCI_VID_COMP_IV31 
  14352.                     Indeo 3.1 
  14353.  
  14354.             The default compression type is specified through the Setup page 
  14355.             for the digital video device.  The initial setting is 
  14356.             MCI_VID_COMP_ULTI until changed in the Setup. 
  14357.  
  14358.             Note:  Compressors are not available for FLIC, MPEG, and Indeo 3.2 
  14359.                    in this version of OS/2. 
  14360.  
  14361.     MCI_DGV_SET_RECORD_AUDIO 
  14362.             Sets audio soundtrack recording on or off. The default is MCI_ON. 
  14363.             This flag is used with MCI_ON or MCI_OFF. 
  14364.  
  14365.     MCI_DGV_SET_REF_INTERVAL 
  14366.             Sets the frequency at which reference frames (or I-frames) are to 
  14367.             be compressed in the output data stream. A value of 0 results in no 
  14368.             I-frames, a value of 1 causes every frame to be an I-frame, a value 
  14369.             of 2 causes every other frame to be an I-frame, and so on.  While 
  14370.             there is no upper bound on the reference frame interval, a 
  14371.             reference frame interval of 2 seconds or less produces the best 
  14372.             results.  The default reference frame interval is every 15th frame 
  14373.             (once a second at the default frame rate of 15 frames per second). 
  14374.  
  14375.     MCI_DGV_SET_BRIGHTNESS 
  14376.             Sets the brightness level in the range 0-100. 
  14377.  
  14378.     MCI_DGV_SET_CONTRAST 
  14379.             Sets the contrast level in the range 0-100. 
  14380.  
  14381.     MCI_DGV_SET_HUE 
  14382.             Sets the hue level in the range 0-100, where 0 indicates maximum 
  14383.             green tint, 100 indicates maximum red tint, and 50 indicates a 
  14384.             neutral tint. 
  14385.  
  14386.     MCI_DGV_SET_SATURATION 
  14387.             Sets the saturation level in the range 0-100. 
  14388.  
  14389.     MCI_DGV_SET_VIDEO_QUALITY 
  14390.             Specifies the compression quality level setting to be sent to the 
  14391.             CODEC.  This value is in the range 0-10,000. Not all CODECs support 
  14392.             setting a quality level. The default setting for video quality is 
  14393.             5000. 
  14394.  
  14395.     MCI_DGV_SET_MONITOR 
  14396.             Sets monitoring of the incoming video signal on or off. Must be 
  14397.             used in conjunction with MCI_SET_ON or MCI_SET_OFF. The default 
  14398.             setting is MCI_OFF. 
  14399.  
  14400.             When monitoring is turned on, a monitor window is created. Monitor 
  14401.             window function is similar to that of the playback window: half, 
  14402.             normal, double size, clipping, and so on.  When the monitor window 
  14403.             is active and recording is not in progress, the monitor window will 
  14404.             display the entire video source image, regardless of any source 
  14405.             rectangle setting.  During recording, only the area being captured 
  14406.             is displayed. 
  14407.  
  14408.             If a recording source rectangle is set, the monitor window 
  14409.             continues to display the entire video source image with the source 
  14410.             capture rectangle displayed in the monitor window image as an 
  14411.             animated dashed-line rectangle (unless the source rectangle is the 
  14412.             entire video source extent, that is, the entire image is to be 
  14413.             captured, in which case the dashed-line rectangle is not 
  14414.             displayed). The recording source rectangle may be set directly on 
  14415.             the monitor window image by pointing to one corner of the area to 
  14416.             be captured, pressing and holding the left mouse button to expand 
  14417.             the rectangle to the opposite corner, and then releasing the left 
  14418.             mouse button. The dashed-line rectangle will track the mouse 
  14419.             movement while the button is held, and will "snap" to the nearest 
  14420.             allowable rectangle size. 
  14421.  
  14422.             Monitoring during real-time recording is supported but at a reduced 
  14423.             performance.  Monitoring can not be turned on or off during 
  14424.             recording, that is, if it is on when recording starts it must 
  14425.             remain on while recording is in progress; if it is off it must 
  14426.             remain off while recording is in progress. Attempting to turn 
  14427.             monitoring on or off during real-time recording will result in an 
  14428.             MCIERR_INVALID_MODE return. Monitoring during frame-step recording 
  14429.             is an application function. 
  14430.  
  14431.             During monitoring, audio is passed through and heard on the 
  14432.             speakers or headphones connected to the sound card, if present. 
  14433.  
  14434.     MCI_DGV_SET_CHANNELS 
  14435.             Sets the number of channels in the audio soundtrack recording (1 = 
  14436.             mono, 2 = stereo).  The default setting is 1. 
  14437.  
  14438.     MCI_DGV_SET_SAMPLESPERSEC 
  14439.             Sets the number of waveform samples per second in the audio 
  14440.             soundtrack recording.  This value is usually 11025, 22050, or 
  14441.             44100. The default is 11025. 
  14442.  
  14443.     MCI_DGV_SET_BITSPERSAMPLE 
  14444.             Sets the waveform sample size for the audio soundtrack recording. 
  14445.             This value is usually 8 or 16 (bits).  The default is 8. 
  14446.  
  14447.     MCI_DGV_SET_TRANSPARENT_COLOR 
  14448.             Sets the transparent color used as the chroma-key value for 
  14449.             transparency in graphics on video overlay hardware devices. 
  14450.             Specifying this item has the same effect as specifying 
  14451.             MCI_DGV_SET_GRAPHIC_TRANSPARENT_COLOR. Video will be seen wherever 
  14452.             the transparency color is painted in graphics.  The color is set as 
  14453.             a numeric value in the range 0...(n - 1).  Where n represents the 
  14454.             number of available colors. 
  14455.  
  14456.     MCI_DGV_SET_GRAPHIC_TRANSPARENT_COLOR 
  14457.             Sets the transparent color (used as the chroma-key value) for 
  14458.             transparency in graphics on video-overlay hardware devices. 
  14459.             Specifying this item has the same effect as specifying 
  14460.             MCI_DGV_SET_TRANSPARENT_COLOR. Video will be seen wherever the 
  14461.             transparency color is painted in graphics.  The color is set as a 
  14462.             numeric value in the range 0...(n - 1).  Where n represents the 
  14463.             number of available colors. 
  14464.  
  14465.     MCI_DGV_SET_VIDEO_TRANSPARENT_COLOR 
  14466.             Sets transparency color for transparency in video on dual-plane 
  14467.             hardware devices. Graphics will be seen wherever the transparency 
  14468.             color appears in the video.  The color is set as a numeric value in 
  14469.             the range 0...(n - 1).  Where n represents the number of available 
  14470.             colors. 
  14471.  
  14472.             Note:  Transparency color settings apply to both monitor and 
  14473.                    playback windows for a device instance, and while 
  14474.                    transparency values are maintained on a per-instance basis, 
  14475.                    most dual-plane video adapters only allow for a single 
  14476.                    setting that is applied to the entire screen.  Default 
  14477.                    values for transparency colors are stored in a device .INI 
  14478.                    file. 
  14479.  
  14480.     MCI_DGV_SET_VIDEO_RECORD_RATE 
  14481.             Sets the frame rate for recording as an integral number of frames 
  14482.             per second in the range 0-30. This sets the target capture rate, 
  14483.             but there is no guarantee this rate will be attained. Drop frame 
  14484.             records will be inserted into the output data stream to indicate 
  14485.             frames dropped during the record process. The default record frame 
  14486.             rate is 15 frames per second. 
  14487.  
  14488.     MCI_DGV_SET_VIDEO_RECORD_FRAME_DURATION 
  14489.             Sets the frame rate for recording as the time duration of each 
  14490.             frame in microseconds.  This is useful for setting non-integer 
  14491.             frame rates, for example, 12.5 frames per second of a PAL 
  14492.             videodisc:  1000000/12.5 = 8000 microseconds. The default frame 
  14493.             duration is 66,667 microseconds (equivalent to 15 frames per 
  14494.             second). 
  14495.  
  14496.     The following additional time formats are supported by digital video 
  14497.     devices and can be specified as values for the ulTimeFormat of the data 
  14498.     structure pointed to by pParam2 for use with the MCI_SET_TIME_FORMAT flag: 
  14499.  
  14500.     MCI_FORMAT_MILLISECONDS 
  14501.             Changes the time format to milliseconds. 
  14502.  
  14503.     MCI_FORMAT_MMTIME 
  14504.             Changes the time format to MMTIME. 
  14505.  
  14506.     MCI_FORMAT_FRAMES 
  14507.             Changes the time format to frames. 
  14508.  
  14509.     MCI_FORMAT_HMS 
  14510.             Changes the time format to hours, minutes, seconds. 
  14511.  
  14512.     MCI_FORMAT_HMSF 
  14513.             Changes the time format to hours, minutes, seconds, and frames. 
  14514.  
  14515.     Sequencer Extensions 
  14516.  
  14517.     The following additional flags apply to MIDI sequencer devices. All 
  14518.     sequencer flags are mutually exclusive, because only one set function can 
  14519.     be performed at a time with the MCI_SET message. 
  14520.  
  14521.     MCI_SEQ_SET_MASTER 
  14522.             Sets the sequencer as a source of synchronization data and 
  14523.             indicates that the type of synchronization is specified in the 
  14524.             ulMaster field of the data structure identified by pParam2. The 
  14525.             following constants are defined for the synchronization type: 
  14526.  
  14527.             MCI_SEQ_MIDI 
  14528.                     The sequencer will send MIDI format synchronization data. 
  14529.  
  14530.             MCI_SEQ_SMPTE 
  14531.                     The sequencer will send SMPTE format synchronization data. 
  14532.  
  14533.             MCI_SEQ_NONE 
  14534.                     The sequencer will not send synchronization data. 
  14535.  
  14536.     MCI_SEQ_SET_OFFSET 
  14537.             Changes the SMPTE offset of a sequencer to that specified by the 
  14538.             ulOffset field of the structure pointed to by pParam2. This only 
  14539.             affects sequences with a SMPTE division type. 
  14540.  
  14541.     MCI_SEQ_SET_PORT 
  14542.             Sets the output MIDI port of a sequencer to that specified by the 
  14543.             MIDI device ID in the ulPort field of the data structure identified 
  14544.             by pParam2. The device will close the previous port (if any), and 
  14545.             attempt to open and use the new port.  If it fails, it will return 
  14546.             an error and reopen the previously used port (if any).  The 
  14547.             following constants are defined for the ports: 
  14548.  
  14549.             MCI_SET_NONE 
  14550.                     Closes the previously used port (if any).  The sequencer 
  14551.                     will behave exactly the same as if a port were open, except 
  14552.                     no MIDI message will be sent. 
  14553.  
  14554.             MIDI_MAPPER 
  14555.                     Sets the port opened to the MIDI Mapper. 
  14556.  
  14557.     MCI_SEQ_SET_SLAVE 
  14558.             Sets the sequencer to receive synchronization data and indicates 
  14559.             the type of synchronization is specified in the ulSlave field of 
  14560.             the data structure pointed to by pParam2. The following constants 
  14561.             are defined for the synchronization type: 
  14562.  
  14563.             MCI_SEQ_FILE 
  14564.                     Sets the sequencer to receive synchronization data 
  14565.                     contained in the MIDI file. 
  14566.  
  14567.             MCI_SEQ_MIDI 
  14568.                     Sets the sequencer to receive MIDI format synchronization 
  14569.                     data. 
  14570.  
  14571.             MCI_SEQ_SMPTE 
  14572.                     Sets the sequencer to receive SMPTE format synchronization 
  14573.                     data. 
  14574.  
  14575.             MCI_SEQ_NONE 
  14576.                     Sets the sequencer to ignore synchronization data in a MIDI 
  14577.                     stream. 
  14578.  
  14579.     MCI_SEQ_SET_TEMPO 
  14580.             Changes the tempo of the MIDI sequence to that specified by the 
  14581.             ulTempo field of the structure pointed to by pParam2. For sequences 
  14582.             with division type PPQN, tempo is specified in beats per minute; 
  14583.             for sequences with division type SMPTE, tempo is specified in 
  14584.             frames per second. This function is not currently supported by the 
  14585.             IBM sequencer. 
  14586.  
  14587.     The following additional time-format flags apply to MIDI devices: 
  14588.  
  14589.     MCI_SEQ_SET_SMPTE_24 
  14590.             Sets the time format to 24 frame SMPTE. 
  14591.  
  14592.     MCI_SEQ_SET_SMPTE_25 
  14593.             Sets the time format to 25 frame SMPTE. 
  14594.  
  14595.     MCI_SEQ_SET_SMPTE_30 
  14596.             Sets the time format to 30 frame SMPTE. 
  14597.  
  14598.     MCI_SEQ_SET_SMPTE_30DROP 
  14599.             Sets the time format to 30 drop-frame SMPTE. 
  14600.  
  14601.     MCI_SEQ_SET_SONGPTR 
  14602.             Sets the time format to song pointer units. 
  14603.  
  14604.     Videodisc Extensions 
  14605.  
  14606.     The following additional flags apply to videodisc devices: 
  14607.  
  14608.     MCI_VD_SET_CHANNEL 
  14609.             This flag sets the video channel to the channel specified in 
  14610.             ulChannel of MCI_VD_SET_PARMS. 
  14611.  
  14612.     MCI_VD_SET_VIDEO 
  14613.             This flag sets Video. 
  14614.  
  14615.     MCI_VD_SET_DISPLAY 
  14616.             This flag sets the display index. 
  14617.  
  14618.     MCI_VD_SET_ON 
  14619.             This flag sets videodisc driver ON. 
  14620.  
  14621.     MCI_VD_SET_OFF 
  14622.             This flag sets videodisc driver OFF. 
  14623.  
  14624.     The following additional time formats apply to videodisc devices and can be 
  14625.     specified as values for the ulTimeFormat field of the data structure 
  14626.     pointed to by pParam2 for use with the MCI_SET_TIME_FORMAT flag: 
  14627.  
  14628.     MCI_FORMAT_CHAPTERS 
  14629.             This flag changes the time format to chapters. 
  14630.  
  14631.     MCI_FORMAT_FRAMES 
  14632.             This flag changes the time format to frames. 
  14633.  
  14634.     MCI_FORMAT_HMS 
  14635.             This flag changes the time format to hours, minutes, and seconds. 
  14636.  
  14637.     MCI_FORMAT_HMSF 
  14638.             This flag changes the time format to hours, minutes, seconds, and 
  14639.             frames. 
  14640.  
  14641.     The MCI_VD_SET_CHANNEL and MCI_VD_SET_VIDEO flags are mutually exclusive 
  14642.     and must be used with the MCI_VD_SET_ON and MCI_VD_SET_OFF flags. 
  14643.  
  14644.     Video Overlay Extensions 
  14645.  
  14646.     The following additional items apply to video overlay devices and can be 
  14647.     specified for the ulItem field of the data structure pointed to by pParam2 
  14648.     for use with the MCI_SET_ITEM flag: 
  14649.  
  14650.     MCI_OVLY_SET_IMAGE_FILE_FORMAT 
  14651.             Sets the specified image file format in which the image capture is 
  14652.             to be stored (when saved).  This format must be specified by a 
  14653.             four-character code (for example, MMOT or OS13), and must be one of 
  14654.             the currently supported and installed MMIO image file formats, or 
  14655.             the device-specific format.  This does not effect the loading or 
  14656.             restoring of images.  It overwrites any previous file-format value, 
  14657.             such as that obtained through a LOAD operation. 
  14658.  
  14659.     MCI_OVLY_SET_IMAGE_COMPRESSION 
  14660.             This flag sets the compression type used for saving still images. 
  14661.             The specified compression type is used if it is supported by the 
  14662.             device, the file format, or both.  The compression type is not used 
  14663.             if it contradicts settings for file format, BITSPERPEL, or 
  14664.             PELFORMAT. 
  14665.  
  14666.             If the compression type value is valid, it supersedes any image 
  14667.             quality setting and overwrites any format tag or compression value 
  14668.             obtained by a LOAD operation.  However, it does not affect the 
  14669.             loading or restoring of images. 
  14670.  
  14671.             Compression algorithms are often proprietary and can require 
  14672.             hardware assistance for performance.  Therefore, when possible, the 
  14673.             setting of this item is controlled by the device. If the specified 
  14674.             compression type is not compatible with file format or BITSPERPEL 
  14675.             settings, the device selects a compression type based on the file 
  14676.             format, PELFORMAT, and quality settings. 
  14677.  
  14678.             If the compression type is not available, the device returns 
  14679.             "function not supported" and uses the current setting. 
  14680.  
  14681.             M-Motion specific:  The default is MCI_IMG_COMP_NONE. 
  14682.  
  14683.     MCI_OVLY_SET_IMAGE_BITSPERPEL 
  14684.             Sets the number of bits per pixel used for the image file to be 
  14685.             saved.  Generally supported values are those defined for OS/2 2.0 
  14686.             bit maps.  Some devices might support other values. 
  14687.  
  14688.             The value specified for this setting might not be the same as the 
  14689.             number of colors currently visible on the display.  Selecting a 
  14690.             BITSPERPEL value greater than that currently displayed results in 
  14691.             unused colors.  Selecting a BITSPERPEL value less than that 
  14692.             currently displayed results in a degradation of color and a reduced 
  14693.             quality image. 
  14694.  
  14695.             Most file formats do not support all BITSPERPEL values. This item 
  14696.             overwrites any BITSPERPEL value obtained by a LOAD operation. 
  14697.             However, it does not affect the loading or restoring of images. 
  14698.  
  14699.             Some devices are not capable of adjusting the number of colors to 
  14700.             be saved in the image file.  When this is the case, the device 
  14701.             captures and saves the image in whatever number of colors it 
  14702.             supports. The actual value used can be obtained using the 
  14703.             MCI_OVLY_STATUS_IMAGE_BITSPERPEL flag. 
  14704.  
  14705.             If variable BITSPERPEL representation is not available, the device 
  14706.             returns "function not supported" and uses the current setting. 
  14707.  
  14708.             M-Motion specific: The default is 12. 
  14709.  
  14710.     MCI_OVLY_SET_IMAGE_PELFORMAT 
  14711.             This flag sets the pixel format used for saving bit maps.  This 
  14712.             value indicates the desired image file color representation, and is 
  14713.             used in conjunction with the BITSPERPEL value.  Supported pixel 
  14714.             format values are: 
  14715.  
  14716.             MCI_IMG_PALETTE 
  14717.                     A palettized video image with 1, 4, or 8 bits per pixel. 
  14718.  
  14719.             MCI_IMG_RGB 
  14720.                     An RGB video image with 16 or 24 bits per pixel. 
  14721.  
  14722.             MCI_IMG_YUV 
  14723.                     A YUVB video image with 9, 12, or 16 bits per pixel. 
  14724.  
  14725.             Most file formats do not support all pixel formats.  This item 
  14726.             overwrites any pixel format value obtained by a LOAD operation. 
  14727.             However, it does not affect the loading or restoring of images. 
  14728.  
  14729.             Some devices are not capable of adjusting the color representation 
  14730.             of the image.  When this is the case, the device captures and saves 
  14731.             the image in whatever color representation it supports. If variable 
  14732.             color representation is not available, the device returns "function 
  14733.             not supported" and uses the current setting. 
  14734.  
  14735.             M-Motion specific:  The default is MCI_IMG_YUV. 
  14736.  
  14737.     MCI_OVLY_SET_BRIGHTNESS 
  14738.             This flag sets the brightness level in the range 0-100. 
  14739.  
  14740.     MCI_OVLY_SET_CONTRAST 
  14741.             This flag sets the contrast level in the range 0-100. 
  14742.  
  14743.     MCI_OVLY_SET_HUE 
  14744.             This flag sets the hue level in the range 0-100.  A value of 50 
  14745.             indicates neutral tint. 
  14746.  
  14747.     MCI_OVLY_SET_SATURATION 
  14748.             This flag sets the saturation level in the range 0-100. 
  14749.  
  14750.     MCI_OVLY_SET_SHARPNESS 
  14751.             This flag sets the sharpness level in the range 0-100. 
  14752.  
  14753.     MCI_OVLY_SET_GREYSCALE 
  14754.             This flag turns the grey scale on or off.  Must be used in 
  14755.             conjunction with MCI_SET_ON or MCI_SET_OFF. 
  14756.  
  14757.     MCI_OVLY_SET_IMAGE_QUALITY 
  14758.             This flag sets the specified image quality level.  This item 
  14759.             indicates the perceived quality of the image to be saved and allows 
  14760.             the device to select the most appropriate compression method when 
  14761.             more than one is available. The value specified for this item can 
  14762.             affect the size of the resulting file. 
  14763.  
  14764.             This item overwrites any quality value obtained by a LOAD 
  14765.             operation. However, it does not affect the loading or restoring of 
  14766.             images. If image quality is not previously set, the device selects 
  14767.             a compression scheme as accurately as possible. 
  14768.  
  14769.             If variable image quality is not available, the device returns 
  14770.             "function not supported" and uses the current setting. 
  14771.  
  14772.             Supported values are: 
  14773.  
  14774.             MCI_IMG_QUALITY_HIGH 
  14775.                     This flag normally describes photo-realistic images with 
  14776.                     high resolution and color content. 
  14777.  
  14778.             MCI_IMG_QUALITY_MED 
  14779.                     This flag normally describes images such as complete 
  14780.                     graphs, charts, or diagrams, with fewer color transitions 
  14781.                     and complexity. 
  14782.  
  14783.             MCI_IMG_QUALITY_LOW 
  14784.                     This flag normally describes images such as cartoons and 
  14785.                     simple drawings. 
  14786.  
  14787.             M-Motion specific:  The default is MCI_IMG_QUALITY_HIGH. 
  14788.  
  14789.     MCI_OVLY_SET_IMAGE_COMPRESSION_METHOD 
  14790.             This flag sets the method by which image compression or 
  14791.             decompression is done. Supported values and their meanings are: 
  14792.  
  14793.             MCI_CODEC_DEFAULT 
  14794.                     This flag selects the default compression method specified 
  14795.                     in the INI file. 
  14796.  
  14797.             MCI_CODEC_SW_ONLY 
  14798.                     This flag selects to use software emulation as the 
  14799.                     compression method. 
  14800.  
  14801.             MCI_CODEC_HW 
  14802.                     This flag selects to use the compression method supported 
  14803.                     by the hardware, if available. Otherwise, software 
  14804.                     emulation is used. 
  14805.  
  14806.     MCI_OVLY_SET_MINIMUM_VIDEO_REFRESH_RATE 
  14807.             This flag sets the minimum refresh rate for the device instance. 
  14808.             This is the minimum frame display refresh rate the application will 
  14809.             accept for this device instance.  This parameter is used on 
  14810.             hardware that can multiplex the digitization between different 
  14811.             windows at reduced rates.  The default is one, allowing degraded 
  14812.             display on hardware that supports this capability. 
  14813.  
  14814.     Waveform Audio Extensions 
  14815.  
  14816.     The following additional flags apply to wave audio devices and are mutually 
  14817.     exclusive. If MCI_WAVE_SET_FORMATTAG is specified, the driver can change 
  14818.     other settings to maintain compatibility.  After setting the waveform 
  14819.     format, the other parameters can be set as necessary within the currently 
  14820.     selected waveform format.  An error will be returned if the requested 
  14821.     change results in an unsupported configuration. 
  14822.  
  14823.     An application can use the MCI_STATUS message to see if any of the other 
  14824.     settings were changed to maintain a valid configuration. 
  14825.  
  14826.     MCI_WAVE_SET_FORMATTAG 
  14827.             Sets the format type used for playing, recording, and saving to the 
  14828.             usFormatTag field of the MCI_WAVE_SET_PARMS data structure.  Refer 
  14829.             to the RIFF WAVE format documentation for more information.  The 
  14830.             following constants are defined to set the format type. Additional 
  14831.             subtype values can be found in OS2MEDEF.H. 
  14832.  
  14833.             MCI_WAVE_FORMAT_PCM 
  14834.                     Changes the format to pulse code modulation (PCM). 
  14835.  
  14836.             MCI_WAVE_FORMAT_ADPCM 
  14837.                     Changes the format to adaptive differential pulse code 
  14838.                     modulation (ADPCM). 
  14839.  
  14840.             MCI_WAVE_FORMAT_IBM_CVSD 
  14841.                     Changes the format to IBM Speech Viewer. 
  14842.  
  14843.             MCI_WAVE_FORMAT_ALAW 
  14844.                     Changes the format to A-Law. 
  14845.  
  14846.             MCI_WAVE_FORMAT_MULAW 
  14847.                     Changes the format to Mu-Law. 
  14848.  
  14849.             MCI_WAVE_FORMAT_IBM_ALAW 
  14850.                     Changes the format to A-Law. 
  14851.  
  14852.             MCI_WAVE_FORMAT_IBM_MULAW 
  14853.                     Changes the format to Mu-Law. 
  14854.  
  14855.             MCI_WAVE_FORMAT_OKI_ADPCM 
  14856.                     Changes the format to OKI ADPCM. 
  14857.  
  14858.             MCI_WAVE_FORMAT_DVI_ADPCM 
  14859.                     Changes the format to DVI ADPCM. 
  14860.  
  14861.             MCI_WAVE_FORMAT_IBM_ADPCM 
  14862.                     Changes the format to ADPCM. 
  14863.  
  14864.             MCI_WAVE_FORMAT_DIGISTD 
  14865.                     Changes the format to IBM Digispeech (standard format). 
  14866.  
  14867.             MCI_WAVE_FORMAT_DIGIFIX 
  14868.                     Changes the format to IBM Digispeech (fixed format). 
  14869.  
  14870.             MCI_WAVE_FORMAT_AVC_ADPCM 
  14871.                     Changes the format to AVC ADPCM. 
  14872.  
  14873.             MCI_WAVE_FORMAT_CT_ADPCM 
  14874.                     Changes the format to Creative Labs ADPCM. 
  14875.  
  14876.             MCI_WAVE_FORMAT_MPEG1 
  14877.                     Changes the format to MPEG audio. 
  14878.  
  14879.     MCI_WAVE_SET_CHANNELS 
  14880.             Sets the channel count used for playing, recording, and saving to 
  14881.             the usChannels field of the MCI_WAVE_SET_PARMS data structure. 
  14882.  
  14883.     MCI_WAVE_SET_SAMPLESPERSEC 
  14884.             Sets the samples per second used for playing, recording, and saving 
  14885.             to the ulSamplesPerSec field of the MCI_WAVE_SET_PARMS data 
  14886.             structure. 
  14887.  
  14888.     MCI_WAVE_SET_AVGBYTESPERSEC 
  14889.             Sets the bytes per second used for playing, recording, and saving 
  14890.             to the ulAvgBytesPerSec field of the MCI_WAVE_SET_PARMS data 
  14891.             structure.  Playback software may use this number to estimate 
  14892.             required buffer sizes. 
  14893.  
  14894.     MCI_WAVE_SET_BLOCKALIGN 
  14895.             Sets the block alignment used for playing, recording, and saving to 
  14896.             the usBlockAlign field of the MCI_WAVE_SET_PARMS data structure. 
  14897.  
  14898.     MCI_WAVE_SET_BITSPERSAMPLE 
  14899.             Sets the bits per sample used for playing, recording, and saving to 
  14900.             the usBitsPerSample field of the MCI_WAVE_SET_PARMS data structure. 
  14901.  
  14902.     The following additional time format flags apply to wave audio devices and 
  14903.     can be specified for the ulTimeFormat field: for use with the 
  14904.     MCI_SET_TIME_FORMAT flag: 
  14905.  
  14906.     MCI_FORMAT_SAMPLES 
  14907.             Change time format to samples. 
  14908.  
  14909.     MCI_FORMAT_BYTES 
  14910.             Change time format to bytes. 
  14911.  
  14912.  pParam2 (PMCI_SET_PARMS) 
  14913.     A pointer to an MCI_SET_PARMS data structure.  (This is the default 
  14914.     parameter data structure.) Devices with extended command sets might replace 
  14915.     this pointer with a pointer to a device-specific data structure as follows: 
  14916.  
  14917.     PMCI_AMP_SET_PARMS 
  14918.             A pointer to the MCI_AMP_SET_PARMS data structure. 
  14919.  
  14920.     PMCI_CDXA_SET_PARMS 
  14921.             A pointer to the MCI_CDXA_SET_PARMS data structure. 
  14922.  
  14923.     PMCI_DGV_SET_PARMS 
  14924.             A pointer to the MCI_DGV_SET_PARMS data structure. 
  14925.  
  14926.     PMCI_SEQ_SET_PARMS 
  14927.             A pointer to the MCI_SEQ_SET_PARMS data structure. 
  14928.  
  14929.     PMCI_VD_SET_PARMS 
  14930.             A pointer to the MCI_VD_SET_PARMS data structure. 
  14931.  
  14932.     PMCI_OVLY_SET_PARMS 
  14933.             A pointer to the MCI_OVLY_SET_PARMS data structure. 
  14934.  
  14935.     PMCI_WAVE_SET_PARMS 
  14936.             A pointer to the MCI_WAVE_SET_PARMS data structure. This data 
  14937.             structure replaces the standard default data structure, 
  14938.             MCI_SET_PARMS. 
  14939.  
  14940.  rc (ULONG) 
  14941.     Return codes indicating success or type of failure: 
  14942.  
  14943.     MCIERR_SUCCESS 
  14944.             MMPM/2 command completed successfully. 
  14945.  
  14946.     MCIERR_OUT_OF_MEMORY 
  14947.             System out of memory. 
  14948.  
  14949.     MCIERR_INVALID_DEVICE_ID 
  14950.             Invalid device ID given. 
  14951.  
  14952.     MCIERR_MISSING_PARAMETER 
  14953.             Missing parameter for this command. 
  14954.  
  14955.     MCIERR_DRIVER 
  14956.             Internal MMPM/2 driver error. 
  14957.  
  14958.     MCIERR_INVALID_FLAG 
  14959.             Invalid flag specified for this command. 
  14960.  
  14961.     MCIERR_UNSUPPORTED_FLAG 
  14962.             Flag not supported by this MMPM/2 driver for this command. 
  14963.  
  14964.     MCIERR_MISSING_FLAG 
  14965.             Flag missing for this MMPM/2 command. 
  14966.  
  14967.     MCIERR_FLAGS_NOT_COMPATIBLE 
  14968.             The flags cannot be used together. 
  14969.  
  14970.     MCIERR_MISSING_STRING_ARGUMENT 
  14971.             Missing required string argument. 
  14972.  
  14973.     MCIERR_INVALID_ITEM_FLAG 
  14974.             Invalid item flag specified for this command. 
  14975.  
  14976.     MCIERR_INSTANCE_INACTIVE 
  14977.             Instance inactive. 
  14978.  
  14979.     MCIERR_OUTOFRANGE 
  14980.             Value given is out of range. 
  14981.  
  14982.     MCIERR_UNSUPPORTED_FUNCTION 
  14983.             Function not supported. 
  14984.  
  14985.  
  14986. ΓòÉΓòÉΓòÉ <hidden> MCI_SET - Remarks ΓòÉΓòÉΓòÉ
  14987.  
  14988. The parameters and flags for this message vary according to the selected 
  14989. device. 
  14990.  
  14991. If the amp-mixer device does not support hardware mixing, 
  14992. MCI_UNSUPPORTED_FUNCTION will be returned. 
  14993.  
  14994.  
  14995. ΓòÉΓòÉΓòÉ <hidden> MCI_SET - Related Messages ΓòÉΓòÉΓòÉ
  14996.  
  14997.      MCI_STATUS 
  14998.  
  14999.  
  15000. ΓòÉΓòÉΓòÉ <hidden> MCI_SET - Example Code ΓòÉΓòÉΓòÉ
  15001.  
  15002. The following code illustrates setting the volume level for a device. 
  15003.  
  15004.     USHORT             usDeviceID;
  15005.     MCI_SET_PARMS      msp;
  15006.  
  15007.     msp.ulLevel = 50;                  /* 50% of volume */
  15008.     msp.ulAudio = MCI_SET_AUDIO_ALL;
  15009.     mciSendCommand(usDeviceID,
  15010.                    MCI_SET,
  15011.                    MCI_WAIT | MCI_SET_AUDIO |
  15012.                    MCI_SET_VOLUME
  15013.                    (PVOID) &msp, 0);
  15014.  
  15015. The following example illustrates how an application can set a particular 
  15016. connector's volume setting. 
  15017.  
  15018.     MCI_AMP_SET_PARMS  mSet;
  15019.    /* Set the volume of a particular connector. */
  15020.       mSet.ulValue = MCI_AMP_STREAM_CONNECTOR;
  15021.       mSet.ulLevel = 100;
  15022.       mSet.ulItem = MCI_AMP_SET_AUDIO;
  15023.       mSet.ulAudio = MCI_AMP_SET_BASS;
  15024.  
  15025.       ulError = mciSendCommand((USHORT)hMixer,
  15026.                      MCI_SET,
  15027.                      MCI_WAIT | MCI_SET_ITEM
  15028.                      (PVOID)&mSet,
  15029.                      0);
  15030.       if(ULONG_LOWD(ulError) != MCIERR_SUCCESS)
  15031.         {
  15032.         }
  15033.  
  15034.  
  15035. ΓòÉΓòÉΓòÉ <hidden> MCI_SET - Topics ΓòÉΓòÉΓòÉ
  15036.  
  15037. Select an item: 
  15038.  
  15039. Description
  15040. Returns
  15041. Remarks
  15042. Related Messages
  15043. Example Code
  15044. Glossary
  15045.  
  15046.  
  15047. ΓòÉΓòÉΓòÉ 7.40. MCI_SET_CUEPOINT ΓòÉΓòÉΓòÉ
  15048.  
  15049.  
  15050. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  15051.  
  15052.  ulParam1 (ULONG) 
  15053.     This parameter can contain any of the following flags: 
  15054.  
  15055.     MCI_NOTIFY 
  15056.             A notification message will be posted to the window specified in 
  15057.             the hwndCallback parameter of the data structure pointed to by the 
  15058.             pParam2 parameter.  The notification will be posted when the action 
  15059.             indicated by this message is completed or when an error occurs. 
  15060.  
  15061.     MCI_WAIT 
  15062.             Control is not to be returned until the action indicated by this 
  15063.             message is completed or an error occurs. 
  15064.  
  15065.     MCI_SET_CUEPOINT_ON 
  15066.             This flag is used to set a cue point at the location specified in 
  15067.             the ulCuepoint field of the MCI_CUEPOINT_PARMS data structure. The 
  15068.             value in the ulCuepoint field is in the current time format. 
  15069.  
  15070.             Note:  You can set only one cue point ON or OFF at a time. 
  15071.  
  15072.     MCI_SET_CUEPOINT_OFF 
  15073.             This flag is used to remove a cue point at the location specified 
  15074.             in the ulCuepoint field of the MCI_CUEPOINT_PARMS data structure. 
  15075.             The location specified must exactly match the location of the 
  15076.             previously set cue point. 
  15077.  
  15078.             Note:  You can set only one cue point ON or OFF at a time. 
  15079.  
  15080.  
  15081. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT Parameter - pParam2 ΓòÉΓòÉΓòÉ
  15082.  
  15083.  pParam2 (PMCI_CUEPOINT_PARMS) 
  15084.     Pointer to MCI_CUEPOINT_PARMS data structure. 
  15085.  
  15086.  
  15087. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT Return Value - rc ΓòÉΓòÉΓòÉ
  15088.  
  15089.  rc (ULONG) 
  15090.     Return codes indicating success or type of failure: 
  15091.  
  15092.     MCIERR_SUCCESS 
  15093.             If the function succeeds, 0 is returned. 
  15094.  
  15095.     MCIERR_INVALID_DEVICE_ID 
  15096.             The device ID is not valid. 
  15097.  
  15098.     MCIERR_INSTANCE_INACTIVE 
  15099.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  15100.             make device ID active. 
  15101.  
  15102.     MCIERR_MISSING_FLAG 
  15103.             A required flag is missing. 
  15104.  
  15105.     MCIERR_UNSUPPORTED_FLAG 
  15106.             Given flag is unsupported for this device. 
  15107.  
  15108.     MCIERR_INVALID_CALLBACK_HANDLE 
  15109.             Given callback handle is invalid. 
  15110.  
  15111.     MCIERR_FILE_NOT_FOUND 
  15112.             File has not been loaded. 
  15113.  
  15114.     MCIERR_OUT_OF_MEMORY 
  15115.             Out of memory. 
  15116.  
  15117.     MCIERR_OUTOFRANGE 
  15118.             Units is out of range. 
  15119.  
  15120.     MCIERR_DUPLICATE_CUEPOINT 
  15121.             Given cue point already exists. 
  15122.  
  15123.     MCIERR_INVALID_CUEPOINT 
  15124.             Given cue point is invalid. 
  15125.  
  15126.     MCIERR_CUEPOINT_LIMIT_REACHED 
  15127.             The limit for cue points for this device has been reached. Delete 
  15128.             one or more cue points and retry this message. 
  15129.  
  15130.     MCIERR_MISSING_PARAMETER 
  15131.             Required parameter is missing. 
  15132.  
  15133.  
  15134. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT - Description ΓòÉΓòÉΓòÉ
  15135.  
  15136. This message is used to set run-time cue points in the media device.  The 
  15137. ulCuepoint field is in the current time format, but the cue-point notification 
  15138. messages are returned in MMTIME format. 
  15139.  
  15140.  ulParam1 (ULONG) 
  15141.     This parameter can contain any of the following flags: 
  15142.  
  15143.     MCI_NOTIFY 
  15144.             A notification message will be posted to the window specified in 
  15145.             the hwndCallback parameter of the data structure pointed to by the 
  15146.             pParam2 parameter.  The notification will be posted when the action 
  15147.             indicated by this message is completed or when an error occurs. 
  15148.  
  15149.     MCI_WAIT 
  15150.             Control is not to be returned until the action indicated by this 
  15151.             message is completed or an error occurs. 
  15152.  
  15153.     MCI_SET_CUEPOINT_ON 
  15154.             This flag is used to set a cue point at the location specified in 
  15155.             the ulCuepoint field of the MCI_CUEPOINT_PARMS data structure. The 
  15156.             value in the ulCuepoint field is in the current time format. 
  15157.  
  15158.             Note:  You can set only one cue point ON or OFF at a time. 
  15159.  
  15160.     MCI_SET_CUEPOINT_OFF 
  15161.             This flag is used to remove a cue point at the location specified 
  15162.             in the ulCuepoint field of the MCI_CUEPOINT_PARMS data structure. 
  15163.             The location specified must exactly match the location of the 
  15164.             previously set cue point. 
  15165.  
  15166.             Note:  You can set only one cue point ON or OFF at a time. 
  15167.  
  15168.  pParam2 (PMCI_CUEPOINT_PARMS) 
  15169.     Pointer to MCI_CUEPOINT_PARMS data structure. 
  15170.  
  15171.  rc (ULONG) 
  15172.     Return codes indicating success or type of failure: 
  15173.  
  15174.     MCIERR_SUCCESS 
  15175.             If the function succeeds, 0 is returned. 
  15176.  
  15177.     MCIERR_INVALID_DEVICE_ID 
  15178.             The device ID is not valid. 
  15179.  
  15180.     MCIERR_INSTANCE_INACTIVE 
  15181.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  15182.             make device ID active. 
  15183.  
  15184.     MCIERR_MISSING_FLAG 
  15185.             A required flag is missing. 
  15186.  
  15187.     MCIERR_UNSUPPORTED_FLAG 
  15188.             Given flag is unsupported for this device. 
  15189.  
  15190.     MCIERR_INVALID_CALLBACK_HANDLE 
  15191.             Given callback handle is invalid. 
  15192.  
  15193.     MCIERR_FILE_NOT_FOUND 
  15194.             File has not been loaded. 
  15195.  
  15196.     MCIERR_OUT_OF_MEMORY 
  15197.             Out of memory. 
  15198.  
  15199.     MCIERR_OUTOFRANGE 
  15200.             Units is out of range. 
  15201.  
  15202.     MCIERR_DUPLICATE_CUEPOINT 
  15203.             Given cue point already exists. 
  15204.  
  15205.     MCIERR_INVALID_CUEPOINT 
  15206.             Given cue point is invalid. 
  15207.  
  15208.     MCIERR_CUEPOINT_LIMIT_REACHED 
  15209.             The limit for cue points for this device has been reached. Delete 
  15210.             one or more cue points and retry this message. 
  15211.  
  15212.     MCIERR_MISSING_PARAMETER 
  15213.             Required parameter is missing. 
  15214.  
  15215.  
  15216. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT - Remarks ΓòÉΓòÉΓòÉ
  15217.  
  15218. When the device reaches the specified points during playback, the 
  15219. MM_MCICUEPOINT message is returned to the application using the window handle 
  15220. specified in the hwndCallback field.  When setting a cue point on, the 
  15221. hwndCallback field must contain a valid window handle. An error is returned if 
  15222. a NULL or invalid window handle is specified in pParam2.  Each cue point can be 
  15223. directed to a different window handle. 
  15224.  
  15225. Only one cue point can be set at any given location in the media. 
  15226.  
  15227. Cue points can only be set when a device element is loaded, and are reset when 
  15228. a new device element is loaded. 
  15229.  
  15230. Cue points are persistent, that is they remain set after they are encountered. 
  15231. A cue point is only considered to have been encountered when the device passes 
  15232. the cue point location during playback or recording, not during seek 
  15233. operations. 
  15234.  
  15235. If the length of a file cannot be determined, MCIERR_SUCCESS might be returned 
  15236. even though the specified point is out of range. 
  15237.  
  15238. Devices that do not perform their own event detection might have less accurate 
  15239. cue points. 
  15240.  
  15241.  
  15242. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT - Default Processing ΓòÉΓòÉΓòÉ
  15243.  
  15244. As a general default, media drivers should support at least twenty cue points. 
  15245. If the number of supported cue points is exceeded, then 
  15246. MCIERR_CUEPOINT_LIMIT_REACHED will be returned. 
  15247.  
  15248.  
  15249. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT - Example Code ΓòÉΓòÉΓòÉ
  15250.  
  15251. The following code illustrates how to set run-time cue points for a media 
  15252. device. 
  15253.  
  15254.                                /* Set a cue point 30 secs in the media */
  15255.  
  15256.    USHORT usDeviceID;
  15257.    HWND   hwndMyWindow;
  15258.    MCI_CUEPOINT_PARMS cuepointparms;        /* Cue point parameter
  15259.                                                 structure             */
  15260.  
  15261.    /* Assign hwndCallback the handle to the PM Window - this returns
  15262.       MM_MCICUEPOINT messages.                                        */
  15263.  
  15264.    cuepointparms.hwndCallback = hwndMyWindow;
  15265.    cuepointparms.ulCuepoint = (ULONG) 30000; /* Current time format
  15266.                                                 format = MS           */
  15267.  
  15268.    mciSendCommand( usDeviceID,        /* Device ID                */
  15269.     MCI_SET_CUEPOINT,                 /* MCI set cue point message */
  15270.     MCI_SET_CUEPOINT_ON | MCI_WAIT,
  15271.                                       /* Flags for this message   */
  15272.     (ULONG) &cuepointparms,           /* Data structure           */
  15273.     0);                               /* No user parm             */
  15274.  
  15275.  
  15276. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_CUEPOINT - Topics ΓòÉΓòÉΓòÉ
  15277.  
  15278. Select an item: 
  15279.  
  15280. Description
  15281. Returns
  15282. Remarks
  15283. Default Processing
  15284. Example Code
  15285. Glossary
  15286.  
  15287.  
  15288. ΓòÉΓòÉΓòÉ 7.41. MCI_SETIMAGEBUFFER ΓòÉΓòÉΓòÉ
  15289.  
  15290.  
  15291. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEBUFFER Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  15292.  
  15293.  ulParam1 (ULONG) 
  15294.     This parameter can contain any of the following flags: 
  15295.  
  15296.     MCI_NOTIFY 
  15297.             A notification message will be posted to the window specified in 
  15298.             the hwndCallback field of the data structure pointed to by the 
  15299.             pParam2 parameter.  The notification will be posted when the action 
  15300.             indicated by this message is completed or when an error occurs. 
  15301.  
  15302.     MCI_WAIT 
  15303.             Control is not to be returned until the action indicated by this 
  15304.             message is completed or an error occurs. 
  15305.  
  15306.     MCI_CONVERT 
  15307.             This flag specifies that image format conversion will be performed. 
  15308.             Data is assumed to be in the device-specific format. 
  15309.  
  15310.             If MCI_CONVERT is specified, the data must be in the OS/2 
  15311.             uncompressed bit-map format. 
  15312.  
  15313.  
  15314. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEBUFFER Parameter - pParam2 ΓòÉΓòÉΓòÉ
  15315.  
  15316.  pParam2 (PMCI_IMAGE_PARMS) 
  15317.     A pointer to the MCI_IMAGE_PARMS data structure. 
  15318.  
  15319.  
  15320. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEBUFFER Return Value - rc ΓòÉΓòÉΓòÉ
  15321.  
  15322.  rc (ULONG) 
  15323.     Return codes indicating success or type of failure: 
  15324.  
  15325.     MCIERR_SUCCESS 
  15326.             MMPM/2 command completed successfully. 
  15327.  
  15328.     MCIERR_OUT_OF_MEMORY 
  15329.             System out of memory. 
  15330.  
  15331.     MCIERR_INVALID_DEVICE_ID 
  15332.             Invalid device ID given. 
  15333.  
  15334.     MCIERR_MISSING_PARAMETER 
  15335.             Missing parameter for this command. 
  15336.  
  15337.     MCIERR_DRIVER 
  15338.             Internal MMPM/2 driver error. 
  15339.  
  15340.     MCIERR_INVALID_FLAG 
  15341.             Invalid flag specified for this command. 
  15342.  
  15343.     MCIERR_UNSUPPORTED_FLAG 
  15344.             Flag not supported by this MMPM/2 driver for this command. 
  15345.  
  15346.     MCIERR_INSTANCE_INACTIVE 
  15347.             Instance inactive. 
  15348.  
  15349.     MCIERR_INVALID_BUFFER 
  15350.             Invalid return buffer given. 
  15351.  
  15352.     MCIERR_INVALID_BUFFER 
  15353.             Invalid return buffer given. 
  15354.  
  15355.     MCIERR_FILE_NOT_FOUND 
  15356.             File not found. 
  15357.  
  15358.     MCIERR_TARGET_DEVICE_FULL 
  15359.             Target device is full. 
  15360.  
  15361.  
  15362. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEBUFFER - Description ΓòÉΓòÉΓòÉ
  15363.  
  15364. This message writes data to the image capture buffer.  The fields in the 
  15365. MCI_IMAGE_PARMS structure are used to interpret the data. 
  15366.  
  15367. Using this message invalidates (or resets) the current element name or element 
  15368. HMMIO handle, since the element has been replaced by data from the application. 
  15369.  
  15370.  ulParam1 (ULONG) 
  15371.     This parameter can contain any of the following flags: 
  15372.  
  15373.     MCI_NOTIFY 
  15374.             A notification message will be posted to the window specified in 
  15375.             the hwndCallback field of the data structure pointed to by the 
  15376.             pParam2 parameter.  The notification will be posted when the action 
  15377.             indicated by this message is completed or when an error occurs. 
  15378.  
  15379.     MCI_WAIT 
  15380.             Control is not to be returned until the action indicated by this 
  15381.             message is completed or an error occurs. 
  15382.  
  15383.     MCI_CONVERT 
  15384.             This flag specifies that image format conversion will be performed. 
  15385.             Data is assumed to be in the device-specific format. 
  15386.  
  15387.             If MCI_CONVERT is specified, the data must be in the OS/2 
  15388.             uncompressed bit-map format. 
  15389.  
  15390.  pParam2 (PMCI_IMAGE_PARMS) 
  15391.     A pointer to the MCI_IMAGE_PARMS data structure. 
  15392.  
  15393.  rc (ULONG) 
  15394.     Return codes indicating success or type of failure: 
  15395.  
  15396.     MCIERR_SUCCESS 
  15397.             MMPM/2 command completed successfully. 
  15398.  
  15399.     MCIERR_OUT_OF_MEMORY 
  15400.             System out of memory. 
  15401.  
  15402.     MCIERR_INVALID_DEVICE_ID 
  15403.             Invalid device ID given. 
  15404.  
  15405.     MCIERR_MISSING_PARAMETER 
  15406.             Missing parameter for this command. 
  15407.  
  15408.     MCIERR_DRIVER 
  15409.             Internal MMPM/2 driver error. 
  15410.  
  15411.     MCIERR_INVALID_FLAG 
  15412.             Invalid flag specified for this command. 
  15413.  
  15414.     MCIERR_UNSUPPORTED_FLAG 
  15415.             Flag not supported by this MMPM/2 driver for this command. 
  15416.  
  15417.     MCIERR_INSTANCE_INACTIVE 
  15418.             Instance inactive. 
  15419.  
  15420.     MCIERR_INVALID_BUFFER 
  15421.             Invalid return buffer given. 
  15422.  
  15423.     MCIERR_INVALID_BUFFER 
  15424.             Invalid return buffer given. 
  15425.  
  15426.     MCIERR_FILE_NOT_FOUND 
  15427.             File not found. 
  15428.  
  15429.     MCIERR_TARGET_DEVICE_FULL 
  15430.             Target device is full. 
  15431.  
  15432.  
  15433. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEBUFFER - Remarks ΓòÉΓòÉΓòÉ
  15434.  
  15435. The format of the image data to be set is specified by the ulPelFormat and 
  15436. usBitCount fields of the MCI_IMAGE_PARMS data structure. If MCI_CONVERT is 
  15437. specified, the data must be in OS/2 bit-map format and will be converted to the 
  15438. device-specific format.  The driver expects a BITMAPINFOHEADER2 data structure 
  15439. at the beginning of the buffer, followed by any palette data, and then the pel 
  15440. data. If MCI_CONVERT is not specified, the data will be placed directly into 
  15441. the device element buffer. If the current bits-per-pel, pixel-format or 
  15442. MCI_CONVERT values conflict, the message will fail. 
  15443.  
  15444. On dual-plane image capture hardware devices, the image layer content is 
  15445. assumed.  Output is clipped as needed to the visible regions of the display 
  15446. window. 
  15447.  
  15448. Conversion from OS/2 bit-map format to YUVB format is accomplished with an I/O 
  15449. procedure which can use disk space for temporary storage.  Therefore, it is 
  15450. possible that errors such as MCIERR_TARGET_DEVICE_FULL can occur. 
  15451.  
  15452.  
  15453. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEBUFFER - Example Code ΓòÉΓòÉΓòÉ
  15454.  
  15455. The following code illustrates how to write data to the image capture buffer. 
  15456.  
  15457.   USHORT  usUserParm = 0;
  15458.   ULONG   ulReturn;
  15459.   BITMAPINFOHEADER2 *pbmphdr;
  15460.   MMOTIONHEADER *pmmothdr;
  15461.   MCI_IMAGE_PARMS mciImageParms;
  15462.  
  15463.   memset (mciImageParms, 0x00, sizeof (MCI_IMAGE_PARMS));
  15464.   mciImageParms.hwndCallback = hwndNotify;
  15465.  
  15466.   /* If you desire to set from a standard format converted */
  15467.   /* buffer                                                */
  15468.   if (ulFlags & MCI_CONVERT)
  15469.        {
  15470.      /******************************/
  15471.      /* For RGB BITMAP data buffer */
  15472.      /******************************/
  15473.      mciImageParms.ulPelFormat = MCI_IMG_RGB;
  15474.      mciImageParms.usBitCount = 24;
  15475.      mciImageParms.ulImageCompression = MCI_IMG_COMP_NONE;
  15476.      mciImageParms.ulPelBufferWidth  = 200;
  15477.      mciImageParms.ulPelBufferHeight = 100;
  15478.      mciImageParms.ulBufLen = ((200 * 3) * 100) + sizeof
  15479.       (BITMAPINFOHEADER2);
  15480.      DosAllocMem (&mciImageParms.pPelBuffer,
  15481.                   mciImageParms.ulBufLen,
  15482.                   PAG_COMMIT | PAG_WRITE | PAG_READ);
  15483.  
  15484.      /* Set the BITMAP HEADER section to look like a real bitmap*/
  15485.      pbmphdr = (BITMAPINFOHEADER2 *)mciImageParms.pPelBuffer;
  15486.      pbmphdr->cbFix     = sizeof (BITMAPINFOHEADER2);
  15487.      pbmphdr->cx        = mciImageParms.ulPelBufferWidth;
  15488.      pbmphdr->cy        = mciImageParms.ulPelBufferHeight;
  15489.      pbmphdr->cPlanes   = 1;
  15490.      pbmphdr->cBitCount = mciImageParms.usBitCount;
  15491.  
  15492.  
  15493.      /* Set the BITMAP DATA section to RGB white. */
  15494.      memset ((PVOID)((LONG)mciImageParms.pPelBuffer + sizeof
  15495.      (BITMAPINFOHEADER2)
  15496.      ),
  15497.         0xFF, mciImageParms.ulBufLen - sizeof (BITMAPINFOHEADER2));
  15498.      }
  15499.     else
  15500.        {
  15501.  
  15502.      /********************************/
  15503.      /* For M-Motion YUV data buffer */
  15504.      /********************************/
  15505.      mciImageParms.ulPelFormat = MCI_IMG_YUV;
  15506.      mciImageParms.usBitCount = 12;
  15507.      mciImageParms.ulImageCompression = MCI_IMG_COMP_NONE;
  15508.      mciImageParms.ulPelBufferWidth  = 200;
  15509.      mciImageParms.ulPelBufferHeight = 100;
  15510.      mciImageParms.ulBufLen = (200 * 100) + ((200 * 100) >> 1) + sizeof
  15511.   (MMOTIONHEADER);
  15512.      DosAllocMem (&mciImageParms.pPelBuffer,
  15513.                 mciImageParms.ulBufLen,
  15514.                   PAG_COMMIT | PAG_WRITE | PAG_READ);
  15515.  
  15516.      /* Set the BITMAP HEADER section to look like a real bitmap */
  15517.      pmmothdr = (MMOTIONHEADER *)mciImageParms.pPelBuffer;
  15518.      strncpy (&pmmothdr->mmID[0], "YUV12C", 6);
  15519.      pmmothdr->mmXlen = mciImageParms.ulPelBufferWidth ;
  15520.      pmmothdr->mmYlen = mciImageParms.ulPelBufferHeight;
  15521.  
  15522.      /* Leave the yuv buffer black for this example.  */
  15523.      }
  15524.  
  15525.   ulReturn = mciSendCommand(usDeviceID, MCI_SETIMAGEBUFFER,
  15526.                    MCI_WAIT | ulFlags,
  15527.                    (PVOID)&mciImageParms,
  15528.                    usUserParm);
  15529.  
  15530.  
  15531. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEBUFFER - Topics ΓòÉΓòÉΓòÉ
  15532.  
  15533. Select an item: 
  15534.  
  15535. Description
  15536. Returns
  15537. Remarks
  15538. Example Code
  15539. Glossary
  15540.  
  15541.  
  15542. ΓòÉΓòÉΓòÉ 7.42. MCI_SETIMAGEPALETTE ΓòÉΓòÉΓòÉ
  15543.  
  15544.  
  15545. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEPALETTE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  15546.  
  15547.  ulParam1 (ULONG) 
  15548.     This parameter can contain any of the following flags: 
  15549.  
  15550.     MCI_NOTIFY 
  15551.             A notification message will be posted to the window specified in 
  15552.             the hwndCallback parameter of the data structure pointed to by the 
  15553.             pParam2 parameter.  The notification will be posted when the action 
  15554.             indicated by this message is completed or when an error occurs. 
  15555.  
  15556.     MCI_WAIT 
  15557.             Control is not to be returned until the action indicated by this 
  15558.             message is completed or an error occurs. 
  15559.  
  15560.     MCI_SET_REGISTERED 
  15561.             This flag sets the registered palette specified in the 
  15562.             usRegisteredMap field of the MCI_PALETTE_PARMS data structure. 
  15563.  
  15564.  
  15565. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEPALETTE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  15566.  
  15567.  pParam2 (PMCI_PALETTE_PARMS) 
  15568.     A pointer to the MCI_PALETTE_PARMS data structure. 
  15569.  
  15570.  
  15571. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEPALETTE Return Value - rc ΓòÉΓòÉΓòÉ
  15572.  
  15573.  rc (ULONG) 
  15574.     Return codes indicating success or type of failure: 
  15575.  
  15576.     MCIERR_SUCCESS 
  15577.             If the function succeeds. 
  15578.  
  15579.  
  15580. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEPALETTE - Description ΓòÉΓòÉΓòÉ
  15581.  
  15582. This message sets the palette or color map that is to be used for images loaded 
  15583. with subsequent MCI_SETIMAGEBUFFER messages. 
  15584.  
  15585. This message does not affect motion video, an image that is already displayed, 
  15586. or images loaded via the MCI_RESTORE message. 
  15587.  
  15588. This message applies only to palettized images. 
  15589.  
  15590.  ulParam1 (ULONG) 
  15591.     This parameter can contain any of the following flags: 
  15592.  
  15593.     MCI_NOTIFY 
  15594.             A notification message will be posted to the window specified in 
  15595.             the hwndCallback parameter of the data structure pointed to by the 
  15596.             pParam2 parameter.  The notification will be posted when the action 
  15597.             indicated by this message is completed or when an error occurs. 
  15598.  
  15599.     MCI_WAIT 
  15600.             Control is not to be returned until the action indicated by this 
  15601.             message is completed or an error occurs. 
  15602.  
  15603.     MCI_SET_REGISTERED 
  15604.             This flag sets the registered palette specified in the 
  15605.             usRegisteredMap field of the MCI_PALETTE_PARMS data structure. 
  15606.  
  15607.  pParam2 (PMCI_PALETTE_PARMS) 
  15608.     A pointer to the MCI_PALETTE_PARMS data structure. 
  15609.  
  15610.  rc (ULONG) 
  15611.     Return codes indicating success or type of failure: 
  15612.  
  15613.     MCIERR_SUCCESS 
  15614.             If the function succeeds. 
  15615.  
  15616.  
  15617. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEPALETTE - Remarks ΓòÉΓòÉΓòÉ
  15618.  
  15619. The map can either be a registered map or a map specified by the application. 
  15620.  
  15621. If the number of palette entries in MCI_SETIMAGEPALETTE does not match the 
  15622. number of colors in the subsequent MCI_SETIMAGEBUFFER message, the image might 
  15623. be displayed incorrectly. 
  15624.  
  15625.  
  15626. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEPALETTE - Default Processing ΓòÉΓòÉΓòÉ
  15627.  
  15628. Each image device will possess some default palette (or palettes) that will be 
  15629. used in palettized modes of operation.  These defaults may be the current 
  15630. system palette. 
  15631.  
  15632.  
  15633. ΓòÉΓòÉΓòÉ <hidden> MCI_SETIMAGEPALETTE - Topics ΓòÉΓòÉΓòÉ
  15634.  
  15635. Select an item: 
  15636.  
  15637. Description
  15638. Returns
  15639. Remarks
  15640. Default Processing
  15641. Glossary
  15642.  
  15643.  
  15644. ΓòÉΓòÉΓòÉ 7.43. MCI_SET_POSITION_ADVISE ΓòÉΓòÉΓòÉ
  15645.  
  15646.  
  15647. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_POSITION_ADVISE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  15648.  
  15649.  ulParam1 (ULONG) 
  15650.     This parameter can contain any of the following flags: 
  15651.  
  15652.     MCI_NOTIFY 
  15653.             A notification message will be posted to the window specified in 
  15654.             the hwndCallback parameter of the data structure pointed to by the 
  15655.             pParam2 parameter.  The notification will be posted when the action 
  15656.             indicated by this message is completed or when an error occurs. 
  15657.  
  15658.     MCI_WAIT 
  15659.             Control is not to be returned until the action indicated by this 
  15660.             message is completed or an error occurs. 
  15661.  
  15662.     MCI_SET_POSITION_ADVISE_ON 
  15663.             This flag specifies that position-change advise message frequency 
  15664.             is to be set to the value specified in the ulUnits field of the 
  15665.             MCI_POSITION_PARMS data structure. 
  15666.  
  15667.     MCI_SET_POSITION_ADVISE_OFF 
  15668.             This flag disables position-change advise messages. 
  15669.  
  15670.  
  15671. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_POSITION_ADVISE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  15672.  
  15673.  pParam2 (PMCI_POSITION_PARMS) 
  15674.     A pointer to the MCI_POSITION_PARMS data structure. 
  15675.  
  15676.  
  15677. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_POSITION_ADVISE Return Value - rc ΓòÉΓòÉΓòÉ
  15678.  
  15679.  rc (ULONG) 
  15680.     Return codes indicating success or type of failure: 
  15681.  
  15682.     MCIERR_SUCCESS 
  15683.             If the function succeeds, 0 is returned. 
  15684.  
  15685.     MCIERR_INVALID_DEVICE_ID 
  15686.             The device ID is not valid. 
  15687.  
  15688.     MCIERR_INSTANCE_INACTIVE 
  15689.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  15690.             make device ID active. 
  15691.  
  15692.     MCIERR_MISSING_FLAG 
  15693.             A required flag is missing. 
  15694.  
  15695.     MCIERR_INVALID_FLAG 
  15696.             Given flag is invalid. 
  15697.  
  15698.     MCIERR_UNSUPPORTED_FLAG 
  15699.             Given flag is unsupported for this device. 
  15700.  
  15701.     MCIERR_INVALID_CALLBACK_HANDLE 
  15702.             Given callback handle is invalid. 
  15703.  
  15704.     MCIERR_FILE_NOT_FOUND 
  15705.             File has not been loaded. 
  15706.  
  15707.     MCIERR_OUT_OF_MEMORY 
  15708.             Out of memory. 
  15709.  
  15710.     MCIERR_OUTOFRANGE 
  15711.             Unit is out of range. 
  15712.  
  15713.     MCIERR_MISSING_PARAMETER 
  15714.             Required parameter is missing. 
  15715.  
  15716.  
  15717. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_POSITION_ADVISE - Description ΓòÉΓòÉΓòÉ
  15718.  
  15719. This message is used to set periodic position-change messages from the media 
  15720. device.  The ulUnits field of the MCI_POSITION_PARMS data structure contains 
  15721. the interval that these messages are to be generated. The interval is relative 
  15722. to position 0 of the media.  The ulUnits field is in the current time format, 
  15723. but the position-change messages are returned in MMTIME format. 
  15724.  
  15725.  ulParam1 (ULONG) 
  15726.     This parameter can contain any of the following flags: 
  15727.  
  15728.     MCI_NOTIFY 
  15729.             A notification message will be posted to the window specified in 
  15730.             the hwndCallback parameter of the data structure pointed to by the 
  15731.             pParam2 parameter.  The notification will be posted when the action 
  15732.             indicated by this message is completed or when an error occurs. 
  15733.  
  15734.     MCI_WAIT 
  15735.             Control is not to be returned until the action indicated by this 
  15736.             message is completed or an error occurs. 
  15737.  
  15738.     MCI_SET_POSITION_ADVISE_ON 
  15739.             This flag specifies that position-change advise message frequency 
  15740.             is to be set to the value specified in the ulUnits field of the 
  15741.             MCI_POSITION_PARMS data structure. 
  15742.  
  15743.     MCI_SET_POSITION_ADVISE_OFF 
  15744.             This flag disables position-change advise messages. 
  15745.  
  15746.  pParam2 (PMCI_POSITION_PARMS) 
  15747.     A pointer to the MCI_POSITION_PARMS data structure. 
  15748.  
  15749.  rc (ULONG) 
  15750.     Return codes indicating success or type of failure: 
  15751.  
  15752.     MCIERR_SUCCESS 
  15753.             If the function succeeds, 0 is returned. 
  15754.  
  15755.     MCIERR_INVALID_DEVICE_ID 
  15756.             The device ID is not valid. 
  15757.  
  15758.     MCIERR_INSTANCE_INACTIVE 
  15759.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  15760.             make device ID active. 
  15761.  
  15762.     MCIERR_MISSING_FLAG 
  15763.             A required flag is missing. 
  15764.  
  15765.     MCIERR_INVALID_FLAG 
  15766.             Given flag is invalid. 
  15767.  
  15768.     MCIERR_UNSUPPORTED_FLAG 
  15769.             Given flag is unsupported for this device. 
  15770.  
  15771.     MCIERR_INVALID_CALLBACK_HANDLE 
  15772.             Given callback handle is invalid. 
  15773.  
  15774.     MCIERR_FILE_NOT_FOUND 
  15775.             File has not been loaded. 
  15776.  
  15777.     MCIERR_OUT_OF_MEMORY 
  15778.             Out of memory. 
  15779.  
  15780.     MCIERR_OUTOFRANGE 
  15781.             Unit is out of range. 
  15782.  
  15783.     MCIERR_MISSING_PARAMETER 
  15784.             Required parameter is missing. 
  15785.  
  15786.  
  15787. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_POSITION_ADVISE - Remarks ΓòÉΓòÉΓòÉ
  15788.  
  15789. Setting position-change advise causes MM_MCIPOSITIONCHANGE messages to be 
  15790. returned to the application whenever the specified media position is reached. 
  15791. The window handle specified in the hwndCallback field of MCI_POSITION_PARMS 
  15792. receives the MM_MCIPOSITIONCHANGE messages. When setting position advise on, a 
  15793. valid window handle must be specified in the hwndCallback field. An error is 
  15794. returned if a NULL or invalid window handle is specified. 
  15795.  
  15796. Only one position-change advise message frequency can be specified; that is, 
  15797. setting a new frequency for position-change advise messages replaces the 
  15798. previously set position-change advise request. 
  15799.  
  15800. A device element must be loaded before position advise can be set, and is reset 
  15801. when a new device element is loaded. Devices that do not perform their own 
  15802. event detection might have less accurate position-advise events. 
  15803.  
  15804. Position advise messages are only generated during playback or recording, not 
  15805. during seek operations. 
  15806.  
  15807. If MCI_SET_POSITION_ADVISE_OFF is specified ulUnits is ignored; otherwise, if 
  15808. the ulUnits field contains 0, the error MCIERR_OUTOFRANGE is returned. 
  15809.  
  15810. If the length of a file cannot be determined, MCIERR_SUCCESS might be returned 
  15811. if ulUnits is out of range, and no MM_MCIPOSITIONCHANGE messages are generated. 
  15812.  
  15813.  
  15814. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_POSITION_ADVISE - Example Code ΓòÉΓòÉΓòÉ
  15815.  
  15816. The following code illustrates how to set periodic position-change messages 
  15817. from a media device. 
  15818.  
  15819. /* Request position advise notification every 2 seconds             */
  15820.  
  15821. USHORT usDeviceID;
  15822. HWND hwndMyWindow;
  15823. MCI_POSITION_PARMS positionparms; /* Position advise parm structure */
  15824.  
  15825. /* Assign hwndCallback the handle to the PM Window - this is where
  15826.    MM_MCIPOSITIONCHANGE messages will be received.                  */
  15827.  
  15828. positionparms.hwndCallback = hwndMyWindow;
  15829. positionparms.ulUnits = (ULONG) 2000; /* (Current time format = MS) */
  15830.  
  15831. mciSendCommand(usDeviceID,            /* Device ID                  */
  15832.  MCI_SET_POSITION_ADVISE,             /* MCI set position advise
  15833.                                          message                    */
  15834.  MCI_SET_POSITION_ADVISE_ON | MCI_WAIT,
  15835.                                       /* Flags for this message     */
  15836.  (PVOID) &positionparms,              /* Data structure             */
  15837.  0);                                  /* No user parm               */
  15838.  
  15839.  
  15840. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_POSITION_ADVISE - Topics ΓòÉΓòÉΓòÉ
  15841.  
  15842. Select an item: 
  15843.  
  15844. Description
  15845. Returns
  15846. Remarks
  15847. Example Code
  15848. Glossary
  15849.  
  15850.  
  15851. ΓòÉΓòÉΓòÉ 7.44. MCI_SET_SYNC_OFFSET ΓòÉΓòÉΓòÉ
  15852.  
  15853.  
  15854. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_SYNC_OFFSET Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  15855.  
  15856.  ulParam1 (ULONG) 
  15857.     This parameter can contain any of the following flags: 
  15858.  
  15859.     MCI_NOTIFY 
  15860.             A notification message will be posted to the window specified in 
  15861.             the hwndCallback parameter of the data structure pointed to by the 
  15862.             pParam2 parameter.  The notification will be posted when the action 
  15863.             indicated by this message is completed or when an error occurs. 
  15864.  
  15865.     MCI_WAIT 
  15866.             Control is not to be returned until the action indicated by this 
  15867.             message is completed or an error occurs. 
  15868.  
  15869.  
  15870. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_SYNC_OFFSET Parameter - pParam2 ΓòÉΓòÉΓòÉ
  15871.  
  15872.  pParam2 (PMCI_SYNC_OFFSET_PARMS) 
  15873.     A pointer to the MCI_SYNC_OFFSET_PARMS data structure. 
  15874.  
  15875.  
  15876. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_SYNC_OFFSET Return Value - rc ΓòÉΓòÉΓòÉ
  15877.  
  15878.  rc (ULONG) 
  15879.     Return codes indicating success or type of failure: 
  15880.  
  15881.     MCIERR_SUCCESS 
  15882.             If the function succeeds, 0 is returned. 
  15883.  
  15884.     MCIERR_INVALID_DEVICE_ID 
  15885.             The device ID is not valid. 
  15886.  
  15887.     MCIERR_INSTANCE_INACTIVE 
  15888.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  15889.             make device ID active. 
  15890.  
  15891.     MCIERR_MISSING_FLAG 
  15892.             A required flag is missing. 
  15893.  
  15894.     MCIERR_UNSUPPORTED_FLAG 
  15895.             Given flag is unsupported for this device. 
  15896.  
  15897.     MCIERR_INVALID_CALLBACK_HANDLE 
  15898.             Given callback handle is invalid. 
  15899.  
  15900.     MCIERR_HARDWARE 
  15901.             Device hardware error. 
  15902.  
  15903.     MCIERR_UNSUPPORTED_FUNCTION 
  15904.             Unsupported function. 
  15905.  
  15906.     MCIERR_INVALID_FLAG 
  15907.             Flag (ulParam1) is invalid. 
  15908.  
  15909.     MCIERR_FLAGS_NOT_COMPATIBLE 
  15910.             Flags cannot be used together. 
  15911.  
  15912.     MCIERR_OUT_OF_MEMORY 
  15913.             Out of memory. 
  15914.  
  15915.     MCIERR_MISSING_PARAMETER 
  15916.             Required parameter is missing. 
  15917.  
  15918.  
  15919. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_SYNC_OFFSET - Description ΓòÉΓòÉΓòÉ
  15920.  
  15921. This message is used to specify positional offsets for devices operating in 
  15922. synchronization. 
  15923.  
  15924.  ulParam1 (ULONG) 
  15925.     This parameter can contain any of the following flags: 
  15926.  
  15927.     MCI_NOTIFY 
  15928.             A notification message will be posted to the window specified in 
  15929.             the hwndCallback parameter of the data structure pointed to by the 
  15930.             pParam2 parameter.  The notification will be posted when the action 
  15931.             indicated by this message is completed or when an error occurs. 
  15932.  
  15933.     MCI_WAIT 
  15934.             Control is not to be returned until the action indicated by this 
  15935.             message is completed or an error occurs. 
  15936.  
  15937.  pParam2 (PMCI_SYNC_OFFSET_PARMS) 
  15938.     A pointer to the MCI_SYNC_OFFSET_PARMS data structure. 
  15939.  
  15940.  rc (ULONG) 
  15941.     Return codes indicating success or type of failure: 
  15942.  
  15943.     MCIERR_SUCCESS 
  15944.             If the function succeeds, 0 is returned. 
  15945.  
  15946.     MCIERR_INVALID_DEVICE_ID 
  15947.             The device ID is not valid. 
  15948.  
  15949.     MCIERR_INSTANCE_INACTIVE 
  15950.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  15951.             make device ID active. 
  15952.  
  15953.     MCIERR_MISSING_FLAG 
  15954.             A required flag is missing. 
  15955.  
  15956.     MCIERR_UNSUPPORTED_FLAG 
  15957.             Given flag is unsupported for this device. 
  15958.  
  15959.     MCIERR_INVALID_CALLBACK_HANDLE 
  15960.             Given callback handle is invalid. 
  15961.  
  15962.     MCIERR_HARDWARE 
  15963.             Device hardware error. 
  15964.  
  15965.     MCIERR_UNSUPPORTED_FUNCTION 
  15966.             Unsupported function. 
  15967.  
  15968.     MCIERR_INVALID_FLAG 
  15969.             Flag (ulParam1) is invalid. 
  15970.  
  15971.     MCIERR_FLAGS_NOT_COMPATIBLE 
  15972.             Flags cannot be used together. 
  15973.  
  15974.     MCIERR_OUT_OF_MEMORY 
  15975.             Out of memory. 
  15976.  
  15977.     MCIERR_MISSING_PARAMETER 
  15978.             Required parameter is missing. 
  15979.  
  15980.  
  15981. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_SYNC_OFFSET - Remarks ΓòÉΓòÉΓòÉ
  15982.  
  15983. This message sets the synchronization offset for a device. When MCI_PLAY or 
  15984. MCI_SEEK messages are sent to a synchronized device group, the from position of 
  15985. the play for each device is biased by its synchronization offset. The 
  15986. synchronization offset is specified in the currently set device units and is 0 
  15987. by default. 
  15988.  
  15989.  
  15990. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_SYNC_OFFSET - Example Code ΓòÉΓòÉΓòÉ
  15991.  
  15992. The following code illustrates how to specify positional offsets for operating 
  15993. synchronized devices. 
  15994.  
  15995.                       /* Set the sync offset for the device to 10 secs */
  15996.  
  15997.    USHORT usDeviceID;
  15998.    MCI_SYNC_OFFSET_PARMS msoparms;
  15999.  
  16000.    msoparms.ulOffset = (ULONG) 10000; /* Current time format = MS      */
  16001.  
  16002.    mciSendCommand( usDeviceID,        /* Device ID                     */
  16003.     MCI_SET_SYNC_OFFSET,              /* MCI set sync offset message   */
  16004.     MCI_WAIT,                         /* Flag for this message         */
  16005.     (PVOID) &msoparms,                /* Data structure                */
  16006.     0);                               /* No user parm                  */
  16007.  
  16008.  
  16009. ΓòÉΓòÉΓòÉ <hidden> MCI_SET_SYNC_OFFSET - Topics ΓòÉΓòÉΓòÉ
  16010.  
  16011. Select an item: 
  16012.  
  16013. Description
  16014. Returns
  16015. Remarks
  16016. Example Code
  16017. Glossary
  16018.  
  16019.  
  16020. ΓòÉΓòÉΓòÉ 7.45. MCI_SETTUNER ΓòÉΓòÉΓòÉ
  16021.  
  16022.  
  16023. ΓòÉΓòÉΓòÉ <hidden> MCI_SETTUNER Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  16024.  
  16025.  ulParam1 (ULONG) 
  16026.     This parameter can contain the following flags 
  16027.  
  16028.     MCI_NOTIFY 
  16029.             Posts a notification message to the window specified in the 
  16030.             hwndCallback parameter of the data structure identified by ulParam2 
  16031.             when the action indicated by this message is completed. 
  16032.  
  16033.     MCI_WAIT 
  16034.             Does not return control until the action indicated by this message 
  16035.             is completed. 
  16036.  
  16037.     MCI_DGV_FREQUENCY 
  16038.             Sets the frequency being sent to the device driver to the value in 
  16039.             the ulFrequency field of the MCI_DGV_TUNER_PARMS structure. 
  16040.             Overrides channel, region, and fine-tuning. 
  16041.  
  16042.     MCI_DGV_TV_CHANNEL 
  16043.             Sets the channel to the value in the ulTVChannel field of the 
  16044.             MCI_DGV_TUNER_PARMS structure.  Channel is used along with region 
  16045.             and fine-tuning to calculate the frequency. 
  16046.  
  16047.     MCI_DGV_REGION 
  16048.             Sets the channel to the value in the pszRegion field of the 
  16049.             MCI_DGV_TUNER_PARMS structure.  Region is used along with channel 
  16050.             and fine-tuning to calculate the frequency. 
  16051.  
  16052.     MCI_DGV_FINETUNE_PLUS 
  16053.             Indicates that the value in the lFineTune field of the 
  16054.             MCI_DGV_TUNER_PARMS structure is positive. Fine-tuning is used 
  16055.             along with region and channel to calculate the frequency. 
  16056.  
  16057.     MCI_DGV_FINETUNE_MINUS 
  16058.             Indicates that the value in the lFineTune field of the 
  16059.             MCI_DGV_TUNER_PARMS structure is negative. In other words, multiply 
  16060.             the value in lFineTune by -1. 
  16061.  
  16062.  
  16063. ΓòÉΓòÉΓòÉ <hidden> MCI_SETTUNER Parameter - pParam2 ΓòÉΓòÉΓòÉ
  16064.  
  16065.  pParam2 (PMCI_DGV_TUNER_PARMS) 
  16066.     A pointer to an MCI_DGV_TUNER_PARMS structure. 
  16067.  
  16068.  
  16069. ΓòÉΓòÉΓòÉ <hidden> MCI_SETTUNER Return Value - rc ΓòÉΓòÉΓòÉ
  16070.  
  16071.  rc (ULONG) 
  16072.     Return codes indicating success or type of failure: 
  16073.  
  16074.     MCIERR_SUCCESS 
  16075.             MMPM/2 command completed successfully. 
  16076.  
  16077.     MCIERR_OUT_OF_MEMORY 
  16078.             System out of memory. 
  16079.  
  16080.     MCIERR_TUNER_NO_HW 
  16081.             Device has no tuner support. 
  16082.  
  16083.     MCIERR_TUNER_CHANNEL_SKIPPED 
  16084.             Channel skipped in region. 
  16085.  
  16086.     MCIERR_TUNER_CHANNEL_TOO_HIGH 
  16087.             Channel too high for region. 
  16088.  
  16089.     MCIERR_TUNER_CHANNEL_TOO_LOW 
  16090.             Channel too low for region. 
  16091.  
  16092.     MCIERR_AUD_CHANNEL_OUTOFRANGE 
  16093.             Audio channel out of range. 
  16094.  
  16095.     MCIERR_INVALID_REGION 
  16096.             Region file either does not exist or is invalid. 
  16097.  
  16098.     MCIERR_TUNER_REGION_NOT_SET 
  16099.             Region has not been set. 
  16100.  
  16101.     MCIERR_MISSING_PARAMETER 
  16102.             Missing parameter for this command. 
  16103.  
  16104.     MCIERR_DRIVER 
  16105.             Internal MMPM/2 driver error. 
  16106.  
  16107.     MCIERR_INVALID_FLAG 
  16108.             Invalid flag specified. 
  16109.  
  16110.     MCIERR_MISSING_FLAG 
  16111.             Flag missing for this command. 
  16112.  
  16113.     MCIERR_UNSUPPORTED_FLAG 
  16114.             Flag not supported by this MMPM/2 driver for this command. 
  16115.  
  16116.     MCIERR_FLAGS_NOT_COMPATIBLE 
  16117.             Flags cannot be used together. 
  16118.  
  16119.     MCIERR_INSTANCE_INACTIVE 
  16120.             Instance inactive. 
  16121.  
  16122.  
  16123. ΓòÉΓòÉΓòÉ <hidden> MCI_SETTUNER - Description ΓòÉΓòÉΓòÉ
  16124.  
  16125. This message causes the digital video MCD to change the frequency that the 
  16126. tuner device is tuned to. 
  16127.  
  16128.  ulParam1 (ULONG) 
  16129.     This parameter can contain the following flags 
  16130.  
  16131.     MCI_NOTIFY 
  16132.             Posts a notification message to the window specified in the 
  16133.             hwndCallback parameter of the data structure identified by ulParam2 
  16134.             when the action indicated by this message is completed. 
  16135.  
  16136.     MCI_WAIT 
  16137.             Does not return control until the action indicated by this message 
  16138.             is completed. 
  16139.  
  16140.     MCI_DGV_FREQUENCY 
  16141.             Sets the frequency being sent to the device driver to the value in 
  16142.             the ulFrequency field of the MCI_DGV_TUNER_PARMS structure. 
  16143.             Overrides channel, region, and fine-tuning. 
  16144.  
  16145.     MCI_DGV_TV_CHANNEL 
  16146.             Sets the channel to the value in the ulTVChannel field of the 
  16147.             MCI_DGV_TUNER_PARMS structure.  Channel is used along with region 
  16148.             and fine-tuning to calculate the frequency. 
  16149.  
  16150.     MCI_DGV_REGION 
  16151.             Sets the channel to the value in the pszRegion field of the 
  16152.             MCI_DGV_TUNER_PARMS structure.  Region is used along with channel 
  16153.             and fine-tuning to calculate the frequency. 
  16154.  
  16155.     MCI_DGV_FINETUNE_PLUS 
  16156.             Indicates that the value in the lFineTune field of the 
  16157.             MCI_DGV_TUNER_PARMS structure is positive. Fine-tuning is used 
  16158.             along with region and channel to calculate the frequency. 
  16159.  
  16160.     MCI_DGV_FINETUNE_MINUS 
  16161.             Indicates that the value in the lFineTune field of the 
  16162.             MCI_DGV_TUNER_PARMS structure is negative. In other words, multiply 
  16163.             the value in lFineTune by -1. 
  16164.  
  16165.  pParam2 (PMCI_DGV_TUNER_PARMS) 
  16166.     A pointer to an MCI_DGV_TUNER_PARMS structure. 
  16167.  
  16168.  rc (ULONG) 
  16169.     Return codes indicating success or type of failure: 
  16170.  
  16171.     MCIERR_SUCCESS 
  16172.             MMPM/2 command completed successfully. 
  16173.  
  16174.     MCIERR_OUT_OF_MEMORY 
  16175.             System out of memory. 
  16176.  
  16177.     MCIERR_TUNER_NO_HW 
  16178.             Device has no tuner support. 
  16179.  
  16180.     MCIERR_TUNER_CHANNEL_SKIPPED 
  16181.             Channel skipped in region. 
  16182.  
  16183.     MCIERR_TUNER_CHANNEL_TOO_HIGH 
  16184.             Channel too high for region. 
  16185.  
  16186.     MCIERR_TUNER_CHANNEL_TOO_LOW 
  16187.             Channel too low for region. 
  16188.  
  16189.     MCIERR_AUD_CHANNEL_OUTOFRANGE 
  16190.             Audio channel out of range. 
  16191.  
  16192.     MCIERR_INVALID_REGION 
  16193.             Region file either does not exist or is invalid. 
  16194.  
  16195.     MCIERR_TUNER_REGION_NOT_SET 
  16196.             Region has not been set. 
  16197.  
  16198.     MCIERR_MISSING_PARAMETER 
  16199.             Missing parameter for this command. 
  16200.  
  16201.     MCIERR_DRIVER 
  16202.             Internal MMPM/2 driver error. 
  16203.  
  16204.     MCIERR_INVALID_FLAG 
  16205.             Invalid flag specified. 
  16206.  
  16207.     MCIERR_MISSING_FLAG 
  16208.             Flag missing for this command. 
  16209.  
  16210.     MCIERR_UNSUPPORTED_FLAG 
  16211.             Flag not supported by this MMPM/2 driver for this command. 
  16212.  
  16213.     MCIERR_FLAGS_NOT_COMPATIBLE 
  16214.             Flags cannot be used together. 
  16215.  
  16216.     MCIERR_INSTANCE_INACTIVE 
  16217.             Instance inactive. 
  16218.  
  16219.  
  16220. ΓòÉΓòÉΓòÉ <hidden> MCI_SETTUNER - Remarks ΓòÉΓòÉΓòÉ
  16221.  
  16222.      Tuner channels can be any positive number including 0. However, tuner 
  16223.       channels are validated according to the region. 
  16224.  
  16225.      Region can be any character string, but there must be a corresponding 
  16226.       file (character_string.RGN) in the \MMOS2\REGION subdirectory.  A partial 
  16227.       list of regions includes: 
  16228.  
  16229.       USA.RGN                  USA Air 
  16230.  
  16231.       USACATV.RGN              USA Cable 
  16232.  
  16233.       CCIR.RGN                 Western Europe CCIR Air 
  16234.  
  16235.       CCIRCATV.RGN             Western Europe CCIR Cable 
  16236.  
  16237.       AUSTR.RGN                Australia 
  16238.  
  16239.       JAPAN.RGN                Japanese AIR 
  16240.  
  16241.       JAPANCATV.RGN            Japanese Cable 
  16242.  
  16243.       New regions can be created, allowing one to expand the regions supported 
  16244.       or to block out undesirable channels. 
  16245.  
  16246.      MCI_DGV_FINETUNE_PLUS and MCI_DGV_FINETUNE_MINUS are mutually exclusive. 
  16247.  
  16248.      Channel and region do not have to be set every time; values will be 
  16249.       remembered.  If finetuning is necessary, it will have to be reset every 
  16250.       time the channel or region is reset. 
  16251.  
  16252.      MCI_DGV_FREQUENCY temporarily overrides the currently set channel and 
  16253.       region.  The next MCI_SETTUNER command without MCI_DGV_FREQUENCY set will 
  16254.       revert back to the previously set channel and region. 
  16255.  
  16256.      If the region is set without a channel, the lowest channel available for 
  16257.       that region will be used. 
  16258.  
  16259.  
  16260. ΓòÉΓòÉΓòÉ <hidden> MCI_SETTUNER - Example Code ΓòÉΓòÉΓòÉ
  16261.  
  16262. The following example shows how to set the frequency for the tuner device using 
  16263. MCI_SETTUNER. 
  16264.  
  16265. USHORT               usDeviceID;
  16266. MCI_DGV_TUNER_PARMS  settuner;
  16267.  
  16268. settuner.usDeviceID  = usDeviceID; /* Device ID */
  16269. settuner.ulFrequency = 24725; /* Frequency for channel 29 in USA Cable TV */
  16270. settuner.pszRegion   = NULL;  /* Region, Channel and Finetune are not */
  16271. settuner.usTVChannel = 0;     /* needed since we are inputting the    */   */
  16272. settuner.lFineTune   = 0;     /* frequency.                           */   */
  16273.  
  16274.  
  16275. ulError = mciSendCommand ( usDeviceID,
  16276.                            MCI_SETTUNER,
  16277.                            MCI_WAIT | MCI_DGV_FREQUENCY,
  16278.                            &settuner,
  16279.                            0);
  16280.  
  16281.  
  16282. ΓòÉΓòÉΓòÉ <hidden> MCI_SETTUNER - Topics ΓòÉΓòÉΓòÉ
  16283.  
  16284. Select an item: 
  16285.  
  16286. Description
  16287. Returns
  16288. Remarks
  16289. Example Code
  16290. Glossary
  16291.  
  16292.  
  16293. ΓòÉΓòÉΓòÉ 7.46. MCI_SPIN ΓòÉΓòÉΓòÉ
  16294.  
  16295.  
  16296. ΓòÉΓòÉΓòÉ <hidden> MCI_SPIN Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  16297.  
  16298.  ulParam1 (ULONG) 
  16299.     This parameter can contain any of the following flags: The MCI_SPIN_UP and 
  16300.     MCI_SPIN_DOWN flags are mutually exclusive. 
  16301.  
  16302.     MCI_NOTIFY 
  16303.             A notification message will be posted to the window specified in 
  16304.             the hwndCallback parameter of the data structure pointed to by the 
  16305.             pParam2 parameter.  The notification will be posted when the action 
  16306.             indicated by this message is completed or when an error occurs. 
  16307.  
  16308.     MCI_WAIT 
  16309.             Control is not to be returned until the action indicated by this 
  16310.             message is completed or an error occurs. 
  16311.  
  16312.     MCI_SPIN_UP 
  16313.             This flag starts the disc spinning. 
  16314.  
  16315.     MCI_SPIN_DOWN 
  16316.             This flag stops the disc from spinning. 
  16317.  
  16318.  
  16319. ΓòÉΓòÉΓòÉ <hidden> MCI_SPIN Parameter - pParam2 ΓòÉΓòÉΓòÉ
  16320.  
  16321.  pParam2 (PMCI_GENERIC_PARMS) 
  16322.     A pointer to the default media control interface parameter data structure. 
  16323.  
  16324.  
  16325. ΓòÉΓòÉΓòÉ <hidden> MCI_SPIN Return Value - rc ΓòÉΓòÉΓòÉ
  16326.  
  16327.  rc (ULONG) 
  16328.     Return codes indicating success or type of failure: 
  16329.  
  16330.     MCIERR_SUCCESS 
  16331.             If the function succeeds, 0 is returned. 
  16332.  
  16333.     MCIERR_INVALID_DEVICE_ID 
  16334.             The device ID is not valid. 
  16335.  
  16336.     MCIERR_INSTANCE_INACTIVE 
  16337.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE 
  16338.             message to make device ID active. 
  16339.  
  16340.     MCIERR_MISSING_FLAG 
  16341.             A required flag is missing. 
  16342.  
  16343.     MCIERR_UNSUPPORTED_FLAG 
  16344.             Given flag is unsupported for this device. 
  16345.  
  16346.     MCIERR_INVALID_CALLBACK_HANDLE 
  16347.             Given callback handle is invalid. 
  16348.  
  16349.     MCIERR_HARDWARE 
  16350.             Device hardware error. 
  16351.  
  16352.     MCIERR_UNSUPPORTED_FUNCTION 
  16353.             Unsupported function. 
  16354.  
  16355.     MCIERR_INVALID_FLAG 
  16356.             Flag (ulParam1) is invalid. 
  16357.  
  16358.     MCIERR_FLAGS_NOT_COMPATIBLE 
  16359.             Flags cannot be used together. 
  16360.  
  16361.  
  16362. ΓòÉΓòÉΓòÉ <hidden> MCI_SPIN - Description ΓòÉΓòÉΓòÉ
  16363.  
  16364. This message is sent to spin the player up or down. 
  16365.  
  16366.  ulParam1 (ULONG) 
  16367.     This parameter can contain any of the following flags: The MCI_SPIN_UP and 
  16368.     MCI_SPIN_DOWN flags are mutually exclusive. 
  16369.  
  16370.     MCI_NOTIFY 
  16371.             A notification message will be posted to the window specified in 
  16372.             the hwndCallback parameter of the data structure pointed to by the 
  16373.             pParam2 parameter.  The notification will be posted when the action 
  16374.             indicated by this message is completed or when an error occurs. 
  16375.  
  16376.     MCI_WAIT 
  16377.             Control is not to be returned until the action indicated by this 
  16378.             message is completed or an error occurs. 
  16379.  
  16380.     MCI_SPIN_UP 
  16381.             This flag starts the disc spinning. 
  16382.  
  16383.     MCI_SPIN_DOWN 
  16384.             This flag stops the disc from spinning. 
  16385.  
  16386.  pParam2 (PMCI_GENERIC_PARMS) 
  16387.     A pointer to the default media control interface parameter data structure. 
  16388.  
  16389.  rc (ULONG) 
  16390.     Return codes indicating success or type of failure: 
  16391.  
  16392.     MCIERR_SUCCESS 
  16393.             If the function succeeds, 0 is returned. 
  16394.  
  16395.     MCIERR_INVALID_DEVICE_ID 
  16396.             The device ID is not valid. 
  16397.  
  16398.     MCIERR_INSTANCE_INACTIVE 
  16399.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE 
  16400.             message to make device ID active. 
  16401.  
  16402.     MCIERR_MISSING_FLAG 
  16403.             A required flag is missing. 
  16404.  
  16405.     MCIERR_UNSUPPORTED_FLAG 
  16406.             Given flag is unsupported for this device. 
  16407.  
  16408.     MCIERR_INVALID_CALLBACK_HANDLE 
  16409.             Given callback handle is invalid. 
  16410.  
  16411.     MCIERR_HARDWARE 
  16412.             Device hardware error. 
  16413.  
  16414.     MCIERR_UNSUPPORTED_FUNCTION 
  16415.             Unsupported function. 
  16416.  
  16417.     MCIERR_INVALID_FLAG 
  16418.             Flag (ulParam1) is invalid. 
  16419.  
  16420.     MCIERR_FLAGS_NOT_COMPATIBLE 
  16421.             Flags cannot be used together. 
  16422.  
  16423.  
  16424. ΓòÉΓòÉΓòÉ <hidden> MCI_SPIN - Default Processing ΓòÉΓòÉΓòÉ
  16425.  
  16426. The MCI_SPIN_UP flag is assumed by default. 
  16427.  
  16428.  
  16429. ΓòÉΓòÉΓòÉ <hidden> MCI_SPIN - Example Code ΓòÉΓòÉΓòÉ
  16430.  
  16431. The following code illustrates how to start a videodisc spinning and request 
  16432. notification upon completion. 
  16433.  
  16434.    /* Start the videodisc spinning, requesting notification of
  16435.    completion                                                        */
  16436.  
  16437.    USHORT usDeviceID;
  16438.    HWND hwndMyWindow;
  16439.    MCI_GENERIC_PARMS mciGenericParms; /* Generic message parms
  16440.                                                structure               */
  16441.  
  16442.                     /* Assign hwndCallback the handle to the PM Window */
  16443.  
  16444.    mciGenericParms.hwndCallback = hwndMyWindow;
  16445.  
  16446.    mciSendCommand( usDeviceID,           /* Device ID                  */
  16447.     MCI_SPIN,                            /* MCI spin message           */
  16448.     MCI_NOTIFY | MCI_SPIN_UP,            /* Flags for this message     */
  16449.     (PVOID) &mciGenericParms,            /* Data structure             */
  16450.     0 );                                 /* No user parm               */
  16451.  
  16452.  
  16453. ΓòÉΓòÉΓòÉ <hidden> MCI_SPIN - Topics ΓòÉΓòÉΓòÉ
  16454.  
  16455. Select an item: 
  16456.  
  16457. Description
  16458. Returns
  16459. Default Processing
  16460. Example Code
  16461. Glossary
  16462.  
  16463.  
  16464. ΓòÉΓòÉΓòÉ 7.47. MCI_STATUS ΓòÉΓòÉΓòÉ
  16465.  
  16466.  
  16467. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  16468.  
  16469.  ulParam1 (ULONG) 
  16470.     This parameter can contain any of the following flags: 
  16471.  
  16472.     MCI_NOTIFY 
  16473.             A notification message will be posted to the window specified in 
  16474.             the hwndCallback parameter of the data structure pointed to by the 
  16475.             pParam2 parameter.  The notification will be posted when the action 
  16476.             indicated by this message is completed or when an error occurs. 
  16477.  
  16478.     MCI_WAIT 
  16479.             Control is not to be returned until the action indicated by this 
  16480.             message is completed or an error occurs. 
  16481.  
  16482.     MCI_STATUS_START 
  16483.             Returns the starting position of the media.  Specify 
  16484.             MCI_STATUS_POSITION as the status item in ulItem. 
  16485.  
  16486.     MCI_TRACK 
  16487.             A status track parameter is included in the ulTrack field of the 
  16488.             data structure pointed to by pParam2. If MCI_TRACK is specified, 
  16489.             the status item must be either MCI_STATUS_POSITION or 
  16490.             MCI_STATUS_LENGTH. When used with MCI_STATUS_POSITION, the starting 
  16491.             position of the given track, segment, or chapter is returned.  When 
  16492.             used with MCI_STATUS_LENGTH, the length of the given track, 
  16493.             segment, element, or chapter is returned. 
  16494.  
  16495.     MCI_STATUS_CONNECTOR 
  16496.             If this flag is specified, a valid connector must be in the ulValue 
  16497.             field of MCI_STATUS_PARMS.  The specific audio setting to be 
  16498.             queried is set in the ulItem field.  MCI_STATUS_CONNECTOR and 
  16499.             MCI_STATUS_ITEM are mutually exclusive.  If both of these flags are 
  16500.             specified, MCIERR_INVALID_FLAG will be returned. 
  16501.  
  16502.     MCI_STATUS_ITEM 
  16503.             Indicates that the ulItem field of the data structure identified by 
  16504.             pParam2 contains a constant specifying the status item in question. 
  16505.             The following constants are defined: 
  16506.  
  16507.             MCI_STATUS_AUDIO 
  16508.                     One of the following status audio parameters must be 
  16509.                     included in the ulValue field of the data structure pointed 
  16510.                     to by pParam2. The following predefined channel numbers can 
  16511.                     be specified. You can specify other channel numbers by 
  16512.                     specifying the appropriate channel number. 
  16513.  
  16514.                     MCI_STATUS_AUDIO_ALL 
  16515.                             Returns MCI_TRUE if all channels are on; otherwise, 
  16516.                             returns MCI_FALSE.  This is the default value. 
  16517.  
  16518.                     MCI_STATUS_AUDIO_LEFT 
  16519.                             Returns MCI_TRUE if the left channel is on; 
  16520.                             otherwise, returns MCI_FALSE. 
  16521.  
  16522.                     MCI_STATUS_AUDIO_RIGHT 
  16523.                             Returns MCI_TRUE if the right channel is on; 
  16524.                             otherwise, returns MCI_FALSE. 
  16525.  
  16526.             MCI_STATUS_CAN_PASTE 
  16527.                     Returns MCI_TRUE if compatible data is to be placed in 
  16528.                     clipboard; otherwise, returns MCI_FALSE. 
  16529.  
  16530.             MCI_STATUS_CAN_REDO 
  16531.                     Returns MCI_TRUE if an operation that was undone can be 
  16532.                     redone; otherwise, returns MCI_FALSE. 
  16533.  
  16534.             MCI_STATUS_CAN_UNDO 
  16535.                     Returns MCI_TRUE if a change has been made that can be 
  16536.                     undone; otherwise, returns MCI_FALSE. 
  16537.  
  16538.             MCI_STATUS_CLIPBOARD 
  16539.                     Returns MCI_TRUE if the clipboard contains information 
  16540.                     understood by the current device; otherwise returns 
  16541.                     MCI_FALSE. 
  16542.  
  16543.             MCI_STATUS_CURRENT_TRACK 
  16544.                     Returns the current track, segment, or chapter number. 
  16545.  
  16546.             MCI_STATUS_LENGTH 
  16547.                     Returns the total media length in units as specified in the 
  16548.                     MCI_SET message with the MCI_SET_TIME_FORMAT flag. 
  16549.  
  16550.                     Note:  If the time format has been set to MCI_FORMAT_TMSF, 
  16551.                            the actual time value returned will be in the format 
  16552.                            MCI_FORMAT_MSF. 
  16553.  
  16554.                     If the media length cannot be determined because a playlist 
  16555.                     is currently loaded, or for any other reason, 
  16556.                     MCIERR_INDETERMINATE_LENGTH is returned. 
  16557.  
  16558.             MCI_STATUS_MODE 
  16559.                     Returns the current mode of the device.  Possible values 
  16560.                     are: 
  16561.  
  16562.                         MCI_MODE_NOT_READY 
  16563.                         MCI_MODE_PAUSE 
  16564.                         MCI_MODE_PLAY 
  16565.                         MCI_MODE_STOP 
  16566.                         MCI_MODE_RECORD 
  16567.                         MCI_MODE_SEEK 
  16568.  
  16569.             MCI_STATUS_MEDIA_PRESENT 
  16570.                     Returns MCI_TRUE or MCI_FALSE. If the device does not have 
  16571.                     removable media, it returns MCI_TRUE.  Note that this 
  16572.                     function is only applicable to devices which are dependent 
  16573.                     on removable media.  Receiving a return of MCI_FALSE 
  16574.                     indicates that the device cannot function without inserting 
  16575.                     the media into the device.  Examples of devices which might 
  16576.                     return MCI_FALSE to this command are CD audio and videodisc 
  16577.                     devices. 
  16578.  
  16579.             MCI_STATUS_MONITOR 
  16580.                     Returns MCI_ON or MCI_OFF to indicate whether monitoring of 
  16581.                     the incoming video signal is turned on or off. 
  16582.  
  16583.             MCI_STATUS_NUMBER_OF_TRACKS 
  16584.                     Returns the total number of playable tracks, segments, or 
  16585.                     chapters. 
  16586.  
  16587.             MCI_STATUS_POSITION 
  16588.                     Returns the current position. 
  16589.  
  16590.             MCI_STATUS_POSITION_IN_TRACK 
  16591.                     Returns the current position relative to the beginning of 
  16592.                     the current track, segment, or chapter. 
  16593.  
  16594.             MCI_STATUS_READY 
  16595.                     Returns MCI_TRUE if the device is ready; otherwise, returns 
  16596.                     MCI_FALSE. 
  16597.  
  16598.             MCI_STATUS_SPEED_FORMAT 
  16599.                     Returns the currently set speed format.  Possible values 
  16600.                     are: 
  16601.  
  16602.                         MCI_FORMAT_PERCENTAGE 
  16603.                         MCI_FORMAT_FPS 
  16604.  
  16605.             MCI_STATUS_TIME_FORMAT 
  16606.                     Returns the currently set time format.  Possible values 
  16607.                     are: 
  16608.  
  16609.                         MCI_FORMAT_MILLISECONDS 
  16610.                         MCI_FORMAT_MMTIME 
  16611.                         MCI_FORMAT_MSF 
  16612.                         MCI_FORMAT_TMSF 
  16613.                         MCI_FORMAT_CHAPTERS 
  16614.                         MCI_FORMAT_FRAMES 
  16615.                         MCI_FORMAT_HMS 
  16616.                         MCI_FORMAT_TRACKS 
  16617.                         MCI_FORMAT_BYTES 
  16618.                         MCI_FORMAT_SAMPLES 
  16619.                         MCI_FORMAT_HMSF 
  16620.                         MCI_FORMAT_SET_SMPTE_24 
  16621.                         MCI_FORMAT_SET_SMPTE_25 
  16622.                         MCI_FORMAT_SET_SMPTE_30 
  16623.                         MCI_FORMAT_SET_SMPTE_30DROP 
  16624.                         MCI_FORMAT_SET_SONGPTR 
  16625.  
  16626.             MCI_STATUS_VIDEO 
  16627.                     Returns MCI_TRUE if video is on; otherwise returns 
  16628.                     MCI_FALSE. 
  16629.  
  16630.             MCI_STATUS_VOLUME 
  16631.                     Returns the actual volume level set in the device as a 
  16632.                     percentage of the maximum achievable effect. The left 
  16633.                     channel is returned in the low-order word, and the right 
  16634.                     channel is returned in the high-order word. 
  16635.  
  16636.             Amplifier Mixer Extensions 
  16637.  
  16638.             The following additional status items apply to amplifier-mixer 
  16639.             devices and can be specified for the ulItem field (of the data 
  16640.             structure pointed to by pParam2) for use with the MCI_STATUS_ITEM 
  16641.             flag: 
  16642.  
  16643.             MCI_AMP_STATUS_BALANCE 
  16644.                     Returns a balance level for this mixer channel.  A value of 
  16645.                     zero indicates full left balance while 100 indicates full 
  16646.                     right balance, and 50 indicates neutral balance. 
  16647.  
  16648.             MCI_AMP_STATUS_BASS 
  16649.                     Returns a bass level for this mixer channel as a percentage 
  16650.                     of the maximum achievable bass effect. 
  16651.  
  16652.             MCI_AMP_STATUS_GAIN 
  16653.                     Returns the gain setting as a percentage of the maximum 
  16654.                     achievable effect. 
  16655.  
  16656.             MCI_AMP_STATUS_PITCH 
  16657.                     Returns the pitch as a percentage of the maximum achievable 
  16658.                     effect. 
  16659.  
  16660.             MCI_AMP_STATUS_TREBLE 
  16661.                     Returns treble level for this mixer channel as a percentage 
  16662.                     of the maximum treble effect. 
  16663.  
  16664.             If MCI_STATUS_CONNECTOR is specified, the following additional 
  16665.             items can be specified in the ulItem field of MCI_STATUS_PARMS. 
  16666.  
  16667.             MCI_AMP_STATUS_ALC 
  16668.                     Returns the current auto-level control setting for the 
  16669.                     connector specified in ulValue of MCI_STATUS_PARMS as a 
  16670.                     percentage of the maximum achievable effect. 
  16671.                     MCI_STATUS_CONNECTOR must be specified. 
  16672.  
  16673.             MCI_AMP_STATUS_BASS 
  16674.                     Returns the current bass setting for the connector 
  16675.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16676.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16677.                     specified. 
  16678.  
  16679.             MCI_AMP_STATUS_BALANCE 
  16680.                     Returns the current balance setting for the connector 
  16681.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16682.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16683.                     specified. 
  16684.  
  16685.             MCI_AMP_STATUS_CHORUS 
  16686.                     Returns the current chorus setting for the connector 
  16687.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16688.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16689.                     specified. 
  16690.  
  16691.             MCI_AMP_STATUS_CROSSOVER 
  16692.                     Returns the current crossover setting for the connector 
  16693.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16694.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16695.                     specified. 
  16696.  
  16697.             MCI_AMP_STATUS_CUSTOM1 
  16698.                     Returns the current custom effect setting for the connector 
  16699.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16700.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16701.                     specified. 
  16702.  
  16703.             MCI_AMP_STATUS_CUSTOM2 
  16704.                     Returns the current custom effect setting for the connector 
  16705.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16706.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16707.                     specified. 
  16708.  
  16709.             MCI_AMP_STATUS_CUSTOM3 
  16710.                     Returns the current custom effect setting for the connector 
  16711.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16712.                     the maximum achievable effect.  MCI_STATUS_CONNECTOR must 
  16713.                     be specified. 
  16714.  
  16715.             MCI_AMP_STATUS_GAIN 
  16716.                     Returns the current gain setting for the connector 
  16717.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16718.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16719.                     specified. 
  16720.  
  16721.             MCI_AMP_STATUS_LOUDNESS 
  16722.                     Returns the current loudness setting for the connector 
  16723.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16724.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16725.                     specified. 
  16726.  
  16727.             MCI_AMP_STATUS_MID 
  16728.                     Returns the current mid setting for the connector specified 
  16729.                     in ulValue of MCI_STATUS_PARMS as a percentage of the 
  16730.                     maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16731.                     specified. 
  16732.  
  16733.             MCI_AMP_STATUS_MONITOR 
  16734.                     Returns the current monitor setting for the connector 
  16735.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16736.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16737.                     specified. 
  16738.  
  16739.             MCI_AMP_STATUS_MUTE 
  16740.                     Returns the current mute setting for the connector 
  16741.                     specified in ulValue of MCI_STATUS_PARMS. 
  16742.                     MCI_STATUS_CONNECTOR must be specified. 
  16743.  
  16744.             MCI_AMP_STATUS_PITCH 
  16745.                     Returns the current pitch setting for the connector 
  16746.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16747.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16748.                     specified. 
  16749.  
  16750.             MCI_AMP_STATUS_REVERB 
  16751.                     Returns the current reverb setting for the connector 
  16752.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16753.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16754.                     specified. 
  16755.  
  16756.             MCI_AMP_STATUS_STEREOENHANCE 
  16757.                     Returns the current stereo enhance setting for the 
  16758.                     connector specified in ulValue of MCI_STATUS_PARMS as a 
  16759.                     percentage of the maximum achievable effect. 
  16760.                     MCI_STATUS_CONNECTOR must be specified. 
  16761.  
  16762.             MCI_AMP_STATUS_TREBLE 
  16763.                     Returns the current treble setting for the connector 
  16764.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16765.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16766.                     specified. 
  16767.  
  16768.             MCI_AMP_STATUS_VOLUME 
  16769.                     Returns the current volume setting for the connector 
  16770.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  16771.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  16772.                     specified. 
  16773.  
  16774.             CD Audio Extensions 
  16775.  
  16776.             The following additional status items apply to CD audio devices and 
  16777.             can be specified for the ulItem field (of the data structure 
  16778.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag: 
  16779.  
  16780.             MCI_CD_STATUS_TRACK_TYPE 
  16781.                     Returns one of the following: 
  16782.  
  16783.                         MCI_CD_TRACK_AUDIO 
  16784.                         MCI_CD_TRACK_DATA 
  16785.                         MCI_CD_TRACK_OTHER 
  16786.  
  16787.             MCI_CD_STATUS_TRACK_COPYPERMITTED 
  16788.                     Returns MCI_TRUE if digital copying is permitted; 
  16789.                     otherwise, returns MCI_FALSE. 
  16790.  
  16791.             MCI_CD_STATUS_TRACK_CHANNELS 
  16792.                     Returns the number of audio channels on the track. 
  16793.  
  16794.             MCI_CD_STATUS_TRACK_PREEMPHASIS 
  16795.                     Returns MCI_TRUE if the track was recorded with 
  16796.                     pre-emphasis; otherwise, returns MCI_FALSE. 
  16797.  
  16798.                     Note:  When used with the MCI_TRACK flag, these items 
  16799.                            return the status information of the specified track 
  16800.                            instead of the current track. 
  16801.  
  16802.             CD/XA Extensions 
  16803.  
  16804.             The following extensions apply to CD-XA devices and can be 
  16805.             specified for the ulItem field of the data structure pointed to by 
  16806.             pParam2: 
  16807.  
  16808.             MCI_CDXA_STATUS_CHANNEL 
  16809.                     Returns the destination of the data in channel ulChannel. 
  16810.                     Returns one of the following: 
  16811.  
  16812.                         MCI_CDXA_AUDIO_DEVICE 
  16813.                         MCI_CDXA_AUDIO_BUFFER 
  16814.                         MCI_CDXA_VIDEO_BUFFER 
  16815.                         MCI_CDXA_DATA_BUFFER 
  16816.                         MCI_CDXA_NONE 
  16817.  
  16818.             Digital Video Extensions 
  16819.  
  16820.             The following additional status items apply to digital video 
  16821.             devices and can be specified for the ulItem field (of the data 
  16822.             structure pointed to by pParam2) for use with the MCI_STATUS_ITEM 
  16823.             flag. 
  16824.  
  16825.             MCI_DGV_STATUS_FORMATTAG 
  16826.                     Returns WAVE_FORMAT_PCM, the only format currently 
  16827.                     supported by the digital video device.  If a movie is 
  16828.                     loaded that contains a format other than PCM, the format 
  16829.                     used in the movie will be returned. 
  16830.  
  16831.             MCI_DGV_STATUS_DROPPED_FRAME_PCT 
  16832.                     Returns the percentage of dropped frames for recording or 
  16833.                     playback operations.  The value returned is in the range 
  16834.                     0-100, where a value of zero indicates that no frame drops 
  16835.                     are occurring or have occurred and a value of 100 indicates 
  16836.                     that all frames are being dropped or have been dropped. 
  16837.                     This status value can be queried during a recording 
  16838.                     operation to obtain the cumulative percentage of frame 
  16839.                     drops that have occurred since recording began, or during 
  16840.                     playback to obtain the cumulative percentage of frame drops 
  16841.                     that have occurred since playback began or was resumed 
  16842.                     after a seek, pause, or stop. If the value is queried when 
  16843.                     the device is stopped, the percentage of dropped frames 
  16844.                     accumulated at the end of the last playback or recording 
  16845.                     operation that was performed is returned. A value of zero 
  16846.                     is returned if no playback or recording operations have 
  16847.                     been performed, the device is seeking or has been seeked, 
  16848.                     the device is paused or stopped, or the device is playing 
  16849.                     in scan mode. 
  16850.  
  16851.             MCI_DGV_STATUS_SAMPLESPERSEC 
  16852.                     Returns the currently set samples per second used for 
  16853.                     playing, recording, and saving. 
  16854.  
  16855.             MCI_DGV_STATUS_BITSPERSAMPLE 
  16856.                     Returns the currently set bits per sample used for playing, 
  16857.                     recording, and saving. 
  16858.  
  16859.             MCI_DGV_STATUS_CHANNELS 
  16860.                     Returns the currently set number of channels used for 
  16861.                     playing, recording, and saving. 
  16862.  
  16863.             MCI_DGV_STATUS_HWND 
  16864.                     Returns the handle of the playback window. 
  16865.  
  16866.             MCI_DGV_STATUS_VIDEO_COMPRESSION 
  16867.                     Returns the current FOURCC compression format for recording 
  16868.                     of motion video.  Only symmetric compressors will be 
  16869.                     enabled for real-time recording. 
  16870.  
  16871.             MCI_DGV_STATUS_VIDEO_QUALITY 
  16872.                     Returns the currently set compression quality level for 
  16873.                     recording of motion video. 
  16874.  
  16875.             MCI_DGV_STATUS_MONITOR 
  16876.                     Returns MCI_ON or MCI_OFF to indicate whether monitoring of 
  16877.                     the incoming video signal is on or off. 
  16878.  
  16879.             MCI_DGV_STATUS_HWND_MONITOR 
  16880.                     Returns the monitor window handle. 
  16881.  
  16882.             MCI_DGV_STATUS_REF_INTERVAL 
  16883.                     Returns the value of n where n refers to a reference frame 
  16884.                     being inserted every nth frame. 
  16885.  
  16886.             MCI_DGV_STATUS_IMAGE_BITSPERPEL 
  16887.                     Returns the pel format used for saving bitmaps. 
  16888.  
  16889.             MCI_DGV_STATUS_IMAGE_PELFORMAT 
  16890.                     Returns the data format used of image data for the capture 
  16891.                     device.  Possible values are: 
  16892.  
  16893.                         MMIO_RGB_5_6_5 
  16894.  
  16895.                          Each pixel is represented by 16 bits of data as 
  16896.                          follows: 
  16897.  
  16898.                          15:5      Red level in the range 0-31 
  16899.                          10:6      Green level in the range 0-63 
  16900.                          4:5       Blue level in the range 0-31 
  16901.  
  16902.                         MMIO_YUV_4_1_1 
  16903.  
  16904.                          This format uses 16 bits per pixel, but uses 4-pixel 
  16905.                          horizontal chrominance subsampling.  Each pixel has a 
  16906.                          unique luminance value (Y) with a single chrominance 
  16907.                          value (U and V) shared by four pixels. Y, U, and V all 
  16908.                          have 7 bits of significance in this format. 
  16909.  
  16910.                          23:8      Red level in the range 0-255 
  16911.                          15:8      Green level in the range 0-255 
  16912.                          7:8       Blue level in the range 0-255 
  16913.  
  16914.                         MMIO_YUV_4_2_2 
  16915.  
  16916.                          4 bytes of Y, 2 bytes of U, 2 bytes of V; all 8-bit 
  16917.                          values in this form YUYVYUYV 
  16918.  
  16919.             MCI_DGV_STATUS_FORWARD 
  16920.                     Returns MCI_TRUE if playing forward; otherwise returns 
  16921.                     MCI_FALSE. 
  16922.  
  16923.             MCI_DGV_STATUS_NORMAL_RATE 
  16924.                     Returns the normal-play rate of the currently loaded motion 
  16925.                     video device element, in the current speed format, either 
  16926.                     as a percentage or in frames per second. 
  16927.  
  16928.             MCI_DGV_STATUS_VIDEO_X_EXTENT 
  16929.                     Returns the horizontal (X) extent of the digital motion 
  16930.                     video image for the currently loaded motion video device 
  16931.                     element. 
  16932.  
  16933.             MCI_DGV_STATUS_VIDEO_Y_EXTENT 
  16934.                     Returns the vertical (Y) extent of the digital motion video 
  16935.                     image for the currently loaded motion video device element. 
  16936.  
  16937.             MCI_DGV_STATUS_BRIGHTNESS 
  16938.                     Returns the brightness level. 
  16939.  
  16940.             MCI_DGV_STATUS_CONTRAST 
  16941.                     Returns the contrast level. 
  16942.  
  16943.             MCI_DGV_STATUS_HUE 
  16944.                     Returns the hue level. 
  16945.  
  16946.             MCI_DGV_STATUS_SATURATION 
  16947.                     Returns the saturation level. 
  16948.  
  16949.             MCI_DGV_STATUS_RECORD_AUDIO 
  16950.                     Returns MCI_ON or MCI_OFF to indicate whether recording the 
  16951.                     audio soundtrack has been turned on or off. 
  16952.  
  16953.             MCI_DGV_STATUS_SPEED 
  16954.                     Returns the digital video speed in frames per second. 
  16955.  
  16956.             MCI_DGV_STATUS_TRANSPARENT_COLOR 
  16957.                     Returns a value representing the transparent color used as 
  16958.                     the chroma-key on video overlay hardware. 
  16959.  
  16960.             MCI_DGV_STATUS_VIDEO_RECORD_FRAME_DURATION 
  16961.                     Returns the frame rate for recording as the time duration 
  16962.                     of each frame in microseconds. 
  16963.  
  16964.             MCI_DGV_STATUS_TUNER_TV_CHANNEL 
  16965.                     This flag returns the channel that the tuner device is 
  16966.                     tuned to. 
  16967.  
  16968.             MCI_DGV_STATUS_TUNER_HIGH_TV_CHANNEL 
  16969.                     This flag returns the highest channel for the region. 
  16970.  
  16971.             MCI_DGV_STATUS_TUNER_LOW_TV_CHANNEL 
  16972.                     This flag returns the lowest channel for the region. 
  16973.  
  16974.             MCI_DGV_STATUS_TUNER_FINETUNE 
  16975.                     This flag returns the fine-tuning value that the tuner 
  16976.                     device is tuned to. 
  16977.  
  16978.             MCI_DGV_STATUS_TUNER_FREQUENCY 
  16979.                     This flag returns the frequency value that the tuner device 
  16980.                     is tuned to. 
  16981.  
  16982.             MCI_DGV_STATUS_VALID_SIGNAL 
  16983.                     This flag returns MCI_TRUE if there is a signal present. 
  16984.  
  16985.             Sequencer Extensions 
  16986.  
  16987.             The following additional status items apply to MIDI sequencer 
  16988.             devices and can be specified for the ulItem field (of the data 
  16989.             structure pointed to by pParam2) for use with the MCI_STATUS_ITEM 
  16990.             flag: 
  16991.  
  16992.             MCI_SEQ_STATUS_DIVTYPE 
  16993.                     Returns one of the following values as the current division 
  16994.                     type of a sequence: 
  16995.  
  16996.                         MCI_SEQ_DIV_PPQN 
  16997.                         MCI_SEQ_DIV_SMPTE_24 
  16998.                         MCI_SEQ_DIV_SMPTE_25 
  16999.                         MCI_SEQ_DIV_SMPTE_25 
  17000.                         MCI_SEQ_DIV_SMPTE_30 
  17001.                         MCI_SEQ_DIV_SMPTE_30DROP 
  17002.  
  17003.             MCI_SEQ_STATUS_MASTER 
  17004.                     Returns the synchronization type used for master operation. 
  17005.  
  17006.             MCI_SEQ_STATUS_OFFSET 
  17007.                     Returns the current SMPTE offset of a sequence. 
  17008.  
  17009.             MCI_SEQ_STATUS_PORT 
  17010.                     Returns the MIDI device ID for the current port used by the 
  17011.                     sequence. 
  17012.  
  17013.             MCI_SEQ_STATUS_SLAVE 
  17014.                     Returns the synchronization type used for slave operation. 
  17015.  
  17016.             MCI_SEQ_STATUS_TEMPO 
  17017.                     Returns the current tempo of a MIDI sequence in 
  17018.                     beats-per-minute for PPQN files, or frames-per-second for 
  17019.                     SMPTE files. Currently this function is not supported by 
  17020.                     the IBM sequencer. 
  17021.  
  17022.             Videodisc Extensions 
  17023.  
  17024.             The following additional status items apply to videodisc devices 
  17025.             and can be specified for the ulItem field (of the data structure 
  17026.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag: 
  17027.  
  17028.             MCI_VD_STATUS_SPEED 
  17029.                     Returns the speed in the currently set speed format. 
  17030.  
  17031.             MCI_VD_STATUS_FORWARD 
  17032.                     Returns MCI_TRUE if playing forward; otherwise, returns 
  17033.                     MCI_FALSE. 
  17034.  
  17035.             MCI_VD_MEDIA_TYPE 
  17036.                     Returns one of the following: 
  17037.  
  17038.                         MCI_VD_MEDIA_CAV 
  17039.                         MCI_VD_MEDIA_CLV 
  17040.                         MCI_VD_MEDIA_OTHER 
  17041.  
  17042.             MCI_VD_STATUS_SIDE 
  17043.                     Returns 1 or 2 to indicate which side of the disc is 
  17044.                     loaded. 
  17045.  
  17046.             MCI_VD_STATUS_DISC_SIZE 
  17047.                     Returns the size of the loaded disc in inches (8 or 12). 
  17048.  
  17049.             Video Overlay Extensions 
  17050.  
  17051.             The following additional items apply to video overlay devices and 
  17052.             can be specified for the ulItem field (of the data structure 
  17053.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag. 
  17054.  
  17055.             MCI_OVLY_STATUS_HWND 
  17056.                     Returns the handle of the playback window. 
  17057.  
  17058.             MCI_OVLY_STATUS_IMAGE_COMPRESSION 
  17059.                     Returns the compression format of the currently loaded 
  17060.                     bitmap/image. 
  17061.  
  17062.             MCI_OVLY_STATUS_BITSPERPEL 
  17063.                     Returns the number of bits per pel of the currently loaded 
  17064.                     bitmap/image.  Return values include: 
  17065.  
  17066.                         MCI_IMG_PALETTE 
  17067.                         MCI_IMG_RGB 
  17068.                         MCI_IMG_YUV 
  17069.  
  17070.             MCI_OVLY_STATUS_PELFORMAT 
  17071.                     Returns the pel format of the currently loaded 
  17072.                     bitmap/image. 
  17073.  
  17074.             MCI_OVLY_STATUS_BRIGHTNESS 
  17075.                     Returns the brightness level. 
  17076.  
  17077.             MCI_OVLY_STATUS_CONTRAST 
  17078.                     Returns the contrast level. 
  17079.  
  17080.             MCI_OVLY_STATUS_HUE 
  17081.                     Returns the hue level. 
  17082.  
  17083.             MCI_OVLY_STATUS_SATURATION 
  17084.                     Returns the saturation level. 
  17085.  
  17086.             MCI_OVLY_STATUS_SHARPNESS 
  17087.                     Returns the sharpness level. 
  17088.  
  17089.             MCI_OVLY_STATUS_TRANSPARENT_COLOR 
  17090.                     Returns a value representing the RGB value or palette 
  17091.                     value, which specifies the transparent color.  RGB values 
  17092.                     are returned as a 32-bit RGB2 data item. 
  17093.  
  17094.             MCI_OVLY_STATUS_TRANSPARENT_TYPE 
  17095.                     Returns a value representing information to assist in 
  17096.                     interpreting the MCI_OVLY_STATUS_TRANSPARENT_COLOR. 
  17097.  
  17098.                     Return values include: 
  17099.  
  17100.                         MCI_IMG_PALETTE 
  17101.                         MCI_IMG_RGB 
  17102.                         MCI_IMG_YUV 
  17103.  
  17104.             MCI_OVLY_STATUS_GREYSCALE 
  17105.                     Returns MCI_ON or MCI_OFF. 
  17106.  
  17107.             MCI_OVLY_STATUS_IMAGE_COMPRESSION 
  17108.                     Returns the compression type for saving still images. 
  17109.  
  17110.             MCI_OVLY_STATUS_IMAGE_BITSPERPEL 
  17111.                     Returns the number of bits per pel used for the image file 
  17112.                     to be saved. 
  17113.  
  17114.             MCI_OVLY_STATUS_IMAGE_PELFORMAT 
  17115.                     Returns the pel format used for saving bitmaps. 
  17116.  
  17117.             MCI_OVLY_STATUS_IMAGE_QUALITY 
  17118.                     Returns the quality of the image in the element buffer. 
  17119.  
  17120.             MCI_OVLY_STATUS_IMAGE_X_EXTENT 
  17121.                     Returns the width, in pels, of the image in the element 
  17122.                     buffer. 
  17123.  
  17124.             MCI_OVLY_STATUS_IMAGE_Y_EXTENT 
  17125.                     Returns the height, in pels, of the image in the element 
  17126.                     buffer. 
  17127.  
  17128.             MCI_OVLY_STATUS_IMAGE_FILE_FORMAT 
  17129.                     Returns the format in which an image capture will be stored 
  17130.                     when saved. 
  17131.  
  17132.             Wave Audio Extensions 
  17133.  
  17134.             The following additional status items apply to wave audio devices 
  17135.             and can be specified for the ulItem field (of the data structure 
  17136.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag: 
  17137.  
  17138.             MCI_WAVE_STATUS_FORMATTAG 
  17139.                     Returns the currently set format tag used for playing, 
  17140.                     recording, and saving. 
  17141.  
  17142.             MCI_WAVE_STATUS_CHANNELS 
  17143.                     Returns the currently set channel count used for playing, 
  17144.                     recording, and saving. 
  17145.  
  17146.             MCI_WAVE_STATUS_SAMPLESPERSEC 
  17147.                     Returns the currently set samples per second used for 
  17148.                     playing, recording, and saving. 
  17149.  
  17150.             MCI_WAVE_STATUS_AVGBYTESPERSEC 
  17151.                     Returns the currently set bytes per second used for 
  17152.                     playing, recording, and saving. Playback software can use 
  17153.                     this number to estimate required buffer sizes.  Refer to 
  17154.                     the RIFF WAVE format documentation for more information. 
  17155.  
  17156.             MCI_WAVE_STATUS_BLOCKALIGN 
  17157.                     Returns the currently set block alignment used for playing, 
  17158.                     recording, and saving. 
  17159.  
  17160.             MCI_WAVE_STATUS_BITSPERSAMPLE 
  17161.                     Returns the currently set bits per sample used for playing, 
  17162.                     recording, and saving. 
  17163.  
  17164.             MCI_WAVE_STATUS_LEVEL 
  17165.                     Returns the current record or playback level. The value is 
  17166.                     returned as an 8-bit or 16-bit value, depending on the 
  17167.                     sample size being used.  The right or Mono channel level is 
  17168.                     returned in the low-order word.  The left channel level is 
  17169.                     returned in the high-order word. 
  17170.  
  17171.  
  17172. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS Parameter - pParam2 ΓòÉΓòÉΓòÉ
  17173.  
  17174.  pParam2 (PMCI_STATUS_PARMS) 
  17175.     A pointer to the MCI_STATUS_PARMS data structure. Devices with extended 
  17176.     command sets might replace this pointer with a pointer to a device-specific 
  17177.     data structure as follows: 
  17178.  
  17179.     PMCI_CDXA_STATUS_PARMS 
  17180.             A pointer to the MCI_CDXA_STATUS_PARMS data structure. 
  17181.  
  17182.  
  17183. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS Return Value - rc ΓòÉΓòÉΓòÉ
  17184.  
  17185.  rc (ULONG) 
  17186.  
  17187.     Note:  The format of the ulReturn value in this structure is defined by the 
  17188.            high-order word of the value returned by mciSendCommand. This value 
  17189.            is used by mciSendString to determine how to convert the ulReturn 
  17190.            value to string form. For a list of the possible format values, see 
  17191.            the MMDRVOS2.H header file. If the low-order word returned is 
  17192.            MCIERR_SUCCESS, the high-order word could be other errors or a 
  17193.            value. A returned value defines the format of ulReturn as defined in 
  17194.            MMDRVOS2.H. For example, 0x5000 = MCI_TRUE_FALSE_RETURN. 
  17195.  
  17196.     Return codes indicating success or type of failure: 
  17197.  
  17198.     MCIERR_SUCCESS 
  17199.               MMPM/2 command completed successfully. 
  17200.  
  17201.     MCIERR_OUT_OF_MEMORY 
  17202.               System out of memory. 
  17203.  
  17204.     MCIERR_INVALID_DEVICE_ID 
  17205.               Invalid device ID given. 
  17206.  
  17207.     MCIERR_MISSING_PARAMETER 
  17208.               Missing parameter for this command. 
  17209.  
  17210.     MCIERR_DRIVER 
  17211.               Internal MMPM/2 driver error. 
  17212.  
  17213.     MCIERR_INVALID_FLAG 
  17214.               Invalid flag specified for this command. 
  17215.  
  17216.     MCIERR_UNSUPPORTED_FLAG 
  17217.               Flag not supported by this MMPM/2 driver for this command. 
  17218.  
  17219.     MCIERR_MISSING_FLAG 
  17220.               Flag missing for this MMPM/2 command. 
  17221.  
  17222.     MCIERR_UNSUPPORTED_FUNCTION 
  17223.               Function not supported by the media driver being used. 
  17224.  
  17225.     MCIERR_INVALID_ITEM_FLAG 
  17226.               Invalid item flag specified for this command. 
  17227.  
  17228.     MCIERR_TUNER_NO_HW 
  17229.               Device has no tuner support. 
  17230.  
  17231.     MCIERR_TUNER_MODE 
  17232.               Frequency was last set directly.  MCI_DGV_STATUS_TUNER_TV_CHANNEL 
  17233.               and MCI_DGV_STATUS_TUNER_FINETUNE cannot be used.  Use 
  17234.               MCI_DGV_STATUS_FREQUENCY. 
  17235.  
  17236.     MCIERR_SIGNAL_INVALID 
  17237.               No valid signal present. 
  17238.  
  17239.  
  17240. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS - Description ΓòÉΓòÉΓòÉ
  17241.  
  17242. This message is used to obtain information about the status of a device 
  17243. instance.  MCI_STATUS returns the values most recently set by MCI_SET, 
  17244. MCI_LOAD, MCI_SETTUNER, and MCI_SETIMAGEBUFFER operations. 
  17245.  
  17246.  ulParam1 (ULONG) 
  17247.     This parameter can contain any of the following flags: 
  17248.  
  17249.     MCI_NOTIFY 
  17250.             A notification message will be posted to the window specified in 
  17251.             the hwndCallback parameter of the data structure pointed to by the 
  17252.             pParam2 parameter.  The notification will be posted when the action 
  17253.             indicated by this message is completed or when an error occurs. 
  17254.  
  17255.     MCI_WAIT 
  17256.             Control is not to be returned until the action indicated by this 
  17257.             message is completed or an error occurs. 
  17258.  
  17259.     MCI_STATUS_START 
  17260.             Returns the starting position of the media.  Specify 
  17261.             MCI_STATUS_POSITION as the status item in ulItem. 
  17262.  
  17263.     MCI_TRACK 
  17264.             A status track parameter is included in the ulTrack field of the 
  17265.             data structure pointed to by pParam2. If MCI_TRACK is specified, 
  17266.             the status item must be either MCI_STATUS_POSITION or 
  17267.             MCI_STATUS_LENGTH. When used with MCI_STATUS_POSITION, the starting 
  17268.             position of the given track, segment, or chapter is returned.  When 
  17269.             used with MCI_STATUS_LENGTH, the length of the given track, 
  17270.             segment, element, or chapter is returned. 
  17271.  
  17272.     MCI_STATUS_CONNECTOR 
  17273.             If this flag is specified, a valid connector must be in the ulValue 
  17274.             field of MCI_STATUS_PARMS.  The specific audio setting to be 
  17275.             queried is set in the ulItem field.  MCI_STATUS_CONNECTOR and 
  17276.             MCI_STATUS_ITEM are mutually exclusive.  If both of these flags are 
  17277.             specified, MCIERR_INVALID_FLAG will be returned. 
  17278.  
  17279.     MCI_STATUS_ITEM 
  17280.             Indicates that the ulItem field of the data structure identified by 
  17281.             pParam2 contains a constant specifying the status item in question. 
  17282.             The following constants are defined: 
  17283.  
  17284.             MCI_STATUS_AUDIO 
  17285.                     One of the following status audio parameters must be 
  17286.                     included in the ulValue field of the data structure pointed 
  17287.                     to by pParam2. The following predefined channel numbers can 
  17288.                     be specified. You can specify other channel numbers by 
  17289.                     specifying the appropriate channel number. 
  17290.  
  17291.                     MCI_STATUS_AUDIO_ALL 
  17292.                             Returns MCI_TRUE if all channels are on; otherwise, 
  17293.                             returns MCI_FALSE.  This is the default value. 
  17294.  
  17295.                     MCI_STATUS_AUDIO_LEFT 
  17296.                             Returns MCI_TRUE if the left channel is on; 
  17297.                             otherwise, returns MCI_FALSE. 
  17298.  
  17299.                     MCI_STATUS_AUDIO_RIGHT 
  17300.                             Returns MCI_TRUE if the right channel is on; 
  17301.                             otherwise, returns MCI_FALSE. 
  17302.  
  17303.             MCI_STATUS_CAN_PASTE 
  17304.                     Returns MCI_TRUE if compatible data is to be placed in 
  17305.                     clipboard; otherwise, returns MCI_FALSE. 
  17306.  
  17307.             MCI_STATUS_CAN_REDO 
  17308.                     Returns MCI_TRUE if an operation that was undone can be 
  17309.                     redone; otherwise, returns MCI_FALSE. 
  17310.  
  17311.             MCI_STATUS_CAN_UNDO 
  17312.                     Returns MCI_TRUE if a change has been made that can be 
  17313.                     undone; otherwise, returns MCI_FALSE. 
  17314.  
  17315.             MCI_STATUS_CLIPBOARD 
  17316.                     Returns MCI_TRUE if the clipboard contains information 
  17317.                     understood by the current device; otherwise returns 
  17318.                     MCI_FALSE. 
  17319.  
  17320.             MCI_STATUS_CURRENT_TRACK 
  17321.                     Returns the current track, segment, or chapter number. 
  17322.  
  17323.             MCI_STATUS_LENGTH 
  17324.                     Returns the total media length in units as specified in the 
  17325.                     MCI_SET message with the MCI_SET_TIME_FORMAT flag. 
  17326.  
  17327.                     Note:  If the time format has been set to MCI_FORMAT_TMSF, 
  17328.                            the actual time value returned will be in the format 
  17329.                            MCI_FORMAT_MSF. 
  17330.  
  17331.                     If the media length cannot be determined because a playlist 
  17332.                     is currently loaded, or for any other reason, 
  17333.                     MCIERR_INDETERMINATE_LENGTH is returned. 
  17334.  
  17335.             MCI_STATUS_MODE 
  17336.                     Returns the current mode of the device.  Possible values 
  17337.                     are: 
  17338.  
  17339.                         MCI_MODE_NOT_READY 
  17340.                         MCI_MODE_PAUSE 
  17341.                         MCI_MODE_PLAY 
  17342.                         MCI_MODE_STOP 
  17343.                         MCI_MODE_RECORD 
  17344.                         MCI_MODE_SEEK 
  17345.  
  17346.             MCI_STATUS_MEDIA_PRESENT 
  17347.                     Returns MCI_TRUE or MCI_FALSE. If the device does not have 
  17348.                     removable media, it returns MCI_TRUE.  Note that this 
  17349.                     function is only applicable to devices which are dependent 
  17350.                     on removable media.  Receiving a return of MCI_FALSE 
  17351.                     indicates that the device cannot function without inserting 
  17352.                     the media into the device.  Examples of devices which might 
  17353.                     return MCI_FALSE to this command are CD audio and videodisc 
  17354.                     devices. 
  17355.  
  17356.             MCI_STATUS_MONITOR 
  17357.                     Returns MCI_ON or MCI_OFF to indicate whether monitoring of 
  17358.                     the incoming video signal is turned on or off. 
  17359.  
  17360.             MCI_STATUS_NUMBER_OF_TRACKS 
  17361.                     Returns the total number of playable tracks, segments, or 
  17362.                     chapters. 
  17363.  
  17364.             MCI_STATUS_POSITION 
  17365.                     Returns the current position. 
  17366.  
  17367.             MCI_STATUS_POSITION_IN_TRACK 
  17368.                     Returns the current position relative to the beginning of 
  17369.                     the current track, segment, or chapter. 
  17370.  
  17371.             MCI_STATUS_READY 
  17372.                     Returns MCI_TRUE if the device is ready; otherwise, returns 
  17373.                     MCI_FALSE. 
  17374.  
  17375.             MCI_STATUS_SPEED_FORMAT 
  17376.                     Returns the currently set speed format.  Possible values 
  17377.                     are: 
  17378.  
  17379.                         MCI_FORMAT_PERCENTAGE 
  17380.                         MCI_FORMAT_FPS 
  17381.  
  17382.             MCI_STATUS_TIME_FORMAT 
  17383.                     Returns the currently set time format.  Possible values 
  17384.                     are: 
  17385.  
  17386.                         MCI_FORMAT_MILLISECONDS 
  17387.                         MCI_FORMAT_MMTIME 
  17388.                         MCI_FORMAT_MSF 
  17389.                         MCI_FORMAT_TMSF 
  17390.                         MCI_FORMAT_CHAPTERS 
  17391.                         MCI_FORMAT_FRAMES 
  17392.                         MCI_FORMAT_HMS 
  17393.                         MCI_FORMAT_TRACKS 
  17394.                         MCI_FORMAT_BYTES 
  17395.                         MCI_FORMAT_SAMPLES 
  17396.                         MCI_FORMAT_HMSF 
  17397.                         MCI_FORMAT_SET_SMPTE_24 
  17398.                         MCI_FORMAT_SET_SMPTE_25 
  17399.                         MCI_FORMAT_SET_SMPTE_30 
  17400.                         MCI_FORMAT_SET_SMPTE_30DROP 
  17401.                         MCI_FORMAT_SET_SONGPTR 
  17402.  
  17403.             MCI_STATUS_VIDEO 
  17404.                     Returns MCI_TRUE if video is on; otherwise returns 
  17405.                     MCI_FALSE. 
  17406.  
  17407.             MCI_STATUS_VOLUME 
  17408.                     Returns the actual volume level set in the device as a 
  17409.                     percentage of the maximum achievable effect. The left 
  17410.                     channel is returned in the low-order word, and the right 
  17411.                     channel is returned in the high-order word. 
  17412.  
  17413.             Amplifier Mixer Extensions 
  17414.  
  17415.             The following additional status items apply to amplifier-mixer 
  17416.             devices and can be specified for the ulItem field (of the data 
  17417.             structure pointed to by pParam2) for use with the MCI_STATUS_ITEM 
  17418.             flag: 
  17419.  
  17420.             MCI_AMP_STATUS_BALANCE 
  17421.                     Returns a balance level for this mixer channel.  A value of 
  17422.                     zero indicates full left balance while 100 indicates full 
  17423.                     right balance, and 50 indicates neutral balance. 
  17424.  
  17425.             MCI_AMP_STATUS_BASS 
  17426.                     Returns a bass level for this mixer channel as a percentage 
  17427.                     of the maximum achievable bass effect. 
  17428.  
  17429.             MCI_AMP_STATUS_GAIN 
  17430.                     Returns the gain setting as a percentage of the maximum 
  17431.                     achievable effect. 
  17432.  
  17433.             MCI_AMP_STATUS_PITCH 
  17434.                     Returns the pitch as a percentage of the maximum achievable 
  17435.                     effect. 
  17436.  
  17437.             MCI_AMP_STATUS_TREBLE 
  17438.                     Returns treble level for this mixer channel as a percentage 
  17439.                     of the maximum treble effect. 
  17440.  
  17441.             If MCI_STATUS_CONNECTOR is specified, the following additional 
  17442.             items can be specified in the ulItem field of MCI_STATUS_PARMS. 
  17443.  
  17444.             MCI_AMP_STATUS_ALC 
  17445.                     Returns the current auto-level control setting for the 
  17446.                     connector specified in ulValue of MCI_STATUS_PARMS as a 
  17447.                     percentage of the maximum achievable effect. 
  17448.                     MCI_STATUS_CONNECTOR must be specified. 
  17449.  
  17450.             MCI_AMP_STATUS_BASS 
  17451.                     Returns the current bass setting for the connector 
  17452.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17453.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17454.                     specified. 
  17455.  
  17456.             MCI_AMP_STATUS_BALANCE 
  17457.                     Returns the current balance setting for the connector 
  17458.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17459.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17460.                     specified. 
  17461.  
  17462.             MCI_AMP_STATUS_CHORUS 
  17463.                     Returns the current chorus setting for the connector 
  17464.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17465.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17466.                     specified. 
  17467.  
  17468.             MCI_AMP_STATUS_CROSSOVER 
  17469.                     Returns the current crossover setting for the connector 
  17470.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17471.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17472.                     specified. 
  17473.  
  17474.             MCI_AMP_STATUS_CUSTOM1 
  17475.                     Returns the current custom effect setting for the connector 
  17476.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17477.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17478.                     specified. 
  17479.  
  17480.             MCI_AMP_STATUS_CUSTOM2 
  17481.                     Returns the current custom effect setting for the connector 
  17482.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17483.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17484.                     specified. 
  17485.  
  17486.             MCI_AMP_STATUS_CUSTOM3 
  17487.                     Returns the current custom effect setting for the connector 
  17488.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17489.                     the maximum achievable effect.  MCI_STATUS_CONNECTOR must 
  17490.                     be specified. 
  17491.  
  17492.             MCI_AMP_STATUS_GAIN 
  17493.                     Returns the current gain setting for the connector 
  17494.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17495.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17496.                     specified. 
  17497.  
  17498.             MCI_AMP_STATUS_LOUDNESS 
  17499.                     Returns the current loudness setting for the connector 
  17500.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17501.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17502.                     specified. 
  17503.  
  17504.             MCI_AMP_STATUS_MID 
  17505.                     Returns the current mid setting for the connector specified 
  17506.                     in ulValue of MCI_STATUS_PARMS as a percentage of the 
  17507.                     maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17508.                     specified. 
  17509.  
  17510.             MCI_AMP_STATUS_MONITOR 
  17511.                     Returns the current monitor setting for the connector 
  17512.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17513.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17514.                     specified. 
  17515.  
  17516.             MCI_AMP_STATUS_MUTE 
  17517.                     Returns the current mute setting for the connector 
  17518.                     specified in ulValue of MCI_STATUS_PARMS. 
  17519.                     MCI_STATUS_CONNECTOR must be specified. 
  17520.  
  17521.             MCI_AMP_STATUS_PITCH 
  17522.                     Returns the current pitch setting for the connector 
  17523.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17524.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17525.                     specified. 
  17526.  
  17527.             MCI_AMP_STATUS_REVERB 
  17528.                     Returns the current reverb setting for the connector 
  17529.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17530.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17531.                     specified. 
  17532.  
  17533.             MCI_AMP_STATUS_STEREOENHANCE 
  17534.                     Returns the current stereo enhance setting for the 
  17535.                     connector specified in ulValue of MCI_STATUS_PARMS as a 
  17536.                     percentage of the maximum achievable effect. 
  17537.                     MCI_STATUS_CONNECTOR must be specified. 
  17538.  
  17539.             MCI_AMP_STATUS_TREBLE 
  17540.                     Returns the current treble setting for the connector 
  17541.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17542.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17543.                     specified. 
  17544.  
  17545.             MCI_AMP_STATUS_VOLUME 
  17546.                     Returns the current volume setting for the connector 
  17547.                     specified in ulValue of MCI_STATUS_PARMS as a percentage of 
  17548.                     the maximum achievable effect. MCI_STATUS_CONNECTOR must be 
  17549.                     specified. 
  17550.  
  17551.             CD Audio Extensions 
  17552.  
  17553.             The following additional status items apply to CD audio devices and 
  17554.             can be specified for the ulItem field (of the data structure 
  17555.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag: 
  17556.  
  17557.             MCI_CD_STATUS_TRACK_TYPE 
  17558.                     Returns one of the following: 
  17559.  
  17560.                         MCI_CD_TRACK_AUDIO 
  17561.                         MCI_CD_TRACK_DATA 
  17562.                         MCI_CD_TRACK_OTHER 
  17563.  
  17564.             MCI_CD_STATUS_TRACK_COPYPERMITTED 
  17565.                     Returns MCI_TRUE if digital copying is permitted; 
  17566.                     otherwise, returns MCI_FALSE. 
  17567.  
  17568.             MCI_CD_STATUS_TRACK_CHANNELS 
  17569.                     Returns the number of audio channels on the track. 
  17570.  
  17571.             MCI_CD_STATUS_TRACK_PREEMPHASIS 
  17572.                     Returns MCI_TRUE if the track was recorded with 
  17573.                     pre-emphasis; otherwise, returns MCI_FALSE. 
  17574.  
  17575.                     Note:  When used with the MCI_TRACK flag, these items 
  17576.                            return the status information of the specified track 
  17577.                            instead of the current track. 
  17578.  
  17579.             CD/XA Extensions 
  17580.  
  17581.             The following extensions apply to CD-XA devices and can be 
  17582.             specified for the ulItem field of the data structure pointed to by 
  17583.             pParam2: 
  17584.  
  17585.             MCI_CDXA_STATUS_CHANNEL 
  17586.                     Returns the destination of the data in channel ulChannel. 
  17587.                     Returns one of the following: 
  17588.  
  17589.                         MCI_CDXA_AUDIO_DEVICE 
  17590.                         MCI_CDXA_AUDIO_BUFFER 
  17591.                         MCI_CDXA_VIDEO_BUFFER 
  17592.                         MCI_CDXA_DATA_BUFFER 
  17593.                         MCI_CDXA_NONE 
  17594.  
  17595.             Digital Video Extensions 
  17596.  
  17597.             The following additional status items apply to digital video 
  17598.             devices and can be specified for the ulItem field (of the data 
  17599.             structure pointed to by pParam2) for use with the MCI_STATUS_ITEM 
  17600.             flag. 
  17601.  
  17602.             MCI_DGV_STATUS_FORMATTAG 
  17603.                     Returns WAVE_FORMAT_PCM, the only format currently 
  17604.                     supported by the digital video device.  If a movie is 
  17605.                     loaded that contains a format other than PCM, the format 
  17606.                     used in the movie will be returned. 
  17607.  
  17608.             MCI_DGV_STATUS_DROPPED_FRAME_PCT 
  17609.                     Returns the percentage of dropped frames for recording or 
  17610.                     playback operations.  The value returned is in the range 
  17611.                     0-100, where a value of zero indicates that no frame drops 
  17612.                     are occurring or have occurred and a value of 100 indicates 
  17613.                     that all frames are being dropped or have been dropped. 
  17614.                     This status value can be queried during a recording 
  17615.                     operation to obtain the cumulative percentage of frame 
  17616.                     drops that have occurred since recording began, or during 
  17617.                     playback to obtain the cumulative percentage of frame drops 
  17618.                     that have occurred since playback began or was resumed 
  17619.                     after a seek, pause, or stop. If the value is queried when 
  17620.                     the device is stopped, the percentage of dropped frames 
  17621.                     accumulated at the end of the last playback or recording 
  17622.                     operation that was performed is returned. A value of zero 
  17623.                     is returned if no playback or recording operations have 
  17624.                     been performed, the device is seeking or has been seeked, 
  17625.                     the device is paused or stopped, or the device is playing 
  17626.                     in scan mode. 
  17627.  
  17628.             MCI_DGV_STATUS_SAMPLESPERSEC 
  17629.                     Returns the currently set samples per second used for 
  17630.                     playing, recording, and saving. 
  17631.  
  17632.             MCI_DGV_STATUS_BITSPERSAMPLE 
  17633.                     Returns the currently set bits per sample used for playing, 
  17634.                     recording, and saving. 
  17635.  
  17636.             MCI_DGV_STATUS_CHANNELS 
  17637.                     Returns the currently set number of channels used for 
  17638.                     playing, recording, and saving. 
  17639.  
  17640.             MCI_DGV_STATUS_HWND 
  17641.                     Returns the handle of the playback window. 
  17642.  
  17643.             MCI_DGV_STATUS_VIDEO_COMPRESSION 
  17644.                     Returns the current FOURCC compression format for recording 
  17645.                     of motion video.  Only symmetric compressors will be 
  17646.                     enabled for real-time recording. 
  17647.  
  17648.             MCI_DGV_STATUS_VIDEO_QUALITY 
  17649.                     Returns the currently set compression quality level for 
  17650.                     recording of motion video. 
  17651.  
  17652.             MCI_DGV_STATUS_MONITOR 
  17653.                     Returns MCI_ON or MCI_OFF to indicate whether monitoring of 
  17654.                     the incoming video signal is on or off. 
  17655.  
  17656.             MCI_DGV_STATUS_HWND_MONITOR 
  17657.                     Returns the monitor window handle. 
  17658.  
  17659.             MCI_DGV_STATUS_REF_INTERVAL 
  17660.                     Returns the value of n where n refers to a reference frame 
  17661.                     being inserted every nth frame. 
  17662.  
  17663.             MCI_DGV_STATUS_IMAGE_BITSPERPEL 
  17664.                     Returns the pel format used for saving bitmaps. 
  17665.  
  17666.             MCI_DGV_STATUS_IMAGE_PELFORMAT 
  17667.                     Returns the data format used of image data for the capture 
  17668.                     device.  Possible values are: 
  17669.  
  17670.                         MMIO_RGB_5_6_5 
  17671.  
  17672.                          Each pixel is represented by 16 bits of data as 
  17673.                          follows: 
  17674.  
  17675.                          15:5      Red level in the range 0-31 
  17676.                          10:6      Green level in the range 0-63 
  17677.                          4:5       Blue level in the range 0-31 
  17678.  
  17679.                         MMIO_YUV_4_1_1 
  17680.  
  17681.                          This format uses 16 bits per pixel, but uses 4-pixel 
  17682.                          horizontal chrominance subsampling.  Each pixel has a 
  17683.                          unique luminance value (Y) with a single chrominance 
  17684.                          value (U and V) shared by four pixels. Y, U, and V all 
  17685.                          have 7 bits of significance in this format. 
  17686.  
  17687.                          23:8      Red level in the range 0-255 
  17688.                          15:8      Green level in the range 0-255 
  17689.                          7:8       Blue level in the range 0-255 
  17690.  
  17691.                         MMIO_YUV_4_2_2 
  17692.  
  17693.                          4 bytes of Y, 2 bytes of U, 2 bytes of V; all 8-bit 
  17694.                          values in this form YUYVYUYV 
  17695.  
  17696.             MCI_DGV_STATUS_FORWARD 
  17697.                     Returns MCI_TRUE if playing forward; otherwise returns 
  17698.                     MCI_FALSE. 
  17699.  
  17700.             MCI_DGV_STATUS_NORMAL_RATE 
  17701.                     Returns the normal-play rate of the currently loaded motion 
  17702.                     video device element, in the current speed format, either 
  17703.                     as a percentage or in frames per second. 
  17704.  
  17705.             MCI_DGV_STATUS_VIDEO_X_EXTENT 
  17706.                     Returns the horizontal (X) extent of the digital motion 
  17707.                     video image for the currently loaded motion video device 
  17708.                     element. 
  17709.  
  17710.             MCI_DGV_STATUS_VIDEO_Y_EXTENT 
  17711.                     Returns the vertical (Y) extent of the digital motion video 
  17712.                     image for the currently loaded motion video device element. 
  17713.  
  17714.             MCI_DGV_STATUS_BRIGHTNESS 
  17715.                     Returns the brightness level. 
  17716.  
  17717.             MCI_DGV_STATUS_CONTRAST 
  17718.                     Returns the contrast level. 
  17719.  
  17720.             MCI_DGV_STATUS_HUE 
  17721.                     Returns the hue level. 
  17722.  
  17723.             MCI_DGV_STATUS_SATURATION 
  17724.                     Returns the saturation level. 
  17725.  
  17726.             MCI_DGV_STATUS_RECORD_AUDIO 
  17727.                     Returns MCI_ON or MCI_OFF to indicate whether recording the 
  17728.                     audio soundtrack has been turned on or off. 
  17729.  
  17730.             MCI_DGV_STATUS_SPEED 
  17731.                     Returns the digital video speed in frames per second. 
  17732.  
  17733.             MCI_DGV_STATUS_TRANSPARENT_COLOR 
  17734.                     Returns a value representing the transparent color used as 
  17735.                     the chroma-key on video overlay hardware. 
  17736.  
  17737.             MCI_DGV_STATUS_VIDEO_RECORD_FRAME_DURATION 
  17738.                     Returns the frame rate for recording as the time duration 
  17739.                     of each frame in microseconds. 
  17740.  
  17741.             MCI_DGV_STATUS_TUNER_TV_CHANNEL 
  17742.                     This flag returns the channel that the tuner device is 
  17743.                     tuned to. 
  17744.  
  17745.             MCI_DGV_STATUS_TUNER_HIGH_TV_CHANNEL 
  17746.                     This flag returns the highest channel for the region. 
  17747.  
  17748.             MCI_DGV_STATUS_TUNER_LOW_TV_CHANNEL 
  17749.                     This flag returns the lowest channel for the region. 
  17750.  
  17751.             MCI_DGV_STATUS_TUNER_FINETUNE 
  17752.                     This flag returns the fine-tuning value that the tuner 
  17753.                     device is tuned to. 
  17754.  
  17755.             MCI_DGV_STATUS_TUNER_FREQUENCY 
  17756.                     This flag returns the frequency value that the tuner device 
  17757.                     is tuned to. 
  17758.  
  17759.             MCI_DGV_STATUS_VALID_SIGNAL 
  17760.                     This flag returns MCI_TRUE if there is a signal present. 
  17761.  
  17762.             Sequencer Extensions 
  17763.  
  17764.             The following additional status items apply to MIDI sequencer 
  17765.             devices and can be specified for the ulItem field (of the data 
  17766.             structure pointed to by pParam2) for use with the MCI_STATUS_ITEM 
  17767.             flag: 
  17768.  
  17769.             MCI_SEQ_STATUS_DIVTYPE 
  17770.                     Returns one of the following values as the current division 
  17771.                     type of a sequence: 
  17772.  
  17773.                         MCI_SEQ_DIV_PPQN 
  17774.                         MCI_SEQ_DIV_SMPTE_24 
  17775.                         MCI_SEQ_DIV_SMPTE_25 
  17776.                         MCI_SEQ_DIV_SMPTE_25 
  17777.                         MCI_SEQ_DIV_SMPTE_30 
  17778.                         MCI_SEQ_DIV_SMPTE_30DROP 
  17779.  
  17780.             MCI_SEQ_STATUS_MASTER 
  17781.                     Returns the synchronization type used for master operation. 
  17782.  
  17783.             MCI_SEQ_STATUS_OFFSET 
  17784.                     Returns the current SMPTE offset of a sequence. 
  17785.  
  17786.             MCI_SEQ_STATUS_PORT 
  17787.                     Returns the MIDI device ID for the current port used by the 
  17788.                     sequence. 
  17789.  
  17790.             MCI_SEQ_STATUS_SLAVE 
  17791.                     Returns the synchronization type used for slave operation. 
  17792.  
  17793.             MCI_SEQ_STATUS_TEMPO 
  17794.                     Returns the current tempo of a MIDI sequence in 
  17795.                     beats-per-minute for PPQN files, or frames-per-second for 
  17796.                     SMPTE files. Currently this function is not supported by 
  17797.                     the IBM sequencer. 
  17798.  
  17799.             Videodisc Extensions 
  17800.  
  17801.             The following additional status items apply to videodisc devices 
  17802.             and can be specified for the ulItem field (of the data structure 
  17803.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag: 
  17804.  
  17805.             MCI_VD_STATUS_SPEED 
  17806.                     Returns the speed in the currently set speed format. 
  17807.  
  17808.             MCI_VD_STATUS_FORWARD 
  17809.                     Returns MCI_TRUE if playing forward; otherwise, returns 
  17810.                     MCI_FALSE. 
  17811.  
  17812.             MCI_VD_MEDIA_TYPE 
  17813.                     Returns one of the following: 
  17814.  
  17815.                         MCI_VD_MEDIA_CAV 
  17816.                         MCI_VD_MEDIA_CLV 
  17817.                         MCI_VD_MEDIA_OTHER 
  17818.  
  17819.             MCI_VD_STATUS_SIDE 
  17820.                     Returns 1 or 2 to indicate which side of the disc is 
  17821.                     loaded. 
  17822.  
  17823.             MCI_VD_STATUS_DISC_SIZE 
  17824.                     Returns the size of the loaded disc in inches (8 or 12). 
  17825.  
  17826.             Video Overlay Extensions 
  17827.  
  17828.             The following additional items apply to video overlay devices and 
  17829.             can be specified for the ulItem field (of the data structure 
  17830.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag. 
  17831.  
  17832.             MCI_OVLY_STATUS_HWND 
  17833.                     Returns the handle of the playback window. 
  17834.  
  17835.             MCI_OVLY_STATUS_IMAGE_COMPRESSION 
  17836.                     Returns the compression format of the currently loaded 
  17837.                     bitmap/image. 
  17838.  
  17839.             MCI_OVLY_STATUS_BITSPERPEL 
  17840.                     Returns the number of bits per pel of the currently loaded 
  17841.                     bitmap/image.  Return values include: 
  17842.  
  17843.                         MCI_IMG_PALETTE 
  17844.                         MCI_IMG_RGB 
  17845.                         MCI_IMG_YUV 
  17846.  
  17847.             MCI_OVLY_STATUS_PELFORMAT 
  17848.                     Returns the pel format of the currently loaded 
  17849.                     bitmap/image. 
  17850.  
  17851.             MCI_OVLY_STATUS_BRIGHTNESS 
  17852.                     Returns the brightness level. 
  17853.  
  17854.             MCI_OVLY_STATUS_CONTRAST 
  17855.                     Returns the contrast level. 
  17856.  
  17857.             MCI_OVLY_STATUS_HUE 
  17858.                     Returns the hue level. 
  17859.  
  17860.             MCI_OVLY_STATUS_SATURATION 
  17861.                     Returns the saturation level. 
  17862.  
  17863.             MCI_OVLY_STATUS_SHARPNESS 
  17864.                     Returns the sharpness level. 
  17865.  
  17866.             MCI_OVLY_STATUS_TRANSPARENT_COLOR 
  17867.                     Returns a value representing the RGB value or palette 
  17868.                     value, which specifies the transparent color.  RGB values 
  17869.                     are returned as a 32-bit RGB2 data item. 
  17870.  
  17871.             MCI_OVLY_STATUS_TRANSPARENT_TYPE 
  17872.                     Returns a value representing information to assist in 
  17873.                     interpreting the MCI_OVLY_STATUS_TRANSPARENT_COLOR. 
  17874.  
  17875.                     Return values include: 
  17876.  
  17877.                         MCI_IMG_PALETTE 
  17878.                         MCI_IMG_RGB 
  17879.                         MCI_IMG_YUV 
  17880.  
  17881.             MCI_OVLY_STATUS_GREYSCALE 
  17882.                     Returns MCI_ON or MCI_OFF. 
  17883.  
  17884.             MCI_OVLY_STATUS_IMAGE_COMPRESSION 
  17885.                     Returns the compression type for saving still images. 
  17886.  
  17887.             MCI_OVLY_STATUS_IMAGE_BITSPERPEL 
  17888.                     Returns the number of bits per pel used for the image file 
  17889.                     to be saved. 
  17890.  
  17891.             MCI_OVLY_STATUS_IMAGE_PELFORMAT 
  17892.                     Returns the pel format used for saving bitmaps. 
  17893.  
  17894.             MCI_OVLY_STATUS_IMAGE_QUALITY 
  17895.                     Returns the quality of the image in the element buffer. 
  17896.  
  17897.             MCI_OVLY_STATUS_IMAGE_X_EXTENT 
  17898.                     Returns the width, in pels, of the image in the element 
  17899.                     buffer. 
  17900.  
  17901.             MCI_OVLY_STATUS_IMAGE_Y_EXTENT 
  17902.                     Returns the height, in pels, of the image in the element 
  17903.                     buffer. 
  17904.  
  17905.             MCI_OVLY_STATUS_IMAGE_FILE_FORMAT 
  17906.                     Returns the format in which an image capture will be stored 
  17907.                     when saved. 
  17908.  
  17909.             Wave Audio Extensions 
  17910.  
  17911.             The following additional status items apply to wave audio devices 
  17912.             and can be specified for the ulItem field (of the data structure 
  17913.             pointed to by pParam2) for use with the MCI_STATUS_ITEM flag: 
  17914.  
  17915.             MCI_WAVE_STATUS_FORMATTAG 
  17916.                     Returns the currently set format tag used for playing, 
  17917.                     recording, and saving. 
  17918.  
  17919.             MCI_WAVE_STATUS_CHANNELS 
  17920.                     Returns the currently set channel count used for playing, 
  17921.                     recording, and saving. 
  17922.  
  17923.             MCI_WAVE_STATUS_SAMPLESPERSEC 
  17924.                     Returns the currently set samples per second used for 
  17925.                     playing, recording, and saving. 
  17926.  
  17927.             MCI_WAVE_STATUS_AVGBYTESPERSEC 
  17928.                     Returns the currently set bytes per second used for 
  17929.                     playing, recording, and saving. Playback software can use 
  17930.                     this number to estimate required buffer sizes.  Refer to 
  17931.                     the RIFF WAVE format documentation for more information. 
  17932.  
  17933.             MCI_WAVE_STATUS_BLOCKALIGN 
  17934.                     Returns the currently set block alignment used for playing, 
  17935.                     recording, and saving. 
  17936.  
  17937.             MCI_WAVE_STATUS_BITSPERSAMPLE 
  17938.                     Returns the currently set bits per sample used for playing, 
  17939.                     recording, and saving. 
  17940.  
  17941.             MCI_WAVE_STATUS_LEVEL 
  17942.                     Returns the current record or playback level. The value is 
  17943.                     returned as an 8-bit or 16-bit value, depending on the 
  17944.                     sample size being used.  The right or Mono channel level is 
  17945.                     returned in the low-order word.  The left channel level is 
  17946.                     returned in the high-order word. 
  17947.  
  17948.  pParam2 ( PMCI_STATUS_PARMS) 
  17949.     A pointer to the MCI_STATUS_PARMS data structure. Devices with extended 
  17950.     command sets might replace this pointer with a pointer to a device-specific 
  17951.     data structure as follows: 
  17952.  
  17953.     PMCI_CDXA_STATUS_PARMS 
  17954.             A pointer to the MCI_CDXA_STATUS_PARMS data structure. 
  17955.  
  17956.  rc (ULONG) 
  17957.  
  17958.     Note:  The format of the ulReturn value in this structure is defined by the 
  17959.            high-order word of the value returned by mciSendCommand. This value 
  17960.            is used by mciSendString to determine how to convert the ulReturn 
  17961.            value to string form. For a list of the possible format values, see 
  17962.            the MMDRVOS2.H header file. If the low-order word returned is 
  17963.            MCIERR_SUCCESS, the high-order word could be other errors or a 
  17964.            value. A returned value defines the format of ulReturn as defined in 
  17965.            MMDRVOS2.H. For example, 0x5000 = MCI_TRUE_FALSE_RETURN. 
  17966.  
  17967.     Return codes indicating success or type of failure: 
  17968.  
  17969.     MCIERR_SUCCESS 
  17970.               MMPM/2 command completed successfully. 
  17971.  
  17972.     MCIERR_OUT_OF_MEMORY 
  17973.               System out of memory. 
  17974.  
  17975.     MCIERR_INVALID_DEVICE_ID 
  17976.               Invalid device ID given. 
  17977.  
  17978.     MCIERR_MISSING_PARAMETER 
  17979.               Missing parameter for this command. 
  17980.  
  17981.     MCIERR_DRIVER 
  17982.               Internal MMPM/2 driver error. 
  17983.  
  17984.     MCIERR_INVALID_FLAG 
  17985.               Invalid flag specified for this command. 
  17986.  
  17987.     MCIERR_UNSUPPORTED_FLAG 
  17988.               Flag not supported by this MMPM/2 driver for this command. 
  17989.  
  17990.     MCIERR_MISSING_FLAG 
  17991.               Flag missing for this MMPM/2 command. 
  17992.  
  17993.     MCIERR_UNSUPPORTED_FUNCTION 
  17994.               Function not supported by the media driver being used. 
  17995.  
  17996.     MCIERR_INVALID_ITEM_FLAG 
  17997.               Invalid item flag specified for this command. 
  17998.  
  17999.     MCIERR_TUNER_NO_HW 
  18000.               Device has no tuner support. 
  18001.  
  18002.     MCIERR_TUNER_MODE 
  18003.               Frequency was last set directly.  MCI_DGV_STATUS_TUNER_TV_CHANNEL 
  18004.               and MCI_DGV_STATUS_TUNER_FINETUNE cannot be used.  Use 
  18005.               MCI_DGV_STATUS_FREQUENCY. 
  18006.  
  18007.     MCIERR_SIGNAL_INVALID 
  18008.               No valid signal present. 
  18009.  
  18010.  
  18011. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS - Remarks ΓòÉΓòÉΓòÉ
  18012.  
  18013. The parameters and flags for this message vary according to the selected 
  18014. device. All devices support this message and the applicable status items for 
  18015. each device are listed with each parameter. See the MCI_SET message for the 
  18016. values which can be returned for each particular item. 
  18017.  
  18018. If the frequency was set on the MCI_SETTUNER command using the 
  18019. MCI_DGV_FREQUENCY flag then status of channel, region, and fine-tuning will 
  18020. return an MCIERR_TUNER_MODE error. 
  18021.  
  18022.  
  18023. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS - Related Messages ΓòÉΓòÉΓòÉ
  18024.  
  18025.      MCI_SET 
  18026.  
  18027.  
  18028. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS - Example Code ΓòÉΓòÉΓòÉ
  18029.  
  18030. The following code illustrates how to obtain information about the status of a 
  18031. media device. 
  18032.  
  18033.    USHORT   usDeviceID;
  18034.    ULONG    ulError;
  18035.    BOOL     disc_loaded;
  18036.                     /* Set to TRUE by this example if media is present */
  18037.    MCI_STATUS_PARMS  mstatusp;
  18038.  
  18039.    mstatusp.ulItem = MCI_STATUS_MEDIA_PRESENT;
  18040.  
  18041.    ulError = mciSendCommand(usDeviceID,      /* Device ID              */
  18042.     MCI_STATUS,                              /* MCI status message     */
  18043.     MCI_WAIT | MCI_STATUS_ITEM,
  18044.                                              /* Flags for this message */
  18045.     (PVOID) &mstatusp,                       /* Data structure         */
  18046.     0);                                      /* No user parm           */
  18047.  
  18048.    if (LOUSHORT(ulError) == MCIERR_SUCCESS)
  18049.      {
  18050.        disc_loaded = (BOOL) mstatusp.ulReturn;    /* Media present
  18051.                                                      status            */
  18052.      }
  18053.  
  18054.  
  18055. ΓòÉΓòÉΓòÉ <hidden> MCI_STATUS - Topics ΓòÉΓòÉΓòÉ
  18056.  
  18057. Select an item: 
  18058.  
  18059. Description
  18060. Returns
  18061. Remarks
  18062. Related Messages
  18063. Example Code
  18064. Glossary
  18065.  
  18066.  
  18067. ΓòÉΓòÉΓòÉ 7.48. MCI_STEP ΓòÉΓòÉΓòÉ
  18068.  
  18069.  
  18070. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  18071.  
  18072.  ulParam1 (ULONG) 
  18073.     This parameter can contain any of the following flags: 
  18074.  
  18075.     MCI_NOTIFY 
  18076.             A notification message will be posted to the window specified in 
  18077.             the hwndCallback parameter of the data structure pointed to by the 
  18078.             pParam2 parameter.  The notification will be posted when the action 
  18079.             indicated by this message is completed or when an error occurs. 
  18080.  
  18081.     MCI_WAIT 
  18082.             Control is not to be returned until the action indicated by this 
  18083.             message is completed or an error occurs. 
  18084.  
  18085.     MCI_STEP_FRAMES 
  18086.             This flag is used to set a step frames parameter.  This provides 
  18087.             step forward support. The step increment is specified in the ulStep 
  18088.             field of the MCI_STEP_PARMS data structure. 
  18089.  
  18090.     MCI_STEP_REVERSE 
  18091.             This flag is used to set a steps in reverse parameter. 
  18092.  
  18093.  
  18094. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP Parameter - pParam2 ΓòÉΓòÉΓòÉ
  18095.  
  18096.  pParam2 (PMCI_STEP_PARMS) 
  18097.     A pointer to the MCI_STEP_PARMS data structure. 
  18098.  
  18099.  
  18100. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP Return Value - rc ΓòÉΓòÉΓòÉ
  18101.  
  18102.  rc (ULONG) 
  18103.     Return codes indicating success or type of failure: 
  18104.  
  18105.     MCIERR_SUCCESS 
  18106.             If the function succeeds, 0 is returned. 
  18107.  
  18108.     MCIERR_INVALID_DEVICE_ID 
  18109.             The device ID is not valid. 
  18110.  
  18111.     MCIERR_INSTANCE_INACTIVE 
  18112.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  18113.             make device ID active. 
  18114.  
  18115.     MCIERR_MISSING_FLAG 
  18116.             A required flag is missing. 
  18117.  
  18118.     MCIERR_UNSUPPORTED_FLAG 
  18119.             Given flag is unsupported for this device. 
  18120.  
  18121.     MCIERR_INVALID_CALLBACK_HANDLE 
  18122.             Given callback handle is invalid. 
  18123.  
  18124.     MCIERR_HARDWARE 
  18125.             Device hardware error. 
  18126.  
  18127.     MCIERR_UNSUPPORTED_FUNCTION 
  18128.             Unsupported function. 
  18129.  
  18130.     MCIERR_INVALID_FLAG 
  18131.             Flag is invalid (ulParam1). 
  18132.  
  18133.     MCIERR_FLAGS_NOT_COMPATIBLE 
  18134.             Flags cannot be used together. 
  18135.  
  18136.     MCIERR_INVALID_ITEM_FLAG 
  18137.             Invalid status item flag given. 
  18138.  
  18139.     MCIERR_MISSING_ITEM 
  18140.             Missing status item flag. 
  18141.  
  18142.     MCIERR_MISSING_PARAMETER 
  18143.             Required parameter is missing. 
  18144.  
  18145.  
  18146. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP - Description ΓòÉΓòÉΓòÉ
  18147.  
  18148. This message is sent to step the player and is intended for videodisc players. 
  18149.  
  18150.  ulParam1 (ULONG) 
  18151.     This parameter can contain any of the following flags: 
  18152.  
  18153.     MCI_NOTIFY 
  18154.             A notification message will be posted to the window specified in 
  18155.             the hwndCallback parameter of the data structure pointed to by the 
  18156.             pParam2 parameter.  The notification will be posted when the action 
  18157.             indicated by this message is completed or when an error occurs. 
  18158.  
  18159.     MCI_WAIT 
  18160.             Control is not to be returned until the action indicated by this 
  18161.             message is completed or an error occurs. 
  18162.  
  18163.     MCI_STEP_FRAMES 
  18164.             This flag is used to set a step frames parameter.  This provides 
  18165.             step forward support. The step increment is specified in the ulStep 
  18166.             field of the MCI_STEP_PARMS data structure. 
  18167.  
  18168.     MCI_STEP_REVERSE 
  18169.             This flag is used to set a steps in reverse parameter. 
  18170.  
  18171.  pParam2 (PMCI_STEP_PARMS) 
  18172.     A pointer to the MCI_STEP_PARMS data structure. 
  18173.  
  18174.  rc (ULONG) 
  18175.     Return codes indicating success or type of failure: 
  18176.  
  18177.     MCIERR_SUCCESS 
  18178.             If the function succeeds, 0 is returned. 
  18179.  
  18180.     MCIERR_INVALID_DEVICE_ID 
  18181.             The device ID is not valid. 
  18182.  
  18183.     MCIERR_INSTANCE_INACTIVE 
  18184.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE to 
  18185.             make device ID active. 
  18186.  
  18187.     MCIERR_MISSING_FLAG 
  18188.             A required flag is missing. 
  18189.  
  18190.     MCIERR_UNSUPPORTED_FLAG 
  18191.             Given flag is unsupported for this device. 
  18192.  
  18193.     MCIERR_INVALID_CALLBACK_HANDLE 
  18194.             Given callback handle is invalid. 
  18195.  
  18196.     MCIERR_HARDWARE 
  18197.             Device hardware error. 
  18198.  
  18199.     MCIERR_UNSUPPORTED_FUNCTION 
  18200.             Unsupported function. 
  18201.  
  18202.     MCIERR_INVALID_FLAG 
  18203.             Flag is invalid (ulParam1). 
  18204.  
  18205.     MCIERR_FLAGS_NOT_COMPATIBLE 
  18206.             Flags cannot be used together. 
  18207.  
  18208.     MCIERR_INVALID_ITEM_FLAG 
  18209.             Invalid status item flag given. 
  18210.  
  18211.     MCIERR_MISSING_ITEM 
  18212.             Missing status item flag. 
  18213.  
  18214.     MCIERR_MISSING_PARAMETER 
  18215.             Required parameter is missing. 
  18216.  
  18217.  
  18218. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP - Remarks ΓòÉΓòÉΓòÉ
  18219.  
  18220. The step can be sent for either forward-frame or reverse-frame operation. 
  18221.  
  18222. If you are using an application-defined window and your application is running 
  18223. on a system without direct-access device driver support for motion video, do 
  18224. not issue MCI_STEP with the MCI_WAIT flag specified unless the thread issuing 
  18225. the message is separate from the thread reading the message queue. 
  18226.  
  18227.  
  18228. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP - Default Processing ΓòÉΓòÉΓòÉ
  18229.  
  18230. If no flags are specified, MCI_STEP steps one frame forward. If only 
  18231. MCI_STEP_REVERSE flag is specified, MCI_STEP steps one frame backward. 
  18232.  
  18233.  
  18234. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP - Related Messages ΓòÉΓòÉΓòÉ
  18235.  
  18236.      MCI_PLAY 
  18237.      MCI_PAUSE 
  18238.      MCI_RECORD 
  18239.      MCI_RESUME 
  18240.  
  18241.  
  18242. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP - Example Code ΓòÉΓòÉΓòÉ
  18243.  
  18244. The following code illustrates how to a step a player 10 frames. 
  18245.  
  18246.    USHORT          usDeviceID;
  18247.    MCI_STEP_PARMS   mstepp;
  18248.  
  18249.                                           /* Step the device 10 frames */
  18250.  
  18251.                        /* Assumes time format for device set to frames */
  18252.    mstepp.ulStep = (ULONG) 10;
  18253.  
  18254.    mciSendCommand( usDeviceID,            /* Device ID                 */
  18255.                    MCI_STEP,              /* MCI step message          */
  18256.                    MCI_WAIT | MCI_STEP_FRAMES,
  18257.                                           /* Flags for this message    */
  18258.                    (PVOID) &mstepp,       /* Data structure            */
  18259.                    0);                    /* No user parm              */
  18260.  
  18261.  
  18262. ΓòÉΓòÉΓòÉ <hidden> MCI_STEP - Topics ΓòÉΓòÉΓòÉ
  18263.  
  18264. Select an item: 
  18265.  
  18266. Description
  18267. Returns
  18268. Remarks
  18269. Default Processing
  18270. Related Messages
  18271. Example Code
  18272. Glossary
  18273.  
  18274.  
  18275. ΓòÉΓòÉΓòÉ 7.49. MCI_STOP ΓòÉΓòÉΓòÉ
  18276.  
  18277.  
  18278. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  18279.  
  18280.  ulParam1 (ULONG) 
  18281.     This parameter can contain any of the following flags: 
  18282.  
  18283.     MCI_NOTIFY 
  18284.             A notification message will be posted to the window specified in 
  18285.             the hwndCallback parameter of the data structure pointed to by the 
  18286.             pParam2 parameter.  The notification will be posted when the action 
  18287.             indicated by this message is completed or when an error occurs. 
  18288.  
  18289.     MCI_WAIT 
  18290.             Control is not to be returned until the action indicated by this 
  18291.             message is completed or an error occurs. 
  18292.  
  18293.  
  18294. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP Parameter - pParam2 ΓòÉΓòÉΓòÉ
  18295.  
  18296.  pParam2 (PMCI_GENERIC_PARMS) 
  18297.     A pointer to the default media control interface parameter data structure. 
  18298.  
  18299.  
  18300. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP Return Value - rc ΓòÉΓòÉΓòÉ
  18301.  
  18302.  rc (ULONG) 
  18303.     Return codes indicating success or type of failure: 
  18304.  
  18305.     MCIERR_SUCCESS 
  18306.             If the function succeeds, 0 is returned. 
  18307.  
  18308.     MCIERR_INVALID_DEVICE_ID 
  18309.             The device ID is not valid. 
  18310.  
  18311.     MCIERR_INSTANCE_INACTIVE 
  18312.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE 
  18313.             MCI_ACQUIREDEVICE to make device ID active. 
  18314.  
  18315.     MCIERR_MISSING_FLAG 
  18316.             A required flag is missing. 
  18317.  
  18318.     MCIERR_UNSUPPORTED_FLAG 
  18319.             Given flag is unsupported for this device. 
  18320.  
  18321.     MCIERR_INVALID_CALLBACK_HANDLE 
  18322.             Given callback handle is invalid. 
  18323.  
  18324.     MCIERR_HARDWARE 
  18325.             Device hardware error. 
  18326.  
  18327.     MCIERR_UNSUPPORTED_FUNCTION 
  18328.             Unsupported function. 
  18329.  
  18330.     MCIERR_INVALID_FLAG 
  18331.             Flag (ulParam1) is invalid. 
  18332.  
  18333.     MCIERR_FLAGS_NOT_COMPATIBLE 
  18334.             Flags cannot be used together. 
  18335.  
  18336.     MCIERR_INVALID_ITEM_FLAG 
  18337.             Invalid status item flag given. 
  18338.  
  18339.     MCIERR_MISSING_ITEM 
  18340.             Missing status item flag. 
  18341.  
  18342.     MCIERR_MISSING_PARAMETER 
  18343.             Required parameter is missing. 
  18344.  
  18345.  
  18346. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP - Description ΓòÉΓòÉΓòÉ
  18347.  
  18348. This message is sent to stop playback or recording. 
  18349.  
  18350. If MCI_STOP is issued, video recording is stopped regardless of whether a TO 
  18351. position is reached.  Once video recording is stopped, it cannot be restarted 
  18352. without overwriting what was previously recorded. 
  18353.  
  18354.  ulParam1 (ULONG) 
  18355.     This parameter can contain any of the following flags: 
  18356.  
  18357.     MCI_NOTIFY 
  18358.             A notification message will be posted to the window specified in 
  18359.             the hwndCallback parameter of the data structure pointed to by the 
  18360.             pParam2 parameter.  The notification will be posted when the action 
  18361.             indicated by this message is completed or when an error occurs. 
  18362.  
  18363.     MCI_WAIT 
  18364.             Control is not to be returned until the action indicated by this 
  18365.             message is completed or an error occurs. 
  18366.  
  18367.  pParam2 (PMCI_GENERIC_PARMS) 
  18368.     A pointer to the default media control interface parameter data structure. 
  18369.  
  18370.  rc (ULONG) 
  18371.     Return codes indicating success or type of failure: 
  18372.  
  18373.     MCIERR_SUCCESS 
  18374.             If the function succeeds, 0 is returned. 
  18375.  
  18376.     MCIERR_INVALID_DEVICE_ID 
  18377.             The device ID is not valid. 
  18378.  
  18379.     MCIERR_INSTANCE_INACTIVE 
  18380.             The device ID is currently inactive.  Issue MCI_ACQUIREDEVICE 
  18381.             MCI_ACQUIREDEVICE to make device ID active. 
  18382.  
  18383.     MCIERR_MISSING_FLAG 
  18384.             A required flag is missing. 
  18385.  
  18386.     MCIERR_UNSUPPORTED_FLAG 
  18387.             Given flag is unsupported for this device. 
  18388.  
  18389.     MCIERR_INVALID_CALLBACK_HANDLE 
  18390.             Given callback handle is invalid. 
  18391.  
  18392.     MCIERR_HARDWARE 
  18393.             Device hardware error. 
  18394.  
  18395.     MCIERR_UNSUPPORTED_FUNCTION 
  18396.             Unsupported function. 
  18397.  
  18398.     MCIERR_INVALID_FLAG 
  18399.             Flag (ulParam1) is invalid. 
  18400.  
  18401.     MCIERR_FLAGS_NOT_COMPATIBLE 
  18402.             Flags cannot be used together. 
  18403.  
  18404.     MCIERR_INVALID_ITEM_FLAG 
  18405.             Invalid status item flag given. 
  18406.  
  18407.     MCIERR_MISSING_ITEM 
  18408.             Missing status item flag. 
  18409.  
  18410.     MCIERR_MISSING_PARAMETER 
  18411.             Required parameter is missing. 
  18412.  
  18413.  
  18414. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP - Remarks ΓòÉΓòÉΓòÉ
  18415.  
  18416. If playback or recording is to be restarted with minimal latency, MCI_PAUSE 
  18417. should be used. 
  18418.  
  18419.  
  18420. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP - Related Messages ΓòÉΓòÉΓòÉ
  18421.  
  18422.      MCI_PLAY 
  18423.      MCI_RECORD 
  18424.  
  18425.  
  18426. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP - Example Code ΓòÉΓòÉΓòÉ
  18427.  
  18428. The following code illustrates how to stop an audio or video device during 
  18429. playback or recording, and receive notification upon completion. 
  18430.  
  18431.    USHORT            usDeviceID;
  18432.    HWND              hwndMyWindow;
  18433.    MCI_GENERIC_PARMS mciGenericParms;        /* Info data structure
  18434.                                                 for command            */
  18435.  
  18436.                     /* Assign hwndCallback the handle to the PM Window */
  18437.    mciGenericParms.hwndCallback = hwndMyWindow;
  18438.  
  18439.                                              /* Stop the device        */
  18440.  
  18441.    mciSendCommand( usDeviceID,               /* Device ID              */
  18442.     MCI_STOP,                                /* MCI stop message       */
  18443.     MCI_NOTIFY,                              /* Flag for this message  */
  18444.     (PVOID) &mciGenericParms,                /* Data structure         */
  18445.     0);                                      /* No user parm           */
  18446.  
  18447.  
  18448. ΓòÉΓòÉΓòÉ <hidden> MCI_STOP - Topics ΓòÉΓòÉΓòÉ
  18449.  
  18450. Select an item: 
  18451.  
  18452. Description
  18453. Returns
  18454. Remarks
  18455. Related Messages
  18456. Example Code
  18457. Glossary
  18458.  
  18459.  
  18460. ΓòÉΓòÉΓòÉ 7.50. MCI_SYSINFO ΓòÉΓòÉΓòÉ
  18461.  
  18462.  
  18463. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  18464.  
  18465.  ulParam1 (ULONG) 
  18466.     This parameter can contain any of the following flags. If the size of the 
  18467.     buffer passed in is too small to hold all the data returned, then the 
  18468.     ulRetSize field of the MCI_SYSINFO_PARMS data structure will contain the 
  18469.     required buffer size, MCIERR_INVALID_BUFFER will be returned, and the 
  18470.     buffer will contain only as much of the SYSINFO data as its size permits. 
  18471.     Only one MCI_SYSINFO_xxxxx flag can be used per MCI_SYSINFO message. The 
  18472.     MCI_SYSINFO_NAME and MCI_SYSINFO_QUANTITY flags are mutually exclusive. 
  18473.  
  18474.     MCI_WAIT 
  18475.             Control is not to be returned until the action indicated by this 
  18476.             message is completed or an error occurs. 
  18477.  
  18478.     MCI_SYSINFO_INSTALLNAME 
  18479.             This flag returns the name used to install the device. 
  18480.  
  18481.     MCI_SYSINFO_QUANTITY 
  18482.             This flag sets the media to return the number of devices of the 
  18483.             given type. If the MCI_SYSINFO_OPEN flag is set, the number of open 
  18484.             devices is returned. 
  18485.  
  18486.     MCI_SYSINFO_NAME 
  18487.             This flag is used to select a number or device ordinal parameter. 
  18488.             The media returns the name(s) of a device that satisfies the query. 
  18489.             If more than one name is returned then the names are separated by a 
  18490.             single blank and the string is null terminated. 
  18491.  
  18492.     MCI_SYSINFO_OPEN 
  18493.             This flag returns the number or name of open devices. 
  18494.  
  18495.     MCI_SYSINFO_ITEM 
  18496.             This flag indicates that the ulItem field contains a constant that 
  18497.             indicates the desired MCI_SYSINFO action as indicated by one of the 
  18498.             following values: 
  18499.  
  18500.             MCI_SYSINFO_INSTALL_DRIVER 
  18501.                     This message creates or updates a logical device entry in 
  18502.                     the INI file. The pSysInfoParm field points to the 
  18503.                     MCI_SYSINFO_LOGDEVICE data structure.  The driver becomes 
  18504.                     active the next time the system is started. 
  18505.  
  18506.             MCI_SYSINFO_QUERY_DRIVER 
  18507.                     This message queries the information for the driver 
  18508.                     indicated in the szInstallName field of the 
  18509.                     MCI_SYSINFO_LOGDEVICE data structure. The pSysInfoParm 
  18510.                     field points to the MCI_SYSINFO_LOGDEVICE data structure. 
  18511.  
  18512.             MCI_SYSINFO_INI_LOCK 
  18513.                     Writes out and then locks the MMPM2.INI file from updates. 
  18514.  
  18515.             MCI_SYSINFO_DELETE_DRIVER 
  18516.                     This message removes the specified driver from the INI 
  18517.                     file. The pSysInfoParm field points to the installation 
  18518.                     name. 
  18519.  
  18520.             MCI_SYSINFO_SET_PARAMS 
  18521.                     This message sets the device-specific parameters for a 
  18522.                     particular device.  Device-specific parameters should be 
  18523.                     printable ASCII characters only so that response files can 
  18524.                     be supported. The pSysInfoParm field points to the 
  18525.                     MCI_SYSINFO_DEVPARAMS data structure. 
  18526.  
  18527.             MCI_SYSINFO_QUERY_PARAMS 
  18528.                     This message retrieves the device-specific parameters for a 
  18529.                     particular device. The pSysInfoParm field points to the 
  18530.                     MCI_SYSINFO_DEVPARAMS data structure. 
  18531.  
  18532.             MCI_SYSINFO_SET_CONNECTORS 
  18533.                     This message sets the logical connector information for a 
  18534.                     particular device.  The connector array defined by 
  18535.                     ConnectorList (in the MCI_SYSINFO_CONPARAMS data structure) 
  18536.                     is a list of the connectors in sequential order.  For 
  18537.                     example, ConnectorList[0] is connector index 1.  The 
  18538.                     pSysInfoParm field points to the MCI_SYSINFO_CONPARAMS data 
  18539.                     structure. 
  18540.  
  18541.             MCI_SYSINFO_QUERY_CONNECTORS 
  18542.                     This message retrieves the device connector information for 
  18543.                     a particular device.  The pSysInfoParm field points to the 
  18544.                     MCI_SYSINFO_CONPARAMS data structure. 
  18545.  
  18546.             MCI_SYSINFO_SET_EXTENSIONS 
  18547.                     This message sets the file extension associated with a 
  18548.                     particular device.  The pSysInfoParm field points to the 
  18549.                     MCI_SYSINFO_EXTENSION data structure. Extensions are unique 
  18550.                     across installation names.  That is, no two installation 
  18551.                     names can have the same extension. 
  18552.  
  18553.             MCI_SYSINFO_QUERY_EXTENSIONS 
  18554.                     This message queries the file extensions associated with a 
  18555.                     particular device.  The pSysInfoParm field points to the 
  18556.                     MCI_SYSINFO_EXTENSION data structure. 
  18557.  
  18558.             MCI_SYSINFO_SET_TYPES 
  18559.                     This message sets the extended type attribute associated 
  18560.                     with a particular device. The pSysInfoParm field points to 
  18561.                     the MCI_SYSINFO_TYPES data structure. 
  18562.  
  18563.             MCI_SYSINFO_QUERY_TYPES 
  18564.                     This message queries query the extended type attributes 
  18565.                     associated with a particular device. The pSysInfoParm field 
  18566.                     points to the MCI_SYSINFO_TYPES data structure. 
  18567.  
  18568.             MCI_SYSINFO_SET_ALIAS 
  18569.                     This message associates an alias to a particular device. 
  18570.                     The pSysInfoParm field points to the MCI_SYSINFO_ALIAS data 
  18571.                     structure. 
  18572.  
  18573.             MCI_SYSINFO_QUERY_NAMES 
  18574.                     This message queries the names associated with a particular 
  18575.                     device. This message will accept any of the three types of 
  18576.                     names or device type and device ordinal and fill in the 
  18577.                     remaining structure if possible. If the device type is 
  18578.                     given and 0 for the device ordinal then the first device of 
  18579.                     that type is returned. Only one non-null name or 0 in 
  18580.                     device type field on input is allowed. The pSysInfoParm 
  18581.                     field points to the MCI_SYSINFO_QUERY_NAME data structure. 
  18582.  
  18583.             MCI_SYSINFO_SET_DEFAULT 
  18584.                     This message sets a device as the default for its device 
  18585.                     type. If another device is already the default for this 
  18586.                     device type, then it will be superseded by the new device. 
  18587.                     The pSysInfoParm field points to the 
  18588.                     MCI_SYSINFO_DEFAULTDEVICE data structure. 
  18589.  
  18590.             MCI_SYSINFO_QUERY_DEFAULT 
  18591.                     This message queries the default device for a given device 
  18592.                     type. If no explicit default exists, then the first device 
  18593.                     of the indicated type is implicitly the default. The 
  18594.                     pSysInfoParm field points to the MCI_SYSINFO_DEFAULTDEVICE 
  18595.                     data structure. 
  18596.  
  18597.  
  18598. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO Parameter - pParam2 ΓòÉΓòÉΓòÉ
  18599.  
  18600.  pParam2 (PMCI_SYSINFO_PARMS) 
  18601.     A pointer to the MCI_SYSINFO_PARMS structure. 
  18602.  
  18603.  
  18604. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO Return Value - rc ΓòÉΓòÉΓòÉ
  18605.  
  18606.  rc (ULONG) 
  18607.     Return codes indicating success or type of failure: 
  18608.  
  18609.     MCIERR_SUCCESS 
  18610.             If the function succeeds, 0 is returned. 
  18611.  
  18612.     MCIERR_MISSING_FLAG 
  18613.             A required flag is missing. 
  18614.  
  18615.     MCIERR_UNSUPPORTED_FLAG 
  18616.             Given flag is unsupported for this device. 
  18617.  
  18618.     MCIERR_INVALID_CALLBACK_HANDLE 
  18619.             Given callback handle is invalid. 
  18620.  
  18621.     MCIERR_INVALID_FLAG 
  18622.             Flag (ulParam1) is invalid. 
  18623.  
  18624.     MCIERR_FLAGS_NOT_COMPATIBLE 
  18625.             Flags cannot be used together. 
  18626.  
  18627.     MCIERR_MISSING_PARAMETER 
  18628.             Required parameter is missing. 
  18629.  
  18630.     MCIERR_INVALID_BUFFER 
  18631.             Invalid return buffer given. 
  18632.  
  18633.     MCIERR_DUPLICATE_ALIAS 
  18634.             Alias already exists. 
  18635.  
  18636.     MCIERR_DUPLICATE_EXTENSION 
  18637.             Extension already exists. 
  18638.  
  18639.     MCIERR_NODEFAULT_DEVICE 
  18640.             No device of this type exists. 
  18641.  
  18642.     MCIERR_DEVICE_NOT_FOUND 
  18643.             Device not found for this query. 
  18644.  
  18645.     MCIERR_DUPLICATE_EA 
  18646.             The given EA already exists for another device. 
  18647.  
  18648.  
  18649. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO - Description ΓòÉΓòÉΓòÉ
  18650.  
  18651. This message returns information about media control devices and device 
  18652. instances. 
  18653.  
  18654.  ulParam1 (ULONG) 
  18655.     This parameter can contain any of the following flags. If the size of the 
  18656.     buffer passed in is too small to hold all the data returned, then the 
  18657.     ulRetSize field of the MCI_SYSINFO_PARMS data structure will contain the 
  18658.     required buffer size, MCIERR_INVALID_BUFFER will be returned, and the 
  18659.     buffer will contain only as much of the SYSINFO data as its size permits. 
  18660.     Only one MCI_SYSINFO_xxxxx flag can be used per MCI_SYSINFO message. The 
  18661.     MCI_SYSINFO_NAME and MCI_SYSINFO_QUANTITY flags are mutually exclusive. 
  18662.  
  18663.     MCI_WAIT 
  18664.             Control is not to be returned until the action indicated by this 
  18665.             message is completed or an error occurs. 
  18666.  
  18667.     MCI_SYSINFO_INSTALLNAME 
  18668.             This flag returns the name used to install the device. 
  18669.  
  18670.     MCI_SYSINFO_QUANTITY 
  18671.             This flag sets the media to return the number of devices of the 
  18672.             given type. If the MCI_SYSINFO_OPEN flag is set, the number of open 
  18673.             devices is returned. 
  18674.  
  18675.     MCI_SYSINFO_NAME 
  18676.             This flag is used to select a number or device ordinal parameter. 
  18677.             The media returns the name(s) of a device that satisfies the query. 
  18678.             If more than one name is returned then the names are separated by a 
  18679.             single blank and the string is null terminated. 
  18680.  
  18681.     MCI_SYSINFO_OPEN 
  18682.             This flag returns the number or name of open devices. 
  18683.  
  18684.     MCI_SYSINFO_ITEM 
  18685.             This flag indicates that the ulItem field contains a constant that 
  18686.             indicates the desired MCI_SYSINFO action as indicated by one of the 
  18687.             following values: 
  18688.  
  18689.             MCI_SYSINFO_INSTALL_DRIVER 
  18690.                     This message creates or updates a logical device entry in 
  18691.                     the INI file. The pSysInfoParm field points to the 
  18692.                     MCI_SYSINFO_LOGDEVICE data structure.  The driver becomes 
  18693.                     active the next time the system is started. 
  18694.  
  18695.             MCI_SYSINFO_QUERY_DRIVER 
  18696.                     This message queries the information for the driver 
  18697.                     indicated in the szInstallName field of the 
  18698.                     MCI_SYSINFO_LOGDEVICE data structure. The pSysInfoParm 
  18699.                     field points to the MCI_SYSINFO_LOGDEVICE data structure. 
  18700.  
  18701.             MCI_SYSINFO_INI_LOCK 
  18702.                     Writes out and then locks the MMPM2.INI file from updates. 
  18703.  
  18704.             MCI_SYSINFO_DELETE_DRIVER 
  18705.                     This message removes the specified driver from the INI 
  18706.                     file. The pSysInfoParm field points to the installation 
  18707.                     name. 
  18708.  
  18709.             MCI_SYSINFO_SET_PARAMS 
  18710.                     This message sets the device-specific parameters for a 
  18711.                     particular device.  Device-specific parameters should be 
  18712.                     printable ASCII characters only so that response files can 
  18713.                     be supported. The pSysInfoParm field points to the 
  18714.                     MCI_SYSINFO_DEVPARAMS data structure. 
  18715.  
  18716.             MCI_SYSINFO_QUERY_PARAMS 
  18717.                     This message retrieves the device-specific parameters for a 
  18718.                     particular device. The pSysInfoParm field points to the 
  18719.                     MCI_SYSINFO_DEVPARAMS data structure. 
  18720.  
  18721.             MCI_SYSINFO_SET_CONNECTORS 
  18722.                     This message sets the logical connector information for a 
  18723.                     particular device.  The connector array defined by 
  18724.                     ConnectorList (in the MCI_SYSINFO_CONPARAMS data structure) 
  18725.                     is a list of the connectors in sequential order.  For 
  18726.                     example, ConnectorList[0] is connector index 1.  The 
  18727.                     pSysInfoParm field points to the MCI_SYSINFO_CONPARAMS data 
  18728.                     structure. 
  18729.  
  18730.             MCI_SYSINFO_QUERY_CONNECTORS 
  18731.                     This message retrieves the device connector information for 
  18732.                     a particular device.  The pSysInfoParm field points to the 
  18733.                     MCI_SYSINFO_CONPARAMS data structure. 
  18734.  
  18735.             MCI_SYSINFO_SET_EXTENSIONS 
  18736.                     This message sets the file extension associated with a 
  18737.                     particular device.  The pSysInfoParm field points to the 
  18738.                     MCI_SYSINFO_EXTENSION data structure. Extensions are unique 
  18739.                     across installation names.  That is, no two installation 
  18740.                     names can have the same extension. 
  18741.  
  18742.             MCI_SYSINFO_QUERY_EXTENSIONS 
  18743.                     This message queries the file extensions associated with a 
  18744.                     particular device.  The pSysInfoParm field points to the 
  18745.                     MCI_SYSINFO_EXTENSION data structure. 
  18746.  
  18747.             MCI_SYSINFO_SET_TYPES 
  18748.                     This message sets the extended type attribute associated 
  18749.                     with a particular device. The pSysInfoParm field points to 
  18750.                     the MCI_SYSINFO_TYPES data structure. 
  18751.  
  18752.             MCI_SYSINFO_QUERY_TYPES 
  18753.                     This message queries query the extended type attributes 
  18754.                     associated with a particular device. The pSysInfoParm field 
  18755.                     points to the MCI_SYSINFO_TYPES data structure. 
  18756.  
  18757.             MCI_SYSINFO_SET_ALIAS 
  18758.                     This message associates an alias to a particular device. 
  18759.                     The pSysInfoParm field points to the MCI_SYSINFO_ALIAS data 
  18760.                     structure. 
  18761.  
  18762.             MCI_SYSINFO_QUERY_NAMES 
  18763.                     This message queries the names associated with a particular 
  18764.                     device. This message will accept any of the three types of 
  18765.                     names or device type and device ordinal and fill in the 
  18766.                     remaining structure if possible. If the device type is 
  18767.                     given and 0 for the device ordinal then the first device of 
  18768.                     that type is returned. Only one non-null name or 0 in 
  18769.                     device type field on input is allowed. The pSysInfoParm 
  18770.                     field points to the MCI_SYSINFO_QUERY_NAME data structure. 
  18771.  
  18772.             MCI_SYSINFO_SET_DEFAULT 
  18773.                     This message sets a device as the default for its device 
  18774.                     type. If another device is already the default for this 
  18775.                     device type, then it will be superseded by the new device. 
  18776.                     The pSysInfoParm field points to the 
  18777.                     MCI_SYSINFO_DEFAULTDEVICE data structure. 
  18778.  
  18779.             MCI_SYSINFO_QUERY_DEFAULT 
  18780.                     This message queries the default device for a given device 
  18781.                     type. If no explicit default exists, then the first device 
  18782.                     of the indicated type is implicitly the default. The 
  18783.                     pSysInfoParm field points to the MCI_SYSINFO_DEFAULTDEVICE 
  18784.                     data structure. 
  18785.  
  18786.  pParam2 (PMCI_SYSINFO_PARMS) 
  18787.     A pointer to the MCI_SYSINFO_PARMS structure. 
  18788.  
  18789.  rc (ULONG) 
  18790.     Return codes indicating success or type of failure: 
  18791.  
  18792.     MCIERR_SUCCESS 
  18793.             If the function succeeds, 0 is returned. 
  18794.  
  18795.     MCIERR_MISSING_FLAG 
  18796.             A required flag is missing. 
  18797.  
  18798.     MCIERR_UNSUPPORTED_FLAG 
  18799.             Given flag is unsupported for this device. 
  18800.  
  18801.     MCIERR_INVALID_CALLBACK_HANDLE 
  18802.             Given callback handle is invalid. 
  18803.  
  18804.     MCIERR_INVALID_FLAG 
  18805.             Flag (ulParam1) is invalid. 
  18806.  
  18807.     MCIERR_FLAGS_NOT_COMPATIBLE 
  18808.             Flags cannot be used together. 
  18809.  
  18810.     MCIERR_MISSING_PARAMETER 
  18811.             Required parameter is missing. 
  18812.  
  18813.     MCIERR_INVALID_BUFFER 
  18814.             Invalid return buffer given. 
  18815.  
  18816.     MCIERR_DUPLICATE_ALIAS 
  18817.             Alias already exists. 
  18818.  
  18819.     MCIERR_DUPLICATE_EXTENSION 
  18820.             Extension already exists. 
  18821.  
  18822.     MCIERR_NODEFAULT_DEVICE 
  18823.             No device of this type exists. 
  18824.  
  18825.     MCIERR_DEVICE_NOT_FOUND 
  18826.             Device not found for this query. 
  18827.  
  18828.     MCIERR_DUPLICATE_EA 
  18829.             The given EA already exists for another device. 
  18830.  
  18831.  
  18832. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO - Remarks ΓòÉΓòÉΓòÉ
  18833.  
  18834. The usDeviceType field of the MCI_SYSINFO_PARMS data structure is used to 
  18835. indicate the device type of the query.  Specifying MCI_ALL_DEVICE_ID as the 
  18836. usDeviceType parameter, the media control interface returns information on all 
  18837. devices open by the current process. If MCI_ALL_DEVICE_ID and MCI_SYSINFO_NAME 
  18838. are specified together then the ulNumber field of the MCI_SYSINFO_PARMS data 
  18839. structure is ignored and names for all devices are returned.  The names will be 
  18840. returned separated by a single blank and null terminated. 
  18841.  
  18842. The MCI_SYSINFO ulItem actions are intended to be used by applications that 
  18843. need to update the MMPM2.INI file, such as installation and setup. The 
  18844. MCI_SYSINFO ulItem actions MCI_SYSINFO_INSTALL_DRIVER and 
  18845. MCI_SYSINFO_DELETE_DRIVER do not take effect until the next time the system is 
  18846. started. All other MCI_SYSINFO ulItem actions take effect during the current 
  18847. session. 
  18848.  
  18849.  
  18850. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO - Default Processing ΓòÉΓòÉΓòÉ
  18851.  
  18852. If MCI_SYSINFO_QUERY_DEFAULT is specified and no explicit default device type 
  18853. exists, then the first device of the indicated type is implicitly the default. 
  18854.  
  18855.  
  18856. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO - Example Code ΓòÉΓòÉΓòÉ
  18857.  
  18858. The following code illustrates how to determine the number of waveform devices 
  18859. installed. 
  18860.  
  18861.    #define  RETBUFSIZE 128
  18862.  
  18863.    MCI_SYSINFO_PARMS  SysInfo;
  18864.    CHAR  SysInfoRet[RETBUFSIZE];
  18865.                                        /*  Set unused fields to zero.  */
  18866.    memset(&SysInfo, 0x00, sizeof(MCI_SYSINFO_PARMS));
  18867.    SysInfo.usDeviceType  = MCI_DEVTYPE_WAVEFORM_AUDIO;
  18868.                                        /* Device type                  */
  18869.    SysInfo.pszReturn = (PSZ) &SysInfoRet;
  18870.                                        /* Pointer to return buffer     */
  18871.    SysInfo.ulRetSize = RETBUFSIZE;
  18872.  
  18873.            /* Determine the number of waveform audio devices installed */
  18874.  
  18875.    mciSendCommand (0,                  /* Don't know device ID yet     */
  18876.     MCI_SYSINFO,                       /* MCI sysinfo message          */
  18877.     MCI_SYSINFO_QUANTITY | MCI_WAIT,
  18878.                                        /* Flags for this message       */
  18879.     (PVOID)&SysInfo,                   /* Data structure               */
  18880.     0);                                /* No user parm                 */
  18881.  
  18882.            /* SysInfoRet now contains number of wave audio devices.    */
  18883.  
  18884.  
  18885. ΓòÉΓòÉΓòÉ <hidden> MCI_SYSINFO - Topics ΓòÉΓòÉΓòÉ
  18886.  
  18887. Select an item: 
  18888.  
  18889. Description
  18890. Returns
  18891. Remarks
  18892. Default Processing
  18893. Example Code
  18894. Glossary
  18895.  
  18896.  
  18897. ΓòÉΓòÉΓòÉ 7.51. MCI_UNDO ΓòÉΓòÉΓòÉ
  18898.  
  18899.  
  18900. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  18901.  
  18902.  ulParam1 (ULONG) 
  18903.     This parameter can contain any of the following flags: 
  18904.  
  18905.     MCI_NOTIFY 
  18906.             A notification message will be posted to the window specified in 
  18907.             the hwndCallback parameter of the data structure pointed to by the 
  18908.             pParam2 parameter.  The notification will be posted when the action 
  18909.             indicated by this message is completed or when an error occurs. 
  18910.  
  18911.     MCI_WAIT 
  18912.             Control is not to be returned until the action indicated by this 
  18913.             message is completed or an error occurs. 
  18914.  
  18915.  
  18916. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO Parameter - pParam2 ΓòÉΓòÉΓòÉ
  18917.  
  18918.  pParam2 (PMCI_GENERIC_PARMS) 
  18919.     A pointer to the default media control interface parameter data structure. 
  18920.  
  18921.  
  18922. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO Return Value - rc ΓòÉΓòÉΓòÉ
  18923.  
  18924.  rc (ULONG) 
  18925.     Return codes indicating success or type of failure: 
  18926.  
  18927.     MCIERR_SUCCESS 
  18928.             The UNDO was successful. 
  18929.  
  18930.     MCIERR_INVALID_DEVICE_ID 
  18931.             The device ID is not valid. 
  18932.  
  18933.     MCIERR_INVALID_FLAG 
  18934.             Flag (ulParam1) is invalid. 
  18935.  
  18936.     MCIERR_INSTANCE_INACTIVE 
  18937.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  18938.             the device context active. 
  18939.  
  18940.     MCIERR_INVALID_CALLBACK_HANDLE 
  18941.             Given callback handle is invalid. 
  18942.  
  18943.     MCIERR_CANNOT_UNDO 
  18944.             Undo is not possible in the current state. 
  18945.  
  18946.  
  18947. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO - Description ΓòÉΓòÉΓòÉ
  18948.  
  18949. This message undoes the operation most recently performed by cut, paste, or 
  18950. delete. 
  18951.  
  18952.  ulParam1 (ULONG) 
  18953.     This parameter can contain any of the following flags: 
  18954.  
  18955.     MCI_NOTIFY 
  18956.             A notification message will be posted to the window specified in 
  18957.             the hwndCallback parameter of the data structure pointed to by the 
  18958.             pParam2 parameter.  The notification will be posted when the action 
  18959.             indicated by this message is completed or when an error occurs. 
  18960.  
  18961.     MCI_WAIT 
  18962.             Control is not to be returned until the action indicated by this 
  18963.             message is completed or an error occurs. 
  18964.  
  18965.  pParam2 (PMCI_GENERIC_PARMS) 
  18966.     A pointer to the default media control interface parameter data structure. 
  18967.  
  18968.  rc (ULONG) 
  18969.     Return codes indicating success or type of failure: 
  18970.  
  18971.     MCIERR_SUCCESS 
  18972.             The UNDO was successful. 
  18973.  
  18974.     MCIERR_INVALID_DEVICE_ID 
  18975.             The device ID is not valid. 
  18976.  
  18977.     MCIERR_INVALID_FLAG 
  18978.             Flag (ulParam1) is invalid. 
  18979.  
  18980.     MCIERR_INSTANCE_INACTIVE 
  18981.             The device is currently inactive.  Issue MCI_ACQUIREDEVICE to make 
  18982.             the device context active. 
  18983.  
  18984.     MCIERR_INVALID_CALLBACK_HANDLE 
  18985.             Given callback handle is invalid. 
  18986.  
  18987.     MCIERR_CANNOT_UNDO 
  18988.             Undo is not possible in the current state. 
  18989.  
  18990.  
  18991. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO - Remarks ΓòÉΓòÉΓòÉ
  18992.  
  18993. After an undo operation, the media position is at the beginning of the media. 
  18994.  
  18995. Undo is unlimited.  However, after a save, any previous editing actions (such 
  18996. as cut, delete, paste) are cleared and cannot be undone. If there are no 
  18997. possible actions to be undone (the file is in the state where the last change 
  18998. was made) then MCIERR_CANNOT_UNDO is returned. 
  18999.  
  19000. If undo interrupts an in-progress operation, such as play, the command is 
  19001. aborted and an MM_MCINOTIFY message is sent to the application. 
  19002.  
  19003. Not all devices support this command.  Use the MCI_GETDEVCAPS message to 
  19004. determine whether the device supports MCI_UNDO. 
  19005.  
  19006.  
  19007. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO - Related Messages ΓòÉΓòÉΓòÉ
  19008.  
  19009.      MCI_COPY 
  19010.      MCI_CUT 
  19011.      MCI_PASTE 
  19012.      MCI_DELETE 
  19013.      MCI_REDO 
  19014.  
  19015.  
  19016. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO - Example Code ΓòÉΓòÉΓòÉ
  19017.  
  19018. The following code illustrates undoing the last operation. 
  19019.  
  19020.  
  19021.     USHORT                usDeviceID;
  19022.     MCI_EDIT_PARMS        mep;
  19023.  
  19024.     mep.hwndCallback = hwndMyWindow;
  19025.  
  19026.     mciSendCommand( usDeviceID,
  19027.                     MCI_UNDO,
  19028.                     MCI_NOTIFY,
  19029.                     &mep,
  19030.                     0 );
  19031.  
  19032.  
  19033. ΓòÉΓòÉΓòÉ <hidden> MCI_UNDO - Topics ΓòÉΓòÉΓòÉ
  19034.  
  19035. Select an item: 
  19036.  
  19037. Description
  19038. Returns
  19039. Remarks
  19040. Related Messages
  19041. Example Code
  19042. Glossary
  19043.  
  19044.  
  19045. ΓòÉΓòÉΓòÉ 7.52. MCI_UNFREEZE ΓòÉΓòÉΓòÉ
  19046.  
  19047.  
  19048. ΓòÉΓòÉΓòÉ <hidden> MCI_UNFREEZE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  19049.  
  19050.  ulParam1 (ULONG) 
  19051.     This parameter can contain any of the following flags: 
  19052.  
  19053.     MCI_NOTIFY 
  19054.             A notification message will be posted to the window specified in 
  19055.             the hwndCallback parameter of the data structure pointed to by the 
  19056.             pParam2 parameter.  The notification will be posted when the action 
  19057.             indicated by this message is completed or when an error occurs. 
  19058.  
  19059.     MCI_WAIT 
  19060.             Control is not to be returned until the action indicated by this 
  19061.             message is completed or an error occurs. 
  19062.  
  19063.     Video Overlay Extensions 
  19064.  
  19065.     MCI_OVLY_FREEZE_RECT 
  19066.             The rect field of the data structure identified by pParam2 contains 
  19067.             a valid rectangle.  If the MCI_OVLY_FREEZE_RECT parameter is not 
  19068.             specified, the entire video destination rectangle is unfrozen. 
  19069.  
  19070.     MCI_OVLY_FREEZE_RECT_OUTSIDE 
  19071.             Indicates the area outside the specified rectangle is to be 
  19072.             unfrozen. 
  19073.  
  19074.  
  19075. ΓòÉΓòÉΓòÉ <hidden> MCI_UNFREEZE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  19076.  
  19077.  pParam2 (PMCI_OVLY_RECT_PARMS) 
  19078.     A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  19079.  
  19080.  
  19081. ΓòÉΓòÉΓòÉ <hidden> MCI_UNFREEZE Return Value - rc ΓòÉΓòÉΓòÉ
  19082.  
  19083.  rc (ULONG) 
  19084.     Return codes indicating success or type of failure: 
  19085.  
  19086.     MCIERR_SUCCESS 
  19087.             MMPM/2 command completed successfully. 
  19088.  
  19089.     MCIERR_OUT_OF_MEMORY 
  19090.             System out of memory. 
  19091.  
  19092.     MCIERR_INVALID_DEVICE_ID 
  19093.             Invalid device ID given. 
  19094.  
  19095.     MCIERR_MISSING_PARAMETER 
  19096.             Missing parameter for this command. 
  19097.  
  19098.     MCIERR_DRIVER 
  19099.             Internal MMPM/2 driver error. 
  19100.  
  19101.     MCIERR_INVALID_FLAG 
  19102.             Invalid flag specified for this command. 
  19103.  
  19104.     MCIERR_INSTANCE_INACTIVE 
  19105.             Instance inactive. 
  19106.  
  19107.     MCIERR_OVLY_INVALID_RECT 
  19108.             An invalid rectangle parameter was specified. 
  19109.  
  19110.     MCIERR_OVLY_NOT_AVAILABLE 
  19111.             The requested action is not available.  (For example, video has 
  19112.             been set off.) 
  19113.  
  19114.  
  19115. ΓòÉΓòÉΓòÉ <hidden> MCI_UNFREEZE - Description ΓòÉΓòÉΓòÉ
  19116.  
  19117. This message restores motion to an area of the display frozen with MCI_FREEZE 
  19118. or MCI_RESTORE. 
  19119.  
  19120.  ulParam1 (ULONG) 
  19121.     This parameter can contain any of the following flags: 
  19122.  
  19123.     MCI_NOTIFY 
  19124.             A notification message will be posted to the window specified in 
  19125.             the hwndCallback parameter of the data structure pointed to by the 
  19126.             pParam2 parameter.  The notification will be posted when the action 
  19127.             indicated by this message is completed or when an error occurs. 
  19128.  
  19129.     MCI_WAIT 
  19130.             Control is not to be returned until the action indicated by this 
  19131.             message is completed or an error occurs. 
  19132.  
  19133.     Video Overlay Extensions 
  19134.  
  19135.     MCI_OVLY_FREEZE_RECT 
  19136.             The rect field of the data structure identified by pParam2 contains 
  19137.             a valid rectangle.  If the MCI_OVLY_FREEZE_RECT parameter is not 
  19138.             specified, the entire video destination rectangle is unfrozen. 
  19139.  
  19140.     MCI_OVLY_FREEZE_RECT_OUTSIDE 
  19141.             Indicates the area outside the specified rectangle is to be 
  19142.             unfrozen. 
  19143.  
  19144.  pParam2 (PMCI_OVLY_RECT_PARMS) 
  19145.     A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  19146.  
  19147.  rc (ULONG) 
  19148.     Return codes indicating success or type of failure: 
  19149.  
  19150.     MCIERR_SUCCESS 
  19151.             MMPM/2 command completed successfully. 
  19152.  
  19153.     MCIERR_OUT_OF_MEMORY 
  19154.             System out of memory. 
  19155.  
  19156.     MCIERR_INVALID_DEVICE_ID 
  19157.             Invalid device ID given. 
  19158.  
  19159.     MCIERR_MISSING_PARAMETER 
  19160.             Missing parameter for this command. 
  19161.  
  19162.     MCIERR_DRIVER 
  19163.             Internal MMPM/2 driver error. 
  19164.  
  19165.     MCIERR_INVALID_FLAG 
  19166.             Invalid flag specified for this command. 
  19167.  
  19168.     MCIERR_INSTANCE_INACTIVE 
  19169.             Instance inactive. 
  19170.  
  19171.     MCIERR_OVLY_INVALID_RECT 
  19172.             An invalid rectangle parameter was specified. 
  19173.  
  19174.     MCIERR_OVLY_NOT_AVAILABLE 
  19175.             The requested action is not available.  (For example, video has 
  19176.             been set off.) 
  19177.  
  19178.  
  19179. ΓòÉΓòÉΓòÉ <hidden> MCI_UNFREEZE - Remarks ΓòÉΓòÉΓòÉ
  19180.  
  19181. Areas outside the current video destination region will be unaffected. 
  19182. Multiple MCI_FREEZE and MCI_UNFREEZE messages can be issued sequentially to 
  19183. build up a complex region of frozen and unfrozen video. 
  19184.  
  19185.  
  19186. ΓòÉΓòÉΓòÉ <hidden> MCI_UNFREEZE - Example Code ΓòÉΓòÉΓòÉ
  19187.  
  19188. The following code illustrates how to restore motion to an area of the display 
  19189. frozen with MCI_FREEZE. 
  19190.  
  19191.     MCI_VID_RECT_PARMS mciUnFreezeParms;
  19192.     USHORT  usUserParm = 0;
  19193.     ULONG   ulReturn;
  19194.  
  19195.     /* An example of unfreezing a sub-rectangle */
  19196.     memset (&mciUnFreezeParms, 0x00, sizeof (MCI_VID_RECT_PARMS));
  19197.     mciUnFreezeParms.hwndCallback = hwndNotify;
  19198.     mciUnFreezeParms.rc.xLeft   = lX1;
  19199.     mciUnFreezeParms.rc.yBottom = lY1;
  19200.     mciUnFreezeParms.rc.xRight  = lX2;
  19201.     mciUnFreezeParms.rc.yTop    = lY2;
  19202.  
  19203.  
  19204.     ulReturn = mciSendCommand(usDeviceID, MCI_UNFREEZE,
  19205.                    MCI_WAIT | MCI_OVLY_FREEZE_RECT,
  19206.                    (PVOID)&mciUnFreezeParms,
  19207.                   usUserParm);
  19208.  
  19209.  
  19210. ΓòÉΓòÉΓòÉ <hidden> MCI_UNFREEZE - Topics ΓòÉΓòÉΓòÉ
  19211.  
  19212. Select an item: 
  19213.  
  19214. Description
  19215. Returns
  19216. Remarks
  19217. Example Code
  19218. Glossary
  19219.  
  19220.  
  19221. ΓòÉΓòÉΓòÉ 7.53. MCI_WHERE ΓòÉΓòÉΓòÉ
  19222.  
  19223.  
  19224. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  19225.  
  19226.  ulParam1 (ULONG) 
  19227.     This parameter can contain any of the following flags: 
  19228.  
  19229.     MCI_NOTIFY 
  19230.             A notification message will be posted to the window specified in 
  19231.             the hwndCallback parameter of the data structure pointed to by the 
  19232.             pParam2 parameter.  The notification will be posted when the action 
  19233.             indicated by this message is completed or when an error occurs. 
  19234.  
  19235.     MCI_WAIT 
  19236.             Control is not to be returned until the action indicated by this 
  19237.             message is completed or an error occurs. 
  19238.  
  19239.     Digital Video Extensions 
  19240.  
  19241.     The following additional flags apply to digital video devices: 
  19242.  
  19243.     MCI_DGV_WHERE_DESTINATION 
  19244.             This flag indicates that the destination display rectangle should 
  19245.             be returned in the rc field of the data structure identified by 
  19246.             pParam2. 
  19247.  
  19248.     MCI_DGV_WHERE_SOURCE 
  19249.             This flag indicates that the video source rectangle should be 
  19250.             returned in the rc field of the data structure identified by 
  19251.             pParam2. 
  19252.  
  19253.     MCI_DGV_WHERE_ADJUSTED 
  19254.             Used with either MCI_DGV_WHERE_SOURCE and MCI_DGV_RECORD or 
  19255.             MCI_DGV_WHERE_DESTINATION and MCI_DGV_RECORD. When 
  19256.             MCI_DGV_WHERE_ADJUSTED is specified, these commands return the 
  19257.             coordinates that will actually be used to record a movie or get an 
  19258.             image buffer based on what was set with MCI_PUT in combination with 
  19259.             the capabilities of the capture hardware. 
  19260.  
  19261.     MCI_DGV_WHERE_WINDOW 
  19262.             This flag indicates the current location of the video window 
  19263.             relative to its parent should be returned in the rc field of the 
  19264.             data structure identified by pParam2. 
  19265.  
  19266.     MCI_DGV_MONITOR 
  19267.             This flag indicates the window size and position for the monitor 
  19268.             window. 
  19269.  
  19270.     MCI_DGV_RECORD 
  19271.             This flag indicates the source and destination rectangles for the 
  19272.             video capture. 
  19273.  
  19274.     Video Overlay Extensions 
  19275.  
  19276.     The following additional flags apply to video overlay devices: 
  19277.  
  19278.     MCI_OVLY_WHERE_DESTINATION 
  19279.             This flag indicates that the destination display rectangle should 
  19280.             be returned in the rc field of the data structure identified by 
  19281.             pParam2. 
  19282.  
  19283.     MCI_OVLY_WHERE_SOURCE 
  19284.             This flag indicates that the video overlay source rectangle should 
  19285.             be returned in the rc field of the data structure identified by 
  19286.             pParam2. 
  19287.  
  19288.     MCI_OVLY_WHERE_WINDOW 
  19289.             This flag indicates the current location of the video window 
  19290.             relative to its parent should be returned in the rc field of the 
  19291.             data structure identified by pParam2. 
  19292.  
  19293.  
  19294. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE Parameter - pParam2 ΓòÉΓòÉΓòÉ
  19295.  
  19296.  pParam2 (PMCI_VID_RECT_PARMS) 
  19297.     A pointer to the MCI_VID_RECT_PARMS data structure. Devices with additional 
  19298.     parameters might replace this pointer with a pointer to a device-specific 
  19299.     data structure as follows: 
  19300.  
  19301.     PMCI_DGV_RECT_PARMS 
  19302.             A pointer to the MCI_DGV_RECT_PARMS data structure. 
  19303.  
  19304.     PMCI_OVLY_RECT_PARMS 
  19305.             A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  19306.  
  19307.  
  19308. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE Return Value - rc ΓòÉΓòÉΓòÉ
  19309.  
  19310.  rc (ULONG) 
  19311.     Return codes indicating success or type of failure: 
  19312.  
  19313.     MCIERR_SUCCESS 
  19314.             MMPM/2 command completed successfully. 
  19315.  
  19316.     MCIERR_OUT_OF_MEMORY 
  19317.             System out of memory. 
  19318.  
  19319.     MCIERR_INVALID_DEVICE_ID 
  19320.             Invalid device ID given. 
  19321.  
  19322.     MCIERR_MISSING_PARAMETER 
  19323.             Missing parameter for this command. 
  19324.  
  19325.     MCIERR_DRIVER 
  19326.             Internal MMPM/2 driver error. 
  19327.  
  19328.     MCIERR_INVALID_FLAG 
  19329.             Invalid flag specified for this command. 
  19330.  
  19331.     MCIERR_MISSING_FLAG 
  19332.             Flag missing for this MMPM/2 command. 
  19333.  
  19334.     MCIERR_FLAGS_NOT_COMPATIBLE 
  19335.             Flags not compatible. 
  19336.  
  19337.     MCIERR_INSTANCE_INACTIVE 
  19338.             Instance inactive. 
  19339.  
  19340.  
  19341. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE - Description ΓòÉΓòÉΓòÉ
  19342.  
  19343. This message returns the source and destination rectangles, and the location of 
  19344. the video window. 
  19345.  
  19346.  ulParam1 (ULONG) 
  19347.     This parameter can contain any of the following flags: 
  19348.  
  19349.     MCI_NOTIFY 
  19350.             A notification message will be posted to the window specified in 
  19351.             the hwndCallback parameter of the data structure pointed to by the 
  19352.             pParam2 parameter.  The notification will be posted when the action 
  19353.             indicated by this message is completed or when an error occurs. 
  19354.  
  19355.     MCI_WAIT 
  19356.             Control is not to be returned until the action indicated by this 
  19357.             message is completed or an error occurs. 
  19358.  
  19359.     Digital Video Extensions 
  19360.  
  19361.     The following additional flags apply to digital video devices: 
  19362.  
  19363.     MCI_DGV_WHERE_DESTINATION 
  19364.             This flag indicates that the destination display rectangle should 
  19365.             be returned in the rc field of the data structure identified by 
  19366.             pParam2. 
  19367.  
  19368.     MCI_DGV_WHERE_SOURCE 
  19369.             This flag indicates that the video source rectangle should be 
  19370.             returned in the rc field of the data structure identified by 
  19371.             pParam2. 
  19372.  
  19373.     MCI_DGV_WHERE_ADJUSTED 
  19374.             Used with either MCI_DGV_WHERE_SOURCE and MCI_DGV_RECORD or 
  19375.             MCI_DGV_WHERE_DESTINATION and MCI_DGV_RECORD. When 
  19376.             MCI_DGV_WHERE_ADJUSTED is specified, these commands return the 
  19377.             coordinates that will actually be used to record a movie or get an 
  19378.             image buffer based on what was set with MCI_PUT in combination with 
  19379.             the capabilities of the capture hardware. 
  19380.  
  19381.     MCI_DGV_WHERE_WINDOW 
  19382.             This flag indicates the current location of the video window 
  19383.             relative to its parent should be returned in the rc field of the 
  19384.             data structure identified by pParam2. 
  19385.  
  19386.     MCI_DGV_MONITOR 
  19387.             This flag indicates the window size and position for the monitor 
  19388.             window. 
  19389.  
  19390.     MCI_DGV_RECORD 
  19391.             This flag indicates the source and destination rectangles for the 
  19392.             video capture. 
  19393.  
  19394.     Video Overlay Extensions 
  19395.  
  19396.     The following additional flags apply to video overlay devices: 
  19397.  
  19398.     MCI_OVLY_WHERE_DESTINATION 
  19399.             This flag indicates that the destination display rectangle should 
  19400.             be returned in the rc field of the data structure identified by 
  19401.             pParam2. 
  19402.  
  19403.     MCI_OVLY_WHERE_SOURCE 
  19404.             This flag indicates that the video overlay source rectangle should 
  19405.             be returned in the rc field of the data structure identified by 
  19406.             pParam2. 
  19407.  
  19408.     MCI_OVLY_WHERE_WINDOW 
  19409.             This flag indicates the current location of the video window 
  19410.             relative to its parent should be returned in the rc field of the 
  19411.             data structure identified by pParam2. 
  19412.  
  19413.  pParam2 (PMCI_VID_RECT_PARMS) 
  19414.     A pointer to the MCI_VID_RECT_PARMS data structure. Devices with additional 
  19415.     parameters might replace this pointer with a pointer to a device-specific 
  19416.     data structure as follows: 
  19417.  
  19418.     PMCI_DGV_RECT_PARMS 
  19419.             A pointer to the MCI_DGV_RECT_PARMS data structure. 
  19420.  
  19421.     PMCI_OVLY_RECT_PARMS 
  19422.             A pointer to the MCI_OVLY_RECT_PARMS data structure. 
  19423.  
  19424.  rc (ULONG) 
  19425.     Return codes indicating success or type of failure: 
  19426.  
  19427.     MCIERR_SUCCESS 
  19428.             MMPM/2 command completed successfully. 
  19429.  
  19430.     MCIERR_OUT_OF_MEMORY 
  19431.             System out of memory. 
  19432.  
  19433.     MCIERR_INVALID_DEVICE_ID 
  19434.             Invalid device ID given. 
  19435.  
  19436.     MCIERR_MISSING_PARAMETER 
  19437.             Missing parameter for this command. 
  19438.  
  19439.     MCIERR_DRIVER 
  19440.             Internal MMPM/2 driver error. 
  19441.  
  19442.     MCIERR_INVALID_FLAG 
  19443.             Invalid flag specified for this command. 
  19444.  
  19445.     MCIERR_MISSING_FLAG 
  19446.             Flag missing for this MMPM/2 command. 
  19447.  
  19448.     MCIERR_FLAGS_NOT_COMPATIBLE 
  19449.             Flags not compatible. 
  19450.  
  19451.     MCIERR_INSTANCE_INACTIVE 
  19452.             Instance inactive. 
  19453.  
  19454.  
  19455. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE - Remarks ΓòÉΓòÉΓòÉ
  19456.  
  19457. The parameters and flags vary according to the selected device. 
  19458.  
  19459. Note:  A pointer to the rectangle is returned in the rc field of the data 
  19460.        structure identified by pParam2. 
  19461.  
  19462.  
  19463. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE - Related Messages ΓòÉΓòÉΓòÉ
  19464.  
  19465.      MCI_WINDOW 
  19466.  
  19467.  
  19468. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE - Example Code ΓòÉΓòÉΓòÉ
  19469.  
  19470. The following code illustrates how to return the video destination rectangle 
  19471. with MCI_WHERE. 
  19472.  
  19473.     MCI_DGV_RECT_PARMS  mciRectParms;
  19474.     USHORT  usUserParm = 0;
  19475.     ULONG   ulReturn;
  19476.     CHAR    szText[255];
  19477.     CHAR    szValue[20];
  19478.     LONG    lX1, lX2, lY1, lY2;
  19479.  
  19480.     /* A sample to query the current destination   */
  19481.     /* video sub-rectangle within the video window */
  19482.     memset (&mciRectParms, 0x00, sizeof (MCI_DGV_RECT_PARMS));
  19483.     mciRectParms.hwndCallback = hwndNotify;
  19484.  
  19485.     ulReturn = mciSendCommand(usDeviceID, MCI_WHERE,
  19486.                    MCI_WAIT | MCI_DGV_WHERE_DESTINATION,
  19487.                    (PVOID)&mciRectParms,
  19488.                    usUserParm);
  19489.  
  19490.     lX1 = mciRectParms.rc.xLeft;
  19491.     lY1 = mciRectParms.rc.yBottom;
  19492.     lX2 = mciRectParms.rc.xRight;
  19493.     lY2 = mciRectParms.rc.yTop;
  19494.  
  19495.  
  19496. ΓòÉΓòÉΓòÉ <hidden> MCI_WHERE - Topics ΓòÉΓòÉΓòÉ
  19497.  
  19498. Select an item: 
  19499.  
  19500. Description
  19501. Returns
  19502. Remarks
  19503. Related Messages
  19504. Example Code
  19505. Glossary
  19506.  
  19507.  
  19508. ΓòÉΓòÉΓòÉ 7.54. MCI_WINDOW ΓòÉΓòÉΓòÉ
  19509.  
  19510.  
  19511. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW Parameter - ulParam1 ΓòÉΓòÉΓòÉ
  19512.  
  19513.  ulParam1 (ULONG) 
  19514.     This parameter can contain any of the following flags: 
  19515.  
  19516.     MCI_NOTIFY 
  19517.             A notification message will be posted to the window specified in 
  19518.             the hwndCallback parameter of the data structure pointed to by the 
  19519.             pParam2 parameter.  The notification will be posted when the action 
  19520.             indicated by this message is completed or when an error occurs. 
  19521.  
  19522.     MCI_WAIT 
  19523.             Control is not to be returned until the action indicated by this 
  19524.             message is completed or an error occurs. 
  19525.  
  19526.     Digital Video Extensions 
  19527.  
  19528.     The following additional flags apply to digital video devices: 
  19529.  
  19530.     MCI_DGV_MONITOR 
  19531.             This flag indicates functions associated with the MCI_WINDOW 
  19532.             message are to be applied to the monitor window.  The monitor 
  19533.             window output can be directed to an application-specified window in 
  19534.             the same manner as video playback. 
  19535.  
  19536.     MCI_DGV_WINDOW_HWND 
  19537.             This flag indicates the handle of the application window to be used 
  19538.             for video is included in the hwndDest field of the data structure 
  19539.             identified by pParam2. 
  19540.  
  19541.     MCI_DGV_WINDOW_DEFAULT 
  19542.             This flag indicates the default video window should be used as the 
  19543.             target for video. 
  19544.  
  19545.     MCI_DGV_WINDOW_STATE 
  19546.             This flag indicates the usCmdShow field of the data structure 
  19547.             identified by pParam2 contains one of the following parameters for 
  19548.             setting the window state: 
  19549.  
  19550.                 SWP_ACTIVATE 
  19551.                 SWP_DEACTIVATE 
  19552.                 SWP_HIDE 
  19553.                 SWP_MAXIMIZE 
  19554.                 SWP_MINIMIZE 
  19555.                 SWP_RESTORE 
  19556.                 SWP_SHOW 
  19557.  
  19558.             Note:  The MCI_DGV_WINDOW_STATE flag only applies to the default 
  19559.                    window and will not affect an application-supplied alternate 
  19560.                    video window. Specifying MCI_DGV_WINDOW_DEFAULT in 
  19561.                    conjunction with the MCI_DGV_WINDOW_STATE flag will result 
  19562.                    in an error. 
  19563.  
  19564.     MCI_DGV_WINDOW_TEXT 
  19565.             This flag indicates the pszText field of the data structure 
  19566.             identified by pParam2 contains a pointer to a buffer containing the 
  19567.             caption used for the window. 
  19568.  
  19569.     Video Overlay Extensions 
  19570.  
  19571.     The following additional flags apply to video overlay devices: 
  19572.  
  19573.     MCI_OVLY_WINDOW_DEFAULT 
  19574.             Indicates that the default video window should be used as the 
  19575.             target for video. 
  19576.  
  19577.     MCI_OVLY_WINDOW_HWND 
  19578.             This flag indicates the handle of the application window to be used 
  19579.             for video.  It is included in the hwndDest field of the data 
  19580.             structure identified by pParam2. 
  19581.  
  19582.     MCI_OVLY_WINDOW_STATE 
  19583.             This flag indicates the usCmdShow field of the data structure 
  19584.             identified by pParam2 contains a parameter for setting the window 
  19585.             state.  Window states include: 
  19586.  
  19587.                 SWP_ACTIVATE 
  19588.                 SWP_DEACTIVATE 
  19589.                 SWP_HIDE 
  19590.                 SWP_MAXIMIZE 
  19591.                 SWP_MINIMIZE 
  19592.                 SWP_RESTORE 
  19593.                 SWP_SHOW 
  19594.  
  19595.             Note:  The MCI_OVLY_WINDOW_STATE flag only applies to the default 
  19596.                    window and will not affect an application-supplied alternate 
  19597.                    video window. 
  19598.  
  19599.     MCI_OVLY_WINDOW_TEXT 
  19600.             Indicates that the pszText field of the data structure identified 
  19601.             by pParam2 contains a pointer to a buffer containing the caption 
  19602.             used for the window. 
  19603.  
  19604.             Note:  The MCI_OVLY_WINDOW_TEXT flag only applies to the default 
  19605.                    window and will not affect an application-supplied alternate 
  19606.                    video window. 
  19607.  
  19608.  
  19609. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW Parameter - pParam2 ΓòÉΓòÉΓòÉ
  19610.  
  19611.  pParam2 (PMCI_VID_WINDOW_PARMS) 
  19612.     A pointer to the MCI_VID_WINDOW_PARMS data structure. Devices with 
  19613.     additional parameters might replace this pointer with a pointer to a 
  19614.     device-specific data structure as follows: 
  19615.  
  19616.     PMCI_DGV_WINDOW_PARMS 
  19617.             A pointer to an MCI_DGV_WINDOW_PARMS data structure. 
  19618.  
  19619.     PMCI_OVLY_WINDOW_PARMS 
  19620.             A pointer to an MCI_OVLY_WINDOW_PARMS data structure. 
  19621.  
  19622.  
  19623. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW Return Value - rc ΓòÉΓòÉΓòÉ
  19624.  
  19625.  rc (ULONG) 
  19626.     Return codes indicating success or type of failure: 
  19627.  
  19628.     MCIERR_SUCCESS 
  19629.             MMPM/2 command completed successfully. 
  19630.  
  19631.     MCIERR_OUT_OF_MEMORY 
  19632.             System out of memory. 
  19633.  
  19634.     MCIERR_INVALID_DEVICE_ID 
  19635.             Invalid device ID given. 
  19636.  
  19637.     MCIERR_MISSING_PARAMETER 
  19638.             Missing parameter for this command. 
  19639.  
  19640.     MCIERR_DRIVER 
  19641.             Internal MMPM/2 driver error. 
  19642.  
  19643.     MCIERR_INVALID_FLAG 
  19644.             Invalid flag specified for this command. 
  19645.  
  19646.     MCIERR_MISSING_FLAG 
  19647.             Flag missing for this MMPM/2 command. 
  19648.  
  19649.     MCIERR_FLAGS_NOT_COMPATIBLE 
  19650.             Flags not compatible. 
  19651.  
  19652.     MCIERR_INSTANCE_INACTIVE 
  19653.             Instance inactive. 
  19654.  
  19655.  
  19656. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW - Description ΓòÉΓòÉΓòÉ
  19657.  
  19658. This message specifies the window and the window characteristics that a graphic 
  19659. device should use for display. 
  19660.  
  19661.  ulParam1 (ULONG) 
  19662.     This parameter can contain any of the following flags: 
  19663.  
  19664.     MCI_NOTIFY 
  19665.             A notification message will be posted to the window specified in 
  19666.             the hwndCallback parameter of the data structure pointed to by the 
  19667.             pParam2 parameter.  The notification will be posted when the action 
  19668.             indicated by this message is completed or when an error occurs. 
  19669.  
  19670.     MCI_WAIT 
  19671.             Control is not to be returned until the action indicated by this 
  19672.             message is completed or an error occurs. 
  19673.  
  19674.     Digital Video Extensions 
  19675.  
  19676.     The following additional flags apply to digital video devices: 
  19677.  
  19678.     MCI_DGV_MONITOR 
  19679.             This flag indicates functions associated with the MCI_WINDOW 
  19680.             message are to be applied to the monitor window.  The monitor 
  19681.             window output can be directed to an application-specified window in 
  19682.             the same manner as video playback. 
  19683.  
  19684.     MCI_DGV_WINDOW_HWND 
  19685.             This flag indicates the handle of the application window to be used 
  19686.             for video is included in the hwndDest field of the data structure 
  19687.             identified by pParam2. 
  19688.  
  19689.     MCI_DGV_WINDOW_DEFAULT 
  19690.             This flag indicates the default video window should be used as the 
  19691.             target for video. 
  19692.  
  19693.     MCI_DGV_WINDOW_STATE 
  19694.             This flag indicates the usCmdShow field of the data structure 
  19695.             identified by pParam2 contains one of the following parameters for 
  19696.             setting the window state: 
  19697.  
  19698.                 SWP_ACTIVATE 
  19699.                 SWP_DEACTIVATE 
  19700.                 SWP_HIDE 
  19701.                 SWP_MAXIMIZE 
  19702.                 SWP_MINIMIZE 
  19703.                 SWP_RESTORE 
  19704.                 SWP_SHOW 
  19705.  
  19706.             Note:  The MCI_DGV_WINDOW_STATE flag only applies to the default 
  19707.                    window and will not affect an application-supplied alternate 
  19708.                    video window. Specifying MCI_DGV_WINDOW_DEFAULT in 
  19709.                    conjunction with the MCI_DGV_WINDOW_STATE flag will result 
  19710.                    in an error. 
  19711.  
  19712.     MCI_DGV_WINDOW_TEXT 
  19713.             This flag indicates the pszText field of the data structure 
  19714.             identified by pParam2 contains a pointer to a buffer containing the 
  19715.             caption used for the window. 
  19716.  
  19717.     Video Overlay Extensions 
  19718.  
  19719.     The following additional flags apply to video overlay devices: 
  19720.  
  19721.     MCI_OVLY_WINDOW_DEFAULT 
  19722.             Indicates that the default video window should be used as the 
  19723.             target for video. 
  19724.  
  19725.     MCI_OVLY_WINDOW_HWND 
  19726.             This flag indicates the handle of the application window to be used 
  19727.             for video.  It is included in the hwndDest field of the data 
  19728.             structure identified by pParam2. 
  19729.  
  19730.     MCI_OVLY_WINDOW_STATE 
  19731.             This flag indicates the usCmdShow field of the data structure 
  19732.             identified by pParam2 contains a parameter for setting the window 
  19733.             state.  Window states include: 
  19734.  
  19735.                 SWP_ACTIVATE 
  19736.                 SWP_DEACTIVATE 
  19737.                 SWP_HIDE 
  19738.                 SWP_MAXIMIZE 
  19739.                 SWP_MINIMIZE 
  19740.                 SWP_RESTORE 
  19741.                 SWP_SHOW 
  19742.  
  19743.             Note:  The MCI_OVLY_WINDOW_STATE flag only applies to the default 
  19744.                    window and will not affect an application-supplied alternate 
  19745.                    video window. 
  19746.  
  19747.     MCI_OVLY_WINDOW_TEXT 
  19748.             Indicates that the pszText field of the data structure identified 
  19749.             by pParam2 contains a pointer to a buffer containing the caption 
  19750.             used for the window. 
  19751.  
  19752.             Note:  The MCI_OVLY_WINDOW_TEXT flag only applies to the default 
  19753.                    window and will not affect an application-supplied alternate 
  19754.                    video window. 
  19755.  
  19756.  pParam2 (PMCI_VID_WINDOW_PARMS) 
  19757.     A pointer to the MCI_VID_WINDOW_PARMS data structure. Devices with 
  19758.     additional parameters might replace this pointer with a pointer to a 
  19759.     device-specific data structure as follows: 
  19760.  
  19761.     PMCI_DGV_WINDOW_PARMS 
  19762.             A pointer to an MCI_DGV_WINDOW_PARMS data structure. 
  19763.  
  19764.     PMCI_OVLY_WINDOW_PARMS 
  19765.             A pointer to an MCI_OVLY_WINDOW_PARMS data structure. 
  19766.  
  19767.  rc (ULONG) 
  19768.     Return codes indicating success or type of failure: 
  19769.  
  19770.     MCIERR_SUCCESS 
  19771.             MMPM/2 command completed successfully. 
  19772.  
  19773.     MCIERR_OUT_OF_MEMORY 
  19774.             System out of memory. 
  19775.  
  19776.     MCIERR_INVALID_DEVICE_ID 
  19777.             Invalid device ID given. 
  19778.  
  19779.     MCIERR_MISSING_PARAMETER 
  19780.             Missing parameter for this command. 
  19781.  
  19782.     MCIERR_DRIVER 
  19783.             Internal MMPM/2 driver error. 
  19784.  
  19785.     MCIERR_INVALID_FLAG 
  19786.             Invalid flag specified for this command. 
  19787.  
  19788.     MCIERR_MISSING_FLAG 
  19789.             Flag missing for this MMPM/2 command. 
  19790.  
  19791.     MCIERR_FLAGS_NOT_COMPATIBLE 
  19792.             Flags not compatible. 
  19793.  
  19794.     MCIERR_INSTANCE_INACTIVE 
  19795.             Instance inactive. 
  19796.  
  19797.  
  19798. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW - Remarks ΓòÉΓòÉΓòÉ
  19799.  
  19800. By default, video devices create a window when an application opens the device, 
  19801. but they do not display it until they receive a window state show command or a 
  19802. play command. Applications can send the MCI_WINDOW message to tell a video 
  19803. device to use an application window instead of the default window to display 
  19804. video.  Applications that supply window handles should be prepared to update an 
  19805. invalid rectangle on the window. 
  19806.  
  19807. Several flags are provided to allow users to manipulate the window. Because 
  19808. MCI_STATUS can be used to obtain the current window handle, programmers might 
  19809. choose to use the standard window APIs instead.  The flags are provided to 
  19810. allow applications that use the string interface to perform standard 
  19811. operations. 
  19812.  
  19813. Support of this message by a device is optional.  The parameters and flags for 
  19814. this message vary according to the selected device. 
  19815.  
  19816.  
  19817. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW - Related Messages ΓòÉΓòÉΓòÉ
  19818.  
  19819.      MCI_WHERE 
  19820.  
  19821.  
  19822. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW - Example Code ΓòÉΓòÉΓòÉ
  19823.  
  19824. The following code illustrates several examples of how to specify the window 
  19825. and the window characteristics that a graphic device uses with MCI_WINDOW. 
  19826.  
  19827. /* Use for (MCI_DGV_WINDOW_DEFAULT) */
  19828.    USHORT  usUserParm = 0;
  19829.    ULONG   ulReturn;
  19830.    MCI_DGV_WINDOW_PARMS mciWindowParms;
  19831.  
  19832.    memset (&mciWindowParms, 0x00, sizeof (MCI_DGV_WINDOW_PARMS));
  19833.    mciWindowParms.hwndCallback = hwndNotify;
  19834.    mciWindowParms.hwndDest = 0;
  19835.  
  19836.    ulReturn = mciSendCommand(usDeviceID, MCI_WINDOW,
  19837.                   MCI_WAIT | MCI_DGV_WINDOW_DEFAULT,
  19838.                   (PVOID)&mciWindowParms,
  19839.                   usUserParm);
  19840.  
  19841.  
  19842.    /* Use for MCI_WINDOW (MCI_DGV_WINDOW_HWND) */
  19843.    USHORT  usUserParm = 0;
  19844.    ULONG   ulReturn;
  19845.    MCI_DGV_WINDOW_PARMS mciWindowParms;
  19846.  
  19847.    memset (&mciWindowParms, 0x00, sizeof (MCI_DGV_WINDOW_PARMS));
  19848.    mciWindowParms.Callback = hwndNotify;
  19849.    mciWindowParms.hwndDest = hwndAlternate;
  19850.  
  19851.    ulReturn = mciSendCommand(usDeviceID, MCI_WINDOW,
  19852.                   MCI_WAIT | MCI_DGV_WINDOW_HWND,
  19853.                   (PVOID)&mciWindowParms,
  19854.                   usUserParm);
  19855.  
  19856.    /* Use for MCI_WINDOW (MCI_DGV_WINDOW_STATE) */
  19857.    USHORT  usUserParm = 0;
  19858.    ULONG   ulReturn;
  19859.    MCI_DGV_WINDOW_PARMS mciWindowParms;
  19860.  
  19861.    /* An example of a message to SHOW the current video window */
  19862.    memset (&mciWindowParms, 0x00, sizeof (MCI_DGV_WINDOW_PARMS));
  19863.    mciWindowParms.hwndCallback = hwndNotify;
  19864.    mciWindowParms.hwndDest = 0;
  19865.    mciWindowParms.usCmdShow = (INT)SWP_SHOW;
  19866.  
  19867.    ulReturn = mciSendCommand(usDeviceID, MCI_WINDOW,
  19868.                   MCI_WAIT | MCI_DGV_WINDOW_STATE,
  19869.                   (PVOID)&mciWindowParms,
  19870.                   usUserParm);
  19871.  
  19872.    /* Use for MCI_WINDOW (MCI_DGV_WINDOW_TEXT) */
  19873.    USHORT  usUserParm = 0;
  19874.    ULONG   ulReturn;
  19875.    MCI_DGV_WINDOW_PARMS mciWindowParms;
  19876.  
  19877.    memset (&mciWindowParms, 0x00, sizeof (MCI_DGV_WINDOW_PARMS));
  19878.    mciWindowParms.hwndCallback = hwndNotify;
  19879.    mciWindowParms.hwndDest = 0;
  19880.    mciWindowParms.pszText= (PSZ)"New Caption";
  19881.  
  19882.    ulReturn = mciSendCommand(usDeviceID, MCI_WINDOW,
  19883.                   MCI_WAIT | MCI_DGV_WINDOW_TEXT,
  19884.                   (PVOID)&mciWindowParms,
  19885.                   usUserParm);
  19886.  
  19887.  
  19888. ΓòÉΓòÉΓòÉ <hidden> MCI_WINDOW - Topics ΓòÉΓòÉΓòÉ
  19889.  
  19890. Select an item: 
  19891.  
  19892. Description
  19893. Returns
  19894. Remarks
  19895. Related Messages
  19896. Example Code
  19897. Glossary
  19898.