private static int EncodingByteArrayHelper(BerSafeHandle berElement, byte[] tempValue, char fmt)
 {
     if (tempValue != null)
     {
         IntPtr destination = Marshal.AllocHGlobal(tempValue.Length);
         Marshal.Copy(tempValue, 0, destination, tempValue.Length);
         HGlobalMemHandle handle = new HGlobalMemHandle(destination);
         return(Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), handle, tempValue.Length));
     }
     return(Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), new HGlobalMemHandle(IntPtr.Zero), 0));
 }
예제 #2
0
        private static int EncodingByteArrayHelper(BerSafeHandle berElement, byte[] tempValue, char fmt)
        {
            int num;

            if (tempValue == null)
            {
                num = Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), new HGlobalMemHandle((IntPtr)0), 0);
            }
            else
            {
                IntPtr intPtr = Marshal.AllocHGlobal((int)tempValue.Length);
                Marshal.Copy(tempValue, 0, intPtr, (int)tempValue.Length);
                HGlobalMemHandle hGlobalMemHandle = new HGlobalMemHandle(intPtr);
                num = Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), hGlobalMemHandle, (int)tempValue.Length);
            }
            return(num);
        }
예제 #3
0
        private static int EncodingByteArrayHelper(BerSafeHandle berElement, byte[] tempValue, char fmt)
        {
            int error = 0;

            // one byte array, one int arguments
            if (tempValue != null)
            {
                IntPtr tmp = Marshal.AllocHGlobal(tempValue.Length);
                Marshal.Copy(tempValue, 0, tmp, tempValue.Length);
                HGlobalMemHandle memHandle = new HGlobalMemHandle(tmp);

                error = Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), memHandle, tempValue.Length);
            }
            else
            {
                error = Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), new HGlobalMemHandle(IntPtr.Zero), 0);
            }

            return(error);
        }
예제 #4
0
        private static int EncodingByteArrayHelper(BerSafeHandle berElement, byte[] tempValue, char fmt)
        {
            int error = 0;

            // one byte array, one int arguments
            //if (tempValue != null)
            //{

            tempValue = tempValue ?? new byte[0]; //openLdap ber_printf doesn't cope well with null values

            IntPtr tmp = Marshal.AllocHGlobal(tempValue.Length);

            Marshal.Copy(tempValue, 0, tmp, tempValue.Length);
            HGlobalMemHandle memHandle = new HGlobalMemHandle(tmp);

            error = Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), memHandle, tempValue.Length);
            //}
            //else
            //{
            //    error = Wldap32.ber_printf_bytearray(berElement, new string(fmt, 1), new HGlobalMemHandle(IntPtr.Zero), 0);
            //}

            return(error);
        }