Article # 606, added by Geoworks, historical record
| first | previous | index | next | last |

Broken C-stub: WinScroll



C Function: WinScroll
Date Fixed: 7/21/97

This c-stub was not taking the correct types and number of parameters
and was basically not useful. There is a work-around for devices made
before the fix was installed, shown below:

You have to remove the 'WinScroll' definition and the 'WINSCROLL' alias
line from 'win.h'. Then GLUE links the WinScroll call to the assembler
routine rather than to the c-stub. You have to make the function call
outside the ASM part because the internal assembler would only create
a fixed far call instead of a relocatable call.

void far WinScroll( void );
void C_WinScroll( WindowHandle   win,
                  WWFixedAsDWord xMove,
                  WWFixedAsDWord yMove,
                  PointWWFixed * scrollAmt )
{
  asm {
    mov     dx, word (xMove+2)
    mov     cx, word (xMove)
    mov     bx, word (yMove+2)
    mov     ax, word (yMove)
    mov     di, win
  }
  WinScroll();
  asm {
    mov     word (scrollAmt).PF_x.WWF_int, dx
    mov     word (scrollAmt).PF_x.WWF_frac, cx
    mov     word (scrollAmt).PF_y.WWF_int, bx
    mov     word (scrollAmt).PF_y.WWF_frac, ax
  }
};