В ctypes имам
TBButton.ptr(ctypes.UInt64("0x1e677e60")
Това е еквивалентно на aButton.address()
в този ред от код тук:
var rez = SendMessage(hToolbar, 0x417 /** TB_GETBUTTON **/, 1, aButton.address());
Когато стартирам този код, получавам грешка:
Изключение: очакван тип intptr_t, получен TBButton.ptr(ctypes.UInt64("0xaa4eb20"))
Това е така, защото в моята SendMessage
дефиниция имам това:
var SendMessage = user32.declare('SendMessageW', ctypes.winapi_abi, ctypes.intptr_t,
ctypes.voidptr_t, // HWND
ctypes.uint32_t, // MSG
ctypes.uintptr_t, // WPARAM
ctypes.intptr_t // LPARAM
);
Въпросът ми е: какъв е типът TBButton.ptr(ctypes.UInt64("0x1e677e60")
, за да мога да променя LPARAM
в дефиницията SendMessage
на този тип.
Или алтернативно: Възможно ли е това да бъде intptr_t
? Нещо като ctypes.intptr_t(aButton.address())
, което пробвах това не работи.