1 /* 2 * MAPI utility header file 3 * 4 * Copyright 2009 Owen Rudge for CodeWeavers 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21 #ifndef _MAPI_UTIL_H 22 23 #define _MAPI_UTIL_H 24 25 #include <mapi.h> 26 #include <mapix.h> 27 28 extern void load_mapi_providers(void) DECLSPEC_HIDDEN; 29 extern void unload_mapi_providers(void) DECLSPEC_HIDDEN; 30 31 typedef struct MAPI_FUNCTIONS { 32 LPMAPIADDRESS MAPIAddress; 33 LPMAPIDELETEMAIL MAPIDeleteMail; 34 LPMAPIDETAILS MAPIDetails; 35 LPMAPIFINDNEXT MAPIFindNext; 36 LPMAPIINITIALIZE MAPIInitialize; 37 LPMAPILOGOFF MAPILogoff; 38 LPMAPILOGON MAPILogon; 39 LPMAPILOGONEX MAPILogonEx; 40 LPMAPIREADMAIL MAPIReadMail; 41 LPMAPIRESOLVENAME MAPIResolveName; 42 LPMAPISAVEMAIL MAPISaveMail; 43 LPMAPISENDMAIL MAPISendMail; 44 LPMAPISENDMAILW MAPISendMailW; 45 LPMAPISENDDOCUMENTS MAPISendDocuments; 46 LPMAPIUNINITIALIZE MAPIUninitialize; 47 48 VOID (WINAPI *DeinitMapiUtil) (void); 49 HRESULT (WINAPI *DllCanUnloadNow) (void); 50 HRESULT (WINAPI *DllGetClassObject) (REFCLSID, REFIID, LPVOID *); 51 BOOL (WINAPI *FGetComponentPath) (LPCSTR, LPCSTR, LPSTR, DWORD, BOOL); 52 HRESULT (WINAPI *MAPIAdminProfiles) (ULONG, LPPROFADMIN *); 53 SCODE (WINAPI *MAPIAllocateBuffer) (ULONG, LPVOID *); 54 SCODE (WINAPI *MAPIAllocateMore) (ULONG, LPVOID, LPVOID *); 55 ULONG (WINAPI *MAPIFreeBuffer) (LPVOID); 56 LPMALLOC (WINAPI *MAPIGetDefaultMalloc) (void); 57 HRESULT (WINAPI *MAPIOpenLocalFormContainer) (LPVOID *); 58 HRESULT (WINAPI *HrThisThreadAdviseSink) (LPMAPIADVISESINK, LPMAPIADVISESINK*); 59 HRESULT (WINAPI *HrQueryAllRows) (LPMAPITABLE, LPSPropTagArray, LPSRestriction, LPSSortOrderSet, LONG, LPSRowSet *); 60 HRESULT (WINAPI *OpenStreamOnFile) (LPALLOCATEBUFFER, LPFREEBUFFER, ULONG, LPWSTR, LPWSTR, LPSTREAM *); 61 SCODE (WINAPI *ScInitMapiUtil) (ULONG ulReserved); 62 HRESULT (WINAPI *WrapCompressedRTFStream) (LPSTREAM, ULONG, LPSTREAM *); 63 } MAPI_FUNCTIONS; 64 65 extern MAPI_FUNCTIONS mapiFunctions DECLSPEC_HIDDEN; 66 extern HINSTANCE hInstMAPI32 DECLSPEC_HIDDEN; 67 68 #endif 69