oleaut32: Use a saner calling convention for the marshaller asm thunks.
[wine] / dlls / mapi32 / util.h
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