public virtual int Stream(
            ID2D1GeometrySink geometrySink
            )
        {
            var fp = GetFunctionPointer(18);

            if (m_StreamFunc == null)
            {
                m_StreamFunc = (StreamFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(StreamFunc));
            }

            return(m_StreamFunc(m_ptr, geometrySink != null ? geometrySink.Ptr : IntPtr.Zero));
        }
        public virtual int Open(
            out ID2D1GeometrySink geometrySink
            )
        {
            var fp = GetFunctionPointer(17);

            if (m_OpenFunc == null)
            {
                m_OpenFunc = (OpenFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(OpenFunc));
            }
            geometrySink = new ID2D1GeometrySink();
            return(m_OpenFunc(m_ptr, out geometrySink.PtrForNew));
        }