windows-nt/Source/XPSP1/NT/shell/published/inc/vrsscan.idl
2020-09-26 16:20:57 +08:00

135 lines
3.8 KiB
Plaintext

//****************************************************************************
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: vrsscan.idl
//
// Contents: Interfaces for virus scanning
//
//****************************************************************************
#ifndef DO_NO_IMPORTS
import "objidl.idl";
import "oleidl.idl";
#endif
interface IVirusScanner;
interface IRegisterVirusScanEngine;
interface IVirusScanEngine;
[
uuid(5F47DB70-D9FE-11d0-9564-00609797EA4F), // LIBID_VIRUSSCAN
helpstring("Microsoft Virus Scanning Handlers 1.0"),
lcid(0x0000),
version(1.0)
]
library VIRUSSCAN
{
cpp_quote("// Virus Scan Error codes")
cpp_quote("#define VSCAN_E_NOPROVIDERS _HRESULT_TYPEDEF_(0x800D1001)")
cpp_quote("#define VSCAN_E_CHECKPARTIAL _HRESULT_TYPEDEF_(0x800D1002)")
cpp_quote("#define VSCAN_E_CHECKFAIL _HRESULT_TYPEDEF_(0x800D1003)")
cpp_quote("#define VSCAN_E_DELETEFAIL _HRESULT_TYPEDEF_(0x800D1004)")
cpp_quote("")
cpp_quote("// Virus Scanner Capabilities flags")
cpp_quote("#define VSC_LIKESISTREAM 0x00000001")
cpp_quote("#define VSC_LIKESFILE 0x00000002")
cpp_quote("#define VSC_LIKESHGLOBAL 0x00000004")
cpp_quote("#define VSC_HASMOREINFO 0x00000008")
cpp_quote("")
cpp_quote("// Virus Scan Engine Error codes")
cpp_quote("#define VSE_E_UNSUPPORTEDINPUTTYPE _HRESULT_TYPEDEF_(0x800D2001)")
cpp_quote("#define VSE_E_CHECKFAIL _HRESULT_TYPEDEF_(0x800D2002)")
cpp_quote("")
const USHORT MAX_DESCRIPTION = 128;
const USHORT MAX_URL_LENGTH = 2048;
typedef struct _tagVIRUSINFO
{
DWORD cbSize;
WCHAR wszVendorDescription[MAX_DESCRIPTION];
HICON hVendorIcon;
WCHAR wszVendorContactInfo[MAX_URL_LENGTH];
WCHAR wszVirusName[MAX_DESCRIPTION];
WCHAR wszVirusDescription[MAX_DESCRIPTION];
} VIRUSINFO;
typedef [unique] VIRUSINFO *LPVIRUSINFO;
cpp_quote("")
cpp_quote("#define SFV_DONTDOUI 0x00000002 ")
cpp_quote("#define SFV_DELETE 0x00000004 ")
cpp_quote("#define SFV_WANTVENDORICON 0x00000008 ")
cpp_quote("#define SFV_ENGINE_DOUI 0x00010000 ")
cpp_quote("")
[
local,
object,
uuid(4589BEE0-B4B1-11CF-AAFA-00AA00B6015C) // IID_IVirusScanner
]
interface IVirusScanner: IUnknown
{
HRESULT ScanForVirus(
[in] HWND hWnd,
[in] STGMEDIUM *pstgMedium,
[in] LPWSTR pwszItemDescription,
[in] DWORD dwFlags,
[in, out] LPVIRUSINFO pVirusInfo);
}
cpp_quote("#define REGISTERSCANNER_REREGISTER 1")
[
local,
object,
uuid(0825E060-B961-11CF-AAFA-00AA00B6015C) // IID_IRegisterVirusScanEngine
]
interface IRegisterVirusScanEngine: IUnknown
{
HRESULT RegisterScanEngine(
[in] REFCLSID rclsid,
[in] LPWSTR pwszDescription,
[in] DWORD dwFlags,
[in] DWORD dwReserved,
[in, out] DWORD *pdwCookie);
HRESULT UnRegisterScanEngine(
[in] REFCLSID rclsid,
[in] LPWSTR pwszDescription,
[in] DWORD dwFlags,
[in] DWORD dwReserved,
[in] DWORD dwCookie );
}
[
local,
object,
uuid(083DB180-B4A8-11CF-AAFA-00AA00B6015C) // IID_IVirusScanEngine
]
interface IVirusScanEngine: IUnknown
{
HRESULT ScanForVirus(
[in] HWND hWnd,
[in] STGMEDIUM *pstgMedium,
[in] LPWSTR pwszItemDescription,
[in] DWORD dwFlags,
[in] DWORD dwReserved,
[in, out] LPVIRUSINFO pVirusInfo);
HRESULT DisplayCustomInfo( void );
}
[
uuid(E88E5DE0-BD3E-11CF-AAFA-00AA00B6015C) // CLSID_VirusScan - the standard implementation
]
coclass VirusScan
{
[default] interface IVirusScanner;
}
}