xref: /reactos/dll/win32/mapi32/util.h (revision 4dd96d42)
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