Windowsでカーソルアイコンを取得したい。使用する言語はここではあまり重要ではないと思うので、使用しようとしている WinAPI 関数を使用して疑似コードを記述します。
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);
したがって、この部分は正常に機能し、アクティブなウィンドウに現在のカーソルを描画します。しかし、それは私が望むものではありません。ピクセルの配列を取得したいので、メモリに描画する必要があります。
私はこのようにしようとしています:
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
GetPixel() が COLORREF を返さないのはなぜですか? 私は何が欠けていますか?
私は WinAPI の経験があまりないので、おそらくばかげた間違いをしているのでしょう。