WinAPI erhalten Mauszeiger-Symbol

Ich möchte das Cursorsymbol in Windows erhalten. Ich denke, dass die Sprache, die ich verwende, hier nicht sehr wichtig ist, deshalb schreibe ich nur Pseudo-Code mit WinAPI-Funktionen, die ich verwende:

<code>c = CURSORINFO.new(20, 1, 1, POINT.new(1,1));
GetCursorInfo(c); #provides correctly filled structure with hCursor

DrawIcon(GetWindowDC(GetForegroundWindow()), 1, 1, c.hCursor);
</code>

Damit dieser Teil gut funktioniert, zeichnet er den aktuellen Cursor auf das aktive Fenster. Aber das will ich nicht. Ich möchte ein Array von Pixeln erhalten, also sollte ich es in den Speicher zeichnen.

Ich versuche es so zu machen:

<code>hdc = CreateCompatibleDC(GetDC(0)); #returns non-zero int
canvas = CreateCompatibleBitmap(hdc, 256, 256); #returns non-zero int too

c = CURSORINFO.new(20, 1, 1, POINT.new(1,1));
GetCursorInfo(c);

DrawIcon(hdc, 1, 1, c.hCursor); #returns 1
GetPixel(hdc, 1, 1); #returns -1
</code>

Warum gibt GetPixel () kein COLORREF zurück? Was vermisse ich?

Ich bin nicht sehr erfahren mit WinAPI, also mache ich wahrscheinlich einen dummen Fehler.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage