On Fri, Mar 11, 2011 at 8:01 AM, Alexandre Julliard julliard@winehq.org wrote:
Erich Hoover ehoover@mines.edu writes:
@@ -135,6 +139,16 @@ static void release_icon_ptr( HICON handle, struct cursoricon_object *ptr ) release_user_handle_ptr( ptr ); }
+struct static_cursoricon_object *get_icon_data( struct cursoricon_object *obj, int istep ) +{
- return &obj->frames[istep];
+}
+void release_icon_data( struct cursoricon_object *obj, int istep, struct static_cursoricon_object *icon_data ) +{
- /* placeholder */
+}
I find your data structures confusing. You add a concept of icon_data separate from icon_ptr, but it doesn't correspond to the data structures, there's no such thing as an icon_data. There should be a way of making this clearer.
The idea of the get_icon_data() is to return the frame data for a particular icon step, so for split animated cursors (patch 3) the routine can appropriately call get_icon_ptr() on the "sub-icon" (and release_icon_data can call release_icon_ptr). I considered calling this get_icon_frame() and having it return the existing "cursoricon_frame" structure, but DrawIconEx needs to access the frame-specific width and height - since many animated cursors do not have a global width and height. Would you prefer that I call these get/release_icon_frame() and move the width and height into "cursoricon_frame" ?
Erich Hoover ehoover@mines.edu