Changeset 4608 for trunk/include


Ignore:
Timestamp:
Nov 17, 2000, 3:32:50 PM (25 years ago)
Author:
sandervl
Message:

header updates for comctl32

Location:
trunk/include/win
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win/animate.h

    r2874 r4608  
    1 /* $Id: animate.h,v 1.3 2000-02-23 17:03:00 cbratschi Exp $ */
     1/* $Id: animate.h,v 1.4 2000-11-17 14:32:48 sandervl Exp $ */
    22
    33/*
     
    1111#define __WINE_ANIMATE_H
    1212
    13 #define CINTERFACE
     13#ifdef __cplusplus
     14extern "C" {
     15#endif
    1416
    15 #include "windef.h"
    16 #include "vfw.h"
     17VOID ANIMATE_Register (VOID);
     18VOID ANIMATE_Unregister (VOID);
    1719
    18 typedef struct tagANIMATE_INFO
    19 {
    20    COMCTL32_HEADER      header;
    21 
    22    /* pointer to msvideo functions. it's easier to put them here.
    23     * to be correct, they should be defined on a per process basis, but
    24     * this would required a per process storage. We're using a per object
    25     * storage instead, which is not efficient on memory usage, but
    26     * will lead to less bugs in the future
    27     */
    28    HIC          (WINAPI*  fnICOpen)(DWORD, DWORD, UINT);
    29    LRESULT      (WINAPI*  fnICClose)(HIC);
    30    LRESULT      (WINAPI*  fnICSendMessage)(HIC, UINT, DWORD, DWORD);
    31    DWORD        (WINAPIV* fnICDecompress)(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
    32 
    33    /* reference to input stream (file or resource) */
    34    HGLOBAL              hRes;
    35    HMMIO                hMMio;  /* handle to mmio stream */
    36    HWND                 hWnd;
    37    /* information on the loaded AVI file */
    38    MainAVIHeader        mah;
    39    AVIStreamHeader      ash;
    40    LPBITMAPINFOHEADER   inbih;
    41    LPDWORD              lpIndex;
    42    /* data for the decompressor */
    43    HIC                  hic;
    44    LPBITMAPINFOHEADER   outbih;
    45    LPVOID               indata;
    46    LPVOID               outdata;
    47    /* data for the background mechanism */
    48    CRITICAL_SECTION     cs;
    49    HANDLE               hThread;
    50    UINT                 delay;
    51    BOOL                 stopThread;
    52    UINT                 uTimer;
    53    /* data for playing the file */
    54    int                  nFromFrame;
    55    int                  nToFrame;
    56    int                  nLoop;
    57    int                  currFrame;
    58 } ANIMATE_INFO;
    59 
    60 
    61 extern VOID ANIMATE_Register (VOID);
    62 extern VOID ANIMATE_Unregister (VOID);
     20#ifdef __cplusplus
     21}
     22#endif
    6323
    6424#endif  /* __WINE_ANIMATE_H */
  • trunk/include/win/comboex.h

    r2874 r4608  
    1 /* $Id: comboex.h,v 1.2 2000-02-23 17:03:00 cbratschi Exp $ */
     1/* $Id: comboex.h,v 1.3 2000-11-17 14:32:48 sandervl Exp $ */
    22
    33/*
     
    1010#define __WINE_COMBOEX_H
    1111
    12 typedef struct tagCOMBOEX_INFO
    13 {
    14     COMCTL32_HEADER header;
    15     HIMAGELIST      himl;
    16     HWND            hwndCombo;
    17     DWORD           dwExtStyle;
     12#ifdef __cplusplus
     13extern "C" {
     14#endif
    1815
    19 } COMBOEX_INFO;
     16VOID COMBOEX_Register (VOID);
     17VOID COMBOEX_Unregister (VOID);
    2018
    21 
    22 extern VOID COMBOEX_Register (VOID);
    23 extern VOID COMBOEX_Unregister (VOID);
     19#ifdef __cplusplus
     20}
     21#endif
    2422
    2523#endif  /* __WINE_COMBOEX_H */
  • trunk/include/win/commctrl.h

    r4133 r4608  
    1 /* $Id: commctrl.h,v 1.35 2000-08-31 12:46:02 sandervl Exp $ */
     1/* $Id: commctrl.h,v 1.36 2000-11-17 14:32:48 sandervl Exp $ */
    22/*
    33 * Common controls definitions
     
    1111#include "winuser.h"
    1212#include "imagelist.h"
     13#include "winnls.h"
    1314//#include "prsht.h"
    1415
     
    33493350#define WC_COMBOBOXEXA        "ComboBoxEx32"
    33503351#define WC_COMBOBOXEXW        L"ComboBoxEx32"
    3351 #define WC_COMBOBOXEX         WINELIB_NAME_AW(WC_COMBOBOXEX)
     3352#define WC_COMBOBOXEX           WINELIB_NAME_AW(WC_COMBOBOXEX)
     3353
     3354#define CBEIF_TEXT              0x00000001
     3355#define CBEIF_IMAGE             0x00000002
     3356#define CBEIF_SELECTEDIMAGE     0x00000004
     3357#define CBEIF_OVERLAY           0x00000008
     3358#define CBEIF_INDENT            0x00000010
     3359#define CBEIF_LPARAM            0x00000020
     3360#define CBEIF_DI_SETITEM        0x10000000
    33523361
    33533362#define CBEM_INSERTITEMA      (WM_USER+1)
    33543363#define CBEM_INSERTITEMW      (WM_USER+11)
    3355 #define CBEM_INSERTITEM       WINELIB_NAME_AW(CBEM_INSERTITEM)
    3356 #define CBEM_SETIMAGELIST     (WM_USER+2)
    3357 #define CBEM_GETIMAGELIST     (WM_USER+3)
     3364#define CBEM_INSERTITEM         WINELIB_NAME_AW(CBEM_INSERTITEM)
     3365#define CBEM_SETIMAGELIST       (WM_USER+2)
     3366#define CBEM_GETIMAGELIST       (WM_USER+3)
    33583367#define CBEM_GETITEMA         (WM_USER+4)
    33593368#define CBEM_GETITEMW         (WM_USER+13)
    3360 #define CBEM_GETITEM          WINELIB_NAME_AW(CBEM_GETITEM)
     3369#define CBEM_GETITEM            WINELIB_NAME_AW(CBEM_GETITEM)
    33613370#define CBEM_SETITEMA         (WM_USER+5)
    33623371#define CBEM_SETITEMW         (WM_USER+12)
    3363 #define CBEM_SETITEM          WINELIB_NAME_AW(CBEM_SETITEM)
    3364 #define CBEM_GETCOMBOCONTROL  (WM_USER+6)
    3365 #define CBEM_GETEDITCONTROL   (WM_USER+7)
    3366 #define CBEM_SETEXSTYLE       (WM_USER+8)
    3367 #define CBEM_GETEXSTYLE       (WM_USER+9)
    3368 #define CBEM_GETEXTENDEDSTYLE (WM_USER+9)
    3369 #define CBEM_SETEXTENDEDSTYLE (WM_USER+14)
    3370 #define CBEM_HASEDITCHANGED   (WM_USER+10)
    3371 #define CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
    3372 #define CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
     3372#define CBEM_SETITEM            WINELIB_NAME_AW(CBEM_SETITEM)
     3373#define CBEM_DELETEITEM         CB_DELETESTRING
     3374#define CBEM_GETCOMBOCONTROL    (WM_USER+6)
     3375#define CBEM_GETEDITCONTROL     (WM_USER+7)
     3376#define CBEM_SETEXSTYLE         (WM_USER+8)
     3377#define CBEM_GETEXSTYLE         (WM_USER+9)
     3378#define CBEM_GETEXTENDEDSTYLE   (WM_USER+9)
     3379#define CBEM_SETEXTENDEDSTYLE   (WM_USER+14)
     3380#define CBEM_SETUNICODEFORMAT   CCM_SETUNICODEFORMAT
     3381#define CBEM_GETUNICODEFORMAT   CCM_GETUNICODEFORMAT
     3382#define CBEM_HASEDITCHANGED     (WM_USER+10)
     3383#define CBEM_SETUNICODEFORMAT   CCM_SETUNICODEFORMAT
     3384#define CBEM_GETUNICODEFORMAT   CCM_GETUNICODEFORMAT
     3385
     3386#define CBEIF_TEXT              0x00000001
     3387#define CBEIF_IMAGE             0x00000002
     3388#define CBEIF_SELECTEDIMAGE     0x00000004
     3389#define CBEIF_OVERLAY           0x00000008
     3390#define CBEIF_INDENT            0x00000010
     3391#define CBEIF_LPARAM            0x00000020
     3392#define CBEIF_DI_SETITEM        0x10000000
    33733393
    33743394#define CBEN_FIRST              (0U-800U)
    33753395#define CBEN_LAST               (0U-830U)
    33763396
    3377 #define CBEN_GETDISPINFOA        (CBEN_FIRST - 0)
    3378 #define CBEN_GETDISPINFOW        (CBEN_FIRST - 7)
    3379 #define CBEN_GETDISPINFO         WINELIB_NAME_AW(CBEN_GETDISPINFO)
    3380 #define CBEN_INSERTITEM          (CBEN_FIRST - 1)
    3381 #define CBEN_DELETEITEM          (CBEN_FIRST - 2)
    3382 #define CBEN_BEGINEDIT           (CBEN_FIRST - 4)
    3383 #define CBEN_ENDEDITA            (CBEN_FIRST - 5)
    3384 #define CBEN_ENDEDITW            (CBEN_FIRST - 6)
    3385 #define CBEN_ENDEDIT             WINELIB_NAME_AW(CBEN_ENDEDIT)
    3386 #define CBEN_DRAGBEGINA          (CBEN_FIRST - 8)
    3387 #define CBEN_DRAGBEGINW          (CBEN_FIRST - 9)
    3388 #define CBEN_DRAGBEGIN           WINELIB_NAME_AW(CBEN_DRAGBEGIN)
    3389 
    3390 #define CBENF_KILLFOCUS         1
    3391 #define CBENF_RETURN            2
    3392 #define CBENF_ESCAPE            3
    3393 #define CBENF_DROPDOWN          4
    3394 
    3395 #define CBEMAXSTRLEN 260
    3396 
    3397 typedef struct {
    3398     NMHDR hdr;
    3399     int   iItemid;
    3400     WCHAR szText[CBEMAXSTRLEN];
    3401 }NMCBEDRAGBEGINW, *LPNMCBEDRAGBEGINW, *PNMCBEDRAGBEGINW;
    3402 
    3403 
    3404 typedef struct {
    3405     NMHDR hdr;
    3406     int   iItemid;
    3407     char szText[CBEMAXSTRLEN];
    3408 }NMCBEDRAGBEGINA, *LPNMCBEDRAGBEGINA, *PNMCBEDRAGBEGINA;
    3409 
    3410 #define  NMCBEDRAGBEGIN   WINELIB_NAME_AW(NMCBEDRAGBEGIN)
    3411 #define  LPNMCBEDRAGBEGIN WINELIB_NAME_AW(LPNMCBEDRAGBEGIN)
    3412 #define  PNMCBEDRAGBEGIN  WINELIB_NAME_AW(PNMCBEDRAGBEGIN)
    3413 
    3414 typedef struct {
    3415         NMHDR hdr;
    3416         BOOL fChanged;
    3417         int iNewSelection;
    3418         WCHAR szText[CBEMAXSTRLEN];
    3419         int iWhy;
    3420 } NMCBEENDEDITW, *LPNMCBEENDEDITW, *PNMCBEENDEDITW;
    3421 
    3422 typedef struct {
    3423         NMHDR hdr;
    3424         BOOL fChanged;
    3425         int iNewSelection;
    3426         char szText[CBEMAXSTRLEN];
    3427         int iWhy;
    3428 } NMCBEENDEDITA, *LPNMCBEENDEDITA,*PNMCBEENDEDITA;
    3429 
    3430 #define  NMCBEENDEDIT   WINELIB_NAME_AW(NMCBEENDEDIT)
    3431 #define  LPNMCBEENDEDIT WINELIB_NAME_AW(LPNMCBEENDEDIT)
    3432 #define  PNMCBEENDEDIT  WINELIB_NAME_AW(PNMCBEENDEDIT)
     3397#define CBEN_GETDISPINFOA       (CBEN_FIRST - 0)
     3398#define CBEN_GETDISPINFOW       (CBEN_FIRST - 7)
     3399#define CBEN_GETDISPINFO WINELIB_NAME_AW(CBEN_GETDISPINFO)
     3400#define CBEN_INSERTITEM         (CBEN_FIRST - 1)
     3401#define CBEN_DELETEITEM         (CBEN_FIRST - 2)
     3402#define CBEN_BEGINEDIT          (CBEN_FIRST - 4)
     3403#define CBEN_ENDEDITA           (CBEN_FIRST - 5)
     3404#define CBEN_ENDEDITW           (CBEN_FIRST - 6)
     3405#define CBEN_ENDEDIT WINELIB_NAME_AW(CBEN_ENDEDIT)
     3406#define CBEN_DRAGBEGINA         (CBEN_FIRST - 8)
     3407#define CBEN_DRAGBEGINW         (CBEN_FIRST - 9)
     3408#define CBEN_DRAGBEGIN WINELIB_NAME_AW(CBEN_DRAGBEGIN)
     3409
     3410typedef struct tagCOMBOBOXEXITEMA
     3411{
     3412    UINT mask;
     3413    int iItem;
     3414    LPSTR pszText;
     3415    int cchTextMax;
     3416    int iImage;
     3417    int iSelectedImage;
     3418    int iOverlay;
     3419    int iIndent;
     3420    LPARAM lParam;
     3421} COMBOBOXEXITEMA, *PCOMBOBOXEXITEMA;
     3422typedef COMBOBOXEXITEMA CONST *PCCOMBOEXITEMA;
     3423
     3424
     3425typedef struct tagCOMBOBOXEXITEMW
     3426{
     3427    UINT mask;
     3428    int iItem;
     3429    LPWSTR pszText;
     3430    int cchTextMax;
     3431    int iImage;
     3432    int iSelectedImage;
     3433    int iOverlay;
     3434    int iIndent;
     3435    LPARAM lParam;
     3436} COMBOBOXEXITEMW, *PCOMBOBOXEXITEMW;
     3437
     3438#define COMBOBOXEXITEM WINELIB_NAME_AW(COMBOBOXEXITEM)
    34333439
    34343440
  • trunk/include/win/datetime.h

    r2894 r4608  
    1 /* $Id: datetime.h,v 1.3 2000-02-25 16:58:33 cbratschi Exp $ */
     1/* $Id: datetime.h,v 1.4 2000-11-17 14:32:49 sandervl Exp $ */
    22
    33/*
     
    1111#define __WINE_DATETIME_H
    1212
    13 typedef struct tagDATETIME_INFO
    14 {
    15         COMCTL32_HEADER header;
    16         HWND hMonthCal;
    17         HWND hUpdown;
    18         SYSTEMTIME date;
    19         BOOL dateValid;
    20         HWND hwndCheckbut;
    21         RECT rect;
    22         RECT checkbox;
    23         RECT daytxt;
    24         RECT daynumtxt;
    25         RECT rmonthtxt;
    26         RECT yeartxt;
    27         RECT calbutton;
    28         int  select;
    29         HFONT hFont;
    30 } DATETIME_INFO, *LPDATETIME_INFO;
    3113
    32 extern VOID DATETIME_Register (VOID);
    33 extern VOID DATETIME_Unregister (VOID);
     14#ifdef __cplusplus
     15extern "C" {
     16#endif
    3417
    35 #define DTHT_NONE     0
    36 #define DTHT_MCPOPUP  1
    37 #define DTHT_YEAR     2
    38 #define DTHT_DAYNUM   3
    39 #define DTHT_MONTH    4
    40 #define DTHT_DAY      5
    41 #define DTHT_CHECKBOX 6
    42 #define DTHT_GOTFOCUS 128
     18VOID DATETIME_Register (VOID);
     19VOID DATETIME_Unregister (VOID);
     20
     21#ifdef __cplusplus
     22}
     23#endif
    4324
    4425#endif  /* __WINE_DATETIME_H */
  • trunk/include/win/flatsb.h

    r94 r4608  
    1 /* $Id: flatsb.h,v 1.2 1999-06-10 16:21:51 achimha Exp $ */
     1/* $Id: flatsb.h,v 1.3 2000-11-17 14:32:50 sandervl Exp $ */
    22/*
    33 * Flat scroll bar class extra info
     
    1010#define __WINE_FLATSB_H
    1111
    12 typedef struct tagFLATSB_INFO
    13 {
    14     DWORD dwDummy;  /* just to keep the compiler happy ;-) */
     12#ifdef __cplusplus
     13extern "C" {
     14#endif
    1515
    16 } FLATSB_INFO, *LPFLATSB_INFO;
     16VOID FLATSB_Register (VOID);
     17VOID FLATSB_Unregister (VOID);
    1718
    18 
    19 extern VOID FLATSB_Register (VOID);
    20 extern VOID FLATSB_Unregister (VOID);
     19#ifdef __cplusplus
     20}
     21#endif
    2122
    2223#endif  /* __WINE_FLATSB_H */
  • trunk/include/win/mmsystem.h

    r3354 r4608  
    1 /* $Id: mmsystem.h,v 1.8 2000-04-09 11:09:09 sandervl Exp $ */
     1/* $Id: mmsystem.h,v 1.9 2000-11-17 14:32:50 sandervl Exp $ */
    22/*
    33 * MMSYSTEM - Multimedia Wine Extension ... :-)
     
    189189typedef void (* CALLBACK LPDRVCALLBACK16) (HDRVR16 h, UINT16 uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
    190190typedef void (* CALLBACK LPDRVCALLBACK) (HDRVR h, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
     191
     192#define DRV_LOAD                0x0001
     193#define DRV_ENABLE              0x0002
     194#define DRV_OPEN                0x0003
     195#define DRV_CLOSE               0x0004
     196#define DRV_DISABLE             0x0005
     197#define DRV_FREE                0x0006
     198#define DRV_CONFIGURE           0x0007
     199#define DRV_QUERYCONFIGURE      0x0008
     200#define DRV_INSTALL             0x0009
     201#define DRV_REMOVE              0x000A
     202#define DRV_EXITSESSION         0x000B
     203#define DRV_EXITAPPLICATION     0x000C
     204#define DRV_POWER               0x000F
     205
     206#define DRV_RESERVED            0x0800
     207#define DRV_USER                0x4000
     208
     209#define DRVCNF_CANCEL           0x0000
     210#define DRVCNF_OK               0x0001
     211#define DRVCNF_RESTART          0x0002
     212
     213#define DRVEA_NORMALEXIT        0x0001
     214#define DRVEA_ABNORMALEXIT      0x0002
     215
     216#define DRV_SUCCESS             0x0001
     217#define DRV_FAILURE             0x0000
     218
     219#define GND_FIRSTINSTANCEONLY   0x00000001
     220
     221#define GND_FORWARD             0x00000000
     222#define GND_REVERSE             0x00000002
     223
     224typedef struct {
     225    DWORD                       dwDCISize;
     226    LPCWSTR                     lpszDCISectionName;
     227    LPCWSTR                     lpszDCIAliasName;
     228} DRVCONFIGINFO, *LPDRVCONFIGINFO;
     229
     230
     231LRESULT WINAPI DefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr,
     232                             UINT Msg, LPARAM lParam1, LPARAM lParam2);
     233HDRVR   WINAPI OpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName,
     234                           LPARAM lParam2);
     235HDRVR   WINAPI OpenDriverW(LPCWSTR szDriverName, LPCWSTR szSectionName,
     236                           LPARAM lParam2);
     237#define OpenDriver WINELIB_NAME_AW(OpenDriver)
     238LRESULT WINAPI CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2);
     239LRESULT WINAPI SendDriverMessage(HDRVR hDriver, UINT message,
     240                                 LPARAM lParam1, LPARAM lParam2);
     241HMODULE WINAPI GetDriverModuleHandle(HDRVR hDriver);
     242
     243DWORD   WINAPI GetDriverFlags(HDRVR hDriver);
     244#ifdef __WINE__
     245/* this call (GetDriverFlags) is not documented, nor the flags returned.
     246 * here are Wine only definitions
     247 */
     248#define WINE_GDF_EXIST  0x80000000
     249#define WINE_GDF_16BIT  0x10000000
     250#endif
    191251
    192252#define MM_MICROSOFT            1       /* Microsoft Corp. */
  • trunk/include/win/monthcal.h

    r3143 r4608  
    1 /* $Id: monthcal.h,v 1.4 2000-03-17 17:10:51 cbratschi Exp $ */
     1/* $Id: monthcal.h,v 1.5 2000-11-17 14:32:50 sandervl Exp $ */
    22
    33/*
     
    1111#define __WINE_MONTHCAL_H
    1212
    13 #define MC_SEL_LBUTUP       1   /* Left button released */
    14 #define MC_SEL_LBUTDOWN     2   /* Left button pressed in calendar */
    15 #define MC_PREVPRESSED      4   /* Prev month button pressed */
    16 #define MC_NEXTPRESSED      8   /* Next month button pressed */
    17 #define MC_NEXTMONTHDELAY   350 /* when continuously pressing `next */
    18                                                                                 /* month', wait 500 ms before going */
    19                                                                                 /* to the next month */
    20 #define MC_NEXTMONTHTIMER   1                   /* Timer ID's */
    21 #define MC_PREVMONTHTIMER   2
     13#ifdef __cplusplus
     14extern "C" {
     15#endif
    2216
    23 typedef struct tagMONTHCAL_INFO
    24 {
    25     COMCTL32_HEADER header;
     17VOID MONTHCAL_Register (VOID);
     18VOID MONTHCAL_Unregister (VOID);
    2619
    27     COLORREF    bk;
    28     COLORREF    txt;
    29     COLORREF    titlebk;
    30     COLORREF    titletxt;
    31     COLORREF    monthbk;
    32     COLORREF    trailingtxt;
    33     HFONT       hFont;
    34     HFONT       hBoldFont;
    35     int         textHeight;
    36     int         textWidth;
    37     int         height_increment;
    38     int         width_increment;
    39     int         left_offset;
    40     int         top_offset;
    41     int         firstDayplace; /* place of the first day of the current month */
    42     int         delta;  /* scroll rate; # of months that the */
    43                         /* control moves when user clicks a scroll button */
    44     int         visible;        /* # of months visible */
    45     int         firstDay;       /* Start month calendar with firstDay's day */
    46     int         monthRange;
    47     MONTHDAYSTATE *monthdayState;
    48     SYSTEMTIME  todaysDate;
    49     DWORD       currentMonth;
    50     DWORD       currentYear;
    51     int         status;         /* See MC_SEL flags */
    52     int         curSelDay;      /* current selected day */
    53     int         firstSelDay;    /* first selected day */
    54     int         maxSelCount;
    55     SYSTEMTIME  minSel;
    56     SYSTEMTIME  maxSel;
    57     DWORD       rangeValid;
    58     SYSTEMTIME  minDate;
    59     SYSTEMTIME  maxDate;
    60 
    61     RECT rcClient;      /* rect for whole client area */
    62     RECT rcDraw;        /* rect for drawable portion of client area */
    63     RECT title;         /* rect for the header above the calendar */
    64     RECT titlebtnnext;  /* the `next month' button in the header */
    65     RECT titlebtnprev;  /* the `prev month' button in the header */
    66     RECT titlemonth;    /* the `month name' txt in the header */
    67     RECT titleyear;     /* the `year number' txt in the header */
    68     RECT prevmonth;     /* day numbers of the previous month */
    69     RECT nextmonth;     /* day numbers of the next month */
    70     RECT days;          /* week numbers at left side */
    71     RECT weeknums;      /* week numbers at left side */
    72     RECT today;         /* `today: xx/xx/xx' text rect */
    73 } MONTHCAL_INFO, *LPMONTHCAL_INFO;
    74 
    75 extern void MONTHCAL_CopyTime (const SYSTEMTIME *from, SYSTEMTIME *to);
    76 extern int MONTHCAL_CalculateDayOfWeek (DWORD day, DWORD month, DWORD year);
    77 
    78 extern VOID MONTHCAL_Register (VOID);
    79 extern VOID MONTHCAL_Unregister (VOID);
     20#ifdef __cplusplus
     21}
     22#endif
    8023
    8124#endif  /* __WINE_MONTHCAL_H */
  • trunk/include/win/vfw.h

    r811 r4608  
    1 /* $Id: vfw.h,v 1.2 1999-09-04 09:07:07 sandervl Exp $ */
    2 
    31#ifndef __WINE_VFW_H
    42#define __WINE_VFW_H
     
    75#include "mmsystem.h"
    86#include "wingdi.h"
    9 #include "wine/obj_base.h"
    107#include "unknwn.h"
     8
     9#ifndef __cplusplus
     10#ifndef inline
     11#define inline
     12#endif
     13#endif
    1114
    1215#define VFWAPI  WINAPI
    1316#define VFWAPIV WINAPIV
    1417
    15 DWORD VFWAPI VideoForWindowsVersion(void);
     18#ifdef __cplusplus
     19extern "C" {
     20#endif  /* __cplusplus */
     21
     22typedef HANDLE HDRAWDIB;
     23
     24HWND        VFWAPIV MCIWndCreateA(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCSTR szFile);
     25HWND        VFWAPIV MCIWndCreateW(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCWSTR szFile);
     26#define     MCIWndCreate WINELIB_NAME_AW(MCIWndCreate)
     27DWORD       VFWAPI  VideoForWindowsVersion(void);
     28LONG        VFWAPI  InitVFW(void);
     29LONG        VFWAPI  TermVFW(void);
    1630
    1731#ifndef mmioFOURCC
     
    3549typedef struct IGetFrame IGetFrame,*PGETFRAME;
    3650
    37 /* Installable Compressor M? */
    38 
     51/* Installable Compressor Manager */
     52
     53DECLARE_HANDLE(HIC);
     54
     55#ifdef __WINE__
    3956/* HIC struct (same layout as Win95 one) */
    4057typedef struct tagWINE_HIC {
     
    4461        DWORD           handler;        /* 0C: */
    4562        HDRVR           hdrv;           /* 10: */
    46         DWORD           privatevfw;     /* 14:(handled by SendDriverMessage)*/
     63        DWORD           private;        /* 14:(handled by SendDriverMessage)*/
    4764        FARPROC         driverproc;     /* 18:(handled by SendDriverMessage)*/
    4865        DWORD           x1;             /* 1c: name? */
     
    5067        DWORD           x3;             /* 22: */
    5168                                        /* 26: */
    52 } WINE_HIC, *PWINE_HIC;
     69} WINE_HIC;
     70#endif
    5371
    5472/* error return codes */
     
    151169/* structs */
    152170
     171/* NOTE: Only the 16 bit structs are packed. Structs that are packed anyway
     172 * have not been changed. If a structure is later extended, you may need to create
     173 * two versions of it.
     174 */
     175
    153176typedef struct {
    154177        DWORD   dwSize;         /* 00: size */
     
    189212
    190213#define ICCompressGetFormat(hic, lpbiInput, lpbiOutput)                 \
    191         ICSendMessage(                                          \
     214        ICSendMessage(                                                  \
    192215            hic,ICM_COMPRESS_GET_FORMAT,(DWORD)(LPVOID)(lpbiInput),     \
    193216            (DWORD)(LPVOID)(lpbiOutput)                                 \
     
    202225    )
    203226
    204 #define ICCompressGetSize(hic, lpbiInput, lpbiOutput)           \
     227#define ICCompressGetSize(hic, lpbiInput, lpbiOutput)                   \
    205228    ICSendMessage(                                                      \
    206229        hic, ICM_COMPRESS_GET_SIZE, (DWORD)(LPVOID)(lpbiInput),         \
     
    213236        (DWORD)(LPVOID)(lpbiOutput)                             \
    214237    )
    215 
    216238
    217239#define ICCompressEnd(hic) ICSendMessage(hic, ICM_COMPRESS_END, 0, 0)
     
    234256    DWORD               dwOverheadPerFrame;
    235257    DWORD               dwReserved2;
    236     LONG (CALLBACK *GetData)(LPARAM lInput,LONG lFrame,LPVOID lpBits,LONG len);
    237     LONG (CALLBACK *PutData)(LPARAM lOutput,LONG lFrame,LPVOID lpBits,LONG len);
     258#ifdef __WIN32OS2__
     259    LONG (* CALLBACK GetData)(LPARAM lInput,LONG lFrame,LPVOID lpBits,LONG len);
     260    LONG (* CALLBACK PutData)(LPARAM lOutput,LONG lFrame,LPVOID lpBits,LONG len);
     261#else
     262    LONG CALLBACK (*GetData)(LPARAM lInput,LONG lFrame,LPVOID lpBits,LONG len);
     263    LONG CALLBACK (*PutData)(LPARAM lOutput,LONG lFrame,LPVOID lpBits,LONG len);
     264#endif
    238265} ICCOMPRESSFRAMES;
     266
     267typedef struct {
     268    DWORD               dwFlags;
     269    LPARAM              lParam;
     270   /* messages for Status callback */
     271#define ICSTATUS_START      0
     272#define ICSTATUS_STATUS     1
     273#define ICSTATUS_END        2
     274#define ICSTATUS_ERROR      3
     275#define ICSTATUS_YIELD      4
     276    /* FIXME: some X11 libs define Status as int... */
     277    /* LONG CALLBACK (*zStatus)(LPARAM lParam, UINT message, LONG l); */
     278#ifdef __WIN32OS2__
     279    LONG (* CALLBACK zStatus)(LPARAM lParam, UINT message, LONG l);
     280#else
     281    LONG CALLBACK (*zStatus)(LPARAM lParam, UINT message, LONG l);
     282#endif
     283} ICSETSTATUSPROC;
    239284
    240285/* Values for wMode of ICOpen() */
     
    300345#define ICDECOMPRESS_HURRYUP            0x80000000      /* don't draw just buffer (hurry up!) */
    301346#define ICDECOMPRESS_UPDATE             0x40000000      /* don't draw just update screen */
    302 #define ICDECOMPRESS_PREROL             0x20000000      /* this frame is before real start */
     347#define ICDECOMPRESS_PREROLL            0x20000000      /* this frame is before real start */
    303348#define ICDECOMPRESS_NULLFRAME          0x10000000      /* repeat last frame */
    304349#define ICDECOMPRESS_NOTKEYFRAME        0x08000000      /* this frame is not a key frame */
     
    321366
    322367    /* changed for ICM_DECOMPRESSEX */
    323     INT         xDst;       /* destination rectangle */
    324     INT         yDst;
    325     INT         dxDst;
    326     INT         dyDst;
    327 
    328     INT         xSrc;       /* source rectangle */
    329     INT         ySrc;
    330     INT         dxSrc;
    331     INT         dySrc;
     368    INT                 xDst;       /* destination rectangle */
     369    INT                 yDst;
     370    INT                 dxDst;
     371    INT                 dyDst;
     372
     373    INT                 xSrc;       /* source rectangle */
     374    INT                 ySrc;
     375    INT                 dxSrc;
     376    INT                 dySrc;
    332377} ICDECOMPRESSEX;
    333378
    334379DWORD VFWAPIV ICDecompress(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiFormat,LPVOID lpData,LPBITMAPINFOHEADER lpbi,LPVOID lpBits);
    335 
    336380
    337381#define ICDecompressBegin(hic, lpbiInput, lpbiOutput)   \
     
    370414#define ICDecompressEnd(hic) ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0)
    371415
     416LRESULT VFWAPI  ICSendMessage(HIC hic, UINT msg, DWORD dw1, DWORD dw2);
     417
     418inline static LRESULT VFWAPI ICDecompressEx(HIC hic, DWORD dwFlags,
     419                                            LPBITMAPINFOHEADER lpbiSrc, LPVOID lpSrc,
     420                                            int xSrc, int ySrc, int dxSrc, int dySrc,
     421                                            LPBITMAPINFOHEADER lpbiDst, LPVOID lpDst,
     422                                            int xDst, int yDst, int dxDst, int dyDst)
     423{
     424    ICDECOMPRESSEX ic;
     425
     426    ic.dwFlags = dwFlags;
     427    ic.lpbiSrc = lpbiSrc;
     428    ic.lpSrc = lpSrc;
     429    ic.xSrc = xSrc;
     430    ic.ySrc = ySrc;
     431    ic.dxSrc = dxSrc;
     432    ic.dySrc = dySrc;
     433    ic.lpbiDst = lpbiDst;
     434    ic.lpDst = lpDst;
     435    ic.xDst = xDst;
     436    ic.yDst = yDst;
     437    ic.dxDst = dxDst;
     438    ic.dyDst = dyDst;
     439    return ICSendMessage(hic, ICM_DECOMPRESSEX, (DWORD)&ic, sizeof(ic));
     440}
     441
     442inline static LRESULT VFWAPI ICDecompressExBegin(HIC hic, DWORD dwFlags,
     443                                                 LPBITMAPINFOHEADER lpbiSrc,
     444                                                 LPVOID lpSrc,
     445                                                 int xSrc, int ySrc, int dxSrc, int dySrc,
     446                                                 LPBITMAPINFOHEADER lpbiDst,
     447                                                 LPVOID lpDst,
     448                                                 int xDst,
     449                                                 int yDst,
     450                                                 int dxDst,
     451                                                 int dyDst)
     452{
     453    ICDECOMPRESSEX ic;
     454
     455    ic.dwFlags = dwFlags;
     456    ic.lpbiSrc = lpbiSrc;
     457    ic.lpSrc = lpSrc;
     458    ic.xSrc = xSrc;
     459    ic.ySrc = ySrc;
     460    ic.dxSrc = dxSrc;
     461    ic.dySrc = dySrc;
     462    ic.lpbiDst = lpbiDst;
     463    ic.lpDst = lpDst;
     464    ic.xDst = xDst;
     465    ic.yDst = yDst;
     466    ic.dxDst = dxDst;
     467    ic.dyDst = dyDst;
     468    return ICSendMessage(hic, ICM_DECOMPRESSEX_BEGIN, (DWORD)&ic, sizeof(ic));
     469}
     470inline static LRESULT VFWAPI ICDecompressExQuery(HIC hic, DWORD dwFlags,
     471                                                 LPBITMAPINFOHEADER lpbiSrc,
     472                                                 LPVOID lpSrc,
     473                                                 int xSrc, int ySrc, int dxSrc, int dySrc,
     474                                                 LPBITMAPINFOHEADER lpbiDst,
     475                                                 LPVOID lpDst,
     476                                                 int xDst,
     477                                                 int yDst,
     478                                                 int dxDst,
     479                                                 int dyDst)
     480{
     481    ICDECOMPRESSEX ic;
     482
     483    ic.dwFlags = dwFlags;
     484    ic.lpbiSrc = lpbiSrc;
     485    ic.lpSrc = lpSrc;
     486    ic.xSrc = xSrc;
     487    ic.ySrc = ySrc;
     488    ic.dxSrc = dxSrc;
     489    ic.dySrc = dySrc;
     490    ic.lpbiDst = lpbiDst;
     491    ic.lpDst = lpDst;
     492    ic.xDst = xDst;
     493    ic.yDst = yDst;
     494    ic.dxDst = dxDst;
     495    ic.dyDst = dyDst;
     496    return ICSendMessage(hic, ICM_DECOMPRESSEX_QUERY, (DWORD)&ic, sizeof(ic));
     497}
     498
     499#define ICDecompressExEnd(hic) \
     500    ICSendMessage(hic, ICM_DECOMPRESSEX_END, 0, 0)
    372501
    373502#define ICDRAW_QUERY        0x00000001L   /* test for support */
    374503#define ICDRAW_FULLSCREEN   0x00000002L   /* draw to full screen */
    375504#define ICDRAW_HDC          0x00000004L   /* draw to a HDC/HWND */
     505#define ICDRAW_ANIMATE      0x00000008L   /* expect palette animation */
     506#define ICDRAW_CONTINUE     0x00000010L   /* draw is a continuation of previous draw */
     507#define ICDRAW_MEMORYDC     0x00000020L   /* DC is offscreen, by the way */
     508#define ICDRAW_UPDATING     0x00000040L   /* We're updating, as opposed to playing */
     509#define ICDRAW_RENDER       0x00000080L   /* used to render data not draw it */
     510#define ICDRAW_BUFFER       0x00000100L   /* buffer data offscreen, we will need to update it */
     511
     512#define ICDecompressOpen(fccType, fccHandler, lpbiIn, lpbiOut) \
     513    ICLocate(fccType, fccHandler, lpbiIn, lpbiOut, ICMODE_DECOMPRESS)
     514
     515#define ICDrawOpen(fccType, fccHandler, lpbiIn) \
     516    ICLocate(fccType, fccHandler, lpbiIn, NULL, ICMODE_DRAW)
     517
     518HANDLE VFWAPI ICImageCompress(HIC hic, UINT uiFlags, LPBITMAPINFO lpbiIn,
     519                              LPVOID lpBits, LPBITMAPINFO lpbiOut, LONG lQuality,
     520                              LONG* plSize);
     521
     522HANDLE VFWAPI ICImageDecompress(HIC hic, UINT uiFlags, LPBITMAPINFO lpbiIn,
     523                                LPVOID lpBits, LPBITMAPINFO lpbiOut);
    376524
    377525BOOL    VFWAPI  ICInfo(DWORD fccType, DWORD fccHandler, ICINFO * lpicinfo);
     526BOOL    VFWAPI  ICInstall(DWORD fccType, DWORD fccHandler, LPARAM lParam, LPSTR szDesc, UINT wFlags);
     527BOOL    VFWAPI  ICRemove(DWORD fccType, DWORD fccHandler, UINT wFlags);
    378528LRESULT VFWAPI  ICGetInfo(HIC hic,ICINFO *picinfo, DWORD cb);
    379529HIC     VFWAPI  ICOpen(DWORD fccType, DWORD fccHandler, UINT wMode);
    380530HIC     VFWAPI  ICOpenFunction(DWORD fccType, DWORD fccHandler, UINT wMode, FARPROC lpfnHandler);
    381531
    382 LRESULT VFWAPI ICClose(HIC hic);
    383 LRESULT VFWAPI  ICSendMessage(HIC hic, UINT msg, DWORD dw1, DWORD dw2);
    384 HIC     VFWAPI ICLocate(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, WORD wFlags);
     532LRESULT VFWAPI  ICClose(HIC hic);
     533HIC     VFWAPI  ICLocate(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, WORD wFlags);
     534HIC     VFWAPI  ICGetDisplayFormat(HIC hic, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, int BitDepth, int dx, int dy);
     535
     536/* Values for wFlags of ICInstall() */
     537#define ICINSTALL_UNICODE       0x8000
     538#define ICINSTALL_FUNCTION      0x0001
     539#define ICINSTALL_DRIVER        0x0002
     540#define ICINSTALL_HDRV          0x0004
     541#define ICINSTALL_DRIVERW       0x8002
     542
     543#define ICGetState(hic, pv, cb) \
     544    ICSendMessage(hic, ICM_GETSTATE, (DWORD)(LPVOID)(pv), (DWORD)(cb))
     545#define ICSetState(hic, pv, cb) \
     546    ICSendMessage(hic, ICM_SETSTATE, (DWORD)(LPVOID)(pv), (DWORD)(cb))
     547#define ICGetStateSize(hic) \
     548    ICGetState(hic, NULL, 0)
     549
     550inline static DWORD ICGetDefaultQuality(HIC hic)
     551{
     552   DWORD dwICValue;
     553   ICSendMessage(hic, ICM_GETDEFAULTQUALITY, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
     554   return dwICValue;
     555}
     556
     557inline static DWORD ICGetDefaultKeyFrameRate(HIC hic)
     558{
     559   DWORD dwICValue;
     560   ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
     561   return dwICValue;
     562}
     563
     564#define ICDrawWindow(hic, prc) \
     565    ICSendMessage(hic, ICM_DRAW_WINDOW, (DWORD)(LPVOID)(prc), sizeof(RECT))
     566
     567/* As passed to ICM_DRAW_SUGGESTFORMAT */
     568typedef struct {
     569        DWORD dwFlags;
     570        LPBITMAPINFOHEADER lpbiIn;
     571        LPBITMAPINFOHEADER lpbiSuggest;
     572        INT dxSrc;
     573        INT dySrc;
     574        INT dxDst;
     575        INT dyDst;
     576        HIC hicDecompressor;
     577} ICDRAWSUGGEST;
     578
     579typedef struct {
     580    DWORD               dwFlags;
     581    int                 iStart;
     582    int                 iLen;
     583    LPPALETTEENTRY      lppe;
     584} ICPALETTE;
    385585
    386586DWORD   VFWAPIV ICDrawBegin(
     
    403603);
    404604
    405 /* as passed to ICM_DRAW_BEGIN (FIXME: correct only for Win32?)  */
     605/* as passed to ICM_DRAW_BEGIN */
    406606typedef struct {
    407607        DWORD           dwFlags;
     
    438638DWORD VFWAPIV ICDraw(HIC hic,DWORD dwFlags,LPVOID lpFormat,LPVOID lpData,DWORD cbData,LONG lTime);
    439639
     640inline static LRESULT VFWAPI ICDrawSuggestFormat(HIC hic, LPBITMAPINFOHEADER lpbiIn,
     641                                                 LPBITMAPINFOHEADER lpbiOut,
     642                                                 int dxSrc, int dySrc,
     643                                                 int dxDst, int dyDst,
     644                                                 HIC hicDecomp)
     645{
     646    ICDRAWSUGGEST ic;
     647
     648    ic.lpbiIn = lpbiIn;
     649    ic.lpbiSuggest = lpbiOut;
     650    ic.dxSrc = dxSrc;
     651    ic.dySrc = dySrc;
     652    ic.dxDst = dxDst;
     653    ic.dyDst = dyDst;
     654    ic.hicDecompressor = hicDecomp;
     655    return ICSendMessage(hic, ICM_DRAW_SUGGESTFORMAT, (DWORD)&ic, sizeof(ic));
     656}
     657
     658#define ICDrawQuery(hic, lpbiInput) \
     659    ICSendMessage(hic, ICM_DRAW_QUERY, (DWORD)(LPVOID)(lpbiInput), 0L)
     660
     661#define ICDrawChangePalette(hic, lpbiInput) \
     662    ICSendMessage(hic, ICM_DRAW_CHANGEPALETTE, (DWORD)(LPVOID)(lpbiInput), 0L)
     663
     664#define ICGetBuffersWanted(hic, lpdwBuffers) \
     665    ICSendMessage(hic, ICM_GETBUFFERSWANTED, (DWORD)(LPVOID)(lpdwBuffers), 0)
     666
     667#define ICDrawEnd(hic) \
     668    ICSendMessage(hic, ICM_DRAW_END, 0, 0)
     669
     670#define ICDrawStart(hic) \
     671    ICSendMessage(hic, ICM_DRAW_START, 0, 0)
     672
     673#define ICDrawStartPlay(hic, lFrom, lTo) \
     674    ICSendMessage(hic, ICM_DRAW_START_PLAY, (DWORD)(lFrom), (DWORD)(lTo))
     675
     676#define ICDrawStop(hic) \
     677    ICSendMessage(hic, ICM_DRAW_STOP, 0, 0)
     678
     679#define ICDrawStopPlay(hic) \
     680    ICSendMessage(hic, ICM_DRAW_STOP_PLAY, 0, 0)
     681
     682#define ICDrawGetTime(hic, lplTime) \
     683    ICSendMessage(hic, ICM_DRAW_GETTIME, (DWORD)(LPVOID)(lplTime), 0)
     684
     685#define ICDrawSetTime(hic, lTime) \
     686    ICSendMessage(hic, ICM_DRAW_SETTIME, (DWORD)lTime, 0)
     687
     688#define ICDrawRealize(hic, hdc, fBackground) \
     689    ICSendMessage(hic, ICM_DRAW_REALIZE, (DWORD)(UINT)(HDC)(hdc), (DWORD)(BOOL)(fBackground))
     690
     691#define ICDrawFlush(hic) \
     692    ICSendMessage(hic, ICM_DRAW_FLUSH, 0, 0)
     693
     694#define ICDrawRenderBuffer(hic) \
     695    ICSendMessage(hic, ICM_DRAW_RENDERBUFFER, 0, 0)
     696
     697inline static LRESULT VFWAPI ICSetStatusProc(HIC hic, DWORD dwFlags, LRESULT lParam,
     698#ifdef __WIN32OS2__
     699                                             LONG (* CALLBACK fpfnStatus)(LPARAM, UINT, LONG))
     700#else
     701                                             LONG (CALLBACK *fpfnStatus)(LPARAM, UINT, LONG))
     702#endif
     703{
     704    ICSETSTATUSPROC ic;
     705
     706    ic.dwFlags = dwFlags;
     707    ic.lParam = lParam;
     708    /* FIXME: see comment in ICSETSTATUSPROC definition */
     709    ic.zStatus = fpfnStatus;
     710
     711    return ICSendMessage(hic, ICM_SET_STATUS_PROC, (DWORD)&ic, sizeof(ic));
     712}
     713
     714typedef struct {
     715    LONG                cbSize;
     716    DWORD               dwFlags;
     717    HIC                 hic;
     718    DWORD               fccType;
     719    DWORD               fccHandler;
     720    LPBITMAPINFO        lpbiIn;
     721    LPBITMAPINFO        lpbiOut;
     722    LPVOID              lpBitsOut;
     723    LPVOID              lpBitsPrev;
     724    LONG                lFrame;
     725    LONG                lKey;
     726    LONG                lDataRate;
     727    LONG                lQ;
     728    LONG                lKeyCount;
     729    LPVOID              lpState;
     730    LONG                cbState;
     731} COMPVARS, *PCOMPVARS;
     732
     733#define ICMF_COMPVARS_VALID     0x00000001
     734
     735BOOL VFWAPI ICCompressorChoose(HWND hwnd, UINT uiFlags, LPVOID pvIn, LPVOID lpData,
     736                               PCOMPVARS pc, LPSTR lpszTitle);
     737
     738#define ICMF_CHOOSE_KEYFRAME            0x0001
     739#define ICMF_CHOOSE_DATARATE            0x0002
     740#define ICMF_CHOOSE_PREVIEW             0x0004
     741#define ICMF_CHOOSE_ALLCOMPRESSORS      0x0008
     742
     743BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn);
     744void VFWAPI ICSeqCompressFrameEnd(PCOMPVARS pc);
     745
     746LPVOID VFWAPI ICSeqCompressFrame(PCOMPVARS pc, UINT uiFlags, LPVOID lpBits,
     747                                 BOOL *pfKey, LONG *plSize);
     748void VFWAPI ICCompressorFree(PCOMPVARS pc);
     749
    440750/********************* AVIFILE function declarations *************************/
     751#define formtypeAVI             mmioFOURCC('A', 'V', 'I', ' ')
     752#define listtypeAVIHEADER       mmioFOURCC('h', 'd', 'r', 'l')
     753#define ckidAVIMAINHDR          mmioFOURCC('a', 'v', 'i', 'h')
     754#define listtypeSTREAMHEADER    mmioFOURCC('s', 't', 'r', 'l')
     755#define ckidSTREAMHEADER        mmioFOURCC('s', 't', 'r', 'h')
     756#define ckidSTREAMFORMAT        mmioFOURCC('s', 't', 'r', 'f')
     757#define ckidSTREAMHANDLERDATA   mmioFOURCC('s', 't', 'r', 'd')
     758#define ckidSTREAMNAME          mmioFOURCC('s', 't', 'r', 'n')
     759
     760#define listtypeAVIMOVIE        mmioFOURCC('m', 'o', 'v', 'i')
     761#define listtypeAVIRECORD       mmioFOURCC('r', 'e', 'c', ' ')
     762
     763#define ckidAVINEWINDEX         mmioFOURCC('i', 'd', 'x', '1')
    441764
    442765#define streamtypeVIDEO         mmioFOURCC('v', 'i', 'd', 's')
     
    497820    DWORD       dwQuality;
    498821    DWORD       dwSampleSize;
    499     RECT16      rcFrame;        /* word.word - word.word in file */
     822    struct { SHORT left, top, right, bottom; } rcFrame; /* word.word - word.word in file */
    500823} AVIStreamHeader;
    501824
    502825/* AVIINDEXENTRY.dwFlags */
    503826#define AVIIF_LIST      0x00000001      /* chunk is a 'LIST' */
     827#define AVIIF_TWOCC     0x00000002
    504828#define AVIIF_KEYFRAME  0x00000010      /* this frame is a key frame. */
    505829
     
    673997#undef ICOM_INTERFACE
    674998
    675 #ifdef ICOM_CINTERFACE
    676999/*** IUnknown methods ***/
    6771000#define IAVIStream_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
     
    6901013#define IAVIStream_WriteData(p,a,b,c)     ICOM_CALL3(WriteData,p,a,b,c)
    6911014#define IAVIStream_SetInfo(p,a,b)         ICOM_CALL2(SetInfo,p,a,b)
    692 #endif
    6931015
    6941016HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM*ppsCompressed,PAVISTREAM ppsSource,AVICOMPRESSOPTIONS *lpOptions,CLSID*pclsidHandler);
     
    7091031HRESULT WINAPI AVIStreamWrite(PAVISTREAM iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,DWORD flags,LONG *sampwritten,LONG *byteswritten);
    7101032HRESULT WINAPI AVIStreamWriteData(PAVISTREAM iface,DWORD fcc,LPVOID lp,LONG size);
    711 
     1033HRESULT WINAPI AVIStreamOpenFromFileA(PAVISTREAM *ppavi, LPCSTR szFile,
     1034                                      DWORD fccType, LONG lParam,
     1035                                      UINT mode, CLSID *pclsidHandler);
     1036HRESULT WINAPI AVIStreamOpenFromFileW(PAVISTREAM *ppavi, LPCWSTR szFile,
     1037                                      DWORD fccType, LONG lParam,
     1038                                      UINT mode, CLSID *pclsidHandler);
     1039#define AVIStreamOpenFromFile WINELIB_NAME_AW(AVIStreamOpenFromFile)
     1040
     1041#define AVIStreamFormatSize(pavi, lPos, plSize) \
     1042    AVIStreamReadFormat(pavi, lPos, NULL, plSize)
    7121043
    7131044/*****************************************************************************
     
    7301061#undef ICOM_INTERFACE
    7311062
    732 #ifdef ICOM_CINTERFACE
    7331063/*** IUnknown methods ***/
    7341064#define IAVIFile_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
     
    7431073#define IAVIFile_EndRecord(p)        ICOM_CALL (EndRecord,p)
    7441074#define IAVIFile_DeleteStream(p,a,b) ICOM_CALL2(DeleteStream,p,a,b)
    745 #endif
    7461075
    7471076HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE pfile,PAVISTREAM* ppavi,AVISTREAMINFOA* psi);
     
    7751104#undef ICOM_INTERFACE
    7761105
    777 #ifdef ICOM_CINTERFACE
    7781106/*** IUnknown methods ***/
    7791107#define IGetFrame_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
     
    7851113#define IGetFrame_End(p)                   ICOM_CALL (End,p)
    7861114#define IGetFrame_SetFormat(p,a,b,c,d,e,f) ICOM_CALL6(SetFormat,p,a,b,c,d,e,f)
    787 #endif
    7881115
    7891116#define AVIERR_OK               0
     
    8101137#define AVIERR_ERROR            MAKE_AVIERR(199)
    8111138
    812 
    813 /* DrawDibTime */
    814 typedef struct {
    815     LONG    timeCount;
    816     LONG    timeDraw;
    817     LONG    timeDecompress;
    818     LONG    timeDither;
    819     LONG    timeStretch;
    820     LONG    timeBlt;
    821     LONG    timeSetDIBits;
    822 }   DRAWDIBTIME, *LPDRAWDIBTIME;
    823 
    824 /* ICCompressorChoose; ICCompressorFree */
    825 typedef struct {
    826     LONG                cbSize;         // set to sizeof(COMPVARS) before
    827                                         // calling ICCompressorChoose
    828     DWORD               dwFlags;        // see below...
    829     HIC                 hic;            // HIC of chosen compressor
    830     DWORD               fccType;        // basically ICTYPE_VIDEO
    831     DWORD               fccHandler;     // handler of chosen compressor or
    832                                         // "" or "DIB "
    833     LPBITMAPINFO        lpbiIn;         // input format
    834     LPBITMAPINFO        lpbiOut;        // output format - will compress to this
    835     LPVOID              lpBitsOut;
    836     LPVOID              lpBitsPrev;
    837     LONG                lFrame;
    838     LONG                lKey;           // key frames how often?
    839     LONG                lDataRate;      // desired data rate KB/Sec
    840     LONG                lQ;             // desired quality
    841     LONG                lKeyCount;
    842     LPVOID              lpState;        // state of compressor
    843     LONG                cbState;        // size of the state
    844 } COMPVARS, *PCOMPVARS;
     1139/********************************************
     1140 * DrawDib declarations
     1141 */
     1142
     1143HDRAWDIB VFWAPI DrawDibOpen( void );
     1144UINT VFWAPI DrawDibRealize(HDRAWDIB hdd, HDC hdc, BOOL fBackground);
     1145
     1146BOOL VFWAPI DrawDibBegin(HDRAWDIB hdd, HDC hdc, INT dxDst, INT dyDst,
     1147                         LPBITMAPINFOHEADER lpbi, INT dxSrc, INT dySrc, UINT wFlags);
     1148
     1149BOOL VFWAPI DrawDibDraw(HDRAWDIB hdd, HDC hdc, INT xDst, INT yDst, INT dxDst, INT dyDst,
     1150                        LPBITMAPINFOHEADER lpbi, LPVOID lpBits,
     1151                        INT xSrc, INT ySrc, INT dxSrc, INT dySrc, UINT wFlags);
     1152
     1153/* DrawDibDraw flags */
     1154
     1155#define DDF_UPDATE                      0x0002
     1156#define DDF_SAME_HDC                    0x0004
     1157#define DDF_SAME_DRAW                   0x0008
     1158#define DDF_DONTDRAW                    0x0010
     1159#define DDF_ANIMATE                     0x0020
     1160#define DDF_BUFFER                      0x0040
     1161#define DDF_JUSTDRAWIT                  0x0080
     1162#define DDF_FULLSCREEN                  0x0100
     1163#define DDF_BACKGROUNDPAL               0x0200
     1164#define DDF_NOTKEYFRAME                 0x0400
     1165#define DDF_HURRYUP                     0x0800
     1166#define DDF_HALFTONE                    0x1000
     1167
     1168#define DDF_PREROLL                     DDF_DONTDRAW
     1169#define DDF_SAME_DIB                    DDF_SAME_DRAW
     1170#define DDF_SAME_SIZE                   DDF_SAME_DRAW
     1171
     1172BOOL VFWAPI DrawDibSetPalette(HDRAWDIB hdd, HPALETTE hpal);
     1173HPALETTE VFWAPI DrawDibGetPalette(HDRAWDIB hdd);
     1174BOOL VFWAPI DrawDibChangePalette(HDRAWDIB hdd, int iStart, int iLen, LPPALETTEENTRY lppe);
     1175LPVOID VFWAPI DrawDibGetBuffer(HDRAWDIB hdd, LPBITMAPINFOHEADER lpbi, DWORD dwSize, DWORD dwFlags);
     1176
     1177BOOL VFWAPI DrawDibStart(HDRAWDIB hdd, DWORD rate);
     1178BOOL VFWAPI DrawDibStop(HDRAWDIB hdd);
     1179#define DrawDibUpdate(hdd, hdc, x, y) \
     1180        DrawDibDraw(hdd, hdc, x, y, 0, 0, NULL, NULL, 0, 0, 0, 0, DDF_UPDATE)
     1181
     1182BOOL VFWAPI DrawDibEnd(HDRAWDIB hdd);
     1183BOOL VFWAPI DrawDibClose(HDRAWDIB hdd);
     1184
     1185/* display profiling */
     1186#define PD_CAN_DRAW_DIB         0x0001
     1187#define PD_CAN_STRETCHDIB       0x0002
     1188#define PD_STRETCHDIB_1_1_OK    0x0004
     1189#define PD_STRETCHDIB_1_2_OK    0x0008
     1190#define PD_STRETCHDIB_1_N_OK    0x0010
     1191
     1192DWORD VFWAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER lpbi);
     1193
     1194#ifdef __cplusplus
     1195}
     1196#endif  /* __cplusplus */
    8451197
    8461198#endif /* __WINE_VFW_H */
Note: See TracChangeset for help on using the changeset viewer.