WGS v0.3 – having problems
WGS v0.3 was supposed to demonstrate the possibility of having in game chat (XFire’s main feature) via notification of when you got a message in game (just a little overlay would popup). Unfortunately, I’ve not been able to get that to work, because I can’t seem to load additional DLL’s – signed or not – in WLM. The library I was playing to use to handle the overlays is Muhammad Haggag‘s DirectDrawOverlayLib, which is a managed wrapper around unmanaged code.
Unfortunately, when trying to execute the code (any of the code…in this case, just creating an object of one of its types) I get errors. Specifically, using VS2008 Beta 2 to attach to MSNMGR.exe to debug, I get
The type initializer for ‘<Module>’ threw an exception.
The inner exception is:
{“Could not load file or assembly ‘msvcm90, Version=9.0.20706.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0×80131417)”:”msvcm90, Version=9.0.20706.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”}
At the moment, my theory is that the unmanaged code is causing the issue. I was able to get a separate C# library (“hello, my name is test”) to function. I’m guessing msvcm90 isn’t in the GAC (since it has native code and all), so WLM is kicking up a fuss.
Unfortunately my attempts at removing the dependency on msvcm90 have so far been unsuccessful (they result in a few fatal errors), probably due to the nature of the library. If I can’t get this to work, I’m in way over my head trying to get it to work using purely managed DirectX, so it’ll cancel the project to some degree :(
When I discovered the performance hit in v0.1/0.2 because of WMI process watching, I decided I’d not release v0.3 until I’d fixed that at the very least. Unfortunately, I’m not really sure where to begin on that, so while it is on its way, it is being pushed onto the backburner for awhile.

Instead of trying to do this here, why not spin up an external process which can do the overlay – and then using some method of pushing messages between the processes.