Reactos
1/*
2 * PROJECT: ReactOS Disk Cleanup
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Interface definitions for Disk Cleanup
5 * COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
6 */
7
8cpp_quote("#pragma once")
9
10import "wtypes.idl";
11import "unknwn.idl";
12
13interface IEmptyVolumeCache;
14interface IEmptyVolumeCache2;
15interface IEmptyVolumeCacheCallBack;
16
17
18cpp_quote("// IEmptyVolumeCache flags")
19cpp_quote("#define EVCF_HASSETTINGS 0x0001")
20cpp_quote("#define EVCF_ENABLEBYDEFAULT 0x0002")
21cpp_quote("#define EVCF_REMOVEFROMLIST 0x0004")
22cpp_quote("#define EVCF_ENABLEBYDEFAULT_AUTO 0x0008")
23cpp_quote("#define EVCF_DONTSHOWIFZERO 0x0010")
24cpp_quote("#define EVCF_SETTINGSMODE 0x0020")
25cpp_quote("#define EVCF_OUTOFDISKSPACE 0x0040")
26
27cpp_quote("// IEmptyVolumeCacheCallBack flags")
28cpp_quote("#define EVCCBF_LASTNOTIFICATION 0x0001")
29
30
31[
32 object,
33 uuid(6e793361-73c6-11d0-8469-00aa00442901),
34 pointer_default(unique)
35]
36interface IEmptyVolumeCacheCallBack: IUnknown
37{
38 HRESULT ScanProgress(
39 [in] DWORDLONG dwlSpaceUsed,
40 [in] DWORD dwFlags,
41 [in] LPCWSTR pcwszStatus);
42
43 HRESULT PurgeProgress(
44 [in] DWORDLONG dwlSpaceFreed,
45 [in] DWORDLONG dwlSpaceToFree,
46 [in] DWORD dwFlags,
47 [in] LPCWSTR pcwszStatus);
48}
49
50
51[
52 object,
53 uuid(8fce5227-04da-11d1-a004-00805f8abe06),
54 pointer_default(unique)
55]
56interface IEmptyVolumeCache: IUnknown
57{
58 [local]
59 HRESULT Initialize(
60 [in] HKEY hkRegKey,
61 [in] LPCWSTR pcwszVolume,
62 [out] LPWSTR *ppwszDisplayName,
63 [out] LPWSTR *ppwszDescription,
64 [in, out] DWORD *pdwFlags);
65
66 HRESULT GetSpaceUsed(
67 [out] DWORDLONG *pdwlSpaceUsed,
68 [in] IEmptyVolumeCacheCallBack *picb);
69
70 HRESULT Purge(
71 [in] DWORDLONG dwlSpaceToFree,
72 [in] IEmptyVolumeCacheCallBack *picb);
73
74 HRESULT ShowProperties(
75 [in] HWND hwnd);
76
77 HRESULT Deactivate(
78 [out] DWORD *pdwFlags);
79}
80
81
82[
83 object,
84 uuid(02b7e3ba-4db3-11d2-b2d9-00c04f8eec8c),
85 pointer_default(unique)
86]
87interface IEmptyVolumeCache2: IEmptyVolumeCache
88{
89 [local]
90 HRESULT InitializeEx(
91 [in] HKEY hkRegKey,
92 [in] LPCWSTR pcwszVolume,
93 [in] LPCWSTR pcwszKeyName,
94 [out] LPWSTR *ppwszDisplayName,
95 [out] LPWSTR *ppwszDescription,
96 [out] LPWSTR *ppwszBtnText,
97 [in, out] DWORD *pdwFlags);
98}
99