Пример #1
0
        public MpqFileSourceFilter(MpqFile file)
        {
            CopyMediaTypes(detectedMediaType, defaultMediaType);
            name        = "Stream Source Filter";
            filterState = FilterState.Stopped;
            var extension = Path.GetExtension(file.Name);

            try
            {
                using (var mediaTypeKey = Registry.ClassesRoot.OpenSubKey(@"Media Type"))
                {
                    if (extension != null && extension.Length > 1)
                    {
                        try
                        {
                            using (var extensionsKey = mediaTypeKey.OpenSubKey(@"Extensions"))
                                using (var extensionKey = extensionsKey.OpenSubKey(extension))
                                {
                                    var mediaType = new Guid(extensionKey.GetValue("Media Type", MediaType.Stream.ToString()) as string);
                                    var subType   = new Guid(extensionKey.GetValue("SubType", MediaSubType.None.ToString()) as string);

                                    if (mediaType == MediaType.Stream && subType != MediaSubType.None && subType != MediaSubType.Null)
                                    {
                                        detectedMediaType.majorType = mediaType;
                                        detectedMediaType.subType   = subType;

                                        return;
                                    }
                                }
                        }
                        catch (Exception) { }
                    }
                    using (var streamMediaKey = mediaTypeKey.OpenSubKey(MediaType.Stream.ToString()))
                        foreach (var subTypeKeyName in streamMediaKey.GetSubKeyNames())
                        {
                            try
                            {
                                using (var subTypeKey = streamMediaKey.OpenSubKey(subTypeKeyName))
                                    ;
                            }
                            catch (Exception) { }
                        }
                }
            }
            catch (Exception) { }
            finally { outputPin = new StreamOutputPin(this); }
        }
Пример #2
0
        public MpqFileSourceFilter(MpqFile file)
        {
            CopyMediaTypes(detectedMediaType, defaultMediaType);
            name = "Stream Source Filter";
            filterState = FilterState.Stopped;
            var extension = Path.GetExtension(file.Name);
            try
            {
                using (var mediaTypeKey = Registry.ClassesRoot.OpenSubKey(@"Media Type"))
                {
                    if (extension != null && extension.Length > 1)
                        try
                        {
                            using (var extensionsKey = mediaTypeKey.OpenSubKey(@"Extensions"))
                            using (var extensionKey = extensionsKey.OpenSubKey(extension))
                            {
                                var mediaType = new Guid(extensionKey.GetValue("Media Type", MediaType.Stream.ToString()) as string);
                                var subType = new Guid(extensionKey.GetValue("SubType", MediaSubType.None.ToString()) as string);

                                if (mediaType == MediaType.Stream && subType != MediaSubType.None && subType != MediaSubType.Null)
                                {
                                    detectedMediaType.majorType = mediaType;
                                    detectedMediaType.subType = subType;

                                    return;
                                }
                            }
                        }
                        catch (Exception) { }
                    using (var streamMediaKey = mediaTypeKey.OpenSubKey(MediaType.Stream.ToString()))
                        foreach (var subTypeKeyName in streamMediaKey.GetSubKeyNames())
                            try
                            {
                                using (var subTypeKey = streamMediaKey.OpenSubKey(subTypeKeyName))
                                    ;
                            }
                            catch (Exception) { }
                }
            }
            catch (Exception) { }
            finally { outputPin = new StreamOutputPin(this); }
        }
Пример #3
0
 public MediaTypeEnumerator(StreamOutputPin pin)
 {
     this.pin = pin;
 }
Пример #4
0
 public MediaTypeEnumerator(StreamOutputPin pin)
 {
     this.pin = pin;
 }