Пример #1
0
        public static IList <tagVsSccFilesFlags> CreateSccFlagsCADWORD(CADWORD cadWord)
        {
            IList <tagVsSccFilesFlags> flags = new List <tagVsSccFilesFlags>();

            if (cadWord.cElems == 0)
            {
                return(flags);
            }
            // Demand unmanaged permissions in order to access unmanaged memory.
            new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();

            IntPtr tempPtr = cadWord.pElems;
            int    size    = Marshal.SizeOf(typeof(IntPtr));

            for (int i = 0; i < cadWord.cElems; i++)
            {
                tagVsSccFilesFlags member = (tagVsSccFilesFlags)Marshal.ReadInt32(tempPtr);
                flags.Add(member);
                tempPtr = new IntPtr(tempPtr.ToInt64() + size);
            }
            // Free the array of and set size to 0
            Marshal.FreeCoTaskMem(cadWord.pElems);
            cadWord.cElems = 0;

            return(flags);
        }
Пример #2
0
        public static IList <tagVsSccFilesFlags> CreateSccFlagsCADWORD(CADWORD cadWord)
        {
            IList <tagVsSccFilesFlags> flags = new List <tagVsSccFilesFlags>();

            if (cadWord.cElems == 0)
            {
                return(flags);
            }

            IntPtr tempPtr = cadWord.pElems;
            int    size    = Marshal.SizeOf(typeof(IntPtr));

            for (int i = 0; i < cadWord.cElems; i++)
            {
                tagVsSccFilesFlags member = (tagVsSccFilesFlags)Marshal.ReadInt32(tempPtr);
                flags.Add(member);
                tempPtr = new IntPtr(tempPtr.ToInt64() + size);
            }
            // Free the array of and set size to 0
            Marshal.FreeCoTaskMem(cadWord.pElems);
            cadWord.cElems = 0;

            return(flags);
        }