/// <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); }