Photo Sharing feature in Live Messenger: Kill it dead

With Wave 3 of Windows Live Messenger, Microsoft introduced a new feature – Photo Sharing. This feature, when an image file is dropped into an active conversation window, starts a sharing activity allowing you to share photos with family and friends. Fun right?

The feature sucks though, because…

  • It’s not clear the person you’re chatting with can see the image.
  • The sender already knows what the image looks like (i.e. why do I want to see again, enlarged on my screen?)
  • The not-downloaded, downloading, and downloaded (gray, semi-gray, and colored respectfully) progress indicator is too subtle for Mom and Dad users.
  • The feature engulfs the entire window, making image-related chat impossible.

With Paul Thurrott and I working on the Windows 7 Secrets book, sending images to each other is a common (yet nightmare) task. To mitigate the issue, we simply turned to Live Mesh (or the occasional zip file) for transfer. Fed up with this solution, I sat down late Friday evening and starting peeling back the layers of Messenger.

No dogs were harmed in the production of this picture.

Using Bryant Zadegan (AeroXperience) as my guinea pig (thanks a lot!), I dragged images into the window, over and over, until I figured out where within Messenger image-detection code is executed (details below). With a simple one-byte change, my hellish nightmare was over. Whoo hoo!

For those interested in the technical details, check out the function at msnmsgr.exe+1FF651. It checks a passed in filename for an extension of .tiff, .tif, .png, .gif, .jpg, and .jpeg, and also makes a call to a function exported by uxcore.dll named ?IsValidImageFile@@YG_NPB_W@Z (which is simply the mangled form of bool __stdcall IsValidImageFile(wchar_t const *)).

… and for those interested in implementing this fix yourself, open msnmsgr.exe with a hex editor (like XVI32), go to offset 16392F, and replace the conditional jump byte 74 with unconditional jump byte EB. If the bytes differ, ensure you’re using the latest (at time of writing) build of Windows Live Messenger (14.0.8064.206).

I contacted the author of popular utility A-Patch and recommended inclusion into their application. I tried to ping the MessPatch folks but they don’t have an obvious way to contact them.

Happy chatting!


Update: It has been brought to my attention by reader ‘Cuppa’ that Messenger Plus! supports overriding this behavior too. It’s unclear if it supports files other than JPG (as documented) but if you’re a user -- give it a shot. I’m not a fan of installing software for a quick tweak.