Back to index

lightning-sunbird  0.9+nobinonly
nsOSHelperAppService.h
Go to the documentation of this file.
00001 /* ***** BEGIN LICENSE BLOCK ***** 
00002  * Version: MPL 1.1/GPL 2.0/LGPL 2.1 
00003  * 
00004  * The contents of this file are subject to the Mozilla Public License Version 
00005  * 1.1 (the "License"); you may not use this file except in compliance with 
00006  * the License. You may obtain a copy of the License at 
00007  * http://www.mozilla.org/MPL/ 
00008  * 
00009  * Software distributed under the License is distributed on an "AS IS" basis, 
00010  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
00011  * for the specific language governing rights and limitations under the 
00012  * License. 
00013  * 
00014  * The Original Code is nsOSHelperAppService.h. 
00015  * 
00016  * The Initial Developer of the Original Code is 
00017  * Paul Ashford. 
00018  * Portions created by the Initial Developer are Copyright (C) 2002 
00019  * the Initial Developer. All Rights Reserved. 
00020  * 
00021  * Contributor(s): 
00022  * 
00023  * Alternatively, the contents of this file may be used under the terms of 
00024  * either the GNU General Public License Version 2 or later (the "GPL"), or 
00025  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 
00026  * in which case the provisions of the GPL or the LGPL are applicable instead 
00027  * of those above. If you wish to allow use of your version of this file only 
00028  * under the terms of either the GPL or the LGPL, and not to allow others to 
00029  * use your version of this file under the terms of the MPL, indicate your 
00030  * decision by deleting the provisions above and replace them with the notice 
00031  * and other provisions required by the GPL or the LGPL. If you do not delete 
00032  * the provisions above, a recipient may use your version of this file under 
00033  * the terms of any one of the MPL, the GPL or the LGPL. 
00034  * 
00035  * ***** END LICENSE BLOCK ***** */ 
00036 
00037 #ifndef nsOSHelperAppService_h__
00038 #define nsOSHelperAppService_h__
00039 
00040 // The OS helper app service is a subclass of nsExternalHelperAppService and is implemented on each
00041 // platform. It contains platform specific code for finding helper applications for a given mime type
00042 // in addition to launching those applications.
00043 
00044 #include "nsExternalHelperAppService.h"
00045 #include "nsCExternalHandlerService.h"
00046 #include "nsCOMPtr.h"
00047 
00048 class nsMIMEInfoBeOS;
00049 
00050 class nsOSHelperAppService : public nsExternalHelperAppService
00051 {
00052 public:
00053        nsOSHelperAppService();
00054        virtual ~nsOSHelperAppService();
00055 
00056        already_AddRefed<nsIMIMEInfo> GetMIMEInfoFromOS(const nsACString& aMIMEType, const nsACString& aFileExt, PRBool *aFound);
00057 
00058        // override nsIExternalProtocolService methods
00059        NS_IMETHOD ExternalProtocolHandlerExists(const char * aProtocolScheme, PRBool * aHandlerExists);
00060        nsresult LoadUriInternal(nsIURI * aURL);
00061 
00062 protected:
00063        nsresult SetMIMEInfoForType(const char *aMIMEType, nsMIMEInfoBeOS **_retval);
00064        nsresult GetMimeInfoFromExtension(const char *aFileExt, nsMIMEInfoBeOS **_retval);
00065        nsresult GetMimeInfoFromMIMEType(const char *aMIMEType, nsMIMEInfoBeOS **_retval);
00066 };
00067 
00068 #endif // nsOSHelperAppService_h__