public virtual int CreateVideoProcessorEnumerator(
            ref D3D11_VIDEO_PROCESSOR_CONTENT_DESC pDesc,
            out ID3D11VideoProcessorEnumerator ppEnum
            )
        {
            var fp = GetFunctionPointer(10);

            if (m_CreateVideoProcessorEnumeratorFunc == null)
            {
                m_CreateVideoProcessorEnumeratorFunc = (CreateVideoProcessorEnumeratorFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(CreateVideoProcessorEnumeratorFunc));
            }
            ppEnum = new ID3D11VideoProcessorEnumerator();
            return(m_CreateVideoProcessorEnumeratorFunc(m_ptr, ref pDesc, out ppEnum.PtrForNew));
        }
        public virtual int CreateVideoProcessor(
            ID3D11VideoProcessorEnumerator pEnum,
            uint RateConversionIndex,
            out ID3D11VideoProcessor ppVideoProcessor
            )
        {
            var fp = GetFunctionPointer(4);

            if (m_CreateVideoProcessorFunc == null)
            {
                m_CreateVideoProcessorFunc = (CreateVideoProcessorFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(CreateVideoProcessorFunc));
            }
            ppVideoProcessor = new ID3D11VideoProcessor();
            return(m_CreateVideoProcessorFunc(m_ptr, pEnum != null ? pEnum.Ptr : IntPtr.Zero, RateConversionIndex, out ppVideoProcessor.PtrForNew));
        }
        public virtual int CreateVideoProcessorOutputView(
            ID3D11Resource pResource,
            ID3D11VideoProcessorEnumerator pEnum,
            ref D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC pDesc,
            out ID3D11VideoProcessorOutputView ppVPOView
            )
        {
            var fp = GetFunctionPointer(9);

            if (m_CreateVideoProcessorOutputViewFunc == null)
            {
                m_CreateVideoProcessorOutputViewFunc = (CreateVideoProcessorOutputViewFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(CreateVideoProcessorOutputViewFunc));
            }
            ppVPOView = new ID3D11VideoProcessorOutputView();
            return(m_CreateVideoProcessorOutputViewFunc(m_ptr, pResource != null ? pResource.Ptr : IntPtr.Zero, pEnum != null ? pEnum.Ptr : IntPtr.Zero, ref pDesc, out ppVPOView.PtrForNew));
        }