public static IStorage CreatePackageStorage(string name, byte[] filedata) { MemoryStream ms = new MemoryStream(PackageBuilder.BuildPackage(@"C:\testme\" + name, filedata)); IStorage stg = CreateStorage("dump.stg"); ComUtils.OLESTREAM stm = new ComUtils.OLESTREAM(); stm.GetMethod = (a, b, c) => { //Console.WriteLine("{0} {1} {2}", a, b, c); byte[] data = new byte[c]; int len = ms.Read(data, 0, (int)c); Marshal.Copy(data, 0, b, len); return((uint)len); }; OleConvertOLESTREAMToIStorage(ref stm, stg, IntPtr.Zero); // Console.WriteLine("Creating File..."); Guid g = new Guid(CLSID_Package); stg.SetClass(ref g); return(stg); }
public static IStorage CreatePackageStorage(string name, byte[] filedata) { MemoryStream ms = new MemoryStream(PackageBuilder.BuildPackage(@"C:\testme\"+name, filedata)); IStorage stg = CreateStorage("dump.stg"); ComUtils.OLESTREAM stm = new ComUtils.OLESTREAM(); stm.GetMethod = (a, b, c) => { //Console.WriteLine("{0} {1} {2}", a, b, c); byte[] data = new byte[c]; int len = ms.Read(data, 0, (int)c); Marshal.Copy(data, 0, b, len); return (uint)len; }; OleConvertOLESTREAMToIStorage(ref stm, stg, IntPtr.Zero); // Console.WriteLine("Creating File..."); Guid g = new Guid(CLSID_Package); stg.SetClass(ref g); return stg; }