' ########################################################################################
' Microsoft Windows
' File: EmptyVC.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_EmptyVC_PBI)
#DEFINE PBX_EmptyVC_PBI
%EQUATE `EMPTYVC_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/ObjIdl.inc"
#include ONCE "Legacy/COM/OleIdl.inc"
#include ONCE "Legacy/COM/OAIdl.inc"
'//---------------------------------------------------------------------------=
'// Empty Volume Cache Interfaces.
'// IEmptyVolumeCache Flags
%EQUATE `EVCF_HASSETTINGS = &H0001
%EQUATE `EVCF_ENABLEBYDEFAULT = &H0002
%EQUATE `EVCF_REMOVEFROMLIST = &H0004
%EQUATE `EVCF_ENABLEBYDEFAULT_AUTO = &H0008
%EQUATE `EVCF_DONTSHOWIFZERO = &H0010
%EQUATE `EVCF_SETTINGSMODE = &H0020
%EQUATE `EVCF_OUTOFDISKSPACE = &H0040
'// IEmptyVolumeCacheCallBack Flags
%EQUATE `EVCCBF_LASTNOTIFICATION = &H0001
'////////////////////////////////////////////////////////////////////////////
'// Interface Definitions
' ########################################################################################
' IEmptyVolumeCacheCallBack interface
' IID = 6E793361-73C6-11D0-8469-00AA00442901
' Inherited interface = IUnknown
' Minimum operating system: Windows 2000, Millennium, Windows 98
' ########################################################################################
#IF NOT %DEF(%IEmptyVolumeCacheCallBack_INTERFACE_DEFINED)
 %IEmptyVolumeCacheCallBack_INTERFACE_DEFINED = 1
$IID_IEmptyVolumeCacheCallBack = GUID$("{6E793361-73C6-11D0-8469-00AA00442901}")
INTERFACE IEmptyVolumeCacheCallBack $IID_IEmptyVolumeCacheCallBack
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ScanProgress ( ' VTable offset = 12
 BYVAL dwlSpaceUsed AS QUAD
 , BYVAL dwFlags AS DWORD
 , BYREF pcwszStatus AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD PurgeProgress ( ' VTable offset = 16
 BYVAL dwlSpaceFreed AS QUAD
 , BYVAL dwlSpaceToFree AS QUAD
 , BYVAL dwFlags AS DWORD
 , BYREF pcwszStatus AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEmptyVolumeCacheCallBack_INTERFACE_DEFINED__ */
' ########################################################################################
' IEmptyVolumeCache interface
' IID = 8FCE5227-04DA-11D1-A004-00805F8ABE06
' Inherited interface = IUnknown
' Minimum operating system: Windows 2000, Millennium, Windows 98
' ########################################################################################
#IF NOT %DEF(%IEmptyVolumeCache_INTERFACE_DEFINED)
 %IEmptyVolumeCache_INTERFACE_DEFINED = 1
$IID_IEmptyVolumeCache = GUID$("{8FCE5227-04DA-11D1-A004-00805F8ABE06}")
INTERFACE IEmptyVolumeCache $IID_IEmptyVolumeCache
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL hkRegKey AS DWORD
 , BYREF pcwszVolume AS WSTRINGZ
 , BYREF ppwszDisplayName AS DWORD
 , BYREF ppwszDescription AS DWORD
 , BYREF pdwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpaceUsed ( ' VTable offset = 16
 BYREF pdwlSpaceUsed AS QUAD
 , BYVAL picb AS IEmptyVolumeCacheCallBack
 ) AS LONG
 ' =====================================================================================
 METHOD Purge ( ' VTable offset = 20
 BYVAL dwlSpaceToFree AS QUAD
 , BYVAL picb AS IEmptyVolumeCacheCallBack
 ) AS LONG
 ' =====================================================================================
 METHOD ShowProperties ( ' VTable offset = 24
 BYVAL hwnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Deactivate ( ' VTable offset = 28
 BYREF pdwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEmptyVolumeCache_INTERFACE_DEFINED__ */
' ########################################################################################
' IEmptyVolumeCache2 interface
' IID = 8FCE5227-04DA-11D1-A004-00805F8ABE06
' Inherited interface = IEmptyVolumeCache
' Minimum operating system: Windows 2000, Millennium, Windows 98
' ########################################################################################
#IF NOT %DEF(%IEmptyVolumeCache2_INTERFACE_DEFINED)
 %IEmptyVolumeCache2_INTERFACE_DEFINED = 1
$IID_IEmptyVolumeCache2 = GUID$("{02B7E3BA-4DB3-11D2-B2D9-00C04F8EEC8C}")
INTERFACE IEmptyVolumeCache2 $IID_IEmptyVolumeCache2
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL hkRegKey AS DWORD
 , BYREF pcwszVolume AS WSTRINGZ
 , BYREF ppwszDisplayName AS DWORD
 , BYREF ppwszDescription AS DWORD
 , BYREF pdwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpaceUsed ( ' VTable offset = 16
 BYREF pdwlSpaceUsed AS QUAD
 , BYVAL picb AS IEmptyVolumeCacheCallBack
 ) AS LONG
 ' =====================================================================================
 METHOD Purge ( ' VTable offset = 20
 BYVAL dwlSpaceToFree AS QUAD
 , BYVAL picb AS IEmptyVolumeCacheCallBack
 ) AS LONG
 ' =====================================================================================
 METHOD ShowProperties ( ' VTable offset = 24
 BYVAL hwnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Deactivate ( ' VTable offset = 28
 BYREF pdwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeEx ( ' VTable offset = 32
 BYVAL hkRegKey AS DWORD
 , BYREF pcwszVolume AS WSTRINGZ
 , BYREF pcwszKeyName AS WSTRINGZ
 , BYREF ppwszDisplayName AS DWORD
 , BYREF ppwszDescription AS DWORD
 , BYREF ppwszBtnText AS DWORD
 , BYREF pdwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEmptyVolumeCache2_INTERFACE_DEFINED__ */
#ENDIF
