Не получается инициализировать DirectInput. Помогите, пожалуйста, очень надо. Код (Text): .DATA ;interfaces ----------------------------------------------------- POINTER_INTERFACE_DIRECTINPUT8 DWORD ? INTERFACE_DIRECTINPUT8 STRUCT QueryInterface DWORD 00000000h AddRef DWORD 00000004h Release DWORD 00000008h CreateDevice DWORD 0000000Ch EnumDevices DWORD 00000010h GetDeviceStatus DWORD 00000014h RunControlPanel DWORD 00000018h Initialize DWORD 0000001Ch FindDevice DWORD 00000020h EnumDevicesBySemantics DWORD 00000024h ConfigureDevices DWORD 00000028h INTERFACE_DIRECTINPUT8 ENDS POINTER_INTERFACE_DIRECTINPUTDEVICE8 DWORD ? INTERFACE_DIRECTINPUTDEVICE8 STRUCT QueryInterface DWORD 00000000h AddRef DWORD 00000004h Release DWORD 00000008h GetCapabilities DWORD 0000000Ch EnumObjects DWORD 00000010h GetProperty DWORD 00000014h SetProperty DWORD 00000018h Acquire DWORD 0000001Ch Unacquire DWORD 00000020h GetDeviceState DWORD 00000024h GetDeviceData DWORD 00000028h SetDataFormat DWORD 0000002Ch INTERFACE_DIRECTINPUTDEVICE8 ENDS ;structures ----------------------------------------------------- DIRECTINPUT_DATAFORMAT STRUCT dwSize DWORD ? dwObjSize DWORD ? dwFlags DWORD ? dwDataSize DWORD ? dwNumObjs DWORD ? rgodf DWORD ? DIRECTINPUT_DATAFORMAT ENDS GUID_Key GUID <055728220h, 0D33Ch, 11CFh, <0BFh, 0C7h, 44h, 45h, 053h, 54h, 00h, 00h>> IID_IDIRECTINPUT8 GUID <0BF798030h, 0483Ah, 4DA2h, <0AAh, 099h, 5Dh, 64h, 0EDh, 36h, 97h, 00h>> GUID_SYSKEYBOARD GUID <06F1D2B61h, 0D5A0h, 11CFh, <0BFh, 0C7h, 44h, 45h, 053h, 54h, 00h, 00h>> _DIOBJECTDATAFORMAT STRUCT pguid DWORD ? dwOfs DWORD ? dwType DWORD ? dwFlags DWORD ? _DIOBJECTDATAFORMAT ENDS _DIKEYBOARD _DIOBJECTDATAFORMAT 256 DUP (<?>) _DIDATAFORMAT STRUCT dwSize DWORD 24 ;size of _DIDATAFORMAT dwObjSize DWORD 16 ;size of _DIOBJECTDATAFORMAT dwFlags DWORD 00000002h ;DIDF_RELAXIS dwDataSize DWORD 256 dwNumObjs DWORD 256 rgodf DWORD OFFSET _DIKEYBOARD _DIDATAFORMAT ENDS .CODE ;get DIRECTINPUT8 interface PUSH 0 PUSH OFFSET POINTER_INTERFACE_DIRECTINPUT8 PUSH OFFSET IID_IDIRECTINPUT8 PUSH 0800h ;DIRECTINPUT_VERSION PUSH WINDOW_CLASS.hInstance CALL ADDR_DirectInput8Create ;get DIRECTINPUTDEVICE8 interface PUSH 0 PUSH OFFSET POINTER_INTERFACE_DIRECTINPUTDEVICE8 PUSH OFFSET GUID_SYSKEYBOARD MOV EAX, POINTER_INTERFACE_DIRECTINPUT8 PUSH EAX MOV EAX, [EAX] CALL DWORD PTR [EAX + INTERFACE_DIRECTINPUT8.CreateDevice] ;fill _DIKEYBOARD MOV ESI, OFFSET _DIKEYBOARD + 4096 ;256 * 16 MOV ECX, 255 FILL_NEXT_ELEMENT: SUB ESI, 4h MOV EAX, 0h MOV [ESI], EAX SUB ESI, 4h MOV EBX, ECX SHL EBX, 8 OR EBX, 8000000Ch MOV [ESI], EBX SUB ESI, 4h MOV [ESI], ECX SUB ESI, 4h MOV [ESI], OFFSET GUID_Key LOOP FILL_NEXT_ELEMENT ;set data format PUSH OFFSET _DIDATAFORMAT MOV EAX, POINTER_INTERFACE_DIRECTINPUTDEVICE8 PUSH EAX MOV EAX, [EAX] error >>> CALL DWORD PTR [EAX + INTERFACE_DIRECTINPUTDEVICE8.SetDataFormat] Почему возникает ошибка? Подскажите, добрые люди!