/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Mozilla Communicator client code, * released March 31, 1998. * * The Initial Developer of the Original Code is Netscape Communications * Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * Daniel Veditz * Don Bragg * Samir Gehani * Mitch Stoltz */ #include "nsISupports.idl" interface nsISimpleEnumerator; interface nsIInputStream; native nsFileSpec(nsFileSpec&); [scriptable, uuid(6ca5e43e-9632-11d3-8cd9-0060b0fc14a3)] interface nsIZipEntry : nsISupports { readonly attribute string name; readonly attribute unsigned short compression; readonly attribute unsigned long size; readonly attribute unsigned long realSize; readonly attribute unsigned long CRC32; }; [scriptable, uuid(6ff6a966-9632-11d3-8cd9-0060b0fc14a3)] interface nsIZipReader : nsISupports { /** * Initializes a zip reader after construction. */ [noscript] void init(in nsFileSpec zipFile); /** * Opens a zip reader. */ void open(); /** * Closes a zip reader. Subsequent attempts to extract files or read from * its input stream will result in an error. */ void close(); /** * Extracts a zip entry into a local file specified by outFile. */ [noscript] void extract(in string zipEntry, in nsFileSpec outFile); /** * Returns a nsIZipEntry describing a specified zip entry. */ nsIZipEntry getEntry(in string zipEntry); /** * Returns a simple enumerator whose elements are of type nsIZipEntry. */ nsISimpleEnumerator/**/ findEntries(in string aPattern); /** * Returns an input stream containing the contents of the specified zip entry. */ nsIInputStream getInputStream(in string zipEntry); }; %{C++ #define NS_ZIPREADER_CID \ { /* 7526a738-9632-11d3-8cd9-0060b0fc14a3 */ \ 0x7526a738, \ 0x9632, \ 0x11d3, \ {0x8c, 0xd9, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3} \ } %}