Esempio n. 1
0
 void IStream.Read(byte[] pv, int cb, IntPtr pcbRead)
 {
     if (pcbRead != IntPtr.Zero)
     {
         Marshal.WriteInt32(pcbRead, 0);
     }
 }
Esempio n. 2
0
        public static void SetCommandText(IntPtr pCmdTextInt, string text)
        {
            if (text != null)
            {
                OLECMDTEXT olecmdtext = (OLECMDTEXT)Marshal.PtrToStructure(pCmdTextInt, typeof(OLECMDTEXT));
                if ((olecmdtext.cmdtextf & (uint)OLECMDTEXTF.OLECMDTEXTF_NAME) == 0)
                {
                    return;
                }

                char[] source       = text.ToCharArray();
                IntPtr bufferOffset = Marshal.OffsetOf(typeof(OLECMDTEXT), "rgwz");
                IntPtr lengthOffset = Marshal.OffsetOf(typeof(OLECMDTEXT), "cwActual");
                int    length       = Math.Min(((int)olecmdtext.cwBuf) - 1, source.Length);

                // copy the new text
                long bufferAddress = (long)pCmdTextInt + (long)bufferOffset;
                Marshal.Copy(source, 0, (IntPtr)bufferAddress, length);

                // null terminator
                Marshal.WriteInt16(pCmdTextInt, (int)bufferOffset + (length * 2), 0);

                // length including null terminator
                Marshal.WriteInt32(pCmdTextInt, (int)lengthOffset, length + 1);
            }
        }
Esempio n. 3
0
 void IStream.Write(byte[] pv, int cb, IntPtr pcbWritten)
 {
     Write(pv, 0, cb);
     if (pcbWritten != IntPtr.Zero)
     {
         Marshal.WriteInt32(pcbWritten, cb);
     }
 }
            public void Read(byte[] pv, int cb, IntPtr pcbRead)
            {
                int bytesRead = UnderlyingStream.Read(pv, 0, cb);

                if (pcbRead != IntPtr.Zero)
                {
                    Marshal.WriteInt32(pcbRead, 0, bytesRead);
                }
            }
Esempio n. 5
0
        void IStream.Read(byte[] pv, int cb, IntPtr pcbRead)
        {
            int read = Read(pv, 0, cb);

            if (pcbRead != IntPtr.Zero)
            {
                Marshal.WriteInt32(pcbRead, read);
            }
        }
            public void Write(byte[] pv, int cb, IntPtr pcbWritten)
            {
                var bytesWritten = Math.Min(pv.Length, cb);

                UnderlyingStream.Write(pv, 0, bytesWritten);
                if (pcbWritten != IntPtr.Zero)
                {
                    Marshal.WriteInt32(pcbWritten, 0, bytesWritten);
                }
            }