From: Liang Fu on
Hi every one,
I just began to learn device driver development and I thought computer mouse
was probably the simplest device to start with. My first question to you is

(1) Why none of the books that teach device driver development (I have
collected most of them) use either non-realistic examples (where no real
hardware is involved) or examples require a piece of expensive hardware (at
least to a reader like me who does not write driver for living), but not use
mouse or keyboard as examples?
There is probably a reason for that, I would like to hear your comments.

I bought a Microsoft IntelliMouse with tiltable wheel for horizontal scroll.
Is really cool and I would like to understand how it works. I would guess it
sends a larger data packet to accommodate the additional horizontal scroll
data. I wonder how the driver works and how an application program with
horizontal scroll ability (such as Excel) uses this data and carries out
horizontal scroll. I checked
www.microsoft.com/whdc/device/input/default.mspx but only found information
(such as data packet formats, etc.) for other MS IntelliMouse (without
horizontal scroll). My second question is
(2) Does Microsoft publish information on the IntelliMouse with horizontal
scroll and where can I find it?

Thanks,
Liang Fu


From: Ray Trent on
I think there are 2 reasons why books don't cover mice: 1) it's fairly
rare that you will ever want to write a production mouse driver, and 2)
it's a lot harder than it looks.

However, Microsoft's DDK has a mouse driver example (moufiltr), so
that's probably the easiest place to start.

As for how horizontal scrolling is accomplished, there's no standardized
mechanism, and I doubt you'll get anyone to give out their carefully
designed hacks that manage to accomplish it anyway because it's a
competitive advantage. But a broad overview is this: write a user-mode
app that finds the window you want to scroll and then sends it a message
causing it to scroll.

Liang Fu wrote:
> Hi every one,
> I just began to learn device driver development and I thought computer mouse
> was probably the simplest device to start with. My first question to you is
>
> (1) Why none of the books that teach device driver development (I have
> collected most of them) use either non-realistic examples (where no real
> hardware is involved) or examples require a piece of expensive hardware (at
> least to a reader like me who does not write driver for living), but not use
> mouse or keyboard as examples?
> There is probably a reason for that, I would like to hear your comments.
>
> I bought a Microsoft IntelliMouse with tiltable wheel for horizontal scroll.
> Is really cool and I would like to understand how it works. I would guess it
> sends a larger data packet to accommodate the additional horizontal scroll
> data. I wonder how the driver works and how an application program with
> horizontal scroll ability (such as Excel) uses this data and carries out
> horizontal scroll. I checked
> www.microsoft.com/whdc/device/input/default.mspx but only found information
> (such as data packet formats, etc.) for other MS IntelliMouse (without
> horizontal scroll). My second question is
> (2) Does Microsoft publish information on the IntelliMouse with horizontal
> scroll and where can I find it?
>
> Thanks,
> Liang Fu
>
>

--
.../ray\..