protected byte[] getPropertyData(ASM_NAME id)
            {
                uint len = 0;

                int hr = _name.GetProperty(id, IntPtr.Zero, ref len);

                if (hr == ComUtil.ERROR_INSUFFICIENT_BUFFER && len > 0)
                {
                    IntPtr buf = Marshal.AllocCoTaskMem((int)len);

                    ComUtil.ComCheck(_name.GetProperty(id, buf, ref len));

                    byte[] data = new byte[len];

                    Marshal.Copy(buf, data, 0, (int)len);

                    Marshal.FreeCoTaskMem(buf);

                    return(data);
                }
                else
                {
                    return(new byte[0]);
                }
            }
Exemple #2
0
        internal string GetStringProperty(IAssemblyName name, ASM_NAME propertyName)
        {
            uint   bufferSize = BufferLength;
            IntPtr buffer     = Marshal.AllocHGlobal((int)bufferSize);

            name.GetProperty(propertyName, buffer, ref bufferSize);
            var stringVaule = Marshal.PtrToStringUni(buffer, (int)bufferSize);

            Marshal.FreeHGlobal(buffer);
            return(stringVaule);
        }
Exemple #3
0
        internal UInt16 GetShortProperty(IAssemblyName name, ASM_NAME propertyName)
        {
            uint   bufferSize = 512;
            IntPtr buffer     = Marshal.AllocHGlobal((int)bufferSize);

            name.GetProperty(propertyName, buffer, ref bufferSize);
            byte low  = Marshal.ReadByte(buffer);
            byte high = Marshal.ReadByte(buffer, 1);

            Marshal.FreeHGlobal(buffer);
            return((UInt16)(low + (high << 8)));
        }
Exemple #4
0
        internal byte[] GetByteArrayProperty(IAssemblyName name, ASM_NAME propertyName)
        {
            uint   bufferSize = 512;
            IntPtr buffer     = Marshal.AllocHGlobal((int)bufferSize);

            name.GetProperty(propertyName, buffer, ref bufferSize);
            byte[] result = new byte[bufferSize];
            for (int i = 0; i < bufferSize; i++)
            {
                result[i] = Marshal.ReadByte(buffer, i);
            }
            Marshal.FreeHGlobal(buffer);
            return(result);
        }
Exemple #5
0
        internal UInt32 GetDwordProperty(IAssemblyName name, ASM_NAME propertyName)
        {
            uint   bufferSize = 512;
            IntPtr buffer     = Marshal.AllocHGlobal((int)bufferSize);

            name.GetProperty(propertyName, buffer, ref bufferSize);
            byte a = Marshal.ReadByte(buffer);
            byte b = Marshal.ReadByte(buffer, 1);
            byte c = Marshal.ReadByte(buffer);
            byte d = Marshal.ReadByte(buffer, 1);

            Marshal.FreeHGlobal(buffer);
            return((UInt32)(a + (b << 8) + (c << 16) + (d << 24)));
        }
            protected string getProperty(ASM_NAME id)
            {
                uint len = 0;

                int hr = _name.GetProperty(id, IntPtr.Zero, ref len);

                if (hr == ComUtil.ERROR_INSUFFICIENT_BUFFER && len > 0)
                {
                    IntPtr buf = Marshal.AllocCoTaskMem((int)len);

                    ComUtil.ComCheck(_name.GetProperty(id, buf, ref len));

                    string str = Marshal.PtrToStringUni(buf);

                    Marshal.FreeCoTaskMem(buf);

                    return(str);
                }
                else
                {
                    return("");
                }
            }
 internal string GetStringProperty(IAssemblyName name, ASM_NAME propertyName)
 {
     uint bufferSize = BufferLength;
     IntPtr buffer = Marshal.AllocHGlobal((int)bufferSize);
     name.GetProperty(propertyName, buffer, ref bufferSize);
     var stringVaule = Marshal.PtrToStringUni(buffer, (int)bufferSize);
     Marshal.FreeHGlobal(buffer);
     return stringVaule;
 }
 internal UInt16 GetShortProperty(IAssemblyName name, ASM_NAME propertyName)
 {
     uint bufferSize = 512;
     IntPtr buffer = Marshal.AllocHGlobal((int)bufferSize);
     name.GetProperty(propertyName, buffer, ref bufferSize);
     byte low = Marshal.ReadByte(buffer);
     byte high = Marshal.ReadByte(buffer, 1);
     Marshal.FreeHGlobal(buffer);
     return (UInt16)(low + (high << 8));
 }
 internal UInt32 GetDwordProperty(IAssemblyName name, ASM_NAME propertyName)
 {
     uint bufferSize = 512;
     IntPtr buffer = Marshal.AllocHGlobal((int)bufferSize);
     name.GetProperty(propertyName, buffer, ref bufferSize);
     byte a = Marshal.ReadByte(buffer);
     byte b = Marshal.ReadByte(buffer, 1);
     byte c = Marshal.ReadByte(buffer);
     byte d = Marshal.ReadByte(buffer, 1);
     Marshal.FreeHGlobal(buffer);
     return (UInt32)(a + (b << 8) + (c << 16) + (d << 24));
 }
 internal byte[] GetByteArrayProperty(IAssemblyName name, ASM_NAME propertyName)
 {
     uint bufferSize = 512;
     IntPtr buffer = Marshal.AllocHGlobal((int)bufferSize);
     name.GetProperty(propertyName, buffer, ref bufferSize);
     byte[] result = new byte[bufferSize];
     for (int i = 0; i < bufferSize; i++)
         result[i] = Marshal.ReadByte(buffer, i);
     Marshal.FreeHGlobal(buffer);
     return result;
 }