public static List <T> GetActiveInteropApp <T>(COMObjectsHelper comHelper, string interopAppName)
        {
            return(Wait.ForResult(() =>
            {
                try
                {
                    var comObject = Marshal.GetActiveObject(interopAppName);
                    if (comObject == null)
                    {
                        return null;
                    }

                    comHelper.Register(() => comObject);
                    return new List <T> {
                        (T)comObject
                    };
                }
                catch (ElementNotAvailableException ex)
                {
                    Console.WriteLine($"Exception thrown during getting '{interopAppName}' active interop object.");
                    Console.WriteLine(ex);

                    return null;
                }
                catch (COMException ex)
                {
                    Console.WriteLine($"Exception thrown during getting '{interopAppName}' active interop object.");
                    Console.WriteLine(ex);

                    var comInstancesFromROT = comHelper.GetAllComInstancesFromROT <T>(comHelper);

                    if (comInstancesFromROT.Count == 0)
                    {
                        return null;
                    }

                    return comInstancesFromROT;
                }
            },
                                  timeoutMilliSeconds: 60000,
                                  retryRateDelayMilliSeconds: 5000));
        }