/************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: smplmailsuppl.cxx,v $ * * $Revision: 1.5 $ * * last change: $Author: obo $ $Date: 2006-09-17 01:48:47 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 by Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, CA 94303, USA * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License version 2.1, as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * ************************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_shell.hxx" #ifndef _OSL_DIAGNOSE_H_ #include #endif #ifndef _SMPLMAILSUPPL_HXX_ #include "smplmailsuppl.hxx" #endif #ifndef _SMPLMAILCLIENT_HXX_ #include "smplmailclient.hxx" #endif using com::sun::star::uno::Reference; using com::sun::star::uno::RuntimeException; using com::sun::star::uno::Sequence; using com::sun::star::lang::XServiceInfo; using com::sun::star::system::XSimpleMailClientSupplier; using com::sun::star::system::XSimpleMailClient; using rtl::OUString; using osl::Mutex; using namespace cppu; #define COMP_IMPL_NAME "com.sun.star.sys.shell.SimpleSystemMail" namespace // private { Sequence< OUString > SAL_CALL Component_getSupportedServiceNames() { Sequence< OUString > aRet(1); aRet[0] = OUString::createFromAscii("com.sun.star.sys.shell.SimpleSystemMail"); return aRet; } } // end private namespace CSmplMailSuppl::CSmplMailSuppl() : WeakComponentImplHelper2(m_aMutex) { } CSmplMailSuppl::~CSmplMailSuppl() { } Reference SAL_CALL CSmplMailSuppl::querySimpleMailClient() throw (RuntimeException) { /* We just try to load the MAPI dll as a test if a mail client is available */ Reference xSmplMailClient; HMODULE handle = LoadLibrary("mapi32.dll"); if ((handle != INVALID_HANDLE_VALUE) && (handle != NULL)) { FreeLibrary(handle); xSmplMailClient = Reference(new CSmplMailClient()); } return xSmplMailClient; } // XServiceInfo OUString SAL_CALL CSmplMailSuppl::getImplementationName() throw(RuntimeException) { return OUString::createFromAscii(COMP_IMPL_NAME); } sal_Bool SAL_CALL CSmplMailSuppl::supportsService(const OUString& ServiceName) throw(RuntimeException) { Sequence SupportedServicesNames = Component_getSupportedServiceNames(); for (sal_Int32 n = SupportedServicesNames.getLength(); n--;) if (SupportedServicesNames[n].compareTo(ServiceName) == 0) return sal_True; return sal_False; } Sequence SAL_CALL CSmplMailSuppl::getSupportedServiceNames() throw(RuntimeException) { return Component_getSupportedServiceNames(); }