private object? GetService()

in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/ServiceProvider.cs [32:62]


        private object? GetService(Guid serviceGuid)
        {
            if (serviceGuid == typeof(IOleServiceProvider).GUID)
            {
                return _serviceProvider;
            }

            if (serviceGuid == typeof(IObjectWithSite).GUID)
            {
                return this;
            }

            if (_serviceProvider.QueryService(serviceGuid, IUnknownGuid, out var obj) < 0)
            {
                return null;
            }

            if (obj == IntPtr.Zero)
            {
                return null;
            }

            try
            {
                return Marshal.GetObjectForIUnknown(obj);
            }
            finally
            {
                Marshal.Release(obj);
            }
        }