1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _MSOAV_H
7 #define _MSOAV_H
8 
9 typedef struct _msoavinfo {
10   int cbsize;
11   struct {
12     ULONG fPath:1;
13     ULONG fReadOnlyRequest:1;
14     ULONG fInstalled:1;
15     ULONG fHttpDownload:1;
16   };
17   HWND hwnd;
18   union {
19     WCHAR *pwzFullPath;
20     LPSTORAGE lpstg;
21   } u;
22   WCHAR *pwzHostName;
23   WCHAR *pwzOrigURL;
24 } MSOAVINFO;
25 
26 DEFINE_GUID(IID_IOfficeAntiVirus,0x56ffcc30,0xd398,0x11d0,0xb2,0xae,0x0,0xa0,0xc9,0x8,0xfa,0x49);
27 DEFINE_GUID(CATID_MSOfficeAntiVirus,0x56ffcc30,0xd398,0x11d0,0xb2,0xae,0x0,0xa0,0xc9,0x8,0xfa,0x49);
28 
29 #undef INTERFACE
30 #define INTERFACE IOfficeAntiVirus
DECLARE_INTERFACE_(IOfficeAntiVirus,IUnknown)31 DECLARE_INTERFACE_(IOfficeAntiVirus,IUnknown) {
32   BEGIN_INTERFACE
33     STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
34     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
35     STDMETHOD_(ULONG,Release)(THIS) PURE;
36     STDMETHOD_(HRESULT,Scan)(THIS_ MSOAVINFO *pmsoavinfo) PURE;
37 };
38 
39 #ifndef AVVENDOR
40 MSOAPI_(WINBOOL) MsoFAnyAntiVirus(HMSOINST hmsoinst);
41 MSOAPI_(WINBOOL) MsoFDoAntiVirusScan(HMSOINST hmsoinst,MSOAVINFO *msoavinfo);
42 MSOAPI_(void) MsoFreeMsoavStuff(HMSOINST hmsoinst);
43 MSOAPI_(WINBOOL) MsoFDoSecurityLevelDlg(HMSOINST hmsoinst,DWORD msorid,int *pSecurityLevel,WINBOOL *pfTrustInstalled,HWND hwndParent,WINBOOL fShowVirusCheckers,WCHAR *wzHelpFile,DWORD dwHelpId);
44 
45 #define msoedmEnable 1
46 #define msoedmDisable 2
47 #define msoedmDontOpen 3
48 
49 MSOAPI_(int) MsoMsoedmDialog(HMSOINST hmsoinst,WINBOOL fAppIsActive,WINBOOL fHasVBMacros,WINBOOL fHasXLMMacros,void *pvDigSigStore,void *pvMacro,int nAppID,HWND hwnd,const WCHAR *pwtzPath,int iClient,int iSecurityLevel,int *pmsodsv,WCHAR *wzHelpFile,DWORD dwHelpId,HANDLE hFileDLL,WINBOOL fUserControl);
50 
51 #define msoslUndefined 0
52 #define msoslNone 1
53 #define msoslMedium 2
54 #define msoslHigh 3
55 
56 MSOAPI_(int) MsoMsoslGetSL(HMSOINST hmsoinst);
57 MSOAPI_(int) MsoMsoslSetSL(DWORD msorid,HMSOINST hmsoinst);
58 
59 #define msodsvNoMacros 0
60 #define msodsvUnsigned 1
61 
62 #define msodsvPassedTrusted 2
63 #define msodsvFailed 3
64 #define msodsvLowSecurityLevel 4
65 #define msodsvPassedTrustedCert 5
66 #endif
67 
68 #endif
69