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); }
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); }