internal MemoryStream GetEmfMemoryStream(Sheet sheet)
        {
            HRESULT      hr            = HRESULT.E_FAIL;
            IStorage     viewerStorage = null;
            IStream      emzStream     = null;
            MemoryStream memoryStream  = null;

            try
            {
                Marshal.ThrowExceptionForHR(hr = RootStorage.OpenStorage(StorageName.JDraftViewerInfo, out viewerStorage));
                Marshal.ThrowExceptionForHR(hr = viewerStorage.OpenStream(sheet.StreamName, out emzStream));
                memoryStream = emzStream.DecompressZlib();
            }
            catch
            {
            }
            finally
            {
                if (emzStream != null)
                {
                    emzStream.FinalRelease();
                }
                if (viewerStorage != null)
                {
                    viewerStorage.FinalRelease();
                }
            }

            return(memoryStream);
        }
        private void LoadZones()
        {
            HRESULT     hr      = HRESULT.S_OK;
            List <Zone> list    = new List <Zone>();
            IStorage    storage = null;

            try
            {
                if (NativeMethods.Succeeded(hr = RootStorage.OpenStorage(StorageName.Zones, out storage)))
                {
                    System.Runtime.InteropServices.ComTypes.STATSTG[] elements;
                    if (NativeMethods.Succeeded(hr = storage.EnumElements(out elements)))
                    {
                        foreach (System.Runtime.InteropServices.ComTypes.STATSTG element in elements)
                        {
                            if ((STGTY)element.type == STGTY.STREAM)
                            {
                                list.Add(new Zone(element.pwcsName));
                            }
                        }
                    }
                }
            }
            catch
            {
            }
            finally
            {
                if (storage != null)
                {
                    storage.FinalRelease();
                }
            }

            _zones = list.ToArray();
        }