Ian,
I think the value of dwo.ColType is what you want. Checking its value in the clicked event of a dw yields the data type of the corresponding column from the db.
For example:
integer column as long
string column will display as char(40) or char(8) etc
decimal column as decimal(2) or decimal(9) etc.
Clicking on a non-column will give you a "!"
hth,
Mark