예제 #1
0
        public int ReadStruct(byte[] b, int Offset)
        {
            uint method = 0x424;

            this.TrEntry(method, new object[] { b, Offset });
            IntPtr zero   = IntPtr.Zero;
            int    length = this.GetLength();
            int    result = 0;

            try
            {
                zero = Marshal.AllocCoTaskMem(this.GetLength());
                if (length > (b.Length - Offset))
                {
                    length = b.Length - Offset;
                }
                Marshal.Copy(b, Offset, zero, length);
                this.spiNotifyInOut = (SPINOTIFYINOUT)Marshal.PtrToStructure(zero, typeof(SPINOTIFYINOUT));
                Marshal.FreeCoTaskMem(zero);
                length = this.GetVersionLength();
                result = Offset + length;
            }
            finally
            {
                base.TrExit(method, result);
            }
            return(result);
        }
예제 #2
0
 public MQSPINotifyInOut(NmqiEnvironment nmqiEnv, int version) : base(nmqiEnv)
 {
     base.TrConstructor("%Z% %W%  %I% %E% %U%", new object[] { nmqiEnv, version });
     this.spiNotifyInOut    = new SPINOTIFYINOUT();
     this.spiNotifyInOut.ID = rfpVB_ID_NOTIFY_INOUT;
     this.Version           = version;
 }