July 2004 - Posts
Warning – glass house post ahead.
I just watched Peter Wengert’s video about Microsoft’s automotive endeavors. Interesting, and informative, yes. But damn, what an extreme example of Microsoft “so-itis”. Virtually every answer started with the word “so”. This “so” stuff has become a bit of a running “’softie-speak” joke in the community, but this one really struck me as noticeable. Sorry, Peter, I don’t mean to pick on you specifically – hell, you’re a far more eloquent speaker than I. But damn, the so’s…
For years I’ve noticed these kind of repeated phrases while listening to people speak – I call them “verbal ticks”. I don’t know what triggers them, but they seem to be very common. However, Microsoft may be the first example I’ve seen of a large-scale, shared verbal tick. Fascinating.
I’m sure I probably have verbal ticks of my own. Every once in a while I catch myself with one, and work to expunge it from my speaking style. But undoubtedly others remain, because unfortunately it’s bloody hard to spot your own ticks.
Update - Boy, did I call that or what? Microsoft has pulled Lookout from the MS Download site. Fortunately, it's resurfaced on the Lookout download page (with a massive “this is unsupported, don't plan on any fixes” disclaimer). I'm left wondering what's going on behind the scenes at Microsoft regarding Lookout. Were they really planning on just vanishing the product, but changed their mind because of the community outcry? I'm certainly glad it's available again, but I definitely would like to know what's in store for the product (or the product's capabilites) in the future. Lookout obviously met a customer need, and that need isn't going away in the near future.
Microsoft's acquisition of Lookout caused a bit of a stir in the community - in particular, because they pulled the product download off of the web site with no real explanation of the product's future or whether it would ever resurface (while allowing existing users to continue using the product).
Guess what just showed up on the Microsoft Download site. You guessed it.
Now, Microsoft has a history of posting stuff on the download site and then quickly removing it. So who can say how long it will stick around. But it's there for the moment.
People have also sleuthed out the (unadvertised) download URL on the Lookout site - presumably there for the Lookout auto-upgrade process. It's appearance on the Microsoft site, however, it potentially far more interesting.
When you right-click on a file in Windows Explorer and select “Open With...”, it pops up an option discover the appropriate application to open the file with by calling a Microsoft Web Service. I have never once actually used this option, so it simply adds an extra mouse click to the process (to dismiss the dialog). I've been meaning to find out if it was possible to disable this popup for ages, and finally got around to consulting the Oracle of Google.
It turns out to be quite easy - simply bring up RegEdit, navigate to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\syste
m
and add a DWORD value called NoInternetOpenWith to the registry key, with a value of 1.
Bingo, no more popup.
Update - Bruce Williams volunteered to be my buddy and hooked me up with the program. Thanks, Bruce. Only time will tell if he will live to regret it. :)
I just tried signing up for the Microsoft ISV Buddy program. The result?
An internal application error has occurred. The Microsoft ISV Buddy team framenet@whitehorse.com has been notified of the error and the problem will be fixed as soon as possible.
We apologize for the inconvenience.
Thank you for your interest in the Microsoft ISV Buddy program,
Microsoft ISV Buddy Team
*Sniff, sniff* Won't someone be my buddy?
;)
A fairly common interface style these days is the multi-pane reading UI. You see it in Outlook, RSS Bandit, Sharp Reader, Sauce Reader, etc. Outlook 2003 includes a nice feature when using the mouse wheel to scroll a window - the window that the mouse cursor is over is the one that scrolls, rather than the window that has focus. I've gotten quite used to this behavior, and was disappointed when I found that RSS Bandit didn't support it when trying to scroll the reading pane (I don't know about Sharp Reader, I haven't tried it).
Since RSS Bandit is open source, I started poking around in the code to figure out why. A comment in the code indicated that this was a known issue - clearly someone just hadn't had a chance to figure out the solution yet.
Generally, this style of wheel support is provided by filtering the WM_MOUSEWHEEL message and forwarding it to the control that the mouse wheel is over. The RSS Bandit code has a nice general implementation of this (see WheelSupport.cs if you're interested in the details), but it didn't work for the Reading Pane (which is actually an instance of the Web Browser control). Simply forwarding the WM_MOUSEWHEEL to the browser control didn't cause the window to scroll for some reason.
It took a little Spying, a little Googling, and a little experimenting to figure out how to make it work. The trick is to get the IOleWindow interface for the IHtmlDocument object displayed in the brower control. You can get the HWND from the IOleWindow and post the WM_MOUSEWHEEL message to that window. This window is actually a couple levels of children down from the web browser control window.
For example, if you have a WM_MOUSEWHEEL message and a web browser control, you would do something like this:
private bool ScrollWebBrowser(AxSHDocVw.AxWebBrowser control, Message m)
{
IntPtr hwnd;
IOleWindow oleWindow = (IOleWindow) control.Document;
oleWindow.GetWindow(out hwnd);
if (m.HWnd == hwnd)
{ // avoid recursion
return false;
}
PostMessage(hwnd, WM_MOUSEWHEEL, m.WParam, m.LParam);
return true;
}
The interop declarations for IOleWindow and PostMessage can be found at the PInvoke.NET web site. I've submitted a patch to the RSS Bandit project for this - if you want to see the full implementation, check there.
More Posts