home *** CD-ROM | disk | FTP | other *** search
/ HomeWare 14 / HOMEWARE14.bin / windows / win31 / msvid.arj / MSVIDEO.PAS next >
Pascal/Delphi Source File  |  1993-04-29  |  28KB  |  801 lines

  1. Unit MSVideo;
  2.  
  3. Interface
  4.  
  5. Uses MMSYSTEM, WINTYPES;
  6.  
  7. Const
  8.  
  9.   Version                            = $0100;
  10.  
  11.   MCI_TEST                           = $00000020;
  12.  
  13.   { Message values }
  14.  
  15.   MCI_CAPTURE                        = $0870;
  16.   MCI_MONITOR                        = $0871;
  17.   MCI_RESERVE                        = $0872;
  18.   MCI_SETAUDIO                       = $0873;
  19.   MCI_SIGNAL                         = $0875;
  20.   MCI_SETVIDEO                       = $0876;
  21.   MCI_QUALITY                        = $0877;
  22.   MCI_LIST                           = $0878;
  23.   MCI_UNDO                           = $0879;
  24.   MCI_CONFIGURE                      = $087A;
  25.   MCI_RESTORE                        = $087B;
  26.  
  27.   { Return and string constant values }
  28.  
  29.   MCI_ON                             = 1;
  30.   MCI_OFF                            = 0;
  31.  
  32.   MCI_DGV_FILE_MODE_SAVING           = $0001;
  33.   MCI_DGV_FILE_MODE_LOADING          = $0002;
  34.   MCI_DGV_FILE_MODE_EDITING          = $0003;
  35.   MCI_DGV_FILE_MODE_IDLE             = $0004;
  36.  
  37.   { These identifiers are used only by device drivers }
  38.  
  39.   MCI_ON_S                           = $00008000;
  40.   MCI_OFF_S                          = $00008001;
  41.   MCI_DGV_FILE_S                     = $00008002;
  42.   MCI_DGV_INPUT_S                    = $00008003;
  43.  
  44.   MCI_DGV_FILE_MODE_SAVING_S         = $00008004;
  45.   MCI_DGV_FILE_MODE_LOADING_S        = $00008005;
  46.   MCI_DGV_FILE_MODE_EDITING_S        = $00008006;
  47.   MCI_DGV_FILE_MODE_IDLE_S           = $00008007;
  48.  
  49.   MCI_DGV_SETVIDEO_SRC_NTSC_S        = $00008010;
  50.   MCI_DGV_SETVIDEO_SRC_RGB_S         = $00008011;
  51.   MCI_DGV_SETVIDEO_SRC_SVIDEO_S      = $00008012;
  52.   MCI_DGV_SETVIDEO_SRC_PAL_S         = $00008013;
  53.   MCI_DGV_SETVIDEO_SRC_SECAM_S       = $00008014;
  54.   MCI_DGV_SETVIDEO_SRC_GENERIC_S     = $00008015;
  55.  
  56.   MCI_DGV_SETAUDIO_SRC_LEFT_S        = $00008020;
  57.   MCI_DGV_SETAUDIO_SRC_RIGHT_S       = $00008021;
  58.   MCI_DGV_SETAUDIO_SRC_AVERAGE_S     = $00008022;
  59.   MCI_DGV_SETAUDIO_SRC_STEREO_S      = $00008023;
  60.  
  61.   { Window message for signal notification }
  62.  
  63.   MM_MCISIGNAL                       = $03CB;
  64.  
  65.   { error values }
  66.  
  67.   MCIERR_DGV_DEVICE_LIMIT            = MCIERR_CUSTOM_DRIVER_BASE+0;
  68.   MCIERR_DGV_IOERR                   = MCIERR_CUSTOM_DRIVER_BASE+1;
  69.   MCIERR_DGV_WORKSPACE_EMPTY         = MCIERR_CUSTOM_DRIVER_BASE+2;
  70.   MCIERR_DGV_DISK_FULL               = MCIERR_CUSTOM_DRIVER_BASE+3;
  71.   MCIERR_DGV_DEVICE_MEMORY_FULL      = MCIERR_CUSTOM_DRIVER_BASE+4;
  72.   MCIERR_DGV_BAD_CLIPBOARD_RANGE     = MCIERR_CUSTOM_DRIVER_BASE+5;
  73.  
  74.   { defines for monitor methods }
  75.  
  76.   MCI_DGV_METHOD_PRE                 = $0000A000;
  77.   MCI_DGV_METHOD_POST                = $0000A001;
  78.   MCI_DGV_METHOD_DIRECT              = $0000A002;
  79.  
  80.   { defines for known file formats }
  81.  
  82.   MCI_DGV_FF_AVSS                    = $00004000;
  83.   MCI_DGV_FF_AVI                     = $00004001;
  84.   MCI_DGV_FF_DIB                     = $00004002;
  85.   MCI_DGV_FF_RDIB                    = $00004003;
  86.   MCI_DGV_FF_JPEG                    = $00004004;
  87.   MCI_DGV_FF_RJPEG                   = $00004005;
  88.   MCI_DGV_FF_JFIF                    = $00004006;
  89.   MCI_DGV_FF_MPEG                    = $00004007;
  90.  
  91.   { values for dwItem field of MCI_CAPABILITY_PARMS structure }
  92.  
  93.   MCI_DGV_GETDEVCAPS_CAN_LOCK        = $00004000;
  94.   MCI_DGV_GETDEVCAPS_CAN_STRETCH     = $00004001;
  95.   MCI_DGV_GETDEVCAPS_CAN_FREEZE      = $00004002;
  96.   MCI_DGV_GETDEVCAPS_MAX_WINDOWS     = $00004003;
  97.   MCI_DGV_GETDEVCAPS_CAN_REVERSE     = $00004004;
  98.   MCI_DGV_GETDEVCAPS_HAS_STILL       = $00004005;
  99.   MCI_DGV_GETDEVCAPS_PALETTES        = $00004006;
  100.   MCI_DGV_GETDEVCAPS_CAN_STR_IN      = $00004008;
  101.   MCI_DGV_GETDEVCAPS_CAN_TEST        = $00004009;
  102.   MCI_DGV_GETDEVCAPS_MAXIMUM_RATE    = $0000400A;
  103.   MCI_DGV_GETDEVCAPS_MINIMUM_RATE    = $0000400B;
  104.  
  105.   { flags for dwFlags parameter of MCI_CAPTURE command message }
  106.  
  107.   MCI_DGV_CAPTURE_AS                 = $00010000;
  108.   MCI_DGV_CAPTURE_AT                 = $00020000;
  109.  
  110.   { flags for dwFlags parameter of MCI_COPY command message }
  111.  
  112.   MCI_DGV_COPY_AT                    = $00010000;
  113.   MCI_DGV_COPY_AUDIO_STREAM          = $00020000;
  114.   MCI_DGV_COPY_VIDEO_STREAM          = $00040000;
  115.  
  116.   { flags for dwFlags parameter of MCI_CUE command message }
  117.  
  118.   MCI_DGV_CUE_INPUT                  = $00010000;
  119.   MCI_DGV_CUE_OUTPUT                 = $00020000;
  120.   MCI_DGV_CUE_NOSHOW                 = $00040000;
  121.  
  122.   { flags for dwFlags parameter of MCI_CUT command message }
  123.  
  124.   MCI_DGV_CUT_AT                     = $00010000;
  125.   MCI_DGV_CUT_AUDIO_STREAM           = $00020000;
  126.   MCI_DGV_CUT_VIDEO_STREAM           = $00040000;
  127.  
  128.   { flags for dwFlags parameter of MCI_DELETE command message }
  129.  
  130.   MCI_DGV_DELETE_AT                  = $00010000;
  131.   MCI_DGV_DELETE_AUDIO_STREAM        = $00020000;
  132.   MCI_DGV_DELETE_VIDEO_STREAM        = $00040000;
  133.  
  134.   { flags for dwFlags parameter of MCI_FREEZE command message }
  135.  
  136.   MCI_DGV_FREEZE_AT                  = $00010000;
  137.   MCI_DGV_FREEZE_OUTSIDE             = $00020000;
  138.  
  139.   { flags for dwFlags parameter of MCI_INFO command message }
  140.  
  141.   MCI_DGV_INFO_TEXT                  = $00010000;
  142.   MCI_DGV_INFO_ITEM                  = $00020000;
  143.  
  144.   { values for dwItem field of MCI_DGV_INFO_PARMS structure }
  145.  
  146.   MCI_INFO_VERSION                   = $00000400;
  147.  
  148.   MCI_DGV_INFO_USAGE                 = $00004000;
  149.   MCI_DGV_INFO_AUDIO_QUALITY         = $00004001;
  150.   MCI_DGV_INFO_STILL_QUALITY         = $00004002;
  151.   MCI_DGV_INFO_VIDEO_QUALITY         = $00004003;
  152.   MCI_DGV_INFO_AUDIO_ALG             = $00004004;
  153.   MCI_DGV_INFO_STILL_ALG             = $00004005;
  154.   MCI_DGV_INFO_VIDEO_ALG             = $00004006;
  155.  
  156.   { flags for dwFlags parameter of MCI_LIST command message }
  157.  
  158.   MCI_DGV_LIST_ITEM                  = $00010000;
  159.   MCI_DGV_LIST_COUNT                 = $00020000;
  160.   MCI_DGV_LIST_NUMBER                = $00040000;
  161.   MCI_DGV_LIST_ALG                   = $00080000;
  162.  
  163.   { values for dwItem field of MCI_DGV_LIST_PARMS structure }
  164.  
  165.   MCI_DGV_LIST_AUDIO_ALG             = $00004000;
  166.   MCI_DGV_LIST_AUDIO_QUALITY         = $00004001;
  167.   MCI_DGV_LIST_AUDIO_STREAM          = $00004002;
  168.   MCI_DGV_LIST_STILL_ALG             = $00004003;
  169.   MCI_DGV_LIST_STILL_QUALITY         = $00004004;
  170.   MCI_DGV_LIST_VIDEO_ALG             = $00004005;
  171.   MCI_DGV_LIST_VIDEO_QUALITY         = $00004006;
  172.   MCI_DGV_LIST_VIDEO_STREAM          = $00004007;
  173.   MCI_DGV_LIST_VIDEO_SOURCE          = $00004008;
  174.  
  175.  
  176.   { flags for dwFlags parameter of MCI_MONITOR command message }
  177.  
  178.   MCI_DGV_MONITOR_METHOD             = $00010000;
  179.   MCI_DGV_MONITOR_SOURCE             = $00020000;
  180.  
  181.   { values for dwSource parameter of the MCI_DGV_MONITOR_PARMS struture }
  182.  
  183.   MCI_DGV_MONITOR_INPUT              = $00004000;
  184.   MCI_DGV_MONITOR_FILE               = $00004001;
  185.  
  186.   { flags for dwFlags parameter of MCI_OPEN command message }
  187.  
  188.   MCI_DGV_OPEN_WS                    = $00010000;
  189.   MCI_DGV_OPEN_PARENT                = $00020000;
  190.   MCI_DGV_OPEN_NOSTATIC              = $00040000;
  191.  
  192.   { flags for dwFlags parameter of MCI_PASTE command message }
  193.  
  194.   MCI_DGV_PASTE_AT                   = $00010000;
  195.   MCI_DGV_PASTE_AUDIO_STREAM         = $00020000;
  196.   MCI_DGV_PASTE_VIDEO_STREAM         = $00040000;
  197.   MCI_DGV_PASTE_INSERT               = $00080000;
  198.   MCI_DGV_PASTE_OVERWRITE            = $00100000;
  199.  
  200.   { flags for dwFlags parameter of MCI_PLAY command message }
  201.  
  202.   MCI_DGV_PLAY_REPEAT                = $00010000;
  203.   MCI_DGV_PLAY_REVERSE               = $00020000;
  204.  
  205.   { flags for dwFlags parameter of MCI_PUT command message }
  206.  
  207.   MCI_DGV_RECT                       = $00010000;
  208.   MCI_DGV_PUT_SOURCE                 = $00020000;
  209.   MCI_DGV_PUT_DESTINATION            = $00040000;
  210.   MCI_DGV_PUT_FRAME                  = $00080000;
  211.   MCI_DGV_PUT_VIDEO                  = $00100000;
  212.   MCI_DGV_PUT_WINDOW                 = $00200000;
  213.   MCI_DGV_PUT_CLIENT                 = $00400000;
  214.  
  215.   { flags for dwFlags parameter of MCI_QUALITY command message }
  216.  
  217.   MCI_QUALITY_ITEM                   = $00010000;
  218.   MCI_QUALITY_NAME                   = $00020000;
  219.   MCI_QUALITY_ALG                    = $00040000;
  220.   MCI_QUALITY_DIALOG                 = $00080000;
  221.   MCI_QUALITY_HANDLE                 = $00100000;
  222.  
  223.   { values for dwItem field of MCI_QUALITY_PARMS structure }
  224.  
  225.   MCI_QUALITY_ITEM_AUDIO             = $00004000;
  226.   MCI_QUALITY_ITEM_STILL             = $00004001;
  227.   MCI_QUALITY_ITEM_VIDEO             = $00004002;
  228.  
  229.   { flags for dwFlags parameter of MCI_REALIZE command message }
  230.  
  231.   MCI_DGV_REALIZE_NORM               = $00010000;
  232.   MCI_DGV_REALIZE_BKGD               = $00020000;
  233.  
  234.   { flags for dwFlags parameter of MCI_RECORD command message }
  235.  
  236.   MCI_DGV_RECORD_HOLD                = $00020000;
  237.   MCI_DGV_RECORD_AUDIO_STREAM        = $00040000;
  238.   MCI_DGV_RECORD_VIDEO_STREAM        = $00080000;
  239.  
  240.   { flags for dwFlags parameters of MCI_RESERVE command message }
  241.  
  242.   MCI_DGV_RESERVE_IN                 = $00010000;
  243.   MCI_DGV_RESERVE_SIZE               = $00020000;
  244.  
  245.   { flags for dwFlags parameter of MCI_RESTORE command message }
  246.  
  247.   MCI_DGV_RESTORE_FROM               = $00010000;
  248.   MCI_DGV_RESTORE_AT                 = $00020000;
  249.  
  250.   { flags for dwFlags parameters of MCI_SAVE command message }
  251.  
  252.   MCI_DGV_SAVE_ABORT                 = $00020000;
  253.   MCI_DGV_SAVE_KEEPRESERVE           = $00040000;
  254.  
  255.   { flags for dwFlags parameters of MCI_SET command message }
  256.  
  257.   MCI_DGV_SET_SEEK_EXACTLY           = $00010000;
  258.   MCI_DGV_SET_SPEED                  = $00020000;
  259.   MCI_DGV_SET_STILL                  = $00040000;
  260.   MCI_DGV_SET_FILEFORMAT             = $00080000;
  261.  
  262.   { flags for the dwFlags parameter of MCI_SETAUDIO command message }
  263.  
  264.   MCI_DGV_SETAUDIO_OVER              = $00010000;
  265.   MCI_DGV_SETAUDIO_CLOCKTIME         = $00020000;
  266.   MCI_DGV_SETAUDIO_ALG               = $00040000;
  267.   MCI_DGV_SETAUDIO_QUALITY           = $00080000;
  268.   MCI_DGV_SETAUDIO_RECORD            = $00100000;
  269.   MCI_DGV_SETAUDIO_LEFT              = $00200000;
  270.   MCI_DGV_SETAUDIO_RIGHT             = $00400000;
  271.   MCI_DGV_SETAUDIO_ITEM              = $00800000;
  272.   MCI_DGV_SETAUDIO_VALUE             = $01000000;
  273.   MCI_DGV_SETAUDIO_INPUT             = $02000000;
  274.   MCI_DGV_SETAUDIO_OUTPUT            = $04000000;
  275.  
  276.   { values for the dwItem parameter of MCI_DGV_SETAUDIO_PARMS }
  277.  
  278.   MCI_DGV_SETAUDIO_TREBLE            = $00004000;
  279.   MCI_DGV_SETAUDIO_BASS              = $00004001;
  280.   MCI_DGV_SETAUDIO_VOLUME            = $00004002;
  281.   MCI_DGV_SETAUDIO_STREAM            = $00004003;
  282.   MCI_DGV_SETAUDIO_SOURCE            = $00004004;
  283.   MCI_DGV_SETAUDIO_SAMPLESPERSEC     = $00004005;
  284.   MCI_DGV_SETAUDIO_AVGBYTESPERSEC    = $00004006;
  285.   MCI_DGV_SETAUDIO_BLOCKALIGN        = $00004007;
  286.   MCI_DGV_SETAUDIO_BITSPERSAMPLE     = $00004008;
  287.  
  288.   { values for the dwValue parameter of MCI_DGV_SETAUDIO_PARMS
  289.     used with MCI_DGV_SETAUDIO_SOURCE }
  290.  
  291.   MCI_DGV_SETAUDIO_SOURCE_STEREO     = $00000000;
  292.   MCI_DGV_SETAUDIO_SOURCE_LEFT       = $00000001;
  293.   MCI_DGV_SETAUDIO_SOURCE_RIGHT      = $00000002;
  294.   MCI_DGV_SETAUDIO_SOURCE_AVERAGE    = $00004000;
  295.  
  296.   { flags for the dwFlags parameter of MCI_SETVIDEO command }
  297.  
  298.   MCI_DGV_SETVIDEO_QUALITY           = $00010000;
  299.   MCI_DGV_SETVIDEO_ALG               = $00020000;
  300.   MCI_DGV_SETVIDEO_CLOCKTIME         = $00040000;
  301.   MCI_DGV_SETVIDEO_SRC_NUMBER        = $00080000;
  302.   MCI_DGV_SETVIDEO_ITEM              = $00100000;
  303.   MCI_DGV_SETVIDEO_OVER              = $00200000;
  304.   MCI_DGV_SETVIDEO_RECORD            = $00400000;
  305.   MCI_DGV_SETVIDEO_STILL             = $00800000;
  306.   MCI_DGV_SETVIDEO_VALUE             = $01000000;
  307.   MCI_DGV_SETVIDEO_INPUT             = $02000000;
  308.   MCI_DGV_SETVIDEO_OUTPUT            = $04000000;
  309.  
  310.   { values for the dwTo field of MCI_SETVIDEO_PARMS
  311.     used with MCI_DGV_SETVIDEO_SOURCE }
  312.  
  313.   MCI_DGV_SETVIDEO_SRC_NTSC          = $00004000;
  314.   MCI_DGV_SETVIDEO_SRC_RGB           = $00004001;
  315.   MCI_DGV_SETVIDEO_SRC_SVIDEO        = $00004002;
  316.   MCI_DGV_SETVIDEO_SRC_PAL           = $00004003;
  317.   MCI_DGV_SETVIDEO_SRC_SECAM         = $00004004;
  318.   MCI_DGV_SETVIDEO_SRC_GENERIC       = $00004005;
  319.  
  320.   { values for the dwItem field of MCI_SETVIDEO_PARMS }
  321.  
  322.   MCI_DGV_SETVIDEO_BRIGHTNESS        = $00004000;
  323.   MCI_DGV_SETVIDEO_COLOR             = $00004001;
  324.   MCI_DGV_SETVIDEO_CONTRAST          = $00004002;
  325.   MCI_DGV_SETVIDEO_TINT              = $00004003;
  326.   MCI_DGV_SETVIDEO_SHARPNESS         = $00004004;
  327.   MCI_DGV_SETVIDEO_GAMMA             = $00004005;
  328.   MCI_DGV_SETVIDEO_STREAM            = $00004006;
  329.   MCI_DGV_SETVIDEO_PALHANDLE         = $00004007;
  330.   MCI_DGV_SETVIDEO_FRAME_RATE        = $00004008;
  331.   MCI_DGV_SETVIDEO_SOURCE            = $00004009;
  332.   MCI_DGV_SETVIDEO_KEY_INDEX         = $0000400A;
  333.   MCI_DGV_SETVIDEO_KEY_COLOR         = $0000400B;
  334.   MCI_DGV_SETVIDEO_BITSPERPEL        = $0000400C;
  335.  
  336.   { flags for the dwFlags parameter of MCI_SIGNAL }
  337.  
  338.   MCI_DGV_SIGNAL_AT                  = $00010000;
  339.   MCI_DGV_SIGNAL_EVERY               = $00020000;
  340.   MCI_DGV_SIGNAL_USERVAL             = $00040000;
  341.   MCI_DGV_SIGNAL_CANCEL              = $00080000;
  342.   MCI_DGV_SIGNAL_POSITION            = $00100000;
  343.  
  344.   { flags for the dwFlags parameter of MCI_STATUS command }
  345.  
  346.   MCI_DGV_STATUS_NOMINAL             = $00020000;
  347.   MCI_DGV_STATUS_REFERENCE           = $00040000;
  348.   MCI_DGV_STATUS_LEFT                = $00080000;
  349.   MCI_DGV_STATUS_RIGHT               = $00100000;
  350.   MCI_DGV_STATUS_DISKSPACE           = $00200000;
  351.   MCI_DGV_STATUS_INPUT               = $00400000;
  352.   MCI_DGV_STATUS_OUTPUT              = $00800000;
  353.   MCI_DGV_STATUS_RECORD              = $01000000;
  354.  
  355.   { values for dwItem field of MCI_STATUS_PARMS structure }
  356.  
  357.   MCI_DGV_STATUS_AUDIO_INPUT         = $00004000;
  358.   MCI_DGV_STATUS_HWND                = $00004001;
  359.   MCI_DGV_STATUS_SPEED               = $00004003;
  360.   MCI_DGV_STATUS_HPAL                = $00004004;
  361.   MCI_DGV_STATUS_BRIGHTNESS          = $00004005;
  362.   MCI_DGV_STATUS_COLOR               = $00004006;
  363.   MCI_DGV_STATUS_CONTRAST            = $00004007;
  364.   MCI_DGV_STATUS_FILEFORMAT          = $00004008;
  365.   MCI_DGV_STATUS_AUDIO_SOURCE        = $00004009;
  366.   MCI_DGV_STATUS_GAMMA               = $0000400A;
  367.   MCI_DGV_STATUS_MONITOR             = $0000400B;
  368.   MCI_DGV_STATUS_MONITOR_METHOD      = $0000400C;
  369.   MCI_DGV_STATUS_FRAME_RATE          = $0000400E;
  370.   MCI_DGV_STATUS_BASS                = $0000400F;
  371.   MCI_DGV_STATUS_SIZE                = $00004010;
  372.   MCI_DGV_STATUS_SEEK_EXACTLY        = $00004011;
  373.   MCI_DGV_STATUS_SHARPNESS           = $00004012;
  374.   MCI_DGV_STATUS_SMPTE               = $00004013;
  375.   MCI_DGV_STATUS_AUDIO               = $00004014;
  376.   MCI_DGV_STATUS_TINT                = $00004015;
  377.   MCI_DGV_STATUS_TREBLE              = $00004016;
  378.   MCI_DGV_STATUS_UNSAVED             = $00004017;
  379.   MCI_DGV_STATUS_VIDEO               = $00004018;
  380.   MCI_DGV_STATUS_VOLUME              = $00004019;
  381.   MCI_DGV_STATUS_AUDIO_RECORD        = $0000401A;
  382.   MCI_DGV_STATUS_VIDEO_SOURCE        = $0000401B;
  383.   MCI_DGV_STATUS_VIDEO_RECORD        = $0000401C;
  384.   MCI_DGV_STATUS_STILL_FILEFORMAT    = $0000401D;
  385.   MCI_DGV_STATUS_VIDEO_SRC_NUM       = $0000401E;
  386.   MCI_DGV_STATUS_FILE_MODE           = $0000401F;
  387.   MCI_DGV_STATUS_FILE_COMPLETION     = $00004020;
  388.   MCI_DGV_STATUS_WINDOW_VISIBLE      = $00004021;
  389.   MCI_DGV_STATUS_WINDOW_MINIMIZED    = $00004022;
  390.   MCI_DGV_STATUS_WINDOW_MAXIMIZED    = $00004023;
  391.   MCI_DGV_STATUS_KEY_INDEX           = $00004024;
  392.   MCI_DGV_STATUS_KEY_COLOR           = $00004025;
  393.   MCI_DGV_STATUS_PAUSE_MODE          = $00004026;
  394.   MCI_DGV_STATUS_SAMPLESPERSEC       = $00004027;
  395.   MCI_DGV_STATUS_AVGBYTESPERSEC      = $00004028;
  396.   MCI_DGV_STATUS_BLOCKALIGN          = $00004029;
  397.   MCI_DGV_STATUS_BITSPERSAMPLE       = $0000402A;
  398.   MCI_DGV_STATUS_BITSPERPEL          = $0000402B;
  399.   MCI_DGV_STATUS_FORWARD             = $0000402C;
  400.   MCI_DGV_STATUS_AUDIO_STREAM        = $0000402D;
  401.   MCI_DGV_STATUS_VIDEO_STREAM        = $0000402E;
  402.  
  403.   { flags for dwFlags parameter of MCI_STEP command message }
  404.  
  405.   MCI_DGV_STEP_REVERSE               = $00010000;
  406.   MCI_DGV_STEP_FRAMES                = $00020000;
  407.  
  408.   { flags for dwFlags parameter of MCI_STOP command message }
  409.  
  410.   MCI_DGV_STOP_HOLD                  = $00010000;
  411.  
  412.   { flags for dwFlags parameter of MCI_UPDATE command message }
  413.  
  414.   MCI_DGV_UPDATE_HDC                 = $00020000;
  415.   MCI_DGV_UPDATE_PAINT               = $00040000;
  416.  
  417.   { flags for dwFlags parameter of MCI_WHERE command message }
  418.  
  419.   MCI_DGV_WHERE_SOURCE               = $00020000;
  420.   MCI_DGV_WHERE_DESTINATION          = $00040000;
  421.   MCI_DGV_WHERE_FRAME                = $00080000;
  422.   MCI_DGV_WHERE_VIDEO                = $00100000;
  423.   MCI_DGV_WHERE_WINDOW               = $00200000;
  424.   MCI_DGV_WHERE_MAX                  = $00400000;
  425.  
  426.   { flags for dwFlags parameter of MCI_WINDOW command message }
  427.  
  428.   MCI_DGV_WINDOW_HWND                = $00010000;
  429.   MCI_DGV_WINDOW_STATE               = $00040000;
  430.   MCI_DGV_WINDOW_TEXT                = $00080000;
  431.  
  432.   { flags for hWnd parameter of MCI_DGV_WINDOW_PARMS parameter block }
  433.  
  434.   MCI_DGV_WINDOW_DEFAULT             = $00000000;
  435.  
  436. Type
  437.  
  438.   { parameter block for MCI_WHERE, MCI_PUT, MCI_FREEZE, MCI_UNFREEZE cmds }
  439.  
  440.   PMCI_DGV_RECT_PARMS = ^TMCI_DGV_RECT_PARMS;
  441.   TMCI_DGV_RECT_PARMS = Record
  442.     dwCallback : Longint;
  443.     Case Integer Of
  444.       0 : (ptOffset, ptExtent : TPoint);
  445.       1 : (rc : TRect);
  446.   End;
  447.  
  448.   { parameter block for MCI_CAPTURE command message }
  449.  
  450.   PMCI_DGV_CAPTURE_PARMS = ^TMCI_DGV_CAPTURE_PARMS;
  451.   TMCI_DGV_CAPTURE_PARMS = Record
  452.     dwCallback    : Longint;
  453.     lpstrFileName : PChar;
  454.     Case Integer Of
  455.       0 : (ptOffset, ptExtent : TPoint);
  456.       1 : (rc : TRect);
  457.   End;
  458.  
  459.   { parameter block for MCI_CLOSE command message }
  460.  
  461.   PMCI_CLOSE_PARMS = ^TMCI_CLOSE_PARMS;
  462.   TMCI_CLOSE_PARMS = TMCI_GENERIC_PARMS;
  463.  
  464.   { parameter block for MCI_COPY command message }
  465.  
  466.   PMCI_DGV_COPY_PARMS = ^TMCI_DGV_COPY_PARMS;
  467.   TMCI_DGV_COPY_PARMS = Record
  468.     dwCallback : Longint;
  469.     dwFrom     : Longint;
  470.     dwTo       : Longint;
  471.     Case Integer Of
  472.       0 : (ptOffset, ptExtent : TPoint);
  473.       1 : (rc : TRect);
  474.   End;
  475.  
  476.   { parameter block for MCI_CUE command message }
  477.  
  478.   PMCI_DGV_CUE_PARMS = ^TMCI_DGV_CUE_PARMS;
  479.   TMCI_DGV_CUE_PARMS = Record
  480.     dwCallback : Longint;
  481.     dwTo       : Longint;
  482.   End;
  483.  
  484.   { parameter block for MCI_CUT command message }
  485.  
  486.   PMCI_DGV_CUT_PARMS = ^TMCI_DGV_CUT_PARMS;
  487.   TMCI_DGV_CUT_PARMS = Record
  488.     dwCallback : Longint;
  489.     dwFrom     : Longint;
  490.     dwTo       : Longint;
  491.     Case Integer Of
  492.       0 : (ptOffset      : TPoint;
  493.            ptExtent      : TPoint;
  494.            dwAudioStream : Longint;
  495.            dwVideoStream : Longint);
  496.       1 : (rc : TRect);
  497.   End;
  498.  
  499.   { parameter block for MCI_DELETE command message }
  500.  
  501.   PMCI_DGV_DELETE_PARMS = ^TMCI_DGV_DELETE_PARMS;
  502.   TMCI_DGV_DELETE_PARMS = Record
  503.     dwCallback : Longint;
  504.     dwFrom     : Longint;
  505.     dwTo       : Longint;
  506.     Case Integer Of
  507.       0 : (ptOffset      : TPoint;
  508.            ptExtent      : TPoint;
  509.            dwAudioStream : Longint;
  510.            dwVideoStream : Longint);
  511.       1 : (rc : TRect);
  512.   End;
  513.  
  514.   { parameter block for MCI_FREEZE command message }
  515.  
  516.   PMCI_DGV_FREEZE_PARMS = ^TMCI_DGV_FREEZE_PARMS;
  517.   TMCI_DGV_FREEZE_PARMS = TMCI_DGV_RECT_PARMS;
  518.  
  519.   { parameter block for MCI_INFO command message }
  520.  
  521.   PMCI_INFO_PARMS = ^TMCI_INFO_PARMS;
  522.   PMCI_DGV_INFO_PARMS = ^TMCI_DGV_INFO_PARMS;
  523.   TMCI_DGV_INFO_PARMS = Record
  524.     dwCallback  : Longint;
  525.     lpstrReturn : PChar;
  526.     dwRetSize   : Longint;
  527.     dwItem      : Longint;
  528.   End;
  529.  
  530.   { parameter block for MCI_LIST command message }
  531.  
  532.   PMCI_DGV_LIST_PARMS = ^TMCI_DGV_INFO_PARMS;
  533.   TMCI_DGV_LIST_PARMS = Record
  534.     dwCallback     : Longint;
  535.     lpstrReturn    : PChar;
  536.     dwLength       : Longint;
  537.     dwNumber       : Longint;
  538.     dwItem         : Longint;
  539.     lpstrAlgorithm : PChar;
  540.   End;
  541.  
  542.   { parameter block for MCI_LOAD command message }
  543.  
  544.   PMCI_DGV_LOAD_PARMS = ^TMCI_DGV_LOAD_PARMS;
  545.   TMCI_DGV_LOAD_PARMS = TMCI_LOAD_PARMS;
  546.  
  547.   { parameter block for MCI_MONITOR command message }
  548.  
  549.   PMCI_DGV_MONITOR_PARMS = ^TMCI_DGV_MONITOR_PARMS;
  550.   TMCI_DGV_MONITOR_PARMS = Record
  551.     dwCallback : Longint;
  552.     dwSource   : Longint;
  553.     dwMethod   : Longint;
  554.   End;
  555.  
  556.   { parameter block for MCI_OPEN command message }
  557.  
  558.   PMCI_DGV_OPEN_PARMS = ^TMCI_DGV_OPEN_PARMS;
  559.   TMCI_DGV_OPEN_PARMS = Record
  560.     dwCallback       : Longint;
  561.     wDeviceID        : Word;
  562.     wReserved0       : Word;
  563.     lpstrDeviceType  : PChar;
  564.     lpstrElementName : PChar;
  565.     lpstrAlias       : PChar;
  566.     dwStyle          : Longint;
  567.     hwndParent       : HWND;
  568.     wReserved1       : Word;
  569.   End;
  570.  
  571.   { parameter block for MCI_PAUSE command message }
  572.  
  573.   PMCI_DGV_PAUSE_PARMS = ^TMCI_DGV_PAUSE_PARMS;
  574.   TMCI_DGV_PAUSE_PARMS = TMCI_GENERIC_PARMS;
  575.  
  576.   { parameter block for MCI_PASTE command message }
  577.  
  578.   PMCI_DGV_PASTE_PARMS = ^TMCI_DGV_PASTE_PARMS;
  579.   TMCI_DGV_PASTE_PARMS = Record
  580.     dwCallback : Longint;
  581.     dwTo       : Longint;
  582.     Case Integer Of
  583.       0 : (ptOffset      : TPoint;
  584.            ptExtent      : TPoint;
  585.            dwAudioStream : Longint;
  586.            dwVideoStream : Longint);
  587.       1 : (rc : TRect);
  588.   End;
  589.  
  590.   { parameter block for MCI_PLAY command message }
  591.  
  592.   PMCI_DGV_PLAY_PARMS = ^TMCI_DGV_PLAY_PARMS;
  593.   TMCI_DGV_PLAY_PARMS = TMCI_PLAY_PARMS;
  594.  
  595.   { parameter block for MCI_PUT command message }
  596.  
  597.    PMCI_DGV_PUT_PARMS = ^TMCI_DGV_PUT_PARMS;
  598.    TMCI_DGV_PUT_PARMS = TMCI_DGV_RECT_PARMS;
  599.  
  600.   { parameter block for MCI_QUALITY command message }
  601.  
  602.   PMCI_DGV_QUALITY_PARMS = ^TMCI_DGV_QUALITY_PARMS;
  603.   TMCI_DGV_QUALITY_PARMS = Record
  604.     dwCallback     : Longint;
  605.     dwItem         : Longint;
  606.     lpstrName      : PChar;
  607.     lpstrAlgorithm : PChar;
  608.     dwHandle       : Longint;
  609.   End;
  610.  
  611.   { parameter block for MCI_REALIZE command message }
  612.  
  613.   PMCI_DGV_REALIZE_PARMS = ^TMCI_DGV_REALIZE_PARMS;
  614.   TMCI_DGV_REALIZE_PARMS = TMCI_GENERIC_PARMS;
  615.  
  616.   { parameter block for MCI_RECORD command message }
  617.  
  618.   PMCI_DGV_RECORD_PARMS = ^TMCI_DGV_RECORD_PARMS;
  619.   TMCI_DGV_RECORD_PARMS = Record
  620.     dwCallback : Longint;
  621.     dwFrom     : Longint;
  622.     dwTo       : Longint;
  623.     Case Integer Of
  624.       0 : (ptOffset      : TPoint;
  625.            ptExtent      : TPoint;
  626.            dwAudioStream : Longint;
  627.            dwVideoStream : Longint);
  628.       1 : (rc : TRect);
  629.   End;
  630.  
  631.   { parameter block for MCI_RESERVE command message }
  632.  
  633.   PMCI_DGV_RESERVE_COMMANDS = ^TMCI_DGV_RESERVE_COMMANDS;
  634.   TMCI_DGV_RESERVE_COMMANDS = Record
  635.     dwCallback : Longint;
  636.     lpstrPath  : PChar;
  637.     dwSize     : Longint;
  638.   End;
  639.  
  640.   { parameter block for MCI_RESTORE command message }
  641.  
  642.   PMCI_DGV_RESTORE_PARMS = ^TMCI_RESTORE_PARMS;
  643.   TMCI_RESTORE_PARMS = Record
  644.     dwCallback : Longint;
  645.     Case Integer Of
  646.       0 : (ptOffset, ptExtent : TPoint);
  647.       1 : (rc : TRect);
  648.   End;
  649.  
  650.   { parameter block for MCI_RESUME command message }
  651.  
  652.   PMCI_DGV_RESUME_PARMS = ^TMCI_DGV_RESUME_PARMS;
  653.   TMCI_DGV_RESUME_PARMS = TMCI_GENERIC_PARMS;
  654.  
  655.   { parameter block for MCI_SAVE command message }
  656.  
  657.   PMCI_DGV_SAVE_PARMS = ^TMCI_DGV_SAVE_PARMS;
  658.   TMCI_DGV_SAVE_PARMS = Record
  659.     dwCallback    : Longint;
  660.     lpstrFilename : PChar;
  661.     rc            : TRect;
  662.   End;
  663.  
  664.   { parameter block for MCI_SET command message }
  665.  
  666.   PMCI_DGV_SET_PARMS = ^TMCI_DGV_SET_PARMS;
  667.   TMCI_DGV_SET_PARMS = Record
  668.     dwCallback   : Longint;
  669.     dwTimeFormat : Longint;
  670.     dwAudio      : Longint;
  671.     dwFileFormat : Longint;
  672.     dwSpeed      : Longint;
  673.   End;
  674.  
  675.   { parameter block for MCI_SETAUDIO command message }
  676.  
  677.   PMCI_DGV_SETAUDIO_PARMS = ^TMCI_DGV_SETAUDIO_PARMS;
  678.   TMCI_DGV_SETAUDIO_PARMS = Record
  679.     dwCallback     : Longint;
  680.     dwItem         : Longint;
  681.     dwValue        : Longint;
  682.     dwOver         : Longint;
  683.     lpstrAlgorithm : PChar;
  684.     lpstrQuality   : PChar;
  685.   End;
  686.  
  687.   { parameter block for MCI_SIGNAL command message }
  688.  
  689.   PMCI_DGV_SIGNAL_PARMS = ^TMCI_DGV_SIGNAL_PARMS;
  690.   TMCI_DGV_SIGNAL_PARMS = Record
  691.     dwCallback : Longint;
  692.     dwPosition : Longint;
  693.     dwPeriod   : Longint;
  694.     dwUserParm : Longint;
  695.   End;
  696.  
  697.   { parameter block for MCI_SETVIDEO command message }
  698.  
  699.   PMCI_DGV_SETVIDEO_PARMS = ^TMCI_DGV_SETVIDEO_PARMS;
  700.   TMCI_DGV_SETVIDEO_PARMS = Record
  701.     dwCallback     : Longint;
  702.     dwItem         : Longint;
  703.     dwValue        : Longint;
  704.     dwOver         : Longint;
  705.     lpstrAlgorithm : PChar;
  706.     lpstrQuality   : PChar;
  707.     dwSourceNumber : Longint;
  708.   End;
  709.  
  710.   { parameter block for MCI_STATUS command message }
  711.  
  712.   PMCI_DGV_STATUS_PARMS = ^TMCI_DGV_STATUS_PARMS;
  713.   TMCI_DGV_STATUS_PARMS = Record
  714.     dwCallback  : Longint;
  715.     dwReturn    : Longint;
  716.     dwItem      : Longint;
  717.     dwTrack     : Longint;
  718.     lpstrDrive  : PChar;
  719.     dwReference : Longint;
  720.   End;
  721.  
  722.   { parameter block for MCI_STEP command message }
  723.  
  724.   PMCI_DGV_STEP_PARMS = ^TMCI_DGV_STEP_PARMS;
  725.   TMCI_DGV_STEP_PARMS = Record
  726.     dwCallback : Longint;
  727.     dwFrames   : Longint;
  728.   End;
  729.  
  730.   { parameter block for MCI_STOP command message }
  731.  
  732.   PMCI_DGV_STOP_PARMS = ^TMCI_DGV_STOP_PARMS;
  733.   TMCI_DGV_STOP_PARMS = TMCI_GENERIC_PARMS;
  734.  
  735.   { parameter block for MCI_UNFREEZE command message }
  736.  
  737.   PMCI_DGV_UNFREEZE_PARMS = ^TMCI_DGV_UNFREEZE_PARMS;
  738.   TMCI_DGV_UNFREEZE_PARMS = TMCI_DGV_RECT_PARMS;
  739.  
  740.   { parameter block for MCI_UPDATE command message }
  741.  
  742.   PMCI_DGV_UPDATE_PARMS = ^TMCI_DGV_UPDATE_PARMS;
  743.   TMCI_DGV_UPDATE_PARMS = Record
  744.     dwCallback : Longint;
  745.     dwFrom     : Longint;
  746.     dwTo       : Longint;
  747.     Case Integer Of
  748.       0 : (ptOffset      : TPoint;
  749.            ptExtent      : TPoint;
  750.            hDC           : HDC;
  751.            wReserved0    : Word);
  752.       1 : (rc : TRect);
  753.   End;
  754.  
  755.   { parameter block for MCI_WHERE command message }
  756.  
  757.   PMCI_DGV_WHERE_PARMS = ^TMCI_DGV_WHERE_PARMS;
  758.   TMCI_DGV_WHERE_PARMS = TMCI_DGV_RECT_PARMS;
  759.  
  760.   { parameter block for MCI_WINDOW command message }
  761.  
  762.   PMCI_DGV_WINDOW_PARMS = ^TMCI_DGV_WINDOW_PARMS;
  763.   TMCI_DGV_WINDOW_PARMS = Record
  764.     dwCallback : Longint;
  765.     hWnd       : HWND;
  766.     wReserved1 : Word;
  767.     nCmdShow   : Word;
  768.     wReserved2 : Word;
  769.     lpstrText  : PChar;
  770.   End;
  771.  
  772. Const
  773.  
  774.   { Play command flags }
  775.  
  776.   MCI_MCIAVI_PLAY_WINDOW         = $01000000;
  777.   MCI_MCIAVI_PLAY_FULLSCREEN         = $02000000;
  778.   MCI_MCIAVI_PLAY_FULLBY2         = $04000000;
  779.  
  780.   { Debugging constants for AVI diagnostics }
  781.  
  782.   MCI_AVI_STATUS_FRAMES_SKIPPED         = $8001;
  783.   MCI_AVI_STATUS_LAST_PLAY_SPEED     = $8002;
  784.   MCI_AVI_STATUS_AUDIO_BREAKS         = $8003;
  785.  
  786.   { Custom error return values }
  787.  
  788.   MCIERR_AVI_OLDAVIFORMAT         = MCIERR_CUSTOM_DRIVER_BASE+100;
  789.   MCIERR_AVI_NOTINTERLEAVED         = MCIERR_CUSTOM_DRIVER_BASE+101;
  790.   MCIERR_AVI_NODISPDIB             = MCIERR_CUSTOM_DRIVER_BASE+102;
  791.   MCIERR_AVI_CANTPLAYFULLSCREEN         = MCIERR_CUSTOM_DRIVER_BASE+103;
  792.   MCIERR_AVI_TOOBIGFORVGA         = MCIERR_CUSTOM_DRIVER_BASE+104;
  793.   MCIERR_AVI_NOCOMPRESSOR            = MCIERR_CUSTOM_DRIVER_BASE+105;
  794.   MCIERR_AVI_DISPLAYERROR            = MCIERR_CUSTOM_DRIVER_BASE+106;
  795.   MCIERR_AVI_AUDIOERROR             = MCIERR_CUSTOM_DRIVER_BASE+107;
  796.   MCIERR_AVI_BADPALETTE             = MCIERR_CUSTOM_DRIVER_BASE+108;
  797.  
  798. Implementation
  799.  
  800. End.
  801.