update dev300-m58
[ooovba.git] / shell / source / win32 / simplemail / simplemapi.hxx
blobc79e53162f3d72225c9bc3d6c8c9532037a79c36
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: simplemapi.hxx,v $
10 * $Revision: 1.6 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef INCLUDED_SIMPLEMAPI_HXX
32 #define INCLUDED_SIMPLEMAPI_HXX
34 #define WIN32_LEAN_AND_MEAN
35 #if defined _MSC_VER
36 #pragma warning(push, 1)
37 #endif
38 #include <windows.h>
39 #include <mapi.h>
40 #ifndef __MINGW32__
41 #include <mapix.h>
42 #endif
43 #if defined _MSC_VER
44 #pragma warning(pop)
45 #endif
47 class CSimpleMapi
49 public:
50 /**
51 @throws std::runtime_error
52 if either the mapi32.dll could not be loaded at all
53 or necessary function exports are missing
55 CSimpleMapi(); // throws std::runtime_error;
57 ~CSimpleMapi();
59 ULONG MAPILogon(
60 ULONG ulUIParam,
61 LPTSTR lpszProfileName,
62 LPTSTR lpszPassword,
63 FLAGS flFlags,
64 ULONG ulReserved,
65 LPLHANDLE lplhSession );
67 ULONG MAPILogoff(
68 LHANDLE lhSession,
69 ULONG ulUIParam,
70 FLAGS flFlags,
71 ULONG ulReserved );
73 ULONG MAPISendMail(
74 LHANDLE lhSession,
75 ULONG ulUIParam,
76 lpMapiMessage lpMessage,
77 FLAGS flFlags,
78 ULONG ulReserved );
80 private:
81 HMODULE m_hMapiDll;
82 LPMAPILOGON m_lpfnMapiLogon;
83 LPMAPILOGOFF m_lpfnMapiLogoff;
84 LPMAPISENDMAIL m_lpfnMapiSendMail;
87 #endif