Unicodification and typesafe interfaces.
[wine] / dlls / msvideo / msvideo_private.h
1 /*
2  * Copyright 1999 Marcus Meissner
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef __WINE_MSVIDEO_PRIVATE_H
20 #define __WINE_MSVIDEO_PRIVATE_H
21
22 #define COM_NO_WINDOWS_H
23 #include <stdarg.h>
24 #include "windef.h"
25 #include "winbase.h"
26 #include "wingdi.h"
27 #include "winuser.h"
28 #include "commdlg.h"
29 #include "vfw.h"
30
31 /* HIC struct (same layout as Win95 one) */
32 typedef struct tagWINE_HIC {
33     DWORD               magic;          /* 00: 'Smag' */
34     HANDLE              curthread;      /* 04: */
35     DWORD               type;           /* 08: */
36     DWORD               handler;        /* 0C: */
37     HDRVR               hdrv;           /* 10: */
38     DWORD               private;        /* 14:(handled by SendDriverMessage)*/
39     DRIVERPROC          driverproc;     /* 18:(handled by SendDriverMessage)*/
40     DWORD               x1;             /* 1c: name? */
41     WORD                x2;             /* 20: */
42     DWORD               x3;             /* 22: */
43                                         /* 26: */
44     DWORD               driverproc16;   /* Wine specific flags */
45     HIC                 hic;
46     DWORD               driverId;
47     struct tagWINE_HIC* next;
48 } WINE_HIC;
49
50 HIC             MSVIDEO_OpenFunction(DWORD, DWORD, UINT, DRIVERPROC, DWORD);
51 LRESULT         MSVIDEO_SendMessage(WINE_HIC*, UINT, DWORD, DWORD);
52 WINE_HIC*       MSVIDEO_GetHicPtr(HIC);
53
54 extern LRESULT  (CALLBACK *pFnCallTo16)(HDRVR, HIC, UINT, LPARAM, LPARAM);
55
56 /* handle16 --> handle conversions */
57 #define HDRAWDIB_32(h16)        ((HDRAWDIB)(ULONG_PTR)(h16))
58 #define HIC_32(h16)             ((HIC)(ULONG_PTR)(h16))
59
60 /* handle --> handle16 conversions */
61 #define HDRVR_16(h32)           (LOWORD(h32))
62 #define HDRAWDIB_16(h32)        (LOWORD(h32))
63 #define HIC_16(h32)             (LOWORD(h32))
64
65 #endif  /* __WINE_MSVIDEO_PRIVATE_H */