|
|
#pragma once
#ifndef _MSOAV_H
#define _MSOAV_H
typedef struct _msoavinfo { int cbsize; //size of this struct
struct { ULONG fPath:1; //when true use pwzFullPath else use lpstg
ULONG fReadOnlyRequest:1; //user requests file to be opened read/only
ULONG fInstalled:1; //the file at pwzFullPath is an installed file
ULONG fHttpDownload:1; //the file at pwzFullPath is a temp file downloaded from http/ftp
}; HWND hwnd; //parent window of the Office9 app
union { WCHAR *pwzFullPath; //full path to the file about to be opened
LPSTORAGE lpstg; //OLE Storage of the doc about to be opened
}u; WCHAR *pwzHostName; // Host Office 9 apps name
WCHAR *pwzOrigURL; // URL of the origin of this downloaded file.
}MSOAVINFO;
// {56FFCC30-D398-11d0-B2AE-00A0C908FA49}
DEFINE_GUID(IID_IOfficeAntiVirus, 0x56ffcc30, 0xd398, 0x11d0, 0xb2, 0xae, 0x0, 0xa0, 0xc9, 0x8, 0xfa, 0x49);
// {56FFCC31-D398-11d0-B2AE-00A0C908FA49}
DEFINE_GUID(CATID_MSOfficeAntiVirus, 0x56ffcc30, 0xd398, 0x11d0, 0xb2, 0xae, 0x0, 0xa0, 0xc9, 0x8, 0xfa, 0x49);
#undef INTERFACE
#define INTERFACE IOfficeAntiVirus
DECLARE_INTERFACE_(IOfficeAntiVirus, IUnknown) { BEGIN_INTERFACE
// *** IUnknown methods ***
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
// *** IOfficeAntiVirus methods ***
STDMETHOD_(HRESULT, Scan)(THIS_ MSOAVINFO *pmsoavinfo ) PURE; };
#ifndef AVVENDOR
MSOAPI_(BOOL) MsoFAnyAntiVirus(HMSOINST hmsoinst); MSOAPI_(BOOL) MsoFDoAntiVirusScan(HMSOINST hmsoinst, MSOAVINFO *msoavinfo); MSOAPI_(void) MsoFreeMsoavStuff(HMSOINST hmsoinst); MSOAPI_(BOOL) MsoFDoSecurityLevelDlg(HMSOINST hmsoinst,DWORD msorid, int *pSecurityLevel, BOOL *pfTrustInstalled, HWND hwndParent, BOOL fShowVirusCheckers, WCHAR *wzHelpFile, DWORD dwHelpId);
//output of the Enable/disable macro (edm) dialog
#define msoedmEnable 1
#define msoedmDisable 2
#define msoedmDontOpen 3
MSOAPI_(int) MsoMsoedmDialog(HMSOINST hmsoinst, BOOL fAppIsActive, BOOL fHasVBMacros, BOOL fHasXLMMacros, void *pvDigSigStore, void *pvMacro, int nAppID, HWND hwnd, const WCHAR *pwtzPath, int iClient, int iSecurityLevel, int *pmsodsv, WCHAR *wzHelpFile, DWORD dwHelpId, HANDLE hFileDLL, BOOL fUserControl);
//Security level
#define msoslUndefined 0
#define msoslNone 1
#define msoslMedium 2
#define msoslHigh 3
MSOAPI_(int) MsoMsoslGetSL(HMSOINST hmsoinst); MSOAPI_(int) MsoMsoslSetSL(DWORD msorid, HMSOINST hmsoinst);
//output of the digital signature verification (dsv)
#define msodsvNoMacros 0
#define msodsvUnsigned 1
// msodsvPassedTrusted is very unfortunately named because it has nothing to do with
// trust - it just means that the doc is signed and the signature matched. Too late
// to change the name now so I'm adding a msodsvPassedTrustedCert to mean the doc was
// signed and cert was trusted.
#define msodsvPassedTrusted 2
#define msodsvFailed 3
#define msodsvLowSecurityLevel 4
#define msodsvPassedTrustedCert 5
#endif //!AVVENDOR
#endif // _MSOAV_H
|