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