예제 #1
0
        public virtual int Write(
            uint cProperties,
            out tagPROPBAG2 pPropBag,
            out tagVARIANT pvarValue
            )
        {
            var fp = GetFunctionPointer(4);

            if (m_WriteFunc == null)
            {
                m_WriteFunc = (WriteFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(WriteFunc));
            }

            return(m_WriteFunc(m_ptr, cProperties, out pPropBag, out pvarValue));
        }
예제 #2
0
        public virtual int GetPropertyInfo(
            uint iProperty,
            uint cProperties,
            out tagPROPBAG2 pPropBag,
            out uint pcProperties
            )
        {
            var fp = GetFunctionPointer(6);

            if (m_GetPropertyInfoFunc == null)
            {
                m_GetPropertyInfoFunc = (GetPropertyInfoFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(GetPropertyInfoFunc));
            }

            return(m_GetPropertyInfoFunc(m_ptr, iProperty, cProperties, out pPropBag, out pcProperties));
        }
예제 #3
0
        public virtual int Read(
            uint cProperties,
            out tagPROPBAG2 pPropBag,
            IErrorLog pErrLog,
            out tagVARIANT pvarValue,
            out int phrError
            )
        {
            var fp = GetFunctionPointer(3);

            if (m_ReadFunc == null)
            {
                m_ReadFunc = (ReadFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(ReadFunc));
            }

            return(m_ReadFunc(m_ptr, cProperties, out pPropBag, pErrLog != null ? pErrLog.Ptr : IntPtr.Zero, out pvarValue, out phrError));
        }