Hey BigRox,
Warum kann ich den SPI_SETMOUSSONAR nicht verwenden, sondern muss die Konstante von AutoIt (oder 0x101D) verwenden?
SPI_SETMOUS E(das E vergessen?!) SONAR (in dem Fall als Variablenname in der API-Definition) IST 0x101D. Google mal nach SPI_SETMOUSESONAR und du findest https://learn.microsoft.com/de-de/windows/…parametersinfoa
Alle Parameter zu den Funktionsaufrufen findest du in den *.h-files, das h steht für header. Diese Systemdateien werden idR. bei der Installation eines C/C++-Compilers mitinstalliert, du kannst einzelne aber auch einfach bei google suchen und bekommst dann Links zu bspw. Github. Dort kannst du dann in die h-files reinschauen und die Definition des Parameters nachvollziehen.
Dein Fehler war, anstatt die Variable SPI_SETMOUSESONAR zu verwenden, den TEXT(!) "SPI_SETMOUSESONAR" einzusetzen. In den API-Funktionsbeschreibungen gibt es zwar auch text-Parameter, in diesem Fall ist aber ein UINT gefragt.
Wenn mir irgendwelche esoterischen Datentypen unterkommen, (in C/C++ und auch anderen Sprachen kannst du selbst deine Datentypen definieren), dann schaue ich mir die *.h-files an und ggf. andere Programmierbeispiele.
Und warum muss ich bei einem PVOID-Datentyp UINT-angeben?
Hehe, auch hier ist google dein Freund :o)
Beckhoff Information System - German
Letztendlich beschränken sich die Datentypen auf 8, 32- oder 64-Bit Datentypen. C-Typisch werden selbst bei den kompliziertesten und komplexesten strukturierten und völlig sinnfrei von irgendeinem XY_Programmierer-zusammengepfriemelt aufgebauten Datentypen nur sog. Pointer, also Zeiger auf diese Struktur in der Funktion übergeben. Innerhalb der Funktion wird dann über die tippeltappeltour auf den Pointer vom Pointer auf die Liste auf eine Verkettung von Pointern auf eine Struct uswusf. verwiesen und dort die Daten ermittelt. Damit du nicht zig Variablen übergeben musst, werden diese zusammengefasst und per Pointer, auf bspw. eine Struct oder auch auf Programmcode, übergeben.