97 lines
3 KiB
C
97 lines
3 KiB
C
|
#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
|