/* -*- 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.org code. * * 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): Judson Valeski * : David Matiskella */ #include "nsISupports.idl" #include "nsIMIMEInfo.idl" #include "nsIEnumerator.idl" #include "nsIFile.idl" %{C++ #define NS_XMLMIMEDATASOURCE_CID \ { /* {41654483-fa5b-11d3-a12b-a7aef7a2f2fc} */ \ 0x41654483, \ 0xfa5b, \ 0x11d3, \ { 0xa1, 0x2b, 0xa7, 0xae, 0xf7, 0xa2, 0xf2, 0xfc } \ } #define NS_XMLMIMEDATASOURCE_CONTRACTID \ "@mozilla.org/mime-xml-data-source;1" #define NS_NATIVEMIMEDATASOURCE_CONTRACTID \ "@mozilla.org/mime-native-data-source;1" %} [scriptable, uuid(41654481-fa5b-11d3-a12b-a7aef7a2f2fc)] interface nsIMIMEDataSource : nsISupports { /* Routines for retriving nsIMIMEInfo data given either a mimetype, file extension, or a mac codes; */ nsIMIMEInfo GetFromMIMEType( in string aType ); nsIMIMEInfo GetFromExtension( in string aFileExt ); nsIMIMEInfo GetFromTypeCreator( in PRUint32 aType, in PRUint32 aCreator, in string aFileExt ); /* Routines to Add and Remove elements and to get an enumerator on the data source */ void Add( in nsIMIMEInfo aInfo ); void Remove( in string aType ); nsISimpleEnumerator GetEnumerator(); void Serialize(); void InitFromFile( in nsIFile aFile ); };