Preserve Windows COM Marshal.GetActiveObject calls

Proprietary

Replace resolved Marshal.GetActiveObject(string) calls with a private Windows COM helper. Preserve the Framework CLSIDFromProgIDEx/CLSIDFromProgID fallback and HRESULT exception translation through PreserveSig=false P/Invokes. Requires Windows and built-in COM marshalling; does not initialize apartments, release objects, or emulate Framework code-access security. Leaves generic owners (including nested types), partial owners, conditional files, and unresolved calls unchanged. Applications with custom native library resolvers require review.

OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.UseWindowsComGetActiveObject
mod run . --recipe=OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.UseWindowsComGetActiveObject

Install it once, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.