--- /dev/null
+diff --git a/win/C#/interop/NativeList.cs b/win/C#/interop/NativeList.cs
+new file mode 100644
+index 0000000..c16c099
+--- /dev/null
++++ b/win/C#/interop/NativeList.cs
+@@ -0,0 +1,34 @@
++namespace HandBrake.Interop\r
++{\r
++ using System;\r
++ using System.Collections.Generic;\r
++ using System.Linq;\r
++ using System.Text;\r
++\r
++ /// <summary>\r
++ /// Represents a HandBrake style native list.\r
++ /// </summary>\r
++ public class NativeList\r
++ {\r
++ /// <summary>\r
++ /// The list of native memory locations allocated for this list.\r
++ /// </summary>\r
++ private List<IntPtr> allocatedMemory = new List<IntPtr>();\r
++\r
++ /// <summary>\r
++ /// Gets or sets the pointer to the native list.\r
++ /// </summary>\r
++ public IntPtr ListPtr { get; set; }\r
++\r
++ /// <summary>\r
++ /// Gets the list of native memory locations allocated for this list.\r
++ /// </summary>\r
++ public List<IntPtr> AllocatedMemory\r
++ {\r
++ get\r
++ {\r
++ return allocatedMemory;\r
++ }\r
++ }\r
++ }\r
++}\r