home *** CD-ROM | disk | FTP | other *** search
/ ftp.microsoft.com / 2002-07-02_ftp.microsoft.com.zip / developr / drg / Multimedia / Jumpstart / VfW11e / DK / DEV_KIT.TXT next >
Text File  |  1994-09-02  |  45KB  |  1,291 lines

  1. ****************************************************************
  2.  
  3.              DEV_KIT.TXT
  4.               
  5.            VIDEO FOR WINDOWS DEVELOPMENT KIT
  6.  
  7. ****************************************************************
  8.  
  9. CONTENTS
  10. ========
  11.  
  12. 1. INSTALLATION NOTES
  13. 2. CONTENTS OF THE VIDEO FOR WINDOWS DEVELOPMENT KIT
  14. 3. ONLINE DOCUMENTATION
  15. 4. USING AUDIO COMPRESSION MANAGER HELP TOPICS
  16. 5. VIDTEST APPLICATION
  17. 6. DISTRIBUTION OF RUNTIME FILES
  18. 7. DISTRIBUTION OF THIRD-PARTY FILES
  19. 8. KNOWN PROBLEMS OR ERRORS
  20. 9. UPDATES TO THE PROGRAMMER'S GUIDE
  21.  
  22.  
  23. 1. INSTALLATION NOTES
  24. =====================
  25. Use the following procedure when installing the Video 
  26. for Windows 1.1 software:
  27.  
  28. 1. Run the Setup program in the \WINVIDEO directory of the 
  29.    development kit disc. This installs the Video for Windows 
  30.    runtime and tools on your system.
  31.  
  32. 2. Run the Setup program in the \VFWDK directory of the 
  33.    development kit disc. This installs the development 
  34.    files on your system.
  35.  
  36. For information on using the capture and editing tools, 
  37. refer to the individual applications' Help files.
  38.  
  39. SETTING UP A DEVELOPMENT SYSTEM
  40. -------------------------------
  41.  
  42. Required Programming Tools
  43. --------------------------
  44. Microsoft C 7.0 or later is required for building the 
  45. C and C++ samples.
  46.  
  47. Microsoft MASM 5.1 is required for building the assembly 
  48. language modules.
  49.  
  50. To edit the Visual Basic samples, you must have Visual 
  51. Basic version 2.0 or later. The custom controls (VBX) 
  52. included with the development kit are compatible with 
  53. Visual Basic 1.0 (as well as Visual C++). 
  54.  
  55. Setting Environment Variables
  56. -----------------------------
  57. The Video for Windows development kit includes header 
  58. and library files needed when using the Video for Window 
  59. programming interfaces. To reference these required 
  60. files, modify your INCLUDE, LIB, and PATH environment
  61. variables as follows:
  62.  
  63. * The INCLUDE variable must reference the INC subdirectory 
  64.   of the development kit directory.
  65.  
  66. * The LIB variable must reference the LIB subdirectory 
  67.   of the development kit directory.
  68.  
  69. In addition, to run the compiled sample files included 
  70. with the development kit, you should modify your PATH 
  71. environment variable to reference the BIN subdirectory 
  72. of the development kit directory.
  73.  
  74. For example, assuming the development kit is installed 
  75. in the default C:\VFWDK directory, you can set the 
  76. environment variables as follows:
  77.  
  78. SET INCLUDE=C:\VFWDK\INC;[previous include line]
  79. SET LIB=C:\VFWDK\LIB;[previous lib line]
  80. SET PATH=C:\VFWDK\BIN;[previous path line]
  81.  
  82. Reading AWM Files Using the Gold Disk File Handler
  83. --------------------------------------------------
  84. To read AWM files using the Gold Disk file handler, 
  85. carry out the following procedure:
  86.  
  87. 1. Add AWMFILE.REG to the registry. To do so, start 
  88.    REGEDIT.EXE, and choose Merge Registration File from 
  89.    the File menu. Choose the AWMFILE.REG file, which is 
  90.    contained in the MISC directory.
  91.  
  92. 2. Make sure the AWMFILE.DLL, AWMFILE2.DLL, and 
  93.    AWMFILE3.TSK files are contained in the SYSTEM directory 
  94.    of your Windows directory.
  95.  
  96. 3. In your WIN.INI file, add the following line to 
  97.    the [MCI EXTENSIONS] section:
  98.  
  99.    awmfile=AVIVideo
  100.  
  101. To play AWM files using MPlayer or any AVI player:
  102.  
  103. 1. Run REGEDIT with the /v switch and choose Add Key from 
  104.    the Edit menu. Specify .AWM for the key and MPlayer 
  105.    for the value.
  106.  
  107.  
  108. 2. CONTENTS OF THE VIDEO FOR WINDOWS DEVELOPMENT KIT
  109. ====================================================
  110.  
  111. DIRECTORIES ON THE CD
  112. ---------------------
  113. The Video for Windows disc includes the following 
  114. directories:
  115.  
  116. Directory       Contents
  117. ---------       -------------------------------------------
  118. MULTILNG        Contains a sample AVI file with multiple
  119.         audio streams. Media Player or any other 
  120.         AVI player can play the English audio track.
  121.         Use the sample application LangPlay to play
  122.         it with the other audio tracks. (Setup will
  123.         add a LangPlay icon to your VFW 1.1 DK 
  124.         Program Manager group.)
  125.  
  126. RUNTIME         Contains the files needed to play back 
  127.         Video for Windows clips. These files 
  128.         include the set of drivers, DLLs, and 
  129.         applications that are installed on an 
  130.         end-user's system. This directory also 
  131.         includes the source files for the
  132.         runtime setup application.
  133.  
  134. VFWDK           Contains the Video for Windows development 
  135.         kit.
  136.  
  137. WINVIDEO        Contains the Video for Windows runtime and 
  138.         tools (video capture and editing).
  139.  
  140.  
  141. DIRECTORIES INSTALLED ON YOUR SYSTEM
  142. ------------------------------------
  143. By default, the Setup routine for the Video for Windows 
  144. runtime and tools creates a C:\WINVIDEO directory on your 
  145. system. This directory contains VidCap and VidEdit. The 
  146. Video for Windows runtime files are installed in your 
  147. Windows SYSTEM directory.
  148.  
  149. By default, the Setup routine for the development kit 
  150. creates a C:\VFWDK directory on your system. This directory 
  151. contains the following subdirectories:
  152.  
  153. Subdirectory    Contents
  154. ------------    -------------------------------------------
  155. ACMHELP         Contains ACM help files that you can build 
  156.         into your application's help file. For more 
  157.         information, see section 4, USING AUDIO 
  158.         COMPRESSION MANAGER HELP TOPICS.
  159.  
  160. BIN             Contains compiled versions of the 
  161.         programming samples, along with system 
  162.         files (VBX, DLL) required to run the samples.
  163.  
  164. DOC             Contains a Microsoft Multimedia Viewer 
  165.         title, the Programmer's Guide. Also 
  166.         contains documentation on custom stream 
  167.         handlers. For more information on the
  168.         Programmer's Guide, see section 3, ONLINE 
  169.         DOCUMENTATION.
  170.  
  171. TOOLS           Contains the following useful tools:
  172.  
  173.         * RIFFWALK, an MS-DOS utility that displays 
  174.           the contents of a RIFF file, with special
  175.           support for AVI and WAV files. Type 
  176.           RIFFWALK -f [filename] to  display AVI or
  177.           WAV headers. Type RIFFWALK to display the
  178.           program's full syntax and parameters.
  179.  
  180.         * UUIDGEN, an MS-DOS OLE 2.0 utility that
  181.           generates globally unique IDs for AVIFile
  182.           handlers.
  183.  
  184.         * DDTEST, a Windows application for testing
  185.           DrawDib functions, display drivers, and 
  186.           installable video codecs.
  187.  
  188.         The DEBUG subdirectory contains debugging
  189.         versions of MSVIDEO.DLL, MSVIDEO.SYM, 
  190.         MSACM.DLL and MSACM.SYM.
  191.  
  192. INC             Contains C header files.
  193.  
  194. LIB             Contains C import libraries.
  195.  
  196. MISC            Contains drivers, custom controls, and
  197.         other useful utilities for Video for
  198.         Windows developers. For information on the
  199.         contents of this directory, see CONTENTS 
  200.         OF THE MISC DIRECTORY below.
  201.  
  202. SAMPLES         Contains a series of programming samples.
  203.         For information on the samples, see 
  204.         SAMPLE APPLICATIONS below.
  205.  
  206.  
  207. CONTENTS OF THE MISC DIRECTORY
  208. ------------------------------
  209. The MISC subdirectory of the Video for Windows development
  210. kit contains a collection of drivers, custom controls, 
  211. file handlers, and other useful tools. The following 
  212. sections describe these files.
  213.  
  214.  
  215. MCI Drivers
  216. -----------
  217. The MISC directory includes the following MCI drivers,
  218. which you can install using the Drivers option of the 
  219. Control Panel.
  220.  
  221. Driver          Description
  222. ------------    --------------------------------------
  223. MCIPIONR.DRV    MCI driver for the Pioneer laserdisc 
  224.         player.
  225.  
  226. MCIPANAS.DRV    MCI driver for the Panasonic laserdisc 
  227.         player.
  228.  
  229. MCIVISCA.DRV    MCI drivers for Sony VISCA devices (VCRs).
  230.         For more information about this driver, 
  231.         consult the documentation for the 
  232.         development kit.
  233.  
  234. To install these drivers, use the Drivers option of the 
  235. Control Panel for adding an unlisted or updated driver.
  236.  
  237.  
  238. Visual Basic Custom Controls
  239. ----------------------------
  240. The MISC directory contains the following Visual Basic 
  241. custom controls (VBXs):
  242.  
  243. Control         Description
  244. ------------    -------------------------------------------
  245. MCIWNDX.VBX     Custom control for playing MCI devices. 
  246.         Provides better support for windowed video 
  247.         devices than the MCI.VBX included with 
  248.         Visual Basic.
  249.  
  250. CAPWNDX.VBX     Custom control for capturing AVI sequences.
  251.  
  252. These custom controls support Visual Basic versions 1.0 
  253. through 3.0, as well as Microsoft Visual C++. For more 
  254. information on these custom controls, consult the 
  255. documentation for the development kit.
  256.  
  257.  
  258. MCI Command Tables
  259. ------------------
  260. The MISC directory contains the following Media Control 
  261. Interface (MCI) command tables:
  262.  
  263. File            Description
  264. ----            -------------------------------------------
  265. DIGITALV.MCI    MCI command-table resource for digital 
  266.         video devices.
  267.  
  268. DIGITALV.RC     Resource script for using the digital video
  269.         command table in a digital-video MCI driver.
  270.  
  271. VCR.MCI         MCI command-table resource for VCR devices.
  272.  
  273. VCR.RC          Resource script for using the VCR command 
  274.         table in a VCR MCI driver.
  275.  
  276.  
  277. File Handlers Used with AVIFile
  278. -------------------------------
  279. The MISC directory contains the following file handlers 
  280. which are used as part of the AVIFile interfaces:
  281.  
  282. File            Description
  283. ----            -------------------------------------------
  284. AWMFILE.DLL     Animation Works Interactive file handler.
  285. AWMFILE.REG     These files are developed and supported by
  286. AWMFILE2.DLL    Gold Disk.
  287. AWMFILE3.TSK
  288.  
  289. FLIFILE.DLL     File handler for Autodesk Animator files.
  290.  
  291.  
  292. SAMPLE APPLICATIONS
  293. -------------------
  294. The development kit includes the following programming
  295. samples:
  296.  
  297. Sample          Description
  298. ---------       -------------------------------------------
  299. ACMAPP          Displays wave file format, and plays, 
  300.         records, and converts wave files.
  301.  
  302. AVICLIP         Reads frame data and copies it onto 
  303.         the Clipboard.
  304.  
  305. AVIEDIT         Simple AVI editing application using the 
  306.         editing APIs in AVIFile.
  307.  
  308. AVIVIEW         Simple AVI viewing application using the 
  309.         read/write APIs in      AVIFile.
  310.  
  311. BRAVADO         Sample capture driver for the Truevision 
  312.         Bravado board.
  313.  
  314. CAPCPP          Sample Visual C++ capture application that
  315.         uses the AVICap capture window class and 
  316.         MCIWnd window class for playback.
  317.  
  318. CAPTEST         Sample capture application that uses the 
  319.         AVICap capture window class.
  320.  
  321. DSEQFILE        AVIFile file handler for DIB sequences. 
  322.         Implemented in C++.
  323.  
  324. ICMAPP          Shows how to call the ICM APIs.
  325.  
  326. ICSAMPLE        Sample of an installable compressor. Good 
  327.         starting point for creating a codec.
  328.  
  329. ICWALK          Sample application that shows all the 
  330.         codecs installed on the system. Uses the
  331.         ICM APIs.
  332.  
  333. IMAADPCM        Sample ACM codec driver.
  334.  
  335. LANGPLAY        Plays back multi-audio stream AVI files.
  336.  
  337. MCIPLAY         Simple video playback application. 
  338.         Uses MCIWnd.
  339.  
  340. MCIPUZZL        Application lets you make a 15-square
  341.         puzzle of a playing video sequence. Shows
  342.         how to use installable draw procedures.
  343.  
  344. MCIVISCA        Sample MCI driver for the VCR command set.
  345.  
  346. MOVPLAY         Simple application for playing movies using
  347.         MCI. Builds two versions, one using 
  348.         mciSendCommand and another
  349.         using mciSendString.
  350.  
  351. MPLAY           Simple AVI playback application. Includes 
  352.         a subset of the features in Media Player 
  353.         and uses the MCIWnd window class.
  354.  
  355. MSFILTER        Audio filter for ACM.
  356.  
  357. MSRLEC          Example of an installable compressor.
  358.         Uses the RLE compression technique.
  359.  
  360. PALMAP          Stream handler that translates video
  361.         streams into new streams of a different
  362.         bit depth--for example, it can  translate 
  363.         from 24-bit to 8-bit.
  364.  
  365. TXTOUT          Text stream draw renderer for rendering 
  366.         text data in AVI files.
  367.  
  368. VBCAPTST        Sample capture application implemented 
  369.         using Visual Basic      and the CAPWNDX.VBX 
  370.         custom control.
  371.  
  372. VBMCITST        Sample playback application implemented 
  373.         using Visual Basic      and the MCIWNDX.VBX
  374.         custom control.
  375.  
  376. WAVEFILE        Sample AVIFile file handler for waveform
  377.         audio files. 
  378.  
  379. WRITEAVI        Example showing how to use the AVIFILE 
  380.         interface to write files such as those 
  381.         that AVIView reads.
  382.  
  383.  
  384. 3. ONLINE DOCUMENTATION
  385. =======================
  386.  
  387. Programming documentation for the development kit is
  388. provided in a Microsoft Multimedia Viewer title, the 
  389. Programmer's Guide.
  390.  
  391. The Setup routine for the development kit installs an icon
  392. for this title in Program Manager, in the Video for Windows
  393. 1.1 DK group. For information on browsing the titles, 
  394. see the following sections.
  395.  
  396. Navigating Through the Table of Contents
  397. ----------------------------------------
  398. At any time, you can return to the opening screen: just
  399. choose the Contents button.
  400.  
  401. From the opening screen, click on one of the headings 
  402. to display a table of contents for that topic.
  403.  
  404. From the topic table of contents, click a name 
  405. to display a list of subtopics. Then click
  406. on a subtopic name to display the information.
  407.  
  408. To move up one level in the hierarchy, choose the Up
  409. button.
  410.  
  411. Navigating Among Topics 
  412. -----------------------
  413. To move from topic to topic, choose the browse left << and
  414. browse right >> buttons.
  415.  
  416. To display a list of related topics, choose the See Also
  417. button. Then, click a topic name to jump to that topic.
  418.  
  419. To return to the last topic viewed, choose the Go Back
  420. button.
  421.  
  422. To display a list of topics viewed, choose the History
  423. button. You can double-click a topic name to jump to that
  424. topic.
  425.  
  426. Displaying an Index of API Elements
  427. -----------------------------------
  428. To display a list of all functions, messages, and data 
  429. structures, choose the Index button. To jump to the topic,
  430. double-click the API element name. You can scroll the API
  431. list or type a partial API name in the dialog box.
  432.  
  433. Searching the Title
  434. -------------------
  435. To perform a full-text search on the title, use the
  436. following procedure:
  437.  
  438. 1. Choose the Search button.
  439.  
  440. 2. In Search by Word, type the word or phrase you're
  441.    looking for.
  442.  
  443.    For information on using wildcards, Boolean operators,
  444.    and phrases, choose the Hints button.
  445.  
  446. 3. Choose OK.
  447.  
  448. 4. A Search Results window is displayed listing the results
  449.    of the search. To jump to a found topic, select the 
  450.    topic name, then choose the Go To button.
  451.  
  452.  
  453. 4. USING AUDIO COMPRESSION MANAGER HELP TOPICS
  454. ==============================================
  455. Setup installs the Audio Compression Manager help files
  456. in the ACMHELP directory. The help project file is 
  457. ACMHELP.HPJ, and the RTF source files are ACMHELP.RTF, 
  458. FILTSRC.RTF, and CHOOSSRC.RTF. The ACMHELP.RTF file 
  459. contains information on using the help topics. The 
  460. FILTSRC.RTF and CHOOSSRC.RTF files contain the help 
  461. information for the filter and chooser topics.
  462.  
  463. You can use the RTF help topics in your application's help
  464. file. For example, you could include the three RTF files
  465. under the [FILES] entry in your application's help project
  466. file. That way, ACM help topics will be built into your
  467. application's help file when you compile it.   
  468.  
  469. 5. VIDTEST APPLICATION
  470. ======================
  471.  
  472. The Samples disc includes a multimedia performance testing
  473. application called VidTest. You can use VidTest to test the
  474. performance of multimedia components on your system, 
  475. including the CD-ROM drive, audio hardware, and video
  476. hardware. To allow your customers to obtain useful metrics
  477. on the performance of their multimedia systems, you can 
  478. distribute the VidTest application with your product. 
  479.  
  480. VidTest only works with this version (1.1) of Video for
  481. Windows. It does not work with Video for Windows 1.0.
  482.  
  483.  
  484. LOCATION OF VIDTEST
  485. -------------------
  486. VidTest is located on the Video for Windows Samples disc, 
  487. in the \VIDTEST directory. The application includes a set
  488. of sample AVI and files which are stored in the same
  489. directory.
  490.  
  491.  
  492. RUNNING VIDTEST
  493. ---------------
  494. You can run VidTest directly from the Samples disc. Use 
  495. Program Manager or File Manager to start VIDTEST.EXE from
  496. the \VIDTEST directory. For information on using the
  497. application, choose the Help button.
  498.  
  499.  
  500. DISTRIBUTING VIDTEST
  501. --------------------
  502. If you distribute VidTest with your product, you can use
  503. one of the following setup options:
  504.  
  505. * You can leave VidTest (and the its sample files)
  506.   on your distribution disc. Your users can run VidTest
  507.   directly from the disc, in the same way you can run 
  508.   VidTest from the Video for Windows samples disc.
  509.  
  510. * You can install VidTest (and, optionally, the 
  511.   accompanying sample files) on your user's system.
  512.  
  513.  
  514. Leaving VidTest on the Distribution Disc
  515. ----------------------------------------
  516. With this option, you must create a directory on your 
  517. distribution disc containing the same set of files 
  518. stored in the \VIDTEST directory on the Video for Windows
  519. sample disc. No further modifications are needed.
  520.  
  521.  
  522. Installing VidTest on the User's System
  523. ---------------------------------------
  524. If you install VidTest on your user's system, you must make
  525. the necessary changes to your Setup routine to install the
  526. files. You can install the complete set of VidTest files 
  527. on the user's system, or you can just install the following
  528. files:
  529.  
  530. * VIDTEST.EXE
  531. * VIDTEST.HLP
  532. * PERFTEST.DLL
  533. * VIDTEST.INI
  534.  
  535. In either case, you must make the following changes to the
  536. VIDTEST.INI file:
  537.  
  538. * In the VOLUMELABLE= entry, enter the label of the disk on
  539.   which the sample AVI and WAV files are stored.
  540.  
  541. * In the VOLUMENAME= entry, enter the name of the disc.
  542.   This text is displayed in a prompt if VidTest fails to 
  543.   find the specified disc.
  544.  
  545. * In the file= entries (rlefile=, msvc8file=, msvc16file=,
  546.   indeofile=, and cinepakfile=), change the value to 
  547.   specify the full path name (without the drive letter) for
  548.   the sample AVI files used with VidTest. For example, if 
  549.   you place the VidTest samples in a TESTFILE directory, 
  550.   your RLEFILE= entry would read as follows:
  551.  
  552.   rlefile=\testfile\rlefile.avi
  553.  
  554. When searching for the VIDTEST.INI file, VidTest first 
  555. looks in the directory containing VIDTEST.EXE. If the
  556. VIDTEST.INI file is not there, VidTest looks in the Windows
  557. directory. You should install VIDTEST.INI in the same 
  558. directory as VIDTEST.EXE.
  559.  
  560.  
  561. 6. DISTRIBUTION OF RUNTIME FILES
  562. ================================
  563.  
  564. The RUNTIME directory on the Video for Windows development
  565. kit CD contains the complete Video for Windows runtime
  566. files. You may distribute the runtime files with your 
  567. product. 
  568.  
  569.  
  570. CONTENTS OF THE RUNTIME DIRECTORY
  571. ---------------------------------
  572.  
  573. The RUNTIME directory contains the following subdirectories:
  574.  
  575. Subdirectory    Description
  576. ------------    -------------------------------------------
  577. DISKS           Contains disk images of the runtime files.
  578.         The DISKS subdirectory contains USA, FRN, 
  579.         and GER subdirectories containing the 
  580.         English, French, and German versions of
  581.         the runtime files. 
  582.         
  583.  
  584. SETUPSRC        Contains the source files for the runtime
  585.         setup application. Using the Setup Toolkit
  586.         included with the Microsoft Windows 
  587.         Software Development Kit, you can modify 
  588.         these source files to customize Setup to
  589.         install your own product along with the 
  590.         Video for Windows runtime.
  591.  
  592.  
  593. USING THE DISK IMAGES
  594. ---------------------
  595.  
  596. You can use the disk images in the DISKS subdirectory to
  597. create a Video for Windows setup disk to distribute with
  598. your product. Simply copy the contents of the appropriate
  599. DISK1 subdirectory to your Video for Windows setup disk. 
  600.  
  601.  
  602. CUSTOMIZING THE RUNTIME SETUP PROGRAM
  603. -------------------------------------
  604.  
  605. The SETUPSRC directory contains the source files for the
  606. Video for Windows Setup program. Using the Setup Toolkit
  607. included with the Microsoft Windows 3.1 SDK, you can modify
  608. the Setup script and layout to accommodate your own 
  609. product files. For example, you can create an integrated
  610. Setup program that installs  your hardware specific drivers
  611. along with the Video for Windows files. To customize Setup,
  612. you must become familiar with the Setup Toolkit; for 
  613. additional information, see the Setup Toolkit for Windows 
  614. manual in the Windows 3.1 SDK. The SETUPSRC directory 
  615. contains the following items:
  616.  
  617. Contents        Description
  618. --------        -----------
  619. MKRTIME.BAT     Batch file that compresses all files and 
  620.         creates a series of disk images in the 
  621.         DISKS subdirectory. Before running 
  622.         MKRTIME.BAT, you must follow the 
  623.         procedure described later in this section.
  624.  
  625. FILES           Subdirectory containing the uncompressed 
  626.         Video for Windows files. Add your own files 
  627.         to this subdirectory.
  628.  
  629. LAYOUT          Subdirectory containing the SETUP.LYT 
  630.         file. This file describes the attributes 
  631.         of the files stored in the FILES
  632.         subdirectory. The disk-layout utility
  633.         included with the Setup Toolkit uses this
  634.         file. For each file you add to the FILES 
  635.         subdirectory you must make a corresponding 
  636.         entry in the SETUP.LYT file. For 
  637.         information on layout files, see the 
  638.         documentation for the Setup Toolkit.
  639.  
  640. SCRIPT          Subdirectory containing the setup script
  641.         file SETUP.MST. If you add files to the
  642.         FILES subdirectory, use the SETUP.MST file
  643.         to tell Setup when and where to copy the
  644.         files on the end user's machine (using the 
  645.         AddSectionFilesToCopyList function). The 
  646.         SETUP.MST file also tells SETUP what 
  647.         changes (if any) to make to the WIN.INI 
  648.         and SYSTEM.INI files.
  649.  
  650. To customize a Setup script:
  651.  
  652. 1. Obtain the Setup Toolkit and read the accompanying
  653.    documentation. Make sure that both DSKLAYT.EXE and
  654.    DSKLAYT2.EXE are in your path.
  655.  
  656. 2. Use the MS-DOS XCOPY command to copy the SETUPSRC
  657.    directory and all its subdirectories to your hard disk.
  658.     
  659. 3. Copy your product files to the FILES subdirectory. The
  660.    Video for Windows runtime files are already in this
  661.    subdirectory.
  662.  
  663. 4. Run the DSKLAYT.EXE program and load the SETUP.LYT file
  664.    from the LAYOUT subdirectory. Enter in the Source
  665.    Directory dialog box the full path to location of your 
  666.    files. Then add entries for your product files by
  667.    selecting filenames from the Source Directory list and
  668.    selecting other options from lists in the dialog box.
  669.  
  670. 5. If necessary, modify the setup script file stored in
  671.    the SCRIPT subdirectory. 
  672.  
  673. 6. Run MKRTIME.BAT. This batch file compresses the files in
  674.    the FILES subdirectory and creates a COMP temporary 
  675.    directory with the compressed files and a DISK directory
  676.    containing the disk images. 
  677.  
  678. Once you've finished editing your setup script, test it
  679. thoroughly, varying the installation options and system
  680. configurations. You can verify results of the setup by
  681. examining contents of the target directories for a 
  682. correct set of files (with correct date and time stamps)
  683. and by checking the WIN.INI and SYSTEM.INI files for
  684. correct alterations.
  685.  
  686. After you successfully complete your tests, create your
  687. master disks by copying the disk images to floppy disks.
  688.  
  689. 7. DISTRIBUTION OF THIRD-PARTY FILES
  690. ====================================
  691.  
  692. The MISC directory of the Video for Windows Development
  693. Kit contains the Panasonic laser disc driver MCIPANAS.DRV.
  694. Panasonic developed and provided this driver for use with
  695. this version of the Development Kit.  For support or
  696. distribution rights to the driver, please contact:
  697.  
  698. Panasonic Technical Support:
  699. 201-392-4357
  700. Outside of New Jersey:  1-800-524-1448
  701. Inside of New Jersey:   1-800-624-1746
  702.  
  703. The MISC directory contains the following Gold Disk file
  704. handlers: AWMFILE.DLL, AWMFILE.REG, AWMFILE2.DLL,
  705. AWMFILE3.TSK. Gold Disk developed and provided these files
  706. for use with this version of the Development Kit. Please 
  707. see the GOLDDISK.TXT for specific licensing information.
  708. For support or distribution rights to the driver, please
  709. contact:
  710.  
  711. Gold Disk Technical Support:
  712. 905-602-5292
  713. 5155 Spectrum Way
  714. Building 5
  715. Mississauga, ON L4W5A1
  716.  
  717.  
  718. 8. KNOWN PROBLEMS OR ERRORS 
  719. ===========================
  720.  
  721. 1. If you send data through the wave mapper with a mapped
  722.    format and with looping enabled, the looping is still
  723.    ignored.
  724.  
  725. 2. This version of the Video for Windows Development Kit
  726.    includes IMA ADPCM codec version 2.2. Although waveform 
  727.    audio files created with previous versions of Microsoft's
  728.    IMA ADPCM codec will be recognized by this new release, 
  729.    the decompression of older files will not be performed 
  730.    correctly. A common symptom of an incompatible waveform 
  731.    audio file is a "popping" sound during playback. If you 
  732.    notice the "popping" sound during playback, please 
  733.    recompress the original uncompressed source file with 
  734.    this new release of the IMA ADPCM codec.
  735.  
  736. 3. In the sample code found in the ACMAPP example, 
  737.    there is a discrepancy between the user interface
  738.    and the code to implement these features. The dialog 
  739.    box for the ACM Drivers command on the View menu does 
  740.    not implement the Filters button correctly. Also, the 
  741.    dialog box for Formats does not implement the Details
  742.    button correctly.
  743.  
  744. 4. Versions of ATI's video accelerator prior to 2.1 do not
  745.    work well with Video for Windows version 1.1. Installing 
  746.    the accelerator software after installing Video for 
  747.    Windows can overwrite Video for Windows version 1.1 
  748.    components with components from the previous version.
  749.    Avoid installing any version of the video accelerator 
  750.    unless it is specifically noted to be compatible 
  751.    with Video for Windows version 1.1.
  752.  
  753.    The vidc.rlec=ativdacc.drv entry in the [installable 
  754.    compressors] section of the SYSTEM.INI file can cause
  755.    problems when playing large RLE-compressed movies. 
  756.    Remove this entry from the SYSTEM.INI file.
  757.  
  758.    For update drivers, contact ATI Technologies Inc.
  759.  
  760.  
  761. 9. UPDATES TO THE PROGRAMMER'S GUIDE
  762. ====================================
  763.  
  764. The following information updates the information in the 
  765. Video for Windows Programmer's Guide.
  766.  
  767. WORKING WITH THE DRAWDIB FUNCTIONS
  768. ----------------------------------
  769.  
  770. 1. DrawDibBegin/DrawDibEnd
  771.  
  772.    DrawDib changes the state of the DDF_ANIMATE flag only
  773.    if other parameters change for the DrawDibBegin 
  774.    function. To make sure that DrawDib uses the state you
  775.    want, reset the state of the DDF_ANIMATE flag with 
  776.    DrawDibEnd and use DrawDibBegin to specify the desired
  777.    state.
  778.  
  779. 2. DrawDibDraw
  780.  
  781.    When  you call DrawDibDraw, use the biSizeImage member 
  782.    of the BITMAPINFOHEADER structure to specify the number
  783.    of bytes contained in the image data pointed to by 
  784.    lpBits.
  785.  
  786.    If you open an old RLE file and get the first frame, 
  787.    it might be returned to you as RGB data and not RLE. 
  788.    This can be easily checked because the size of the 
  789.    frame will be equal to the width (DWORD aligned) 
  790.    times the height of the frame. When this happens, 
  791.    set the compression to 0 (RGB) before you draw it. 
  792.    All subsequent frames will be normal RLE frames.
  793.  
  794.    The DDF_KEYFRAME flag has not been implemented. Using
  795.    the DDF_NOTKEYFRAME is still recommended for drawing
  796.    nonkeyframes.
  797.  
  798. 3. DrawDibChangePalette
  799.  
  800.    If you have not specified DDF_ANIMATE in DrawDibBegin or 
  801.    DrawDibDraw prior to calling DrawDibChangePalette,  
  802.    DrawDibRealize or a re-draw doesn't change the color of
  803.    the bitmap. In this case, set the color table values 
  804.    from the values of the palette entry values used in 
  805.    DrawDibChangePalette. For example, if lppe is the
  806.    pointer to the PALETTEENTRY array containing the new
  807.    colors, and lpbi is the LPBITMAPINFOHEADER structure
  808.    used in the DrawDibBegin or DrawDibDraw, the following
  809.    fragment updates the DIB color table:
  810.  
  811.    //call to change color
  812.    DrawDibChangePalette(hDD, iStart, iLen, lppe);
  813.       
  814.    // Update DIB color table now
  815.    LPRGBQUAD lpColors = (LPRGBQUAD)((LPBYTE)lpbi 
  816.             + lpbi->biSize) ;
  817.    for (i = iStart ; i < iStart+iLen ; i++) {
  818.        lpColors[i].rgbRed   = lppe[i].peRed ;
  819.        lpColors[i].rgbGreen = lppe[i].peGreen ;
  820.        lpColors[i].rgbBlue  = lppe[i].peBlue ;
  821.    }
  822.  
  823. 4. DrawDibGetBuffer
  824.  
  825.    The DrawDibGetBuffer function returns a pointer to a
  826.    buffer if DrawDib is being used to draw compressed data.
  827.    For example, if drawing RGB DIBs, this function returns
  828.    NULL. Your application should always be prepared to
  829.    handle NULL returns from DrawDibGetBuffer. 
  830.  
  831. READING AND WRITING AVI FILES
  832. -----------------------------
  833.  
  834. 1. AVIFile/AVIStream Functions
  835.  
  836.    The AVIFile and AVIStream functions should have HRESULT
  837.    return values rather than LONG return values.
  838.  
  839. 2. AVIStreamGetFrame
  840.  
  841.    The buffer referenced by the pointer returned for
  842.    AVIStreamGetFrame should not be modified. This buffer 
  843.    is owned by AVIFile. 
  844.  
  845. 3. AVIStreamRead
  846.  
  847.    If the number of samples to read is specified as zero
  848.    for AVIStreamRead, it reads data until the buffer is
  849.    full.
  850.  
  851.    If the number of samples to read is specified as 
  852.    AVISTREAMREAD_CONVENIENT for AVIStreamRead, it reads
  853.    a convenient number of data samples. For example, it
  854.    reads until the end of a chunk in an interleaved file. 
  855.  
  856. 4. AVISTREAMINFO Flags
  857.  
  858.    The AVISF_DISABLED flag for the AVISTREAMINFO structure 
  859.    should be listed as AVISTREAMINFO_DISABLED.
  860.  
  861.    The AVISF_VIDEO_PALCHANGES flag for the AVISTREAMINFO 
  862.    structure should be listed as AVISTREAMINFO_FORMATCHANGES.
  863.  
  864. 5. AVIFILEINFO Flags
  865.  
  866.    The AVIF_ flags for the AVIFILEINFO structure should
  867.    be listed as AVIFILEINFO_ flags:
  868.  
  869.    AVIFILEINFO_HASINDEX
  870.    AVIFILEINFO_ISINTERLEAVED
  871.    AVIFILEINFO_MUSTUSEINDEX
  872.    AVIFILEINFO_WASCAPTUREFILE
  873.    AVIFILEINFO_COPYRIGHTED
  874.  
  875. WORKING WITH THE INSTALLABLE COMPRESSION MANAGER
  876. ------------------------------------------------
  877.  
  878. 1. ICInfo/ICGetInfo
  879.  
  880.    Use ICGetInfo to obtain complete information about
  881.    a compressor. ICInfo only returns basic information 
  882.    about a compressor.
  883.  
  884. WORKING WITH THE AUDIO COMPRESSION MANAGER
  885. ------------------------------------------
  886.  
  887. 1. acmFormatChoose/acmFilterChoose
  888.  
  889.    The following flags are not defined for acmFormatChoose
  890.    and acmFilterChoose:
  891.  
  892.    FORMATCHOOSE_FORMAT_ADD
  893.    FORMATCHOOSE_FORMATTAG_ADD
  894.    FILTERCHOOSE_FORMAT_ADD
  895.    FILTERCHOOSE_FORMATTAG_ADD
  896.  
  897. CONTROLLING MCI DEVICES USING THE MCIWND WINDOW CLASS
  898. -----------------------------------------------------
  899.  
  900. 1. MCIWndCan Macros
  901.  
  902.    The MCIWndCanConfig, MCIWndCanEject, MCIWndCanPlay, 
  903.    MCIWndCanRecord, MCIWndCanSave, and MCIWndCanWindow 
  904.    return type is BOOL rather than LRESULT.
  905.  
  906. 2. MCIWndCreate
  907.  
  908.    The MCIWndCreate macro also has the MCIWNDF_NOOPEN
  909.    style. This style creates a popup window that excludes
  910.    the open menu item.
  911.  
  912. 3. MCIWndGetMode
  913.  
  914.    The MCIWndGetMode macro can return the following MCI
  915.    modes: MCI_MODE_STOP, MCI_MODE_PAUSE, MCI_MODE_PLAY, 
  916.    MCI_MODE_OPEN, MCI_MODE_RECORD, and MCI_MODE_SEEK. 
  917.  
  918. 4. MCIWndOpenInterface
  919.  
  920.    The MCIWndOpenInterface macro opens a file or stream
  921.    interface.
  922.  
  923.    MCIWndOpenInterface(hwnd, pUnk)
  924.  
  925.    hwnd
  926.      Specifies a window handle.
  927.  
  928.    pUnk
  929.      Specifies a handle to a file or stream interface.
  930.  
  931.    This macro is defined using the MCIWNDM_OPENINTERFACE
  932.    message.
  933.  
  934. 5. MCIWndPutDest/MCIWndPutSource 
  935.  
  936.    The RECT argument for MCIWndPutDest and MCIWndPutSource
  937.    should be an LPRECT data type.
  938.  
  939. CAPTURING AVI FILES USING THE AVICAP WINDOW CLASS
  940. -------------------------------------------------
  941.  
  942. 1. Optimizing AVICap Performance
  943.  
  944.    The following fragment sets parameters for optimizing
  945.    AVICap performance. Capturing to extended memory
  946.    provides the best performance if the entire captured 
  947.    sequence can fit in memory. If the sequence will not 
  948.    fit in memory, capturing to disk using memory below 
  949.    1 megabyte gives better performance than capturing to 
  950.    disk using extended memory. 
  951.  
  952.    CAPTUREPARMS CapParms;
  953.    ... 
  954.    if (fCaptureToDisk) {
  955.       // Capture to disk
  956.       // Writes from DOS memory give the best disk 
  957.       // performance. So attempt to use 10 buffers 
  958.       // below 1 megabyte.
  959.       // If DOS buffers are unavailable, AVICAP 
  960.       // automatically attempts to allocate 10 buffers from
  961.       // extended memory. Only if zero buffers are
  962.       // allocated, will the capture abort.
  963.       CapParms.wNumVideoBuffers = 10;
  964.       CapParms.fUsingDOSMemory = TRUE;
  965.    } else {
  966.       // Capture to Memory
  967.       // Try to allocate 1000 buffers above 1 megabyte.
  968.       // The actual number of buffers allocated will
  969.       // depend on available physical memory.
  970.       // Only if zero buffers are allocated,
  971.       // will the capture abort.
  972.       CapParms.wNumVideoBuffers = 1000;
  973.       CapParms.fUsingDOSMemory = FALSE;
  974.    }
  975.  
  976. 2. CAPDRIVERCAPS 
  977.  
  978.    The CAPDRIVERCAPS data structure has the following 
  979.    additional members:
  980.  
  981.    HVIDEO  hVideoIn;         // Driver In channel
  982.    HVIDEO  hVideoOut;        // Driver Out channel
  983.    HVIDEO  hVideoExtIn;      // Driver Ext. In channel
  984.    HVIDEO  hVideoExtOut;     // Driver Ext. Out channel
  985.  
  986.   Existing programs do not need to be recompiled for this 
  987.   expanded structure.  
  988.  
  989.  
  990. 3. CAPTUREPARMS
  991.  
  992.    The CAPTUREPARMS structure has the following additional
  993.    members:
  994.  
  995.    DWORD dwAudioBufferSize;   // Size of audio buffers 
  996.                   // (0 = default)
  997.    BOOL  fDisableWriteCache;  // Attempt to disable write
  998.                   // cache
  999.  
  1000.    Existing programs do not need to be recompiled for this 
  1001.    expanded structure.  
  1002.  
  1003.    The default value for the fUsingDOSMemory member of the
  1004.    CAPTUREPARMS data structure has been changed to FALSE.
  1005.  
  1006. 5. videoGetErrorText
  1007.  
  1008.    If the wSize parameter is zero, videoGetErrorText
  1009.    returns DV_ERR_SIZEFIELD and nothing is copied to the
  1010.    return buffer.
  1011.  
  1012. 6. capGetMCIDevice
  1013.  
  1014.    The capGetMCIDevice reference in the AVI Capture Macros
  1015.    reference table should be capGetMCIDeviceName.
  1016.  
  1017. PLAYING AVI FILES USING MCI
  1018. ---------------------------
  1019.  
  1020. 1. Dialog Box for the Configure String Command.
  1021.  
  1022.    The Don't Buffer Offscreen checkbox has been removed
  1023.    from the Configure dialog box.
  1024.  
  1025. MCI VCR SERVICES
  1026. ----------------
  1027.  
  1028. 1. Enabling and Disabling Tracks with the VISCA Driver
  1029.  
  1030.    When operating in insert mode, the VISCA device driver
  1031.    cannot turn tracks on or off individually. It sets 
  1032.    both the video and audio tracks in combination
  1033.    simultaneously. To change the setting of both the audio
  1034.    and video tracks in the insert mode, use the SETAUDIO 
  1035.    command immediately followed by the SETVIDEO command. 
  1036.    An error message will result from the first command 
  1037.    which you can ignore. The VISCA driver changes both
  1038.    tracks to their new state when it receives the second
  1039.    command.
  1040.  
  1041. 2. MCI VCR String Command Reference
  1042.  
  1043.    Change the "set pause (timeout)" command to 
  1044.    "set pause timeout (timeout)".
  1045.  
  1046.    The references to "status clock increment rate" should 
  1047.    be "capability clock increment rate".
  1048.  
  1049. MULTIMEDIA COMPRESSION, DECOMPRESSION, AND RENDERING DRIVERS
  1050. ------------------------------------------------------------
  1051.  
  1052. 1. ICM Draw Handlers
  1053.  
  1054.    Returning a value other than ICERR_OK for the 
  1055.    ICM_DRAW_WINDOW message in a draw handler prevents 
  1056.    subsequent ICM_DRAW_WINDOW messages from being sent to
  1057.    a draw handler. In this case, moving a playback window
  1058.    will not update the window.
  1059.  
  1060.  
  1061. NEW PERFORMANCE APIS 
  1062. ------------------------------------------------- 
  1063.  
  1064. 1. Changes to AVICAP
  1065.     The WM_CAP_SET_CALLBACK_CAPCONTROL 
  1066.     message has been added to allow capture applications frame 
  1067.     accurate control over the starting and stopping points of video capture.  
  1068.     Applications can now preroll and postroll.
  1069.  
  1070. 2. Changes to MSVIDEO
  1071.     The videoStreamAllocHdrAndBuffer and 
  1072.     videoStreamFreeHdrAndBuffer and corresponding driver messages 
  1073.     DVM_STREAM_ALLOCHDRANDBUFFER and 
  1074.     DVM_STREAM_FREEHDRANDBUFFER have been added.  These 
  1075.     messages are used by AVICap.dll to let capture drivers allocate image 
  1076.     buffers from memory located on-board.  These on-board buffers are then 
  1077.     written directly to disk, improving capture performance.
  1078.  
  1079. 3. The new ICM_DECOMPRESS_SET_PALETTE message was added.  
  1080.     The lParam1 is a pointer to a BITMAPINFOHEADER structure.  
  1081.     This message tells the codec that the application wishes it to use 
  1082.     a particular palette for 8-bit decompression if possible.  The colors to use 
  1083.     are the color table of the DIB that is passed in.
  1084.  
  1085.     This message will be sent after the ICM_OPEN message, and before any 
  1086.     ICM_DECOMPRESS_GET_FORMAT or 
  1087.     ICM_DECOMPRESS_GET_PALETTE messages.  A codec is allowed to 
  1088.     ignore this message, and return ICERR_UNSUPPORTED.
  1089.     A possible implementation by the codec is if this message is received, 
  1090.     remember the colors given.  Then, whenever decoding to 8-bit, rather than 
  1091.    dithering to a standard palette, use a palette containing the colors passed in, 
  1092.     and return the set of colors you're using as appropriate from the 
  1093.     ICM_DECOMPRESS_GET_FORMAT or 
  1094.     ICM_DECOMPRESS_GET_PALETTE message.
  1095.  
  1096. 4.  API Specifics
  1097.  
  1098.     WM_CAP_SET_CALLBACK_CAPCONTROL
  1099.     ----------------
  1100.     This message sets a callback procedure in the client application allowing it 
  1101.     precise recording control.
  1102.  
  1103.     Parameters
  1104.     wParam    
  1105.         Not used.
  1106.     lParam
  1107.         Specifies NULL or a FARPROC address of the callback 
  1108.         procedure. NULL disables a previously installed callback 
  1109.         procedure. Use MakeProcInstance to create the instance 
  1110.         address, and export the callback in the application's .DEF 
  1111.         file.
  1112.     Return Value    
  1113.     Returns TRUE on success, or FALSE if streaming capture is in progress 
  1114.     or if a single frame capture session is in progress.
  1115.     Comments
  1116.     A single control callback is used to give the client application precise 
  1117.     control over the moment that streaming capture begins and completes.  
  1118.     The AVICap window first calls the procedure with nState set to     CONTROLCALLBACK_PREROLL after all buffers have been 
  1119.     allocated and all other capture preparations have finished. This 
  1120.     gives the client application the ability to preroll video sources, 
  1121.     returning from the callback at the exact moment recording is to begin. 
  1122.     A return value from the callback of TRUE continues capture, and 
  1123.     FALSE stops capture. Once capture has begun, this callback will 
  1124.     be called frequently with nState set to 
  1125.     CONTROLCALLBACK_CAPTURING to allow the client application 
  1126.     to halt capture by returning FALSE.
  1127.     Example
  1128.     The capSetCallbackOnCapControl macro is defined using this 
  1129.     message. The capSetCallbackOnCapControl macro has the following syntax:
  1130.     capSetCallbackOnCapControl(hwnd, fpProc)
  1131.  
  1132.  
  1133.  
  1134.     The following example uses a macro to install an audio stream callback:
  1135.     FARPROC fpCapControlCallback;
  1136.  
  1137.     LRESULT FAR PASCAL MyCapControlCallback (HWND hwnd, int nState)
  1138.     {
  1139.     if (nState == CONTROLCALLBACK_PREROLL) { 
  1140.         // if waiting to begin capture
  1141.         while (!fPreRollDone)  
  1142.             ... // Hang here waiting for preroll to complet
  1143.         return (LRESULT) TRUE; // Begin capture NOW!
  1144.     }
  1145.     else if (nState == CONTROLCALLBACK_CAPTURING) {
  1146.         //if capturing
  1147.         if (!fTimeToQuit)  
  1148.             return (LRESULT) TRUE; // Continue capture
  1149.         else
  1150.             return (LRESULT) FALSE; // Stop capture
  1151.     }
  1152.     }
  1153.  
  1154.     fpCapControlCallback = MakeProcInstance ((FARPROC)MyCapControlCallback, 
  1155.     hInst);
  1156.     capSetCallbackOnCapControl (hwndCapture, fpCapControlCallback);
  1157.  
  1158.  
  1159.     videoStreamAllocHdrAndBuffer
  1160.     ----------------
  1161.     This function is used to allow drivers to optionally allocate video buffers.  
  1162.     Normally, the client application is responsible for allocating buffer memory, 
  1163.     but devices which have on-board memory may optionally allocate headers 
  1164.     and buffers using this function. Generally, this will avoid an additional 
  1165.     data copy, resulting in faster capture rates.
  1166.  
  1167.     DWORD videoStreamAllocHdrAndBuffer(HVIDEO hVideo, LPVIDEOHDR 
  1168.     FAR * plpvideoHdr, DWORD dwSize)
  1169.  
  1170.     Parameters
  1171.     hVideo
  1172.         Specifies a handle to the video device channel.
  1173.     plpvideoHdr
  1174.         Specifies a pointer to the address of a VIDEOHDR structure.  
  1175.         The driver saves the buffer address in this location, or NULL 
  1176.         if it cannot allocate a buffer.
  1177.     dwSize
  1178.         Specifies the size of the VIDEOHDR structure and associated 
  1179.         video buffer in bytes.
  1180.    Return Value
  1181.     Returns zero if the function was successful. Otherwise, it returns an 
  1182.     error number. 
  1183.     The following errors are defined:
  1184.         DV_ERR_INVALHANDLE
  1185.             Indicates the specified device handle is invalid.
  1186.         DV_ERR_NOMEM
  1187.             Indicates the device is unable to allocate or lock 
  1188.             memory.
  1189.         DV_ERR_NOTSUPPORTED
  1190.             Indicates the driver does not have on-board 
  1191.             memory.
  1192.     Comments
  1193.     If the driver allocates buffers via this method, the 
  1194.     videoStreamPrepareHeader and videoStreamUnprepareHeader 
  1195.     functions should not be used. The buffer allocated must be
  1196.     accessible for DMA by the host.
  1197.     See Also
  1198.     videoStreamPrepareHeader
  1199.  
  1200.  
  1201.     videoStreamFreeHdrAndBuffer
  1202.     ----------------
  1203.     This function is used to free buffers allocated by the driver using the 
  1204.     videoStreamAllocHdrAndBuffer function.
  1205.  
  1206.     DWORD videoStreamFreeHdrAndBuffer(HVIDEO hVideo, 
  1207.     LPVIDEOHDR lpvideoHdr)
  1208.  
  1209.     Parameters
  1210.     hVideo
  1211.         Specifies a handle to the video device channel.
  1212.     lpvideoHdr
  1213.         Specifies a pointer to the VIDEOHDR structure and 
  1214.         associated buffer to be freed.
  1215.     Return Value
  1216.     Returns zero if the function was successful. Otherwise, it returns 
  1217.     an error number. 
  1218.     The following errors are defined:
  1219.         DV_ERR_INVALHANDLE
  1220.             Indicates the specified device handle is invalid.
  1221.         DV_ERR_NOTSUPPORTED
  1222.             Indicates the driver does not have on-board memory.
  1223.     Comments
  1224.     If the driver allocates buffers via this method, the 
  1225.     videoStreamPrepareHeader and videoStreamUnprepareHeader 
  1226.     functions should not be used.
  1227.     See Also
  1228.     videoStreamPrepareHeader
  1229.  
  1230.     DVM_STREAM_ALLOCHDRANDBUFFER
  1231.     ----------------
  1232.     This video capture message requests the video driver to attempt allocation 
  1233.     of a capture buffer.  Normally, only devices which provide substantial 
  1234.     on-board memory, which is not part of the system heap, should respond to 
  1235.     this message. Responding to this message allows capture to proceed with 
  1236.     fewer data copy operations.  Generally, this will result in faster capture rates.
  1237.  
  1238.     Parameters
  1239.     dwParam1
  1240.         Specifies a far pointer to the address of a VIDEOHDR 
  1241.         structure identifying the buffer.  The address of the 
  1242.         allocated buffer must be stored in this location by the 
  1243.         driver if it responds without error to this message.
  1244.     dwParam2
  1245.         Specifies the size of the VIDEOHDR structure plus 
  1246.         the size of the associated image buffer.
  1247.     Return Value
  1248.     Returns DV_ERR_OK if the message was successful. Otherwise, 
  1249.     it returns an error number. The following errors are defined:
  1250.         DV_ERR_INVALHANDLE
  1251.             Indicates the specified device handle is invalid.
  1252.         DV_ERR_NOMEM
  1253.             Indicates the device is unable to allocate or lock 
  1254.             memory.
  1255.         DV_ERR_NOTSUPPORTED
  1256.             Indicates the driver does not have on-board 
  1257.             memory.
  1258.     Comments
  1259.     If the driver allocates buffers via this method, the 
  1260.     DVM_STREAM_PREPAREHEADER message will not be received, 
  1261.     since the buffer is assumed to be continuously available.
  1262.     The buffer allocated must be accessible for DMA by the host.
  1263.  
  1264.  
  1265.     DVM_STREAM_FREEHDRANDBUFFER
  1266.     ----------------
  1267.     This video capture message is used to free data buffers allocated on 
  1268.     the capture device using the DVM_STREAM_ALLOCHDRANDBUFFER 
  1269.     message.
  1270.  
  1271.     Parameters
  1272.     dwParam1
  1273.         Specifies a far pointer to a VIDEOHDR structure 
  1274.         identifying the buffer.
  1275.     dwParam2
  1276.         Not used.
  1277.     Return Value
  1278.     Returns DV_ERR_OK if the message was successful. Otherwise, 
  1279.     it returns an error number. The following errors are defined:
  1280.         DV_ERR_INVALHANDLE
  1281.             Indicates the specified device handle is invalid.
  1282.         DV_ERR_NOTSUPPORTED
  1283.             Indicates the driver does not have on-board memory.
  1284.     Comments
  1285.     If the driver allocates buffers via this method, the 
  1286.     DVM_STREAM_UNPREPAREHEADER message will not be 
  1287.     received, since the buffer is assumed to be continuously available.
  1288.  
  1289.  
  1290.  
  1291.