|
|
|
IDirectInput8 |
|
' ****************************************************************************************
' IDirectInput8 interface
' ****************************************************************************************
'DECLARE_INTERFACE_(IDirectInput8A, IUnknown)
'{
' /*** IUnknown methods ***/
' 0. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
' 1. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
' 2. STDMETHOD_(ULONG,Release)(THIS) PURE;
' /*** IDirectInput8A methods ***/
' 3. STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICE8A *,LPUNKNOWN) PURE;
' 4. STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKA,LPVOID,DWORD) PURE;
' 5. STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
' 6. STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
' 7. STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
' 8. STDMETHOD(FindDevice)(THIS_ REFGUID,LPCSTR,LPGUID) PURE;
' 9. STDMETHOD(EnumDevicesBySemantics)(THIS_ LPCSTR,LPDIACTIONFORMATA,LPDIENUMDEVICESBYSEMANTICSCBA,LPVOID,DWORD) PURE;
' 10. STDMETHOD(ConfigureDevices)(THIS_ LPDICONFIGUREDEVICESCALLBACK,LPDICONFIGUREDEVICESPARAMSA,DWORD,LPVOID) PURE;
'};
'DECLARE_INTERFACE_(IDirectInput8W, IUnknown)
'{
' /*** IUnknown methods ***/
' STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
' STDMETHOD_(ULONG,AddRef)(THIS) PURE;
' STDMETHOD_(ULONG,Release)(THIS) PURE;
' /*** IDirectInput8W methods ***/
' STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICE8W *,LPUNKNOWN) PURE;
' STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKW,LPVOID,DWORD) PURE;
' STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
' STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
' STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
' STDMETHOD(FindDevice)(THIS_ REFGUID,LPCWSTR,LPGUID) PURE;
' STDMETHOD(EnumDevicesBySemantics)(THIS_ LPCWSTR,LPDIACTIONFORMATW,LPDIENUMDEVICESBYSEMANTICSCBW,LPVOID,DWORD) PURE;
' STDMETHOD(ConfigureDevices)(THIS_ LPDICONFIGUREDEVICESCALLBACK,LPDICONFIGUREDEVICESPARAMSW,DWORD,LPVOID) PURE;
'};
' ****************************************************************************************
' CreateDevice method
' Creates and initializes an instance of a device based on a given globally unique
' identifier (GUID), and obtains an IDirectInputDevice8 interface.
' HRESULT CreateDevice(
' REFGUID rguid,
' LPDIRECTINPUTDEVICE *lplpDirectInputDevice,
' LPUNKNOWN pUnkOuter
' );
' ****************************************************************************************
FUNCTION IDirectInput8_CreateDevice ALIAS "IDirectInput8_CreateDevice" ( _
BYVAL pthis AS DWORD PTR, BYREF rguid AS GUID, BYREF lplpDirectInputDevice AS DWORD, _
BYVAL pUnkOuter AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[3] USING IDirectInput8_CreateDevice(pthis, rguid, lplpDirectInputDevice, pUnkOuter) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' EnumDevices method
' Enumerates available devices.
' HRESULT EnumDevices(
' DWORD dwDevType,
' LPDIENUMDEVICESCALLBACK lpCallback,
' LPVOID pvRef,
' DWORD dwFlags
' );
' ****************************************************************************************
FUNCTION IDirectInput8_EnumDevices ALIAS "IDirectInput8_EnumDevices" ( _
BYVAL pthis AS DWORD PTR, BYVAL dwDevType AS DWORD, BYVAL lpCallback AS DWORD, _
BYVAL pvRef AS DWORD, BYVAL dwFlags AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[4] USING IDirectInput8_EnumDevices(pthis, dwDevType, lpCallback, pvRef, dwFlags) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' GetDeviceStatus method
' Retrieves the status of a specified device.
' HRESULT GetDeviceStatus(
' REFGUID rguidInstance
' );
' ****************************************************************************************
FUNCTION IDirectInput8_GetDeviceStatus ALIAS "IDirectInput8_GetDeviceStatus" ( _
BYVAL pthis AS DWORD PTR, BYREF rguidInstance AS GUID) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[5] USING IDirectInput8_GetDeviceStatus(pthis, rguidInstance) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' RunControlPanel method
' Runs Control Panel to enable the user to install a new input device or modify
' configurations.
' HRESULT RunControlPanel(
' HWND hwndOwner,
' DWORD dwFlags
' );
' ****************************************************************************************
FUNCTION IDirectInput8_RunControlPanel ALIAS "IDirectInput8_RunControlPanel" ( _
BYVAL pthis AS DWORD PTR, BYVAL hwndOwner AS DWORD, BYVAL dwFlags AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[6] USING IDirectInput8_RunControlPanel(pthis, hwndOwner, dwFlags) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' Initialize method
' Initializes a Microsoft DirectInput object. Applications normally do not need to call
' this method. The DirectInput8Create function automatically initializes the DirectInput
' object after creating it.
' HRESULT Initialize(
' HINSTANCE hinst,
' DWORD dwVersion
' );
' ****************************************************************************************
FUNCTION IDirectInput8_Initialize ALIAS "IDirectInput8_Initialize" ( _
BYVAL pthis AS DWORD PTR, BYVAL hinst AS DWORD, BYVAL dwVersion AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[7] USING IDirectInput8_Initialize(pthis, hinst, dwVersion) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' FindDevice method
' Retrieves the instance globally unique identifier (GUID) of a device that has been newly
' attached to the system. It is called in response to a Microsoft Win32 device management
' notification.
' HRESULT FindDevice(
' REFGUID rguidClass,
' LPCSTR pszName,
' LPGUID pguidInstance
' );
' ****************************************************************************************
FUNCTION IDirectInput8_FindDevice ALIAS "IDirectInput8_FindDevice" ( _
BYVAL pthis AS DWORD PTR, BYREF rguidClass AS GUID, BYREF pszName AS ASCIIZ, _
BYREF pguidInstance AS GUID) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[8] USING IDirectInput8_FindDevice(pthis, rguidClass, pszName, pguidInstance) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' EnumDevicesBySemantics method
' Enumerates devices that most closely match the application-specified action map.
' HRESULT EnumDevicesBySemantics(
' LPCSTR pszUserName,
' LPDIACTIONFORMAT lpdiActionFormat,
' LPDIENUMDEVICESBYSEMANTICSCB lpCallback,
' LPVOID pvRef,
' DWORD dwFlags
' );
' ****************************************************************************************
FUNCTION IDirectInput8_EnumDevicesBySemantics ALIAS "IDirectInput8_EnumDevicesBySemantics" ( _
BYVAL pthis AS DWORD PTR, BYREF pszUserName AS ASCIIZ, BYREF lpdiActionFormat AS DIACTIONFORMATA, _
BYVAL lpCallback AS DWORD, BYVAL pvRef AS DWORD, BYVAL dwFlags AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[9] USING IDirectInput8_EnumDevicesBySemantics(pthis, pszUserName, lpdiActionFormat, lpCallback, pvRef, dwFlags) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' ConfigureDevices method
' Displays property pages for connected input devices and enables the user to map actions
' to device controls.
' HRESULT ConfigureDevices(
' LPDICONFIGUREDEVICESCALLBACK lpdiCallback,
' LPDICONFIGUREDEVICESPARAMS lpdiCDParams,
' DWORD dwFlags,
' LPVOID pvRefData
' );
' ****************************************************************************************
FUNCTION IDirectInput8_ConfigureDevices ALIAS "IDirectInput8_ConfigureDevices" ( _
BYVAL pthis AS DWORD PTR, BYVAL lpdiCallback AS DWORD, BYVAL lpdiCDParams AS DWORD, _
BYVAL dwFlags AS DWORD, BYVAL pvRefData AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[10] USING IDirectInput8_ConfigureDevices(pthis, lpdiCallback, lpdiCDParams, dwFlags, pvRefData) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
|
Page last updated on Wednesday, 15 March 2006 00:51:34 +0100