< Summary

Line coverage
61%
Covered lines: 11
Uncovered lines: 7
Coverable lines: 18
Total lines: 189
Line coverage: 61.1%
Branch coverage
25%
Covered branches: 2
Total branches: 8
Branch coverage: 25%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: GetActiveObject(...)100%11100%
File 1: GetActiveObject(...)25%21841.66%
File 2: CLSIDFromProgIDEx(...)100%11100%

File(s)

D:\a\SolidEdge.Community\SolidEdge.Community\src\SolidEdgeCommunity\Marshal.cs

#LineLine coverage
 1using System;
 2using System.Runtime.InteropServices;
 3
 4namespace SolidEdgeCommunity;
 5
 6internal static partial class Marshal
 7{
 38    public static object GetActiveObject(string progId) => GetActiveObject(progId, true);
 9
 10    public static object GetActiveObject(string progId, bool throwOnError = true)
 11    {
 312        ArgumentNullException.ThrowIfNull(progId);
 13
 314        var hr = CLSIDFromProgIDEx(progId, out var clsid);
 315        if (hr < 0)
 16        {
 317            if (throwOnError)
 318                System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(hr);
 19
 020            return null;
 21        }
 22
 023        hr = GetActiveObject(clsid, IntPtr.Zero, out var obj);
 024        if (hr < 0)
 25        {
 026            if (throwOnError)
 027                System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(hr);
 28
 029            return null;
 30        }
 031        return obj;
 32    }
 33
 34    [LibraryImport("ole32")]
 35    private static partial int CLSIDFromProgIDEx([MarshalAs(UnmanagedType.LPWStr)] string lpszProgID, out Guid lpclsid);
 36
 37    [DllImport("oleaut32")]
 38    private static extern int GetActiveObject([MarshalAs(UnmanagedType.LPStruct)] Guid rclsid, IntPtr pvReserved, [Marsh
 39}

D:\a\SolidEdge.Community\SolidEdge.Community\src\SolidEdgeCommunity\obj\Release\net10.0-windows\Microsoft.Interop.LibraryImportGenerator\Microsoft.Interop.LibraryImportGenerator\LibraryImports.g.cs

File 'D:\a\SolidEdge.Community\SolidEdge.Community\src\SolidEdgeCommunity\obj\Release\net10.0-windows\Microsoft.Interop.LibraryImportGenerator\Microsoft.Interop.LibraryImportGenerator\LibraryImports.g.cs' does not exist (any more).