/* * Drivers definitions */ #ifndef __WINE_DRIVER_H #define __WINE_DRIVER_H #include "windef.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; } DRVCONFIGINFO, *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 DefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr, UINT Msg, LPARAM lParam1, LPARAM lParam2); HDRVR16 WINAPI OpenDriver16(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2); HDRVR WINAPI OpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2); HDRVR WINAPI OpenDriverW(LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2); #define OpenDriver WINELIB_NAME_AW(OpenDriver) LRESULT WINAPI CloseDriver16(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2); LRESULT WINAPI CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2); LRESULT WINAPI SendDriverMessage16( HDRVR16 hDriver, UINT16 message, LPARAM lParam1, LPARAM lParam2 ); LRESULT WINAPI SendDriverMessage( HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2 ); HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16 hDriver); HMODULE WINAPI GetDriverModuleHandle(HDRVR hDriver); /* only win31 version for those below ? */ HDRVR16 WINAPI GetNextDriver16(HDRVR16, DWORD); BOOL16 WINAPI GetDriverInfo16(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 */ /* Who said goofy boy ? */ #define WINE_DI_MAGIC 0x900F1B01 typedef struct tagWINE_DRIVER { DWORD dwMagic; char szAliasName[128]; /* as usual LPWINE_DRIVER == hDriver32 */ HDRVR16 hDriver16; union { struct { HMODULE16 hModule; DRIVERPROC16 lpDrvProc; } d16; struct { HMODULE hModule; DRIVERPROC 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, BOOL); LPWINE_DRIVER DRIVER_RegisterDriver32(LPCSTR, HMODULE, DRIVERPROC, LPARAM, BOOL); int DRIVER_GetType(HDRVR); #if 0 #error "It's never used" /* internal */ typedef struct { UINT length; HDRVR hDriver; HMODULE hModule; CHAR szAliasName[128]; } DRIVERINFOSTRUCTA, *LPDRIVERINFOSTRUCTA; #endif #endif /* __WINE_DRIVER_H */