I've done some more digging on the BYOT problem on Win2k I reported a while back. Now, I've come up with a plain C++ version of the original test (albeit more manual), and get the same errors as with .NET involved, which is not suprising at all.
What is surprising, at least to me, is that the problem only occurs if the exporter of the TIP Transaction and the importer of it (via
ICreateWithTipTransaction) are running on separate processes. If both run in the same process, it works just fine, even if the thread calling
ICreateWithTipTransaction::CreateInstance() is not inside a COM+ context.
For those of you wanting to play with this, here's the VC++.NET project
I used this time. Now, you can call AppHost.exe with no arguments, and get a TIP Transaction URL in return, and call AppHost.exe again in another console passing the URL as an argument. Changing the code to do both inside the same process is left as an excercise for the reader :)