[
  {
    "Id": "218576",
    "ThreadId": "64248",
    "Html": "<p>Been playing with this for hours, can't figure out what I'm missing for the life of me.</p>\r\n<p>&nbsp;</p>\r\n<p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>        <span style=\"color:Blue\">Dim</span> myNameSpace <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">String</span> = <span style=\"color:Blue\">Assembly</span>.GetEntryAssembly.GetName().Name.ToString()\r\n        <span style=\"color:Blue\">Dim</span> myAsm <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Assembly</span>\r\n        myAsm = <span style=\"color:Blue\">Assembly</span>.GetExecutingAssembly\r\n        <span style=\"color:Blue\">Dim</span> msIonicZip <span style=\"color:Blue\">As</span> System.IO.UnmanagedMemoryStream\r\n        msIonicZip = myAsm.GetManifestResourceStream(myNameSpace &amp; <span style=\"color:#A31515\">&quot;.Ionic.Zip.dll&quot;</span>)\r\n        <span style=\"color:Blue\">Dim</span> bIonicZip() <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Byte</span> = <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Byte</span>(msIonicZip.Length) {}\r\n        <span style=\"color:Blue\">Dim</span> testRead <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Boolean</span> = msIonicZip.Read(bIonicZip, 0, msIonicZip.Length)\r\n        System.Reflection.<span style=\"color:Blue\">Assembly</span>.Load(bIonicZip)\r\n</pre>\r\n</div>\r\n</p>\r\n<p>I've tried going the ILMerge route, but I'm targeting the 3.5 Framework and ILMerge errors out.</p>",
    "PostedDate": "2009-08-02T17:58:29.633-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218598",
    "ThreadId": "64248",
    "Html": "<table border=0 width=800>\r\n<tbody>\r\n<tr>\r\n<td>\r\n<p>I don't know why ILMerge wouldn't work.&nbsp; Are you aware that if you ilmerge, you lose the strong name on Ionic.Zip.dll?&nbsp; In that case the references you compiled against may not be satisfied by the merged assembly.</p>\r\n<p>You said that you're having problems.&nbsp; What's the problem you're having?&nbsp;</p>\r\n<p>I just tried something very similar and it worked for me.&nbsp;</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>        <span style=\"color:Blue\">Dim</span> resourceName <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">String</span> = <span style=\"color:#A31515\">&quot;Ionic.Zip.dll&quot;</span>\r\n        \r\n        <span style=\"color:Blue\">Dim</span> a1 <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Assembly</span> = <span style=\"color:Blue\">Assembly</span>.GetEntryAssembly()\r\n<span style=\"color:Green\">'         Dim names As String()</span>\r\n<span style=\"color:Green\">'         names = a1.GetManifestResourceNames()</span>\r\n        \r\n<span style=\"color:Green\">'         If names Is Nothing Then</span>\r\n<span style=\"color:Green\">'             Throw new Exception(&quot;GetManifestResourceNames returns Nothing.&quot;)</span>\r\n<span style=\"color:Green\">'         End If</span>\r\n        \r\n<span style=\"color:Green\">'         For Each n As String in names</span>\r\n<span style=\"color:Green\">'             Console.WriteLine(&quot;rsrc: {0}&quot;, n)</span>\r\n<span style=\"color:Green\">'         Next</span>\r\n\r\n        <span style=\"color:Blue\">Dim</span> s <span style=\"color:Blue\">As</span> Stream = a1.GetManifestResourceStream(resourceName)\r\n        <span style=\"color:Blue\">Dim</span> block <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Byte</span>() = <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Byte</span>(s.Length) {}\r\n        s.Read(block, 0, block.Length)\r\n        <span style=\"color:Blue\">Dim</span> a2 <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Assembly</span> = <span style=\"color:Blue\">Assembly</span>.Load(block)\r\n\r\n        <span style=\"color:Green\">'' at this point you can call into the loaded assembly</span>\r\n\r\n        <span style=\"color:Blue\">Dim</span> o <span style=\"color:Blue\">As</span> System.Object\r\n        o = a2.CreateInstance(<span style=\"color:#A31515\">&quot;Ionic.Zip.ZipFile&quot;</span>, _\r\n                    <span style=\"color:Blue\">false</span>, _\r\n                    System.Reflection.BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">OR</span> _\r\n                    System.Reflection.BindingFlags.Instance <span style=\"color:Blue\">OR</span> _\r\n                    System.Reflection.BindingFlags.InvokeMethod, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>)\r\n\r\n</pre>\r\n</div>\r\n<p>&nbsp;</p>\r\n<p>When I've had trouble loading resources, usually it is a problem with the resource <em>name</em>.&nbsp;&nbsp; In the above code, I added the resource on the VB compiler command line with the /resource: option.&nbsp; If you use Visual Studio, then the resource name is going to be different.&nbsp;&nbsp; In that case, make sure you have it marked as &quot;Embedded Resource&quot;&nbsp; in the VS project.&nbsp;</p>\r\n<p><img src=\"http://i28.tinypic.com/2mnnq5u.png\" alt=\"\"></p>\r\n<p>You may want to verify the&nbsp;resource names by using code similar to that which is commented out above.</p>\r\n<p>&nbsp;</p>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>",
    "PostedDate": "2009-08-02T20:45:23.373-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218611",
    "ThreadId": "64248",
    "Html": "<p>The error:</p>\r\n<p>&nbsp;</p>\r\n<pre>************** Exception Text **************\r\nSystem.IO.FileNotFoundException: Could not load file or assembly 'Ionic.Zip, Version=1.7.2.12, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c' or one of its dependencies. The system cannot find the file specified.\r\nFile name: 'Ionic.Zip, Version=1.7.2.12, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c'</pre>\r\n<p>&nbsp;</p>\r\n<p>Using the commented code, I did verify it's entire name is &quot;GearMod4.Ionic.Zip.dll&quot;.</p>\r\n<p>Am I not supposed to Imports Ionic.Zip when using embedded resourced?</p>\r\n<p>The code and calling methods are:</p>\r\n<p>&nbsp;</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>    <span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Sub</span> winMain_Load(<span style=\"color:Blue\">ByVal</span> sender <span style=\"color:Blue\">As</span> System.Object, <span style=\"color:Blue\">ByVal</span> e <span style=\"color:Blue\">As</span> System.EventArgs) <span style=\"color:Blue\">Handles</span> <span style=\"color:Blue\">Me</span>.Load\r\n        <span style=\"color:Blue\">Dim</span> resourceName <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">String</span> = <span style=\"color:#A31515\">&quot;Ionic.Zip.dll&quot;</span>\r\n        <span style=\"color:Blue\">Dim</span> myNameSpace <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">String</span> = <span style=\"color:Blue\">Assembly</span>.GetEntryAssembly.GetName().Name.ToString()\r\n\r\n        <span style=\"color:Blue\">Dim</span> a1 <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Assembly</span> = <span style=\"color:Blue\">Assembly</span>.GetEntryAssembly()\r\n        <span style=\"color:Green\">'Dim names As String()</span>\r\n        <span style=\"color:Green\">'names = a1.GetManifestResourceNames()</span>\r\n\r\n        <span style=\"color:Green\">'If names Is Nothing Then</span>\r\n        <span style=\"color:Green\">'    Throw New Exception(&quot;GetManifestResourceNames returns Nothing.&quot;)</span>\r\n        <span style=\"color:Green\">'End If</span>\r\n\r\n        <span style=\"color:Green\">'For Each n As String In names</span>\r\n        <span style=\"color:Green\">'    'Console.WriteLine(&quot;rsrc: {0}&quot;, n)</span>\r\n        <span style=\"color:Green\">'    MsgBox(&quot;Item: &quot; &amp; n)</span>\r\n        <span style=\"color:Green\">'Next</span>\r\n\r\n\r\n        <span style=\"color:Blue\">Dim</span> s <span style=\"color:Blue\">As</span> UnmanagedMemoryStream = a1.GetManifestResourceStream(<span style=\"color:#A31515\">&quot;GearMod4.&quot;</span> &amp; resourceName)\r\n        <span style=\"color:Green\">'MsgBox(s.Length.ToString())</span>\r\n        <span style=\"color:Blue\">Dim</span> block <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Byte</span>() = <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Byte</span>(s.Length) {}\r\n        s.Read(block, 0, block.Length)\r\n        <span style=\"color:Blue\">Dim</span> a2 <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Assembly</span> = <span style=\"color:Blue\">Assembly</span>.Load(block)\r\n\r\n        <span style=\"color:Green\">'' at this point you can call into the loaded assembly</span>\r\n\r\n        <span style=\"color:Blue\">Dim</span> o <span style=\"color:Blue\">As</span> System.Object\r\n        o = a2.CreateInstance(<span style=\"color:#A31515\">&quot;Ionic.Zip.ZipFile&quot;</span>, _\r\n                    <span style=\"color:Blue\">False</span>, _\r\n                    System.Reflection.BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> _\r\n                    System.Reflection.BindingFlags.Instance <span style=\"color:Blue\">Or</span> _\r\n                    System.Reflection.BindingFlags.InvokeMethod, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>)\r\n\r\n</pre>\r\n</div>\r\n<p>&nbsp;</p>\r\n<p>And the calling methods:</p>\r\n<p>&nbsp;</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>        <span style=\"color:Blue\">Try</span>\r\n            <span style=\"color:Blue\">Using</span> zip <span style=\"color:Blue\">As</span> Ionic.Zip.ZipFile = ZipFile.Read(<span style=\"color:#A31515\">&quot;Themes\\&quot;</span> &amp; objIniFile.GetString(<span style=\"color:#A31515\">&quot;Default&quot;</span>, <span style=\"color:#A31515\">&quot;Theme&quot;</span>, <span style=\"color:#A31515\">&quot;DangerGirl&quot;</span>) &amp; <span style=\"color:#A31515\">&quot;.G4T&quot;</span>)\r\n                <span style=\"color:Blue\">Dim</span> ms <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">New</span> System.IO.MemoryStream\r\n                zip.Password = themeTicket\r\n</pre>\r\n</div>\r\n<p>&nbsp;</p>\r\n<p>Lastly, I'm using an UnmanagedMemoryStream because MemoryStream errs out:</p>\r\n<p>Unable to cast object of type 'System.IO.UnmanagedMemoryStream' to type 'System.IO.MemoryStream'.</p>",
    "PostedDate": "2009-08-02T22:04:43.403-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218618",
    "ThreadId": "64248",
    "Html": "<table border=0 width=720>\r\n<tbody>\r\n<tr>\r\n<td>\r\n<p>The use of UnmanagedMemoryStream is irrelevant.&nbsp; It seems to me the only thing you do is a single Read() on the stream.&nbsp; You can just as well use a plain vanilla Stream type.&nbsp;&nbsp;&nbsp;Using an UnmanagedMemoryStream, if that&nbsp;is the actual type returned by GetManifestResourceStream(), is also fine.</p>\r\n<p>The Imports is required to satisfy symbols at <em>compile time</em>.&nbsp; The imports statement is not relevant at runtime.&nbsp;&nbsp;</p>\r\n<p>I'm still trying to figure out what you're doing and the problem you're having.&nbsp; My suspiscion at this point is that the problem has nothing to do with DotNetZip, but instead has to do with your use of assemblies and how you load them.</p>\r\n<p>If you load an assembly at runtime, regardless whether it is DotNetZip or some other assembly,&nbsp;you have a couple options:</p>\r\n<ul>\r\n<li>write an <a href=\"http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx\">AssemblyResolve</a> event</li>\r\n<li>use Reflection to call into the loaded assembly</li>\r\n</ul>\r\n<p>Your initial code, and the example I provided, is an example of the latter.&nbsp; Your subsequent code appears to require the former.&nbsp;</p>\r\n<p>In other words, if you use code like</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre><span style=\"color:Blue\">Using</span> zip <span style=\"color:Blue\">as</span> Ionic.Zip.ZipFile = ZipFile.Read(...)\r\n    <span style=\"color:Green\">'' ...</span>\r\n<span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Using</span>\r\n\r\n</pre>\r\n</div>\r\n<p>...then you need to have an AssemblyResolve event.&nbsp; If you are using reflection, then your app code will construct a ZipFile like this:</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>        <span style=\"color:Blue\">Dim</span> o <span style=\"color:Blue\">As</span> System.Object\r\n        o = a2.CreateInstance(<span style=\"color:#A31515\">&quot;Ionic.Zip.ZipFile&quot;</span>, _\r\n                    <span style=\"color:Blue\">false</span>, _\r\n                    System.Reflection.BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">OR</span> _\r\n                    System.Reflection.BindingFlags.Instance <span style=\"color:Blue\">OR</span> _\r\n                    System.Reflection.BindingFlags.InvokeMethod, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>, _\r\n                    <span style=\"color:Blue\">Nothing</span>)\r\n\r\n</pre>\r\n</div>\r\n<p>&nbsp;</p>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>",
    "PostedDate": "2009-08-02T22:54:08.213-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218621",
    "ThreadId": "64248",
    "Html": "<p>Using the Reflection method, how do I actually pass calls to the object?</p>\r\n<p>I think that's the problem I'm having, because I'm Using zip As Ionic.Zip.ZipFile, rather than the method you showed.</p>\r\n<p>Reflection's insanely new to me, so I'm not sure how I go from o = a2.CreateInstance() to actually using 'o'.</p>\r\n<p>EDIT:-</p>\r\n<p>Nevermind, scratch that last part, added a one liner just to check vs. my existing code and this works perfectly.</p>\r\n<p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre><span style=\"color:Blue\">Dim</span> zip <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Object</span> = o.Read(<span style=\"color:#A31515\">&quot;Themes\\&quot;</span> &amp; objIniFile.GetString(<span style=\"color:#A31515\">&quot;Default&quot;</span>, <span style=\"color:#A31515\">&quot;Theme&quot;</span>, <span style=\"color:#A31515\">&quot;Default&quot;</span>) &amp; <span style=\"color:#A31515\">&quot;.G4T&quot;</span>)\r\nzip.Password(<span style=\"color:#A31515\">&quot;SomethingHere&quot;</span>)\r\n</pre>\r\n</div>\r\nThank you Cheeso!</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-08-02T23:00:29.83-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218626",
    "ThreadId": "64248",
    "Html": "<table border=0 width=800>\r\n<tbody>\r\n<tr>\r\n<td>\r\n<p>yes, Reflection is much harder and usually only makes sense when you are not sure of the version of the assembly you will load at runtime. In other words, if your app runs from a directory and there could be one of any number of assemblies avaialble to the application and you don't know the version until you load it.&nbsp; In your case, you seem to be relying on an embedded assembbly, which would recommend the AssemblyResolve evvent.&nbsp;</p>\r\n<p>The AssemblyResolve event is not difficult.&nbsp; It allows you to keep the application code, outside of the assembly resolution logic,&nbsp;very simple.&nbsp; For example,</p>\r\n<pre><div style=\"color:Black;background-color:White\"><pre><span style=\"color:Blue\">Dim</span> zip <span style=\"color:Blue\">as</span> ZipFile\r\nzip = <span style=\"color:Blue\">New</span> Zipfile\r\n<span style=\"color:Blue\">AddHandler</span> zip.AddProgress, <span style=\"color:Blue\">AddressOf</span> AddProgress\r\nzip.StatusMessageTextWriter = Console.Out\r\nzip.AddDirectory(directoryToZip)\r\n<span style=\"color:Blue\">AddHandler</span> zip.SaveProgress, <span style=\"color:Blue\">AddressOf</span> SaveProgress\r\nzip.BufferSize = &amp;H80000\r\nzip.UseZip64WhenSaving = Zip64Option.Always\r\nzip.Save(zipPath)\r\nzip.Dispose\r\n\r\n</pre>\r\n</div>\r\n</pre>\r\n<p>In contrast, if you use reflection, your app code to use a zipfile will look like this:</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre><span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Sub</span> CreateZipFirstTime()\r\n        <span style=\"color:Blue\">Dim</span> o <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Object</span> = a2.CreateInstance(<span style=\"color:#A31515\">&quot;Ionic.Zip.ZipFile&quot;</span>, <span style=\"color:Blue\">False</span>, (BindingFlags.InvokeMethod <span style=\"color:Blue\">Or</span> (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.Instance)), <span style=\"color:Blue\">Nothing</span>, <span style=\"color:Blue\">Nothing</span>, <span style=\"color:Blue\">Nothing</span>, <span style=\"color:Blue\">Nothing</span>)\r\n        <span style=\"color:Blue\">Dim</span> t <span style=\"color:Blue\">As</span> Type = o.<span style=\"color:Blue\">GetType</span>\r\n        <span style=\"color:Blue\">If</span> _version.VersionGreaterThanOrEqualTo(<span style=\"color:#A31515\">&quot;1.8.3.29&quot;</span>) <span style=\"color:Blue\">Then</span>\r\n            <span style=\"color:Green\">' AddProgress event</span>\r\n            <span style=\"color:Blue\">Dim</span> eInfo <span style=\"color:Blue\">As</span> EventInfo = t.GetEvent(<span style=\"color:#A31515\">&quot;AddProgress&quot;</span>)\r\n            <span style=\"color:Blue\">Dim</span> addProgressMethodInfo <span style=\"color:Blue\">As</span> MethodInfo = .AddEventHandlerAssembly.<span style=\"color:Blue\">GetType</span>(<span style=\"color:#A31515\">&quot;DynamicallyCompiled.AddEventHandler&quot;</span>).GetMethod(<span style=\"color:#A31515\">&quot;AddProgress&quot;</span>, (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.<span style=\"color:Blue\">Static</span>))\r\n            <span style=\"color:Blue\">Dim</span> d <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Delegate</span> = <span style=\"color:Blue\">Delegate</span>.CreateDelegate(eInfo.EventHandlerType, addProgressMethodInfo)\r\n            eInfo.AddEventHandler(o, d)\r\n        <span style=\"color:Blue\">Else</span>\r\n            t.InvokeMember(<span style=\"color:#A31515\">&quot;StatusMessageTextWriter&quot;</span>, (BindingFlags.SetProperty <span style=\"color:Blue\">Or</span> (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.Instance)), <span style=\"color:Blue\">Nothing</span>, o, <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Object</span>() { Console.Out })\r\n        <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">If</span>\r\n        <span style=\"color:Blue\">Dim</span> e <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Object</span> = t.InvokeMember(<span style=\"color:#A31515\">&quot;AddDirectory&quot;</span>, (BindingFlags.InvokeMethod <span style=\"color:Blue\">Or</span> (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.Instance)), <span style=\"color:Blue\">Nothing</span>, o, <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Object</span>() { _directoryToZip, <span style=\"color:#A31515\">&quot;&quot;</span> })\r\n        <span style=\"color:Blue\">If</span> _version.VersionGreaterThanOrEqualTo(<span style=\"color:#A31515\">&quot;1.7.0.0&quot;</span>) <span style=\"color:Blue\">Then</span>\r\n            <span style=\"color:Green\">' set up a SaveProgress event</span>\r\n            <span style=\"color:Blue\">Dim</span> eInfo2 <span style=\"color:Blue\">As</span> EventInfo = t.GetEvent(<span style=\"color:#A31515\">&quot;SaveProgress&quot;</span>)\r\n            <span style=\"color:Blue\">Dim</span> saveProgressMethodInfo <span style=\"color:Blue\">As</span> MethodInfo = SaveEventHandlerAssembly.<span style=\"color:Blue\">GetType</span>(<span style=\"color:#A31515\">&quot;DynamicallyCompiled.SaveEventHandler&quot;</span>).GetMethod(<span style=\"color:#A31515\">&quot;SaveProgress&quot;</span>, (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.<span style=\"color:Blue\">Static</span>))\r\n            <span style=\"color:Blue\">Dim</span> d2 <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Delegate</span> = <span style=\"color:Blue\">Delegate</span>.CreateDelegate(eInfo2.EventHandlerType, saveProgressMethodInfo)\r\n            eInfo2.AddEventHandler(o, d2)\r\n        <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">If</span>\r\n        <span style=\"color:Blue\">If</span> _version.VersionGreaterThanOrEqualTo(<span style=\"color:#A31515\">&quot;1.8.0.0&quot;</span>) <span style=\"color:Blue\">Then</span>\r\n            <span style=\"color:Green\">' set the BufferSize property</span>\r\n            t.InvokeMember(<span style=\"color:#A31515\">&quot;BufferSize&quot;</span>, (BindingFlags.SetProperty <span style=\"color:Blue\">Or</span> (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.Instance)), <span style=\"color:Blue\">Nothing</span>, o, <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Object</span>() { &amp;H80000 })\r\n        <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">If</span>\r\n        <span style=\"color:Blue\">If</span> _version.VersionGreaterThanOrEqualTo(<span style=\"color:#A31515\">&quot;1.7.0.0&quot;</span>) <span style=\"color:Blue\">Then</span>\r\n            <span style=\"color:Blue\">Dim</span> zip64OptionType <span style=\"color:Blue\">As</span> Type = LateBoundZipCreator.LateBoundAssembly.<span style=\"color:Blue\">GetType</span>(<span style=\"color:#A31515\">&quot;Ionic.Zip.Zip64Option&quot;</span>)\r\n            t.InvokeMember(<span style=\"color:#A31515\">&quot;UseZip64WhenSaving&quot;</span>, (BindingFlags.SetProperty <span style=\"color:Blue\">Or</span> (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.Instance)), <span style=\"color:Blue\">Nothing</span>, o, <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Object</span>() { <span style=\"color:Blue\">Enum</span>.Parse(zip64OptionType, <span style=\"color:#A31515\">&quot;Always&quot;</span>) })\r\n        <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">If</span>\r\n        t.InvokeMember(<span style=\"color:#A31515\">&quot;Save&quot;</span>, (BindingFlags.InvokeMethod <span style=\"color:Blue\">Or</span> (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.Instance)), <span style=\"color:Blue\">Nothing</span>, o, <span style=\"color:Blue\">New</span> <span style=\"color:Blue\">Object</span>() { _zipPath })\r\n        t.InvokeMember(<span style=\"color:#A31515\">&quot;Dispose&quot;</span>, (BindingFlags.InvokeMethod <span style=\"color:Blue\">Or</span> (BindingFlags.<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Or</span> BindingFlags.Instance)), <span style=\"color:Blue\">Nothing</span>, o, <span style=\"color:Blue\">Nothing</span>)\r\n<span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Sub</span>\r\n\r\n \r\n</pre>\r\n</div>\r\n<p>&nbsp;</p>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>",
    "PostedDate": "2009-08-02T23:15:47.643-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218629",
    "ThreadId": "64248",
    "Html": "<p>I don't see why it would have to look so intricate when I'm only reading from the zip and writing to a MemoryStream.</p>\r\n<p>My application is working perfectly without the DLL, using only the Resource.</p>\r\n<p>&nbsp;</p>\r\n<p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>            zip = zip.Read(<span style=\"color:#A31515\">&quot;Themes\\&quot;</span> &amp; objIniFile.GetString(<span style=\"color:#A31515\">&quot;Default&quot;</span>, <span style=\"color:#A31515\">&quot;Theme&quot;</span>, <span style=\"color:#A31515\">&quot;ThemeName&quot;</span>) &amp; <span style=\"color:#A31515\">&quot;.G4T&quot;</span>)\r\n            <span style=\"color:Blue\">Dim</span> ms <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">New</span> System.IO.MemoryStream\r\n            zip.Password = themeTicket\r\n            zip.Extract(<span style=\"color:#A31515\">&quot;Authenticate&quot;</span>, ms)\r\n            <span style=\"color:Blue\">If</span> <span style=\"color:Blue\">Not</span> AuthenticateTheme(ms) <span style=\"color:Blue\">Then</span> suicide()\r\n            ms.Dispose()\r\n\r\n            ms = <span style=\"color:Blue\">New</span> System.IO.MemoryStream\r\n            zip.Extract(<span style=\"color:#A31515\">&quot;BackGround.png&quot;</span>, ms)\r\n            <span style=\"color:Blue\">Dim</span> bmpBack <span style=\"color:Blue\">As</span> Bitmap = Bitmap.FromStream(ms)\r\n            <span style=\"color:Blue\">Dim</span> tWidth <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span> = bmpBack.Width\r\n            <span style=\"color:Blue\">Dim</span> tHeight <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span> = bmpBack.Height\r\n            <span style=\"color:Blue\">Me</span>.Height = tHeight\r\n            <span style=\"color:Blue\">Me</span>.Width = tWidth\r\n            <span style=\"color:Blue\">Me</span>.BackgroundImage = bmpBack\r\n            <span style=\"color:Blue\">Me</span>.Update()\r\n<span style=\"color:Green\">'many more extractions, near duplicate code as above.</span>\r\n</pre>\r\n</div>\r\n</p>",
    "PostedDate": "2009-08-02T23:27:14.377-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218719",
    "ThreadId": "64248",
    "Html": "<p>ok, well if it's working for you . .. ..</p>",
    "PostedDate": "2009-08-03T04:10:10.963-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218727",
    "ThreadId": "64248",
    "Html": "<p>Ran into another doozie, if you've got anything for this one, I'd really appreciate it.&nbsp; Google is turning up nothing lol</p>\r\n<p>&nbsp;</p>\r\n<p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>    <span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Declare</span> <span style=\"color:Blue\">Function</span> BASSMOD_Init <span style=\"color:Blue\">Lib</span> <span style=\"color:#A31515\">&quot;bassmod.dll&quot;</span> (<span style=\"color:Blue\">ByVal</span> device <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Long</span>, <span style=\"color:Blue\">ByVal</span> freq <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Long</span>, <span style=\"color:Blue\">ByVal</span> flags <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Long</span>) <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span>\r\n    <span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Declare</span> <span style=\"color:Blue\">Function</span> BASSMOD_MusicLoad <span style=\"color:Blue\">Lib</span> <span style=\"color:#A31515\">&quot;bassmod.dll&quot;</span> (<span style=\"color:Blue\">ByVal</span> mem <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span>, <span style=\"color:Blue\">ByVal</span> pfile <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">String</span>, <span style=\"color:Blue\">ByVal</span> offset <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Long</span>, <span style=\"color:Blue\">ByVal</span> Length <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Long</span>, _\r\n            <span style=\"color:Blue\">ByVal</span> flags <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Long</span>) <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span>\r\n    <span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Declare</span> <span style=\"color:Blue\">Function</span> BASSMOD_MusicPlay <span style=\"color:Blue\">Lib</span> <span style=\"color:#A31515\">&quot;bassmod.dll&quot;</span> () <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span>\r\n    <span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Declare</span> <span style=\"color:Blue\">Function</span> BASSMOD_MusicStop <span style=\"color:Blue\">Lib</span> <span style=\"color:#A31515\">&quot;bassmod.dll&quot;</span> () <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span>\r\n    <span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Declare</span> <span style=\"color:Blue\">Sub</span> BASSMOD_Free <span style=\"color:Blue\">Lib</span> <span style=\"color:#A31515\">&quot;bassmod.dll&quot;</span> ()\r\n</pre>\r\n</div>\r\nTrying to get BASSMOD working, was hoping to (after I get it playing sound at all) embed this dll as well.</p>",
    "PostedDate": "2009-08-03T04:27:01.423-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "218729",
    "ThreadId": "64248",
    "Html": "<p>No, I can't help you with that.</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-08-03T04:28:45.087-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]