shell32: Avoid leaks and add parameter checks in SHCreateShellFolderView[Ex].
[wine.git] / dlls / mapi32 / util.h
blobe8a524173f75f272b6374360ffe0ae28ae7ac316
1 /*
2 * MAPI utility header file
4 * Copyright 2009 Owen Rudge for CodeWeavers
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.
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.
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
21 #ifndef _MAPI_UTIL_H
23 #define _MAPI_UTIL_H
25 #include <mapi.h>
26 #include <mapix.h>
28 extern void load_mapi_providers(void) DECLSPEC_HIDDEN;
29 extern void unload_mapi_providers(void) DECLSPEC_HIDDEN;
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;
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;
65 extern MAPI_FUNCTIONS mapiFunctions DECLSPEC_HIDDEN;
66 extern HINSTANCE hInstMAPI32 DECLSPEC_HIDDEN;
68 #endif