コード例 #1
0
        /// <summary>
        /// 初始化该引脚的媒体类型
        /// </summary>
        public void InitAMMediaType()
        {
            this.MediaTypes = new List <AMMediaType>();

            var             hr             = 0;
            IEnumMediaTypes enumMediaTypes = null;

            hr = Pin.EnumMediaTypes(out enumMediaTypes);
            if (hr != 0)
            {
                if (hr != DsResults.E_NotConnected)
                {
                    DsError.ThrowExceptionForHR(hr);
                }
                return;
            }
            short  count  = 128;
            IntPtr pCount = Marshal.AllocHGlobal(sizeof(short));

            Marshal.WriteInt16(pCount, count);
            AMMediaType[] mediaTypeArr = new AMMediaType[1];

            while (enumMediaTypes.Next(1, mediaTypeArr, pCount) == 0)
            {
                if (mediaTypeArr[0] != null)
                {
                    MediaTypes.Add(mediaTypeArr[0]);
                }
            }
            Marshal.ReleaseComObject(enumMediaTypes);
        }