ほい

[DllImport("oleaut32.dll", PreserveSig=false)]
private static extern IntPtr GetActiveObject( [MarshalAs(UnmanagedType.LPStruct)] Guid classID, IntPtr reserved );

public static Object GetActiveObject( Guid classID )
{
IntPtr unknown = GetActiveObject( classID, IntPtr.Zero );
Object result = Marshal.GetObjectForIUnknown( unknown );
Marshal.Release( unknown );
return result;
}

とりあえず Excel で試してうごいたっぽい。

つーか Register してないならそもそも Get するのは不可能じゃないのか?