Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendevice_private.h
Go to the documentation of this file.
00001 /* 00002 * Copyright 2000 Lionel Ulmer 00003 * Copyright 2000-2001 TransGaming Technologies Inc. 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00018 */ 00019 00020 #ifndef __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H 00021 #define __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H 00022 00023 #include <stdarg.h> 00024 00025 #include "windef.h" 00026 #include "winbase.h" 00027 #include "dinput.h" 00028 #include "wine/list.h" 00029 #include "dinput_private.h" 00030 00031 typedef struct 00032 { 00033 int size; 00034 int offset_in; 00035 int offset_out; 00036 int value; 00037 } DataTransform; 00038 00039 typedef struct 00040 { 00041 int size; 00042 int internal_format_size; 00043 DataTransform *dt; 00044 00045 int *offsets; /* object offsets */ 00046 LPDIDATAFORMAT wine_df; /* wine internal data format */ 00047 LPDIDATAFORMAT user_df; /* user defined data format */ 00048 } DataFormat; 00049 00050 /* Device implementation */ 00051 typedef struct IDirectInputDevice2AImpl IDirectInputDevice2AImpl; 00052 struct IDirectInputDevice2AImpl 00053 { 00054 const void *lpVtbl; 00055 LONG ref; 00056 GUID guid; 00057 CRITICAL_SECTION crit; 00058 IDirectInputImpl *dinput; 00059 struct list entry; /* entry into IDirectInput devices list */ 00060 HANDLE hEvent; 00061 DWORD dwCoopLevel; 00062 HWND win; 00063 int acquired; 00064 DI_EVENT_PROC event_proc; /* function to receive mouse & keyboard events */ 00065 00066 LPDIDEVICEOBJECTDATA data_queue; /* buffer for 'GetDeviceData'. */ 00067 int queue_len; /* size of the queue - set in 'SetProperty' */ 00068 int queue_head; /* position to write new event into queue */ 00069 int queue_tail; /* next event to read from queue */ 00070 BOOL overflow; /* return DI_BUFFEROVERFLOW in 'GetDeviceData' */ 00071 00072 DataFormat data_format; /* user data format and wine to user format converter */ 00073 }; 00074 00075 extern BOOL get_app_key(HKEY*, HKEY*); 00076 extern DWORD get_config_key(HKEY, HKEY, const char*, char*, DWORD); 00077 00078 /* Routines to do DataFormat / WineFormat conversions */ 00079 extern void fill_DataFormat(void *out, DWORD size, const void *in, const DataFormat *df) ; 00080 extern void release_DataFormat(DataFormat *df) ; 00081 extern void queue_event(LPDIRECTINPUTDEVICE8A iface, int ofs, DWORD data, DWORD time, DWORD seq); 00082 /* Helper functions to work with data format */ 00083 extern int id_to_object(LPCDIDATAFORMAT df, int id); 00084 extern int id_to_offset(const DataFormat *df, int id); 00085 extern int find_property(const DataFormat *df, LPCDIPROPHEADER ph); 00086 00087 /* Common joystick stuff */ 00088 typedef struct 00089 { 00090 LONG lDevMin; 00091 LONG lDevMax; 00092 LONG lMin; 00093 LONG lMax; 00094 LONG lDeadZone; 00095 LONG lSaturation; 00096 } ObjProps; 00097 00098 extern DWORD joystick_map_pov(POINTL *p); 00099 extern LONG joystick_map_axis(ObjProps *props, int val); 00100 00101 typedef struct 00102 { 00103 struct list entry; 00104 LPDIRECTINPUTEFFECT ref; 00105 } effect_list_item; 00106 00107 extern const GUID DInput_Wine_Keyboard_GUID; 00108 extern const GUID DInput_Wine_Mouse_GUID; 00109 00110 /* Various debug tools */ 00111 extern void _dump_DIPROPHEADER(LPCDIPROPHEADER diph) ; 00112 extern void _dump_OBJECTINSTANCEA(const DIDEVICEOBJECTINSTANCEA *ddoi) ; 00113 extern void _dump_OBJECTINSTANCEW(const DIDEVICEOBJECTINSTANCEW *ddoi) ; 00114 extern void _dump_DIDATAFORMAT(const DIDATAFORMAT *df) ; 00115 extern const char *_dump_dinput_GUID(const GUID *guid) ; 00116 00117 /* And the stubs */ 00118 extern HRESULT WINAPI IDirectInputDevice2AImpl_Acquire(LPDIRECTINPUTDEVICE8A iface); 00119 extern HRESULT WINAPI IDirectInputDevice2AImpl_Unacquire(LPDIRECTINPUTDEVICE8A iface); 00120 extern HRESULT WINAPI IDirectInputDevice2AImpl_SetDataFormat( 00121 LPDIRECTINPUTDEVICE8A iface,LPCDIDATAFORMAT df ) ; 00122 extern HRESULT WINAPI IDirectInputDevice2AImpl_SetCooperativeLevel( 00123 LPDIRECTINPUTDEVICE8A iface,HWND hwnd,DWORD dwflags ) ; 00124 extern HRESULT WINAPI IDirectInputDevice2AImpl_SetEventNotification( 00125 LPDIRECTINPUTDEVICE8A iface,HANDLE hnd ) ; 00126 extern ULONG WINAPI IDirectInputDevice2AImpl_Release(LPDIRECTINPUTDEVICE8A iface) ; 00127 extern HRESULT WINAPI IDirectInputDevice2AImpl_QueryInterface(LPDIRECTINPUTDEVICE8A iface,REFIID riid,LPVOID *ppobj); 00128 extern HRESULT WINAPI IDirectInputDevice2WImpl_QueryInterface(LPDIRECTINPUTDEVICE8W iface,REFIID riid,LPVOID *ppobj); 00129 extern ULONG WINAPI IDirectInputDevice2AImpl_AddRef( 00130 LPDIRECTINPUTDEVICE8A iface) ; 00131 extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumObjects( 00132 LPDIRECTINPUTDEVICE8A iface, 00133 LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback, 00134 LPVOID lpvRef, 00135 DWORD dwFlags) ; 00136 extern HRESULT WINAPI IDirectInputDevice2WImpl_EnumObjects( 00137 LPDIRECTINPUTDEVICE8W iface, 00138 LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback, 00139 LPVOID lpvRef, 00140 DWORD dwFlags) ; 00141 extern HRESULT WINAPI IDirectInputDevice2AImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface, REFGUID rguid, LPDIPROPHEADER pdiph); 00142 extern HRESULT WINAPI IDirectInputDevice2AImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface, REFGUID rguid, LPCDIPROPHEADER pdiph); 00143 extern HRESULT WINAPI IDirectInputDevice2AImpl_GetObjectInfo( 00144 LPDIRECTINPUTDEVICE8A iface, 00145 LPDIDEVICEOBJECTINSTANCEA pdidoi, 00146 DWORD dwObj, 00147 DWORD dwHow) ; 00148 extern HRESULT WINAPI IDirectInputDevice2WImpl_GetObjectInfo(LPDIRECTINPUTDEVICE8W iface, 00149 LPDIDEVICEOBJECTINSTANCEW pdidoi, 00150 DWORD dwObj, 00151 DWORD dwHow); 00152 extern HRESULT WINAPI IDirectInputDevice2AImpl_GetDeviceData(LPDIRECTINPUTDEVICE8A iface, 00153 DWORD dodsize, LPDIDEVICEOBJECTDATA dod, LPDWORD entries, DWORD flags); 00154 extern HRESULT WINAPI IDirectInputDevice2AImpl_RunControlPanel( 00155 LPDIRECTINPUTDEVICE8A iface, 00156 HWND hwndOwner, 00157 DWORD dwFlags) ; 00158 extern HRESULT WINAPI IDirectInputDevice2AImpl_Initialize( 00159 LPDIRECTINPUTDEVICE8A iface, 00160 HINSTANCE hinst, 00161 DWORD dwVersion, 00162 REFGUID rguid) ; 00163 extern HRESULT WINAPI IDirectInputDevice2AImpl_CreateEffect( 00164 LPDIRECTINPUTDEVICE8A iface, 00165 REFGUID rguid, 00166 LPCDIEFFECT lpeff, 00167 LPDIRECTINPUTEFFECT *ppdef, 00168 LPUNKNOWN pUnkOuter) ; 00169 extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumEffects( 00170 LPDIRECTINPUTDEVICE8A iface, 00171 LPDIENUMEFFECTSCALLBACKA lpCallback, 00172 LPVOID lpvRef, 00173 DWORD dwFlags) ; 00174 extern HRESULT WINAPI IDirectInputDevice2WImpl_EnumEffects( 00175 LPDIRECTINPUTDEVICE8W iface, 00176 LPDIENUMEFFECTSCALLBACKW lpCallback, 00177 LPVOID lpvRef, 00178 DWORD dwFlags) ; 00179 extern HRESULT WINAPI IDirectInputDevice2AImpl_GetEffectInfo( 00180 LPDIRECTINPUTDEVICE8A iface, 00181 LPDIEFFECTINFOA lpdei, 00182 REFGUID rguid) ; 00183 extern HRESULT WINAPI IDirectInputDevice2WImpl_GetEffectInfo( 00184 LPDIRECTINPUTDEVICE8W iface, 00185 LPDIEFFECTINFOW lpdei, 00186 REFGUID rguid) ; 00187 extern HRESULT WINAPI IDirectInputDevice2AImpl_GetForceFeedbackState( 00188 LPDIRECTINPUTDEVICE8A iface, 00189 LPDWORD pdwOut) ; 00190 extern HRESULT WINAPI IDirectInputDevice2AImpl_SendForceFeedbackCommand( 00191 LPDIRECTINPUTDEVICE8A iface, 00192 DWORD dwFlags) ; 00193 extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumCreatedEffectObjects( 00194 LPDIRECTINPUTDEVICE8A iface, 00195 LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, 00196 LPVOID lpvRef, 00197 DWORD dwFlags) ; 00198 extern HRESULT WINAPI IDirectInputDevice2AImpl_Escape( 00199 LPDIRECTINPUTDEVICE8A iface, 00200 LPDIEFFESCAPE lpDIEEsc) ; 00201 extern HRESULT WINAPI IDirectInputDevice2AImpl_Poll( 00202 LPDIRECTINPUTDEVICE8A iface) ; 00203 extern HRESULT WINAPI IDirectInputDevice2AImpl_SendDeviceData( 00204 LPDIRECTINPUTDEVICE8A iface, 00205 DWORD cbObjectData, 00206 LPCDIDEVICEOBJECTDATA rgdod, 00207 LPDWORD pdwInOut, 00208 DWORD dwFlags) ; 00209 extern HRESULT WINAPI IDirectInputDevice7AImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8A iface, 00210 LPCSTR lpszFileName, 00211 LPDIENUMEFFECTSINFILECALLBACK pec, 00212 LPVOID pvRef, 00213 DWORD dwFlags) ; 00214 extern HRESULT WINAPI IDirectInputDevice7WImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8W iface, 00215 LPCWSTR lpszFileName, 00216 LPDIENUMEFFECTSINFILECALLBACK pec, 00217 LPVOID pvRef, 00218 DWORD dwFlags) ; 00219 extern HRESULT WINAPI IDirectInputDevice7AImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8A iface, 00220 LPCSTR lpszFileName, 00221 DWORD dwEntries, 00222 LPDIFILEEFFECT rgDiFileEft, 00223 DWORD dwFlags) ; 00224 extern HRESULT WINAPI IDirectInputDevice7WImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8W iface, 00225 LPCWSTR lpszFileName, 00226 DWORD dwEntries, 00227 LPDIFILEEFFECT rgDiFileEft, 00228 DWORD dwFlags) ; 00229 extern HRESULT WINAPI IDirectInputDevice8AImpl_BuildActionMap(LPDIRECTINPUTDEVICE8A iface, 00230 LPDIACTIONFORMATA lpdiaf, 00231 LPCSTR lpszUserName, 00232 DWORD dwFlags); 00233 extern HRESULT WINAPI IDirectInputDevice8WImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface, 00234 LPDIACTIONFORMATW lpdiaf, 00235 LPCWSTR lpszUserName, 00236 DWORD dwFlags); 00237 extern HRESULT WINAPI IDirectInputDevice8AImpl_SetActionMap(LPDIRECTINPUTDEVICE8A iface, 00238 LPDIACTIONFORMATA lpdiaf, 00239 LPCSTR lpszUserName, 00240 DWORD dwFlags); 00241 extern HRESULT WINAPI IDirectInputDevice8WImpl_SetActionMap(LPDIRECTINPUTDEVICE8W iface, 00242 LPDIACTIONFORMATW lpdiaf, 00243 LPCWSTR lpszUserName, 00244 DWORD dwFlags); 00245 extern HRESULT WINAPI IDirectInputDevice8AImpl_GetImageInfo(LPDIRECTINPUTDEVICE8A iface, 00246 LPDIDEVICEIMAGEINFOHEADERA lpdiDevImageInfoHeader); 00247 extern HRESULT WINAPI IDirectInputDevice8WImpl_GetImageInfo(LPDIRECTINPUTDEVICE8W iface, 00248 LPDIDEVICEIMAGEINFOHEADERW lpdiDevImageInfoHeader); 00249 00250 #endif /* __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H */ Generated on Sun May 27 2012 04:21:31 for ReactOS by
1.7.6.1
|