I have a NET 2.0 Winforms app based partly on this code. It features a form transparency using UpdateLayeredWindow API. It works perfectly on Vista and Windows 7 but fails on Windows XP.
I have narrowed it down to UpdateLayeredWindow failing with last error 8 (not enough memory). While experimenting I also found out that swapping (desired) ULW_ALPHA for either ULW_COLORKEY or ULW_OPAQUE works on XP but produces the wrong effect (the image shows but the transparency is wrong).
I am wondering if something is wrong the way PNG bitmap is being loaded and handled by NET internally and that there is something about it UpdateLayeredWindow dislikes.
Looks like it’s working, but the layered windows are not actually visible, I guess the opacity settings are wrong. With the code you linked to, changing line 67 in LayeredForm.cs from “BlendOp = 255” to “BlendOp = 0” fixes the issue for me (running on Windows XP SP3).