home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / packages / win32ada / data.z / win32-vfw.adb < prev    next >
Encoding:
Text File  |  1995-11-17  |  55.1 KB  |  1,330 lines

  1. -- $Source: /home/harp/1/proto/monoBANK/winnt/win32-vfw.adb,v $ 
  2. -- $Revision: 1.6 $ $Date: 95/02/10 17:18:42 $ $Author: scoleman $ 
  3. -------------------------------------------------------------------------------
  4. --
  5. -- THIS FILE AND ANY ASSOCIATED DOCUMENTATION IS FURNISHED "AS IS" WITHOUT 
  6. -- WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
  7. -- TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 
  8. -- PURPOSE.  The user assumes the entire risk as to the accuracy and the 
  9. -- use of this file.
  10. --
  11. -- Copyright (c) Intermetrics, Inc. 1995
  12. -- Royalty-free, unlimited, worldwide, non-exclusive use, modification, 
  13. -- reproduction and further distribution of this file is permitted.
  14. --
  15. -------------------------------------------------------------------------------
  16.  
  17.  
  18. with Ada.Unchecked_Conversion;
  19. with Interfaces.C;
  20. with Stdarg.Impl;
  21. with Stdarg.Inst;
  22. with Win32.Utils;
  23. with Win32.Tchar;
  24.  
  25. package body Win32.Vfw is
  26.  
  27.     use type Interfaces.C.Unsigned_Char;
  28.  
  29.         function To_BYTE is new Ada.Unchecked_Conversion(Win32.Char, 
  30.                 Win32.BYTE);
  31.  
  32.     function MKFOURCC(ch0: Win32.Char;
  33.                       ch1: Win32.Char;
  34.                       ch2: Win32.Char;
  35.                       ch3: Win32.Char)
  36.                       return Win32.Mmsystem.FOURCC is       -- vfw.h: 94
  37.     begin
  38.         return Win32.Mmsystem.FOURCC(
  39.                 Win32.Utils.MAKELONG(
  40.                  Win32.Utils.MAKEWORD(To_BYTE(ch0), To_BYTE(ch1)), 
  41.                  Win32.Utils.MAKEWORD(To_BYTE(ch2), To_BYTE(ch3)))); 
  42.     end MKFOURCC;
  43.  
  44.     function aviTWOCC(ch0: Win32.Char;
  45.                       ch1: Win32.Char) return TWOCC is      -- vfw.h:128
  46.  
  47.     begin
  48.         return TWOCC(Win32.Utils.MAKEWORD(To_BYTE(ch0), To_BYTE(ch1)));
  49.     end aviTWOCC;
  50.  
  51.     function DrawDibUpdate(hdd: HDRAWDIB;
  52.                            hdc: Win32.Windef.HDC;
  53.                            x  : Win32.INT;
  54.                            y  : Win32.INT)
  55.                           return Win32.BOOL is              -- vfw.h:1307
  56.     begin
  57.         return DrawDibDraw(hdd, hdc, x, y, 0, 0, NULL, System.Null_Address, 
  58.                                 0, 0, 0, 0, DDF_UPDATE);
  59.     end DrawDibUpdate;
  60.  
  61.     function FromHex(n: Win32.BYTE)
  62.                      return Win32.BYTE is                   -- vfw.h:1475
  63.     begin
  64.         if (n >= To_BYTE('A')) then
  65.             return (n + 10 - To_BYTE('A'));
  66.         else
  67.             return (n - To_BYTE('0'));
  68.         end if;
  69.     end FromHex;
  70.  
  71.  
  72.     function StreamFromFOURCC(fcc: Win32.Mmsystem.FOURCC) 
  73.                               return Win32.WORD is          -- vfw.h:1476
  74.     begin
  75.         return Win32.WORD(
  76.                 (FromHex(Win32.Utils.LOBYTE(
  77.                                 Win32.Utils.LOWORD(Win32.DWORD(fcc)))) * 16) + 
  78.                 FromHex(Win32.Utils.HIBYTE(
  79.                                 Win32.Utils.LOWORD(Win32.DWORD(fcc)))));
  80.     end StreamFromFOURCC;
  81.  
  82.     function TWOCCFromFOURCC(fcc: Win32.Mmsystem.FOURCC) return TWOCC is
  83.                                                             -- vfw.h:1480
  84.     begin
  85.         return TWOCC(Win32.Utils.HIWORD(Win32.DWORD(fcc)));
  86.     end TWOCCFromFOURCC;
  87.  
  88.     function ToHex(n: Win32.BYTE)
  89.                    return Win32.BYTE is                     -- vfw.h: 1485
  90.     begin
  91.         if (n > 9) then
  92.             return (n - 10 + To_Byte('A'));
  93.         else
  94.             return (n + To_Byte('0'));
  95.         end if;
  96.     end ToHex;
  97.  
  98.     function MAKEAVICKID(tcc   : TWOCC;
  99.                          stream: Win32.WORD)
  100.                          return Win32.DWORD is              -- vfw.h: 1486
  101.         use type Interfaces.C.unsigned_short;
  102.     begin
  103.         return Win32.DWORD(
  104.                 Win32.Utils.MAKELONG(
  105.                         Win32.Utils.MAKEWORD(
  106.                                 ToHex(Win32.Utils.HIBYTE(stream and 16#f0#)),
  107.                                 ToHex(Win32.BYTE((stream and 16#0f#)/ 16))), 
  108.                         Win32.WORD(tcc)));
  109.    end MAKEAVICKID;
  110.  
  111.     function AVIStreamSampleToSample(pavi1: PAVISTREAM;
  112.                                      pavi2: PAVISTREAM;
  113.                                      l    : Win32.LONG)
  114.                                      return Win32.LONG is   -- vfw.h:2200
  115.     begin
  116.          return AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2, l));
  117.     end AVIStreamSampleToSample;
  118.  
  119.  
  120.         use type Interfaces.C.Long'Base;
  121.         use type Interfaces.C.unsigned_long;
  122.  
  123.     function AVIStreamNextSample(pavi: PAVISTREAM;
  124.                                  l   : Win32.LONG)
  125.                                  return Win32.LONG is       -- vfw.h:2203
  126.     begin
  127.          return AVIStreamFindSample(pavi, l+1, 
  128.                 Win32.LONG(Win32.ULONG(FIND_NEXT) or Win32.ULONG(FIND_ANY)));
  129.     end AVIStreamNextSample;
  130.  
  131.     function AVIStreamPrevSample(pavi: PAVISTREAM;
  132.                                  l   : Win32.LONG)
  133.                                 return Win32.LONG is        -- vfw.h:2206
  134.     begin
  135.          return AVIStreamFindSample(pavi,l-1,
  136.                 Win32.LONG(Win32.ULONG(FIND_PREV) or Win32.ULONG(FIND_ANY)));
  137.     end AVIStreamPrevSample;
  138.  
  139.     function AVIStreamNearestSample(pavi: PAVISTREAM;
  140.                                     l   : Win32.LONG)
  141.                                     return Win32.LONG is    -- vfw.h:2209
  142.     begin
  143.          return AVIStreamFindSample(pavi,l,
  144.                 Win32.LONG(Win32.ULONG(FIND_PREV) or Win32.ULONG(FIND_ANY)));
  145.     end AVIStreamNearestSample;
  146.  
  147.     function AVIStreamNextKeyFrame(pavi: PAVISTREAM;
  148.                                    l   : Win32.LONG)
  149.                                    return Win32.LONG is     -- vfw.h:2212
  150.     begin
  151.          return AVIStreamFindSample(pavi,l+1,
  152.                 Win32.LONG(Win32.ULONG(FIND_NEXT) or Win32.ULONG(FIND_KEY)));
  153.     end AVIStreamNextKeyFrame;
  154.  
  155.     function AVIStreamPrevKeyFrame(pavi: PAVISTREAM;
  156.                                    l   : Win32.LONG)
  157.                                    return Win32.LONG is     -- vfw.h:2215
  158.     begin
  159.          return AVIStreamFindSample(pavi,l-1,
  160.                 Win32.LONG(Win32.ULONG(FIND_NEXT) or Win32.ULONG(FIND_KEY)));
  161.     end AVIStreamPrevKeyFrame;
  162.  
  163.     function AVIStreamNearestKeyFrame(pavi: PAVISTREAM;
  164.                                       l   : Win32.LONG)
  165.                                       return Win32.LONG is  -- vfw.h:2218
  166.     begin
  167.          return AVIStreamFindSample(pavi,l,
  168.                 Win32.LONG(Win32.ULONG(FIND_NEXT) or Win32.ULONG(FIND_KEY)));
  169.     end AVIStreamNearestKeyFrame;
  170.  
  171.     function AVIStreamIsKeyFrame(pavi: PAVISTREAM;
  172.                                  l   : Win32.LONG)
  173.                                  return Win32.BOOL is       -- vfw.h:2221
  174.     begin
  175.         if (AVIStreamNearestKeyFrame(pavi,l) = l) then
  176.                 return Win32.TRUE;
  177.         else
  178.                 return Win32.FALSE;
  179.         end if;
  180.     end AVIStreamIsKeyFrame;
  181.  
  182.     function AVIStreamPrevSampleTime(pavi: PAVISTREAM;
  183.                                      t   : Win32.LONG)
  184.                                      return Win32.LONG is   -- vfw.h:2224
  185.     begin
  186.          return AVIStreamSampleToTime(pavi, AVIStreamPrevSample(pavi,
  187.                                         AVIStreamTimeToSample(pavi,t)));
  188.     end AVIStreamPrevSampleTime;
  189.  
  190.     function AVIStreamNextSampleTime(pavi: PAVISTREAM; 
  191.                                      t   : Win32.LONG)
  192.                                      return Win32.LONG is   -- vfw.h:2227
  193.     begin
  194.          return AVIStreamSampleToTime(pavi, 
  195.                                 AVIStreamNextSample(pavi,
  196.                                         AVIStreamTimeToSample(pavi,t)));
  197.     end AVIStreamNextSampleTime;
  198.  
  199.     function AVIStreamNearestSampleTime(pavi: PAVISTREAM; 
  200.                                         t   : Win32.LONG)
  201.                                         return Win32.LONG is-- vfw.h:2230
  202.     begin
  203.          return AVIStreamSampleToTime(pavi, 
  204.                                 AVIStreamNearestSample(pavi,
  205.                                         AVIStreamTimeToSample(pavi,t)));
  206.     end AVIStreamNearestSampleTime;
  207.  
  208.     function AVIStreamNextKeyFrameTime(pavi: PAVISTREAM;
  209.                                        t   : Win32.LONG)
  210.                                        return Win32.LONG is -- vfw.h:2233
  211.     begin
  212.          return AVIStreamSampleToTime(pavi, 
  213.                                 AVIStreamNextKeyFrame(pavi,
  214.                                         AVIStreamTimeToSample(pavi, t)));
  215.     end AVIStreamNextKeyFrameTime;
  216.  
  217.     function AVIStreamPrevKeyFrameTime(pavi: PAVISTREAM;
  218.                                        t   : Win32.LONG)
  219.                                        return Win32.LONG is -- vfw.h:2236
  220.     begin
  221.          return AVIStreamSampleToTime(pavi, 
  222.                                       AVIStreamPrevKeyFrame(pavi,
  223.                                           AVIStreamTimeToSample(pavi, t)));
  224.     end AVIStreamPrevKeyFrameTime;
  225.  
  226.     function AVIStreamNearestKeyFrameTime(pavi: PAVISTREAM;
  227.                                           t   : Win32.LONG)
  228.                                           return Win32.LONG is
  229.                                                             -- vfw.h:2239
  230.     begin
  231.          return AVIStreamSampleToTime(pavi, 
  232.                                       AVIStreamNearestKeyFrame(pavi,
  233.                                           AVIStreamTimeToSample(pavi, t)));
  234.     end AVIStreamNearestKeyFrameTime;
  235.  
  236.     function AVIStreamStartTime(pavi: PAVISTREAM)
  237.                                 return Win32.LONG is        -- vfw.h:2242
  238.     begin
  239.          return AVIStreamSampleToTime(pavi, AVIStreamStart(pavi));
  240.     end AVIStreamStartTime;
  241.  
  242.     function AVIStreamLengthTime(pavi: PAVISTREAM)
  243.                                  return Win32.LONG is       -- vfw.h:2245
  244.     begin
  245.          return AVIStreamSampleToTime(pavi, AVIStreamLength(pavi));
  246.     end AVIStreamLengthTime;
  247.  
  248.     function AVIStreamEnd(pavi: PAVISTREAM)
  249.                           return Win32.LONG is              -- vfw.h:2248
  250.     begin
  251.         return (AVIStreamStart(pavi) + AVIStreamLength(pavi));
  252.     end AVIStreamEnd;
  253.  
  254.     function AVIStreamEndTime(pavi: PAVISTREAM)
  255.                               return Win32.LONG is          -- vfw.h:2251
  256.     begin
  257.          return AVIStreamSampleToTime(pavi, AVIStreamEnd(pavi));
  258.     end AVIStreamEndTime;
  259.  
  260.     function AVIStreamSampleSize(pavi  : PAVISTREAM;
  261.                                  lPos  : Win32.LONG;
  262.                                  plSize: access Win32.LONG)
  263.                                  return Win32.Objbase.HRESULT is
  264.                                                             -- vfw.h:2253
  265.     begin
  266.          return AVIStreamRead(pavi,lPos,1,System.Null_Address,0,plSize,NULL);
  267.     end AVIStreamSampleSize;
  268.  
  269.     function AVIStreamFormatSize(pavi  : PAVISTREAM;
  270.                                  lPos  : Win32.LONG; 
  271.                                  plSize: access Win32.LONG)
  272.                                  return Win32.Objbase.HRESULT is        
  273.                                                             -- vfw.h:2257
  274.     begin
  275.          return AVIStreamReadFormat(pavi,lPos,System.Null_Address,plSize);
  276.     end AVIStreamFormatSize;
  277.  
  278.     function AVIStreamDataSize(pavi  : PAVISTREAM;
  279.                                fcc   : Win32.DWORD;
  280.                                plSize: access Win32.LONG)
  281.                                return Win32.Objbase.HRESULT is
  282.                                                             -- vfw.h:2260
  283.     begin
  284.          return AVIStreamReadData(pavi,fcc,System.Null_Address,plSize);
  285.     end AVIStreamDataSize;
  286.  
  287.     use Stdarg, Stdarg.Impl, Stdarg.Inst;
  288.  
  289.     function "&" is new Stdarg.Concat(Win32.LPCSTR);
  290.     function "&" is new Stdarg.Concat(Win32.LPCWSTR);
  291.     function "&" is new Stdarg.Concat(Win32.Objbase.LPCLSID);
  292.     function "&" is new Stdarg.Concat(AVISAVECALLBACK);
  293.     function "&" is new Stdarg.Concat(PAVISTREAM);
  294.     function "&" is new Stdarg.Concat(LPAVICOMPRESSOPTIONS);
  295.  
  296.     function AVISaveA(
  297.                 szFile       : Win32.LPCSTR;
  298.                 pclsidHandler: access Win32.Objbase.CLSID;
  299.                 lpfnCallback : AVISAVECALLBACK;
  300.                 nStreams     : Win32.INT;
  301.                 pfile        : PAVISTREAM;
  302.                 lpOptions    : LPAVICOMPRESSOPTIONS;
  303.                 Args         : Stdarg.ArgList := Stdarg.Empty)
  304.                return Win32.Objbase.HRESULT is              -- vfw.h:2279
  305.  
  306.         Complete_Args: Stdarg.Arglist :=
  307.             Stdarg.Empty & szFile & Win32.Objbase.LPCLSID(pclsidHandler) &
  308.             lpfnCallback & nStreams & pfile & lpOptions & Args;
  309.  
  310.         procedure C_AVISaveA;
  311.         pragma Import(Stdcall, C_AVISaveA, "AVISaveA");
  312.  
  313.     begin
  314.         return Win32.Objbase.HRESULT(F_Varargs(
  315.             C_AVISaveA'Address,
  316.             ArgCount(Complete_Args),
  317.             Address_of_First_Arg(Complete_Args)));
  318.     end AVISaveA;
  319.  
  320.     function AVISaveW(
  321.                 szFile       : Win32.LPCWSTR;
  322.                 pclsidHandler: access Win32.Objbase.CLSID;
  323.                 lpfnCallback : AVISAVECALLBACK;
  324.                 nStreams     : Win32.INT;
  325.                 pfile        : PAVISTREAM;
  326.                 lpOptions    : LPAVICOMPRESSOPTIONS;
  327.                 Args         : Stdarg.ArgList := Stdarg.Empty)
  328.                return Win32.Objbase.HRESULT is              -- vfw.h:2293
  329.  
  330.         Complete_Args: Stdarg.Arglist :=
  331.             Stdarg.Empty & szFile & Win32.Objbase.LPCLSID(pclsidHandler) &
  332.             lpfnCallback & nStreams & pfile & lpOptions & Args;
  333.  
  334.         procedure C_AVISaveW;
  335.         pragma Import(Stdcall, C_AVISaveW, "AVISaveW");
  336.  
  337.     begin
  338.         return Win32.Objbase.HRESULT(F_Varargs(
  339.             C_AVISaveW'Address,
  340.             ArgCount(Complete_Args),
  341.             Address_of_First_Arg(Complete_Args)));
  342.  
  343.     end AVISaveW;
  344.  
  345.  
  346.     function MAKE_AVIERR(error: Win32.WORD) 
  347.                          return Win32.Winerror.HRESULT is   -- vfw.h:2392
  348.         use type Interfaces.C.unsigned_short;
  349.     begin
  350.         return Win32.Winerror.MAKE_SCODE(Win32.Winerror.SEVERITY_ERROR, 
  351.                                         Win32.Winerror.FACILITY_ITF, 
  352.                                         16#4000# + error);
  353.     end MAKE_AVIERR;
  354.  
  355.     function MCIWndCanPlay(hwnd: Win32.Windef.HWND)         
  356.                            return Win32.BOOL is             -- vfw.h:2582
  357.     begin
  358.         return Win32.BOOL(MCIWndSM(hwnd,MCIWNDM_CAN_PLAY,0,0));
  359.     end MCIWndCanPlay;
  360.  
  361.     function MCIWndCanRecord(hwnd: Win32.Windef.HWND)       
  362.                              return Win32.BOOL is           -- vfw.h:2583
  363.     begin
  364.         return Win32.BOOL(MCIWndSM(hwnd,MCIWNDM_CAN_RECORD,0,0));
  365.     end MCIWndCanRecord;
  366.     
  367.     function MCIWndCanSave(hwnd: Win32.Windef.HWND)
  368.                            return Win32.BOOL is             -- vfw.h:2584
  369.     begin
  370.         return Win32.BOOL(MCIWndSM(hwnd,MCIWNDM_CAN_SAVE,0,0));
  371.     end MCIWndCanSave;
  372.     
  373.     function MCIWndCanWindow(hwnd: Win32.Windef.HWND)
  374.                              return Win32.BOOL is           -- vfw.h:2585
  375.     begin
  376.         return Win32.BOOL(MCIWndSM(hwnd,MCIWNDM_CAN_WINDOW,0,0));
  377.     end MCIWndCanWindow;
  378.     
  379.     function MCIWndCanEject(hwnd: Win32.Windef.HWND)
  380.                             return Win32.BOOL is            -- vfw.h:2586
  381.     begin
  382.         return Win32.BOOL(MCIWndSM(hwnd,MCIWNDM_CAN_EJECT,0,0));
  383.     end MCIWndCanEject;
  384.     
  385.     function MCIWndCanConfig(hwnd: Win32.Windef.HWND)
  386.                              return Win32.BOOL is           -- vfw.h:2587
  387.     begin
  388.         return Win32.BOOL(MCIWndSM(hwnd,MCIWNDM_CAN_CONFIG,0,0));
  389.     end MCIWndCanConfig;
  390.     
  391.     function MCIWndPaletteKick(hwnd: Win32.Windef.HWND)
  392.                                return Win32.BOOL is         -- vfw.h:2588
  393.     begin
  394.         return Win32.BOOL(MCIWndSM(hwnd,MCIWNDM_PALETTEKICK,0,0));
  395.     end MCIWndPaletteKick;
  396.  
  397.     function To_LPARAM is new Ada.Unchecked_Conversion(Win32.LPVOID, 
  398.                 Win32.LPARAM);
  399.     function To_LPVOID is new Ada.Unchecked_Conversion(Win32.Winnt.LPTSTR,
  400.                 Win32.LPVOID);
  401.                 
  402.     
  403.     function MCIWndSave(hwnd  : Win32.Windef.HWND;
  404.                         szFile: Win32.LPVOID)
  405.                         return Win32.LONG is                -- vfw.h:2590
  406.     begin
  407.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_SAVE, 0, 
  408.                                 To_LPARAM(szFile)));
  409.     end MCIWndSave;
  410.     
  411.     function MCIWndSaveDialog(hwnd: Win32.Windef.HWND)      
  412.                               return Win32.LONG is          -- vfw.h:2591
  413.         function To_LPVOID is new Ada.Unchecked_Conversion(integer,     
  414.                 Win32.LPVOID);
  415.     begin       
  416.         return MCIWndSave(hwnd, To_LPVOID(-1));
  417.     end MCIWndSaveDialog;
  418.  
  419.     function MCIWndNew(hwnd: Win32.Windef.HWND;
  420.                        lp  : Win32.LPVOID)
  421.                         return Win32.LONG is                -- vfw.h:2594
  422.     begin
  423.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_NEW, 0, 
  424.                 To_LPARAM(lp)));
  425.     end MCIWndNew;
  426.  
  427.     
  428.     function MCIWndRecord(hwnd: Win32.Windef.HWND)
  429.                           return Win32.LONG is              -- vfw.h:2596
  430.     begin
  431.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_RECORD, 0, 0));
  432.     end MCIWndRecord;
  433.     
  434.     function MCIWndOpen(hwnd: Win32.Windef.HWND;
  435.                         sz  : Win32.LPVOID;
  436.                         f   : Win32.BOOL)
  437.                         return Win32.LONG is                -- vfw.h:2597
  438.     begin
  439.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_OPEN, 
  440.                                 Win32.WPARAM(Win32.UINT(f)),
  441.                                 To_LPARAM(sz)));
  442.     end MCIWndOpen;
  443.     
  444.     function MCIWndOpenDialog(hwnd: Win32.Windef.HWND)      
  445.                               return Win32.LONG is          -- vfw.h:2598
  446.         function To_LPVOID is new Ada.Unchecked_Conversion(integer,     
  447.                 Win32.LPVOID);
  448.     begin
  449.         return MCIWndOpen(hwnd, To_LPVOID(-1), 0);
  450.     end MCIWndOpenDialog;
  451.  
  452.     function MCIWndClose(hwnd: Win32.Windef.HWND)
  453.                          return Win32.LONG is               -- vfw.h:2599
  454.     begin
  455.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_CLOSE, 0, 0));
  456.     end MCIWndClose;
  457.     
  458.     function MCIWndPlay(hwnd: Win32.Windef.HWND)
  459.                         return Win32.LONG is                -- vfw.h:2600
  460.     begin
  461.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_PLAY, 0, 0));
  462.     end MCIWndPlay;
  463.     
  464.     function MCIWndStop(hwnd: Win32.Windef.HWND)
  465.                         return Win32.LONG is                -- vfw.h:2601
  466.     begin
  467.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_STOP, 0, 0));
  468.     end MCIWndStop;
  469.     
  470.     function MCIWndPause(hwnd: Win32.Windef.HWND)
  471.                         return Win32.LONG is                -- vfw.h:2602
  472.     begin
  473.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_PAUSE, 0, 0));
  474.     end MCIWndPause;
  475.     
  476.     function MCIWndResume(hwnd: Win32.Windef.HWND)
  477.                         return Win32.LONG is                -- vfw.h:2603
  478.     begin
  479.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_RESUME, 0, 0));
  480.     end MCIWndResume;
  481.     
  482.     function MCIWndSeek(hwnd: Win32.Windef.HWND;
  483.                         lPos: Win32.LONG)
  484.                         return Win32.LONG is                -- vfw.h:2604
  485.     begin
  486.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_SEEK, 0, Win32.LPARAM(lPos)));
  487.     end MCIWndSeek;
  488.     
  489.     function MCIWndEject(hwnd: Win32.Windef.HWND)
  490.                         return Win32.LONG is                -- vfw.h:2605
  491.     begin
  492.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_EJECT, 0, 0));
  493.     end MCIWndEject;
  494.  
  495.     
  496.     function MCIWndHome(hwnd: Win32.Windef.HWND)            
  497.                         return Win32.LONG is                -- vfw.h:2607
  498.     begin
  499.         return MCIWndSeek(hwnd, MCIWND_START);
  500.     end MCIWndHome;
  501.  
  502.     function MCIWndEnd(hwnd: Win32.Windef.HWND)             
  503.                         return Win32.LONG is                -- vfw.h:2608
  504.     begin
  505.         return MCIWndSeek(hwnd, MCIWND_END);
  506.     end MCIWndEnd;
  507.     
  508.         function To_LPARAM is new Ada.Unchecked_Conversion(
  509.                 Win32.Windef.LPRECT, Win32.LPARAM);
  510.  
  511.     function MCIWndGetSource(hwnd: Win32.Windef.HWND;
  512.                              prc : Win32.Windef.LPRECT)
  513.                              return Win32.LONG is           -- vfw.h:2610
  514.     begin
  515.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GET_SOURCE, 0, 
  516.                                 To_LPARAM(prc)));
  517.     end MCIWndGetSource;
  518.     
  519.     function MCIWndPutSource(hwnd: Win32.Windef.HWND;
  520.                              prc : Win32.Windef.LPRECT)
  521.                              return Win32.LONG is           -- vfw.h:2611
  522.     begin
  523.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_PUT_SOURCE, 0, 
  524.                                         To_LPARAM(prc)));
  525.     end MCIWndPutSource;
  526.  
  527.     
  528.     function MCIWndGetDest(hwnd: Win32.Windef.HWND;
  529.                            prc : Win32.Windef.LPRECT)
  530.                            return Win32.LONG is             -- vfw.h:2613
  531.     begin
  532.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GET_DEST, 0, To_LPARAM(prc)));
  533.     end MCIWndGetDest;
  534.     
  535.     function MCIWndPutDest(hwnd: Win32.Windef.HWND;
  536.                            prc : Win32.Windef.LPRECT)
  537.                            return Win32.LONG is             -- vfw.h:2614
  538.     begin
  539.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_PUT_DEST, 0, To_LPARAM(prc)));
  540.     end MCIWndPutDest;
  541.  
  542.     
  543.     function MCIWndPlayReverse(hwnd: Win32.Windef.HWND)
  544.                                return Win32.LONG is         -- vfw.h:2616
  545.     begin
  546.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_PLAYREVERSE, 0, 0));
  547.     end MCIWndPlayReverse;
  548.     
  549.     function MCIWndPlayFrom(hwnd: Win32.Windef.HWND;
  550.                             lPos: Win32.LONG)
  551.                           return Win32.LONG is              -- vfw.h:2617
  552.     begin
  553.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_PLAYFROM, 0, LPARAM(lPos)));
  554.     end MCIWndPlayFrom;
  555.     
  556.     function MCIWndPlayTo(hwnd: Win32.Windef.HWND;
  557.                           lPos: Win32.LONG)
  558.                           return Win32.LONG is              -- vfw.h:2618
  559.     begin
  560.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_PLAYTO, 0, LPARAM(lPos)));
  561.     end MCIWndPlayTo;
  562.     
  563.     function MCIWndPlayFromTo(hwnd  : Win32.Windef.HWND; 
  564.                               lStart: Win32.LONG;
  565.                               lEnd  : Win32.LONG ) 
  566.                               return Win32.LONG is          -- vfw.h:2619
  567.  
  568.         garbage : Win32.LONG;
  569.     begin
  570.         garbage := MCIWndSeek(hwnd, lStart);
  571.         return MCIWndPlayTo(hwnd, lEnd);
  572.     end MCIWndPlayFromTo;
  573.     
  574.     function MCIWndGetDeviceID(hwnd: Win32.Windef.HWND)
  575.                         return Win32.UINT is                -- vfw.h:2621
  576.     begin
  577.         return Win32.UINT(MCIWndSM(hwnd, MCIWNDM_GETDEVICEID, 0, 0));
  578.     end MCIWndGetDeviceID;
  579.     
  580.     function MCIWndGetAlias(hwnd: Win32.Windef.HWND)
  581.                         return Win32.UINT is                -- vfw.h:2622
  582.     begin
  583.         return UINT(MCIWndSM(hwnd, MCIWNDM_GETALIAS, 0, 0));
  584.     end MCIWndGetAlias;
  585.     
  586.     function To_LPARAM is new Ada.Unchecked_Conversion(Win32.Winnt.LPTSTR,
  587.                         Win32.LPARAM);
  588.  
  589.     function MCIWndGetMode(hwnd: Win32.Windef.HWND;
  590.                            lp  : Win32.Winnt.LPTSTR;
  591.                            len : Win32.UINT)
  592.                            return Win32.LONG is             -- vfw.h:2623
  593.     begin
  594.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETMODE, 
  595.                                 Win32.WPARAM(len), To_LPARAM(lp)));
  596.     end MCIWndGetMode;
  597.     
  598.     function MCIWndGetPosition(hwnd: Win32.Windef.HWND)
  599.                                return Win32.LONG is         -- vfw.h:2624
  600.     begin
  601.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETPOSITION, 0, 0));
  602.     end MCIWndGetPosition;
  603.     
  604.     function MCIWndGetPositionString(hwnd: Win32.Windef.HWND;
  605.                                      lp  : Win32.Winnt.LPTSTR;
  606.                                      len : Win32.UINT)
  607.                         return Win32.LONG is                -- vfw.h:2625
  608.     begin
  609.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETPOSITION, 
  610.                                 Win32.WPARAM(len), 
  611.                                 To_LPARAM(lp)));
  612.     end MCIWndGetPositionString;
  613.     
  614.     function MCIWndGetStart(hwnd: Win32.Windef.HWND)
  615.                         return Win32.LONG is                -- vfw.h:2626
  616.     begin
  617.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETSTART, 0, 0));
  618.     end MCIWndGetStart;
  619.     
  620.     function MCIWndGetLength(hwnd: Win32.Windef.HWND)
  621.                         return Win32.LONG is                -- vfw.h:2627
  622.     begin
  623.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETLENGTH, 0, 0));
  624.     end MCIWndGetLength;
  625.     
  626.     function MCIWndGetEnd(hwnd: Win32.Windef.HWND)
  627.                         return Win32.LONG is                -- vfw.h:2628
  628.     begin
  629.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETEND, 0, 0));
  630.     end MCIWndGetEnd;
  631.  
  632.     
  633.     function MCIWndStep(hwnd: Win32.Windef.HWND;
  634.                         n   : Win32.LONG)
  635.                         return Win32.LONG is                -- vfw.h:2630
  636.     begin
  637.         return Win32.LONG(MCIWndSM(hwnd, Win32.Mmsystem.MCI_STEP, 0, 
  638.                         Win32.LPARAM(n)));
  639.     end MCIWndStep;
  640.  
  641.     
  642.     procedure MCIWndDestroy(hwnd: Win32.Windef.HWND) is     -- vfw.h:2632
  643.         garbage : Win32.LRESULT;
  644.     begin
  645.         garbage := MCIWndSM(hwnd, Win32.Winuser.WM_CLOSE, 0, 0);
  646.     end MCIWndDestroy;
  647.     
  648.     procedure MCIWndSetZoom(hwnd : Win32.Windef.HWND;
  649.                            iZoom: Win32.UINT) is            -- vfw.h:2633
  650.         garbage : Win32.LRESULT;
  651.     begin
  652.         garbage := MCIWndSM(hwnd, MCIWNDM_SETZOOM, 0, LPARAM(iZoom));
  653.     end MCIWndSetZoom;
  654.     
  655.     function MCIWndGetZoom(hwnd: Win32.Windef.HWND)
  656.                         return Win32.UINT is                -- vfw.h:2634
  657.     begin
  658.         return Win32.UINT(MCIWndSM(hwnd, MCIWNDM_GETZOOM, 0, 0));
  659.     end MCIWndGetZoom;
  660.     
  661.     function MCIWndSetVolume(hwnd: Win32.Windef.HWND;
  662.                              iVol: Win32.UINT)
  663.                              return Win32.LONG is           -- vfw.h:2635
  664.     begin
  665.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_SETVOLUME, 0, 
  666.                                 Win32.LPARAM(iVol)));
  667.     end MCIWndSetVolume;
  668.     
  669.     function MCIWndGetVolume(hwnd: Win32.Windef.HWND)
  670.                              return Win32.LONG is           -- vfw.h:2636
  671.     begin
  672.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETVOLUME, 0, 0));
  673.     end MCIWndGetVolume;
  674.     
  675.     function MCIWndSetSpeed(hwnd  : Win32.Windef.HWND;
  676.                             iSpeed: Win32.UINT)
  677.                             return Win32.LONG is            -- vfw.h:2637
  678.     begin
  679.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_SETSPEED, 0, 
  680.                                 LPARAM(iSpeed)));
  681.     end MCIWndSetSpeed;
  682.     
  683.     function MCIWndGetSpeed(hwnd: Win32.Windef.HWND)
  684.                         return Win32.LONG is                -- vfw.h:2638
  685.     begin
  686.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETSPEED, 0, 0));
  687.     end MCIWndGetSpeed;
  688.     
  689.     function MCIWndSetTimeFormat(hwnd: Win32.Windef.HWND;
  690.                                  lp  : Win32.Winnt.LPTSTR)
  691.                                  return Win32.LONG is       -- vfw.h:2639
  692.     begin
  693.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_SETTIMEFORMAT, 0, 
  694.                         To_LPARAM(lp)));
  695.     end MCIWndSetTimeFormat;
  696.     
  697.     function MCIWndGetTimeFormat(hwnd: Win32.Windef.HWND;
  698.                                  lp  : Win32.Winnt.LPTSTR; 
  699.                                  len : Win32.UINT)
  700.                                  return Win32.LONG is       -- vfw.h:2640
  701.     begin
  702.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETTIMEFORMAT, 
  703.                         WPARAM(len), To_LPARAM(lp)));
  704.     end MCIWndGetTimeFormat;
  705.     
  706.     procedure MCIWndValidateMedia(hwnd: Win32.Windef.HWND) is
  707.                                                             -- vfw.h:2641
  708.         garbage : Win32.LRESULT;
  709.     begin
  710.         garbage := MCIWndSM(hwnd, MCIWNDM_VALIDATEMEDIA, 0, 0);
  711.     end MCIWndValidateMedia;
  712.  
  713.     
  714.     procedure MCIWndSetRepeat(hwnd: Win32.Windef.HWND;
  715.                               f   : Win32.BOOL) is          -- vfw.h:2643
  716.         garbage : Win32.LRESULT;
  717.     begin
  718.         garbage := MCIWndSM(hwnd, MCIWNDM_SETREPEAT, 0, Win32.LPARAM(f));
  719.     end MCIWndSetRepeat;
  720.     
  721.     function MCIWndGetRepeat(hwnd: Win32.Windef.HWND)
  722.                              return Win32.BOOL is           -- vfw.h:2644
  723.     begin
  724.         return Win32.BOOL(MCIWndSM(hwnd, MCIWNDM_GETREPEAT, 0, 0));
  725.     end MCIWndGetRepeat;
  726.  
  727.     procedure MCIWndSetActiveTimer(hwnd  : Win32.Windef.HWND;
  728.                                    active: Win32.UINT) is
  729.                                         -- vfw.h:2649           
  730.         garbage : Win32.LRESULT;
  731.     begin
  732.         garbage := MCIWndSM(hwnd, MCIWNDM_SETACTIVETIMER,       
  733.                         Win32.WPARAM(active), 0);
  734.     end MCIWndSetActiveTimer;
  735.     
  736.     procedure MCIWndSetInactiveTimer(hwnd    : Win32.Windef.HWND;
  737.                                      inactive: Win32.UINT) is
  738.                                         -- vfw.h:2652
  739.         garbage : Win32.LRESULT;
  740.     begin
  741.         garbage := MCIWndSM(hwnd, MCIWNDM_SETINACTIVETIMER,
  742.                         Win32.WPARAM(inactive), 0);
  743.     end MCIWndSetInactiveTimer;
  744.  
  745.     procedure MCIWndSetTimers(hwnd    : Win32.Windef.HWND;
  746.                               active  : Win32.UINT;
  747.                               inactive: Win32.UINT) is      -- vfw.h:2655
  748.         garbage : Win32.LRESULT;
  749.     begin
  750.          garbage := MCIWndSM(hwnd, MCIWNDM_SETTIMERS, Win32.WPARAM(active), 
  751.                         Win32.LPARAM(inactive));
  752.     end MCIWndSetTimers;
  753.  
  754.     function MCIWndGetActiveTimer(hwnd: Win32.Windef.HWND) 
  755.                                 return Win32.UINT is        -- vfw.h:2658
  756.     begin
  757.         return Win32.UINT(MCIWndSM(hwnd, MCIWNDM_GETACTIVETIMER,0, 0));
  758.     end MCIWndGetActiveTimer;
  759.  
  760.     function MCIWndGetInactiveTimer(hwnd: Win32.Windef.HWND)    
  761.                                 return Win32.UINT is        -- vfw.h:2658
  762.     begin
  763.         return Win32.UINT(MCIWndSM(hwnd, MCIWNDM_GETINACTIVETIMER, 0, 0));
  764.     end MCIWndGetInactiveTimer;
  765.     
  766.     function MCIWndRealize(hwnd  : Win32.Windef.HWND;
  767.                            fBkgnd: Win32.BOOL)
  768.                            return Win32.LONG is             -- vfw.h:2663
  769.     begin
  770.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_REALIZE, 
  771.                                 Win32.WPARAM(fBkgnd),0));
  772.     end MCIWndRealize;
  773.  
  774.     
  775.     function MCIWndSendString(hwnd: Win32.Windef.HWND;
  776.                               sz  : Win32.Winnt.LPTSTR)
  777.                               return Win32.LONG is          -- vfw.h:2665
  778.     begin
  779.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_SENDSTRING, 0, 
  780.                                 To_LPARAM(sz)));
  781.     end MCIWndSendString;
  782.     
  783.  
  784.     function MCIWndReturnString(hwnd: Win32.Windef.HWND;
  785.                                 lp  : Win32.LPVOID;
  786.                                 len : Win32.UINT)
  787.                                 return Win32.LONG is        -- vfw.h:2666
  788.     begin
  789.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_RETURNSTRING, 
  790.                         Win32.WPARAM(len), To_LPARAM(lp)));
  791.     end MCIWndReturnString;
  792.     
  793.     function MCIWndGetError(hwnd: Win32.Windef.HWND;
  794.                             lp  : Win32.LPVOID; 
  795.                             len : Win32.UINT)
  796.                             return Win32.LONG is            -- vfw.h:2667
  797.     begin
  798.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETERROR, Win32.WPARAM(len), 
  799.                         To_LPARAM(lp)));
  800.     end MCIWndGetError;
  801.  
  802.     function MCIWndGetPalette(hwnd: Win32.Windef.HWND)
  803.                         return Win32.Windef.HPALETTE is     -- vfw.h:2671
  804.         function To_HPALETTE is new Ada.Unchecked_Conversion(
  805.                 Win32.LRESULT, Win32.Windef.HPALETTE);
  806.     begin
  807.         return To_HPALETTE(MCIWndSM(hwnd, MCIWNDM_GETPALETTE, 0, 0));
  808.     end MCIWndGetPalette;
  809.     
  810.     function MCIWndSetPalette(hwnd: Win32.Windef.HWND;
  811.                               hpal: Win32.Windef.HPALETTE)
  812.                               return Win32.LONG is          -- vfw.h:2672
  813.         function To_WPARAM is new Ada.Unchecked_Conversion(
  814.                 Win32.Windef.HPALETTE, Win32.WPARAM);
  815.     begin
  816.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_SETPALETTE, 
  817.                                 To_WPARAM(hpal), 0));
  818.     end MCIWndSetPalette;
  819.  
  820.     
  821.     function MCIWndGetFileName(hwnd: Win32.Windef.HWND;
  822.                                lp  : Win32.LPVOID;
  823.                                len : Win32.UINT)
  824.                                return Win32.LONG is         -- vfw.h:2674
  825.     begin
  826.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETFILENAME, 
  827.                         Win32.WPARAM(len), To_LPARAM(lp)));
  828.     end MCIWndGetFileName;
  829.     
  830.     function MCIWndGetDevice(hwnd: Win32.Windef.HWND;
  831.                              lp  : Win32.LPVOID; 
  832.                              len : Win32.UINT)
  833.                              return Win32.LONG is           -- vfw.h:2675
  834.     begin
  835.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_GETDEVICE, 
  836.                         Win32.WPARAM(len), To_LPARAM(lp)));
  837.     end MCIWndGetDevice;
  838.  
  839.         function MCIWndGetStyles(hwnd: Win32.Windef.HWND)
  840.                         return Win32.UINT is                -- vfw.h:2677
  841.     begin
  842.         return Win32.UINT(MCIWndSM(hwnd, MCIWNDM_GETSTYLES, 0, 0));
  843.     end MCIWndGetStyles;
  844.     
  845.     function MCIWndChangeStyles(hwnd : Win32.Windef.HWND;
  846.                                 mask : Win32.UINT;
  847.                                 value: Win32.LONG)
  848.                                 return Win32.LONG is        -- vfw.h:2678
  849.     begin
  850.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_CHANGESTYLES, 
  851.                         Win32.WPARAM(mask), Win32.LPARAM(value)));
  852.     end MCIWndChangeStyles;
  853.  
  854.     function MCIWndOpenInterface(hwnd: Win32.Windef.HWND;
  855.                                  pUnk: Win32.Objbase.LPUNKNOWN)
  856.                                  return Win32.LONG is       -- vfw.h:2680
  857.         function To_LPARAM is new Ada.Unchecked_Conversion(
  858.                 Win32.Objbase.LPUNKNOWN, Win32.LPARAM);
  859.     begin
  860.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_OPENINTERFACE, 0, 
  861.                 To_LPARAM(pUnk)));
  862.     end MCIWndOpenInterface;
  863.  
  864.     function MCIWndSetOwner(hwnd : Win32.Windef.HWND;
  865.                             hwndP: Win32.Windef.HWND)
  866.                             return Win32.LONG is            -- vfw.h:2682
  867.         function To_WPARAM is new Ada.Unchecked_Conversion(
  868.                 Win32.Windef.HWND, Win32.WPARAM);
  869.     begin
  870.         return Win32.LONG(MCIWndSM(hwnd, MCIWNDM_SETOWNER, 
  871.                                 To_WPARAM(hwndP), 0));
  872.     end MCIWndSetOwner;
  873.  
  874.  
  875.     function capSetCallbackOnError(hwnd  : Win32.Windef.HWND;
  876.                                    fpProc: Win32.LPVOID)       
  877.                                    return Win32.BOOL is     -- vfw.h:3215
  878.     begin
  879.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_CALLBACK_ERROR, 0, 
  880.                                         To_LPARAM(fpProc)));
  881.     end capSetCallbackOnError;
  882.  
  883.     function capSetCallbackOnStatus(hwnd  : Win32.Windef.HWND;
  884.                                     fpProc: Win32.LPVOID)      
  885.                                     return Win32.BOOL is    -- vfw.h:3216
  886.     begin
  887.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_CALLBACK_STATUS, 0, 
  888.                                         To_LPARAM(fpProc)));
  889.     end capSetCallbackOnStatus;
  890.  
  891.     function capSetCallbackOnYield(hwnd  : Win32.Windef.HWND;
  892.                                    fpProc: Win32.LPVOID)       
  893.                                    return Win32.BOOL is     -- vfw.h:3217
  894.     begin
  895.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_CALLBACK_YIELD, 0, 
  896.                                         To_LPARAM(fpProc)));
  897.     end capSetCallbackOnYield;
  898.  
  899.     function capSetCallbackOnFrame(hwnd  : Win32.Windef.HWND;
  900.                                    fpProc: Win32.LPVOID)       
  901.                                    return Win32.BOOL is     -- vfw.h:3218
  902.     begin
  903.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_CALLBACK_FRAME, 0, 
  904.                                         To_LPARAM(fpProc)));
  905.     end capSetCallbackOnFrame;
  906.  
  907.     function capSetCallbackOnVideoStream(hwnd  : Win32.Windef.HWND;
  908.                                          fpProc: Win32.LPVOID) 
  909.                                          return Win32.BOOL is
  910.                                                             -- vfw.h:3219
  911.     begin
  912.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 
  913.                                         To_LPARAM(fpProc)));
  914.     end capSetCallbackOnVideoStream;
  915.  
  916.     function capSetCallbackOnWaveStream(
  917.                 hwnd: Win32.Windef.HWND;
  918.                 fpProc: Win32.LPVOID)  
  919.                 return Win32.BOOL is                        -- vfw.h:3220
  920.     begin
  921.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_CALLBACK_WAVESTREAM, 0, 
  922.                                         To_LPARAM(fpProc)));
  923.     end capSetCallbackOnWaveStream;
  924.  
  925.     function capSetCallbackOnCapControl(hwnd  : Win32.Windef.HWND;
  926.                                         fpProc: Win32.LPVOID)  
  927.                                         return Win32.BOOL is-- vfw.h:3221
  928.     begin
  929.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_CALLBACK_CAPCONTROL, 0, 
  930.                                         To_LPARAM(fpProc)));
  931.     end capSetCallbackOnCapControl;
  932.  
  933.     function capSetUserData(hwnd : Win32.Windef.HWND;
  934.                             lUser: Win32.LONG)       
  935.                             return Win32.BOOL is            -- vfw.h:3223
  936.     begin
  937.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_USER_DATA, 0, 
  938.                                 LPARAM(lUser)));
  939.     end capSetUserData;
  940.  
  941.     function capGetUserData(hwnd: Win32.Windef.HWND)        -- vfw.h:3224  
  942.                             return Win32.LRESULT is
  943.     begin
  944.         return AVICapSM(hwnd, WM_CAP_GET_USER_DATA, 0, 0);
  945.     end capGetUserData;
  946.  
  947.  
  948.     function capDriverConnect(hwnd: Win32.Windef.HWND;
  949.                               i   : Win32.INT)                 
  950.                               return Win32.BOOL is          -- vfw.h:3226
  951.     begin
  952.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DRIVER_CONNECT, WPARAM(i), 0));
  953.     end capDriverConnect;
  954.  
  955.     function capDriverDisconnect(hwnd: Win32.Windef.HWND)                  
  956.                         return Win32.BOOL is                -- vfw.h:3227
  957.     begin
  958.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0));
  959.     end capDriverDisconnect;
  960.  
  961.     function capDriverGetName(hwnd  : Win32.Windef.HWND;
  962.                               szName: Win32.Winnt.LPTSTR;
  963.                               wSize : Win32.WORD)     
  964.                               return Win32.BOOL is          -- vfw.h:3228
  965.     begin
  966.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DRIVER_GET_NAME, 
  967.                                         WPARAM(wSize), 
  968.                                         (To_LPARAM(To_LPVOID(szName)))));
  969.     end capDriverGetName;
  970.  
  971.     function capDriverGetVersion(hwnd : Win32.Windef.HWND;
  972.                                  szVer: Win32.Winnt.LPTSTR; 
  973.                                  wSize: Win32.WORD)   
  974.                                  return Win32.BOOL is       -- vfw.h:3229
  975.     begin
  976.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DRIVER_GET_VERSION, 
  977.                                         WPARAM(wSize), 
  978.                                         To_LPARAM(To_LPVOID(szVer))));
  979.     end capDriverGetVersion;
  980.  
  981.     function capDriverGetCaps(hwnd : Win32.Windef.HWND;
  982.                               s    : LPCAPDRIVERCAPS;
  983.                               wSize:Win32.WORD)          
  984.                         return Win32.BOOL is                -- vfw.h:3230
  985.         function To_LPVOID is new Ada.Unchecked_Conversion(LPCAPDRIVERCAPS,
  986.                 Win32.LPVOID);
  987.     begin
  988.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DRIVER_GET_CAPS, 
  989.                                         WPARAM(wSize), 
  990.                                         To_LPARAM(To_LPVOID(s))));
  991.     end capDriverGetCaps;
  992.  
  993.  
  994.     function capFileSetCaptureFile(hwnd  : Win32.Windef.HWND;
  995.                                    szName: Win32.Winnt.LPTSTR)       
  996.                                    return Win32.BOOL is     -- vfw.h:3232
  997.     begin
  998.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_FILE_SET_CAPTURE_FILE, 0, 
  999.                                 To_LPARAM(To_LPVOID(szName))));
  1000.     end capFileSetCaptureFile;
  1001.  
  1002.     function capFileGetCaptureFile(hwnd  : Win32.Windef.HWND;
  1003.                                    szName: Win32.Winnt.LPTSTR;
  1004.                                    wSize : Win32.WORD)
  1005.                                    return Win32.BOOL is     -- vfw.h:3233
  1006.     begin
  1007.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_FILE_GET_CAPTURE_FILE, 
  1008.                                 WPARAM(wSize), 
  1009.                                 To_LPARAM(To_LPVOID(szName))));
  1010.     end capFileGetCaptureFile;
  1011.  
  1012.     function capFileAlloc(hwnd  : Win32.Windef.HWND;
  1013.                           dwSize: Win32.DWORD)                
  1014.                           return Win32.BOOL is              -- vfw.h:3234
  1015.     begin
  1016.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_FILE_ALLOCATE, 0, 
  1017.                                 LPARAM(dwSize)));
  1018.     end capFileAlloc;
  1019.  
  1020.     function capFileSaveAs(hwnd  : Win32.Windef.HWND;
  1021.                            szName: Win32.Winnt.LPTSTR)               
  1022.                            return Win32.BOOL is             -- vfw.h:3235
  1023.     begin
  1024.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_FILE_SAVEAS, 0, 
  1025.                                 To_LPARAM(To_LPVOID(szName))));
  1026.     end capFileSaveAs;
  1027.  
  1028.     function capFileSetInfoChunk(hwnd       : Win32.Windef.HWND;
  1029.                                  lpInfoChunk: LPCAPINFOCHUNK)    
  1030.                                  return Win32.BOOL is       -- vfw.h:3236
  1031.         function To_LPARAM is new Ada.Unchecked_Conversion(     
  1032.                 LPCAPINFOCHUNK, Win32.LPARAM);
  1033.     begin
  1034.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_FILE_SET_INFOCHUNK, 0, 
  1035.                                 To_LPARAM(lpInfoChunk)));
  1036.     end capFileSetInfoChunk;
  1037.  
  1038.     function capFileSaveDIB(hwnd  : Win32.Windef.HWND;
  1039.                             szName: Win32.Winnt.LPTSTR)              
  1040.                             return Win32.BOOL is            -- vfw.h:3237
  1041.     begin
  1042.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_FILE_SAVEDIB, 0,        
  1043.                                         To_LPARAM(To_LPVOID(szName))));
  1044.     end capFileSaveDIB;
  1045.  
  1046.  
  1047.     function capEditCopy(hwnd: Win32.Windef.HWND)                          
  1048.                         return Win32.BOOL is                -- vfw.h:3239
  1049.     begin
  1050.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_EDIT_COPY, 0, 0));
  1051.     end capEditCopy;
  1052.  
  1053.  
  1054.     function capSetAudioFormat(hwnd : Win32.Windef.HWND;
  1055.                                s    : Win32.Mmsystem.LPWAVEFORMATEX;
  1056.                                wSize: Win32.WORD)         
  1057.                         return Win32.BOOL is                -- vfw.h:3241
  1058.         function To_LPVOID is new Ada.Unchecked_Conversion(
  1059.                 Win32.Mmsystem.LPWAVEFORMATEX,
  1060.                 Win32.LPVOID);
  1061.  
  1062.     begin
  1063.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_AUDIOFORMAT,        
  1064.                                         WPARAM(wSize), 
  1065.                                         To_LPARAM(To_LPVOID(s))));
  1066.     end capSetAudioFormat;
  1067.  
  1068.     function capGetAudioFormat(hwnd : Win32.Windef.HWND;
  1069.                                s    : Win32.Mmsystem.LPWAVEFORMATEX;
  1070.                                wSize: Win32.WORD)         
  1071.                                return Win32.DWORD is        -- vfw.h:3242
  1072.         function To_LPVOID is new Ada.Unchecked_Conversion(
  1073.                 Win32.Mmsystem.LPWAVEFORMATEX, Win32.LPVOID);
  1074.     begin
  1075.         return Win32.DWORD(AVICapSM(hwnd, WM_CAP_GET_AUDIOFORMAT, 
  1076.                                         Win32.WPARAM(wSize), 
  1077.                                         To_LPARAM(To_LPVOID(s))));
  1078.     end capGetAudioFormat;
  1079.  
  1080.     function capGetAudioFormatSize(hwnd: Win32.Windef.HWND)                
  1081.                                    return Win32.DWORD is    -- vfw.h:3243
  1082.     begin
  1083.         return Win32.DWORD(AVICapSM(hwnd, WM_CAP_GET_AUDIOFORMAT, 0, 0));
  1084.     end capGetAudioFormatSize;
  1085.  
  1086.     function capDlgVideoFormat(hwnd: Win32.Windef.HWND)                    
  1087.                                return Win32.BOOL is         -- vfw.h:3245
  1088.     begin
  1089.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0));
  1090.     end capDlgVideoFormat;
  1091.  
  1092.     function capDlgVideoSource(hwnd: Win32.Windef.HWND)                    
  1093.                                return Win32.BOOL is         -- vfw.h:3246
  1094.     begin
  1095.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DLG_VIDEOSOURCE, 0, 0));
  1096.     end capDlgVideoSource;
  1097.  
  1098.     function capDlgVideoDisplay(hwnd: Win32.Windef.HWND)                   
  1099.                                 return Win32.BOOL is        -- vfw.h:3247
  1100.     begin
  1101.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DLG_VIDEODISPLAY, 0, 0));
  1102.     end capDlgVideoDisplay;
  1103.  
  1104.     function capDlgVideoCompression(hwnd: Win32.Windef.HWND)               
  1105.                                     return Win32.BOOL is    -- vfw.h:3248
  1106.     begin
  1107.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0));
  1108.     end capDlgVideoCompression;
  1109.  
  1110.  
  1111.     function capGetVideoFormat(hwnd  : Win32.Windef.HWND;
  1112.                                s     : Win32.LPVOID; 
  1113.                                wSize : Win32.WORD)         
  1114.                                return Win32.DWORD is        -- vfw.h:3250
  1115.     begin
  1116.         return Win32.DWORD(AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, 
  1117.                                         Win32.WPARAM(wSize), 
  1118.                                         To_LPARAM(s)));
  1119.     end capGetVideoFormat;
  1120.  
  1121.     function capGetVideoFormatSize(hwnd: Win32.Windef.HWND)            
  1122.                                    return Win32.DWORD is    -- vfw.h:3251
  1123.     begin
  1124.         return Win32.DWORD(AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, 0, 0));
  1125.     end capGetVideoFormatSize;
  1126.  
  1127.     function capSetVideoFormat(hwnd : Win32.Windef.HWND;
  1128.                                s    : Win32.LPVOID;
  1129.                                wSize: Win32.WORD)         
  1130.                         return Win32.BOOL is                -- vfw.h:3252
  1131.     begin
  1132.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_VIDEOFORMAT, 
  1133.                                         WPARAM(wSize), 
  1134.                                         To_LPARAM(s)));
  1135.     end capSetVideoFormat;
  1136.  
  1137.  
  1138.     function capPreview(hwnd: Win32.Windef.HWND;
  1139.                         f   : Win32.BOOL)                       
  1140.                         return Win32.BOOL is                -- vfw.h:3254
  1141.     begin
  1142.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_PREVIEW, WPARAM(f), 0));
  1143.     end capPreview;
  1144.  
  1145.     function capPreviewRate(hwnd: Win32.Windef.HWND;
  1146.                             wMS : Win32.WORD)                 
  1147.                             return Win32.BOOL is            -- vfw.h:3255
  1148.     begin
  1149.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_PREVIEWRATE, 
  1150.                                         WPARAM(wMS), 0));
  1151.     end capPreviewRate;
  1152.  
  1153.     function capOverlay(hwnd: Win32.Windef.HWND;
  1154.                         f   : Win32.BOOL)                       
  1155.                         return Win32.BOOL is                -- vfw.h:3256
  1156.     begin
  1157.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_OVERLAY, WPARAM(f), 0));
  1158.     end capOverlay;
  1159.  
  1160.     function capPreviewScale(hwnd: Win32.Windef.HWND;
  1161.                              f   : Win32.BOOL)                  
  1162.                              return Win32.BOOL is           -- vfw.h:3257
  1163.     begin
  1164.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_SCALE, WPARAM(f), 0));
  1165.     end capPreviewScale;
  1166.  
  1167.     function capGetStatus(hwnd : Win32.Windef.HWND;
  1168.                           s    : LPCAPSTATUS;
  1169.                           wSize: Win32.WORD)           
  1170.                           return Win32.BOOL is              -- vfw.h:3258
  1171.  
  1172.         function To_LPVOID is new Ada.Unchecked_Conversion(     
  1173.                 LPCAPSTATUS, Win32.LPVOID);
  1174.     begin
  1175.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_GET_STATUS, WPARAM(wSize), 
  1176.                         To_LPARAM(To_LPVOID(s))));
  1177.     end capGetStatus;
  1178.  
  1179.     function capSetScrollPos(hwnd: Win32.Windef.HWND;
  1180.                              lpP : Win32.Windef.LPPOINT)                
  1181.                              return Win32.BOOL is           -- vfw.h:3259
  1182.         function To_LPARAM is new Ada.Unchecked_Conversion(
  1183.                 Win32.Windef.LPPOINT, Win32.LPARAM);
  1184.     begin
  1185.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_SCROLL, 0, 
  1186.                                         To_LPARAM(lpP)));
  1187.     end capSetScrollPos;
  1188.  
  1189.     function capGrabFrame(hwnd: Win32.Windef.HWND)                         
  1190.                           return Win32.BOOL is              -- vfw.h:3261
  1191.     begin
  1192.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_GRAB_FRAME, 0, 0));
  1193.     end capGrabFrame;
  1194.  
  1195.     function capGrabFrameNoStop(hwnd: Win32.Windef.HWND)                   
  1196.                                 return Win32.BOOL is        -- vfw.h:3262
  1197.     begin
  1198.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_GRAB_FRAME_NOSTOP, 0, 0));
  1199.     end capGrabFrameNoStop;
  1200.  
  1201.  
  1202.     function capCaptureSequence(hwnd: Win32.Windef.HWND)                   
  1203.                                 return Win32.BOOL is        -- vfw.h:3264
  1204.     begin
  1205.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SEQUENCE, 0, 0));
  1206.     end capCaptureSequence;
  1207.  
  1208.     function capCaptureSequenceNoFile(hwnd: Win32.Windef.HWND)             
  1209.                         return Win32.BOOL is                -- vfw.h:3265
  1210.     begin
  1211.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SEQUENCE_NOFILE, 0, 0));
  1212.     end capCaptureSequenceNoFile;
  1213.  
  1214.     function capCaptureStop(hwnd: Win32.Windef.HWND)                       
  1215.                         return Win32.BOOL is                -- vfw.h:3266
  1216.     begin
  1217.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_STOP, 0, 0));
  1218.     end capCaptureStop;
  1219.  
  1220.     function capCaptureAbort(hwnd: Win32.Windef.HWND)                      
  1221.                         return Win32.BOOL is                -- vfw.h:3267
  1222.     begin
  1223.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_ABORT, 0, 0));
  1224.     end capCaptureAbort;
  1225.  
  1226.  
  1227.     function capCaptureSingleFrameOpen(hwnd: Win32.Windef.HWND)            
  1228.                         return Win32.BOOL is                -- vfw.h:3269
  1229.     begin
  1230.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SINGLE_FRAME_OPEN, 0, 0));
  1231.     end capCaptureSingleFrameOpen;
  1232.  
  1233.     function capCaptureSingleFrameClose(hwnd: Win32.Windef.HWND)           
  1234.                         return Win32.BOOL is                -- vfw.h:3270
  1235.     begin
  1236.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SINGLE_FRAME_CLOSE, 0, 0));
  1237.     end capCaptureSingleFrameClose;
  1238.  
  1239.     function capCaptureSingleFrame(hwnd: Win32.Windef.HWND)                
  1240.                         return Win32.BOOL is                -- vfw.h:3271
  1241.     begin
  1242.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SINGLE_FRAME, 0, 0));
  1243.     end capCaptureSingleFrame;
  1244.  
  1245.  
  1246.     function To_LPVOID is new Ada.Unchecked_Conversion(LPCAPTUREPARMS,
  1247.                 Win32.LPVOID);
  1248.  
  1249.     function capCaptureGetSetup(hwnd : Win32.Windef.HWND;
  1250.                                 s    : LPCAPTUREPARMS;
  1251.                                 wSize: Win32.WORD)        
  1252.                         return Win32.BOOL is                -- vfw.h:3273
  1253.     begin
  1254.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_GET_SEQUENCE_SETUP, 
  1255.                                 WPARAM(wSize), To_LPARAM(To_LPVOID(s))));
  1256.     end capCaptureGetSetup;
  1257.  
  1258.     function capCaptureSetSetup(hwnd : Win32.Windef.HWND;
  1259.                                 s    : LPCAPTUREPARMS;
  1260.                                 wSize: Win32.WORD)        
  1261.                         return Win32.BOOL is                -- vfw.h:3274
  1262.     begin
  1263.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_SEQUENCE_SETUP, 
  1264.                         WPARAM(wSize), To_LPARAM(To_LPVOID(s))));
  1265.     end capCaptureSetSetup;
  1266.  
  1267.  
  1268.     function capSetMCIDeviceName(hwnd  : Win32.Windef.HWND;
  1269.                                  szName: Win32.Winnt.LPTSTR)         
  1270.                                  return Win32.BOOL is       -- vfw.h:3276
  1271.     begin
  1272.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_SET_MCI_DEVICE, 0, 
  1273.                                 To_LPARAM(To_LPVOID(szName))));
  1274.     end capSetMCIDeviceName;
  1275.  
  1276.     function capGetMCIDeviceName(hwnd  : Win32.Windef.HWND;
  1277.                                  szName: Win32.Winnt.LPTSTR;
  1278.                                  wSize : Win32.WORD )  
  1279.                         return Win32.BOOL is                -- vfw.h:3277
  1280.     begin
  1281.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_GET_MCI_DEVICE, WPARAM(wSize), 
  1282.                         To_LPARAM(To_LPVOID(szName))));
  1283.     end capGetMCIDeviceName;
  1284.  
  1285.  
  1286.     function capPaletteOpen(hwnd  : Win32.Windef.HWND;
  1287.                             szName: Win32.Winnt.LPTSTR)              
  1288.                             return Win32.BOOL is            -- vfw.h:3279
  1289.     begin
  1290.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_PAL_OPEN, 0, 
  1291.                                 To_LPARAM(To_LPVOID(szName))));
  1292.     end capPaletteOpen;
  1293.  
  1294.     function capPaletteSave(hwnd  : Win32.Windef.HWND;
  1295.                             szName: Win32.Winnt.LPTSTR)              
  1296.                             return Win32.BOOL is            -- vfw.h:3280
  1297.     begin
  1298.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_PAL_SAVE, 0, 
  1299.                                         To_LPARAM(To_LPVOID(szName))));
  1300.     end capPaletteSave;
  1301.  
  1302.     function capPalettePaste(hwnd: Win32.Windef.HWND)                      
  1303.                              return Win32.BOOL is           -- vfw.h:3281
  1304.     begin
  1305.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_PAL_PASTE, 0, 0));
  1306.     end capPalettePaste;
  1307.  
  1308.     function capPaletteAuto(hwnd   : Win32.Windef.HWND;
  1309.                             iFrames: Win32.INT; 
  1310.                             iColors: Win32.INT)    
  1311.                             return Win32.BOOL is            -- vfw.h:3282
  1312.     begin
  1313.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_PAL_AUTOCREATE, 
  1314.                                 Win32.WPARAM(iFrames), 
  1315.                                 Win32.LPARAM(iColors)));
  1316.     end capPaletteAuto;
  1317.  
  1318.     function capPaletteManual(hwnd   : Win32.Windef.HWND;
  1319.                               fGrab  : Win32.BOOL;
  1320.                               iColors: Win32.INT)    
  1321.                               return Win32.BOOL is          -- vfw.h:3283
  1322.     begin
  1323.         return Win32.BOOL(AVICapSM(hwnd, WM_CAP_PAL_MANUALCREATE, 
  1324.                                 Win32.WPARAM(fGrab), 
  1325.                                 Win32.LPARAM(iColors)));
  1326.     end capPaletteManual;
  1327.  
  1328.  
  1329. end Win32.Vfw;
  1330.