In general polling the mouse key state with a timer is not a great idea as it will only fire if the state changed when the timer fires - if the mouse is clicked down then up before the timer fires this event will be missed.

If you don't want to use the dll (which is free and includes full source) I recommend you read up MSDN on installing a WH_JOURNALRECORD hook...