Oh, and let me just list two things I hate, while it's on my mind:
1. Twips. Twips suck. Trying to manage some values in twips and other values in pixels, is just the worst. It's especially bad when you spend hours slogging through your code trying to find your error, and the lack of a twips-to-pixel conversion turns out to be the reason.
2. Flawed example code. People who put example code on the net have a
responsibility for making sure their examples are correct. For example, if you put up a function definition that says:
Public Declare Function MonitorFromPoint Lib "user32" ( _
ByVal ptY As Long, ByVal ptX As Long, _
ByVal dwFlags As Long) As Long
then the people who use that code, when the IDE is auto-prompting them for the function parameters, are going to stop for a moment and say "hey, why is it asking for Y
first?". But, and here's the catch, they're going to
trust you because
your program ran when they tried it. They have no idea that your version of the program passed the parameters in the right order even though your function definition had them backwards. They think that you know what you're doing and that for some strange reason, this function really does ask for Y first. And they're going to lose even more precious hours pulling their hair out saying "why doesn't
my program work?!".
The view from the moon tonight is really nice, though. I'm going to rearrange a few more rocks, I'll be back in a while. Somebody's going to have to start picking up the tab for the gas, though, these trips aren't cheap.