コード例 #1
0
        static void GetAddonDurableLicenseCallback(string name)
        {
            var lines = File.ReadAllLines(name);

            main.Dispatcher.Invoke(() =>
            {
                main.Logs("=====Get Durable Addon License Information=========");
                if (lines.Length == 0)
                {
                    main.Logs("Nothing Addon license");
                    return;
                }
                foreach (var line in lines)
                {
                    var items = line.Split('\t');
                    main.Logs("=====Key=" + items[0]);
                    main.Logs("SkuStoreId=" + items[1]);
                }
            });
            File.Delete(name);
            // Release delegate.
            // デリゲートの解放
            var ds = fileNameCallback.GetInvocationList();

            foreach (var d in ds)
            {
                fileNameCallback -= (FileNameCallback)d;
            }
        }
コード例 #2
0
        public void Dispose(bool decompressor)
        {
            if (decompressor)
            {
                if (m_is64Bit)
                {
                    DestroyDecompressLibrary64(m_libHandle);
                }
                else
                {
                    DestroyDecompressLibrary32(m_libHandle);
                }
            }
            else
            {
                if (m_is64Bit)
                {
                    DestroyCompressLibrary64(m_libHandle);
                }
                else
                {
                    DestroyCompressLibrary32(m_libHandle);
                }
            }

            m_fileNameCallback      = null;
            m_progressCallback      = null;
            m_processedSizeCallback = null;
            m_totalSizeCallback     = null;

            m_libHandle = new IntPtr();
            Dispose();
        }
コード例 #3
0
        static void GetAddonListCallback(string name)
        {
            var lines = File.ReadAllLines(name);

            main.Dispatcher.Invoke(() =>
            {
                main.Logs("=====Get Add-On List================");
                if (lines.Length == 0)
                {
                    main.Logs("Nothing Addon list");
                    return;
                }
                foreach (var line in lines)
                {
                    var items = line.Split('\t');
                    main.Logs("=====StoreId=" + items[0]);
                    main.Logs("Title=" + items[1]);
                    main.Logs("Price=" + items[2]);
                    main.Logs("ProductKind=" + items[3]);
                    main.SetItemId(items[0]);
                }
            });
            File.Delete(name);
            // Release delegate.
            // デリゲートの解放
            var ds = fileNameCallback.GetInvocationList();

            foreach (var d in ds)
            {
                fileNameCallback -= (FileNameCallback)d;
            }
        }
コード例 #4
0
        internal static bool GetDurableAddonLincenseInformation(MainWindow window)
        {
            main             = window;
            fileNameCallback = new FileNameCallback(GetAddonDurableLicenseCallback);
            var ret = GetDurableAddonLicense(fileNameCallback);

            return(ret);
        }
コード例 #5
0
        internal static bool GetAddonListInformation(MainWindow window)
        {
            main             = window;
            fileNameCallback = new FileNameCallback(GetAddonListCallback);
            var ret = GetAddonList(fileNameCallback);

            return(ret);
        }
コード例 #6
0
 private static extern IntPtr InitDecompressLibrary32(string libraryPath, string archiveName,
                                                      [MarshalAs(UnmanagedType.FunctionPtr)] ProgressCallback pCallback,
                                                      [MarshalAs(UnmanagedType.FunctionPtr)] FileNameCallback fnCallback,
                                                      [MarshalAs(UnmanagedType.FunctionPtr)] TotalSizeCallback tsCallback,
                                                      [MarshalAs(UnmanagedType.FunctionPtr)] ProcessedSizeCallback psCallback);
コード例 #7
0
        public SevenZipWrapper(string archiveName, bool decompressor)
        {
            var rootDir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            // check for IntPtr.Size == 8 does not work here, as we are in a 32 bit process, IntPtr.Size is always 4
            var libraryPath = Path.Combine(rootDir, "rsc", m_is64Bit ? "64" : "32", "7z.dll");

            if (decompressor)
            {
                m_fileNameCallback = value =>
                {
                    var fPath = Path.GetFileName(value);
                    if (FileExtractionStarted == null)
                    {
                        return;
                    }

                    var ev = new FileNameEventArgs(fPath, (byte)m_progress);
                    FileExtractionStarted(this, ev);
                    if (ev.Cancel)
                    {
                        Cancel(false);
                    }
                };
                m_progressCallback = value =>
                {
                    m_progress = value;
                    if (Extracting != null)
                    {
                        Extracting(this, new ProgressEventArgs((byte)m_progress, (byte)(100 - m_progress)));
                    }
                };
                m_totalSizeCallback = value =>
                {
                    m_totalSize = value;
                };
                m_processedSizeCallback = value =>
                {
                    m_processedSize = value;
                };

                if (m_is64Bit)
                {
                    m_libHandle = InitDecompressLibrary64(libraryPath, archiveName, m_progressCallback, m_fileNameCallback,
                                                          m_totalSizeCallback, m_processedSizeCallback);
                }
                else
                {
                    m_libHandle = InitDecompressLibrary32(libraryPath, archiveName, m_progressCallback, m_fileNameCallback,
                                                          m_totalSizeCallback, m_processedSizeCallback);
                }
            }
            else
            {
                m_fileNameCallback = value =>
                {
                    var fPath = Path.GetFileName(value);
                    if (FileCompressionStarted == null)
                    {
                        return;
                    }

                    var ev = new FileNameEventArgs(fPath, (byte)m_progress);
                    FileCompressionStarted(this, ev);
                    if (ev.Cancel)
                    {
                        Cancel(false);
                    }
                };
                m_progressCallback = value =>
                {
                    m_progress = value;
                    if (Compressing != null)
                    {
                        Compressing(this, new ProgressEventArgs((byte)m_progress, (byte)(100 - m_progress)));
                    }
                };
                m_totalSizeCallback = value =>
                {
                    m_totalSize = value;
                };
                m_processedSizeCallback = value =>
                {
                    m_processedSize = value;
                };

                if (m_is64Bit)
                {
                    m_libHandle = InitCompressLibrary64(libraryPath, archiveName, m_progressCallback, m_fileNameCallback,
                                                        m_totalSizeCallback, m_processedSizeCallback);
                }
                else
                {
                    m_libHandle = InitCompressLibrary32(libraryPath, archiveName, m_progressCallback, m_fileNameCallback,
                                                        m_totalSizeCallback, m_processedSizeCallback);
                }
            }
        }
コード例 #8
0
 static extern bool GetAddonLicense(FileNameCallback callback);