One more thing along the lines of wrappered .NET code and the ActiveState perlNET SDK: .NET supports reflection, so you might be able to write a .NET COM-exposed dll 'reflector' that you access thru OLE. The 'reflector' would take as input your 3rd party dll, and return an object that wrappers your 3rd party code. It's more work, but it's also more general than wrappering every method you want to expose. I suspect that's what perlNET from AS does under the hood (with a lot more syntactical sugar thrown in).
in reply to Access .net object from PERL