mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-05 18:01:34 +00:00
142 lines
4.6 KiB
C
142 lines
4.6 KiB
C
/*
|
|
* Drivers definitions
|
|
*/
|
|
|
|
#ifndef __WINE_DRIVER_H
|
|
#define __WINE_DRIVER_H
|
|
|
|
#define DRV_LOAD 0x0001
|
|
#define DRV_ENABLE 0x0002
|
|
#define DRV_OPEN 0x0003
|
|
#define DRV_CLOSE 0x0004
|
|
#define DRV_DISABLE 0x0005
|
|
#define DRV_FREE 0x0006
|
|
#define DRV_CONFIGURE 0x0007
|
|
#define DRV_QUERYCONFIGURE 0x0008
|
|
#define DRV_INSTALL 0x0009
|
|
#define DRV_REMOVE 0x000A
|
|
#define DRV_EXITSESSION 0x000B
|
|
#define DRV_EXITAPPLICATION 0x000C
|
|
#define DRV_POWER 0x000F
|
|
|
|
#define DRV_RESERVED 0x0800
|
|
#define DRV_USER 0x4000
|
|
|
|
#define DRVCNF_CANCEL 0x0000
|
|
#define DRVCNF_OK 0x0001
|
|
#define DRVCNF_RESTART 0x0002
|
|
|
|
#define DRVEA_NORMALEXIT 0x0001
|
|
#define DRVEA_ABNORMALEXIT 0x0002
|
|
|
|
#define DRV_SUCCESS 0x0001
|
|
#define DRV_FAILURE 0x0000
|
|
|
|
#define GND_FIRSTINSTANCEONLY 0x00000001
|
|
|
|
#define GND_FORWARD 0x00000000
|
|
#define GND_REVERSE 0x00000002
|
|
|
|
typedef struct {
|
|
DWORD dwDCISize;
|
|
LPCSTR lpszDCISectionName;
|
|
LPCSTR lpszDCIAliasName;
|
|
} DRVCONFIGINFO16, *LPDRVCONFIGINFO16;
|
|
|
|
typedef struct {
|
|
DWORD dwDCISize;
|
|
LPCWSTR lpszDCISectionName;
|
|
LPCWSTR lpszDCIAliasName;
|
|
} DRVCONFIGINFO32, *LPDRVCONFIGINFO32;
|
|
|
|
DECL_WINELIB_TYPE(DRVCONFIGINFO)
|
|
DECL_WINELIB_TYPE(LPDRVCONFIGINFO)
|
|
|
|
/* GetDriverInfo16 references this structure, so this a struct defined
|
|
* in the Win16 API.
|
|
* GetDriverInfo has been deprecated in Win32.
|
|
*/
|
|
typedef struct
|
|
{
|
|
UINT16 length;
|
|
HDRVR16 hDriver;
|
|
HINSTANCE16 hModule;
|
|
CHAR szAliasName[128];
|
|
} DRIVERINFOSTRUCT16, *LPDRIVERINFOSTRUCT16;
|
|
|
|
LRESULT WINAPI DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg,
|
|
LPARAM dwParam1, LPARAM dwParam2);
|
|
LRESULT WINAPI DefDriverProc32(DWORD dwDriverIdentifier, HDRVR32 hdrvr,
|
|
UINT32 Msg, LPARAM lParam1, LPARAM lParam2);
|
|
#define DefDriverProc WINELIB_NAME(DefDriverProc)
|
|
HDRVR16 WINAPI OpenDriver16(LPCSTR szDriverName, LPCSTR szSectionName,
|
|
LPARAM lParam2);
|
|
HDRVR32 WINAPI OpenDriver32A(LPCSTR szDriverName, LPCSTR szSectionName,
|
|
LPARAM lParam2);
|
|
HDRVR32 WINAPI OpenDriver32W(LPCWSTR szDriverName, LPCWSTR szSectionName,
|
|
LPARAM lParam2);
|
|
#define OpenDriver WINELIB_NAME_AW(OpenDriver)
|
|
LRESULT WINAPI CloseDriver16(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2);
|
|
LRESULT WINAPI CloseDriver32(HDRVR32 hDriver, LPARAM lParam1, LPARAM lParam2);
|
|
#define CloseDriver WINELIB_NAME(CloseDriver)
|
|
LRESULT WINAPI SendDriverMessage16( HDRVR16 hDriver, UINT16 message,
|
|
LPARAM lParam1, LPARAM lParam2 );
|
|
LRESULT WINAPI SendDriverMessage32( HDRVR32 hDriver, UINT32 message,
|
|
LPARAM lParam1, LPARAM lParam2 );
|
|
#define SendDriverMessage WINELIB_NAME(SendDriverMessage)
|
|
HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16 hDriver);
|
|
HMODULE32 WINAPI GetDriverModuleHandle32(HDRVR32 hDriver);
|
|
#define GetDriverModuleHandle WINELIB_NAME(GetDriverModuleHandle)
|
|
|
|
/* only win31 version for those below ? */
|
|
HDRVR16 WINAPI GetNextDriver(HDRVR16, DWORD);
|
|
BOOL16 WINAPI GetDriverInfo(HDRVR16, DRIVERINFOSTRUCT16 *);
|
|
|
|
/* The following definitions are WINE internals */
|
|
/* FIXME: This is a WINE internal struct and should be moved in include/wine directory */
|
|
/* Please note that WINE shares 16 and 32 bit drivers on a single list... */
|
|
/* Basically, we maintain an external double view on drivers, so that a 16 bit drivers
|
|
* can be loaded/used... by 32 functions transparently
|
|
*/
|
|
typedef struct tagWINE_DRIVER
|
|
{
|
|
char szAliasName[128];
|
|
/* as usual LPWINE_DRIVER == hDriver32 */
|
|
HDRVR16 hDriver16;
|
|
union {
|
|
struct {
|
|
HMODULE16 hModule;
|
|
DRIVERPROC16 lpDrvProc;
|
|
} d16;
|
|
struct {
|
|
HMODULE32 hModule;
|
|
DRIVERPROC32 lpDrvProc;
|
|
} d32;
|
|
} d;
|
|
DWORD dwDriverID;
|
|
DWORD dwFlags;
|
|
struct tagWINE_DRIVER* lpPrevItem;
|
|
struct tagWINE_DRIVER* lpNextItem;
|
|
} WINE_DRIVER, *LPWINE_DRIVER;
|
|
|
|
/* values for dwFlags */
|
|
#define WINE_DI_TYPE_MASK 0x00000007ul
|
|
#define WINE_DI_TYPE_16 0x00000001ul
|
|
#define WINE_DI_TYPE_32 0x00000002ul
|
|
|
|
LPWINE_DRIVER DRIVER_RegisterDriver16(LPCSTR, HMODULE16, DRIVERPROC16, LPARAM);
|
|
LPWINE_DRIVER DRIVER_RegisterDriver32(LPCSTR, HMODULE32, DRIVERPROC32, LPARAM);
|
|
|
|
#if 0
|
|
#errro "it's never used"
|
|
/* internal */
|
|
typedef struct
|
|
{
|
|
UINT32 length;
|
|
HDRVR32 hDriver;
|
|
HMODULE32 hModule;
|
|
CHAR szAliasName[128];
|
|
} DRIVERINFOSTRUCT32A, *LPDRIVERINFOSTRUCT32A;
|
|
#endif
|
|
|
|
#endif /* __WINE_DRIVER_H */
|