Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
5.0 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Copyright (c) Microsoft Corporation. All rights reserved.
  4. //
  5. // Contents: Empty Volume Cache Interfaces
  6. //
  7. //----------------------------------------------------------------------------
  8. cpp_quote("//=--------------------------------------------------------------------------=")
  9. cpp_quote("// emptyvc.h")
  10. cpp_quote("//=--------------------------------------------------------------------------=")
  11. cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
  12. cpp_quote("//")
  13. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  14. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  15. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  16. cpp_quote("// PARTICULAR PURPOSE.")
  17. cpp_quote("//=--------------------------------------------------------------------------=")
  18. cpp_quote("")
  19. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  20. cpp_quote("")
  21. cpp_quote("//---------------------------------------------------------------------------=")
  22. cpp_quote("// Empty Volume Cache Interfaces.")
  23. cpp_quote("")
  24. import "objidl.idl";
  25. import "oleidl.idl";
  26. import "oaidl.idl";
  27. interface IEmptyVolumeCache;
  28. interface IEmptyVolumeCache2;
  29. cpp_quote("// IEmptyVolumeCache Flags")
  30. #pragma midl_echo("#define EVCF_HASSETTINGS 0x0001")
  31. #pragma midl_echo("#define EVCF_ENABLEBYDEFAULT 0x0002")
  32. #pragma midl_echo("#define EVCF_REMOVEFROMLIST 0x0004")
  33. #pragma midl_echo("#define EVCF_ENABLEBYDEFAULT_AUTO 0x0008")
  34. #pragma midl_echo("#define EVCF_DONTSHOWIFZERO 0x0010")
  35. #pragma midl_echo("#define EVCF_SETTINGSMODE 0x0020")
  36. #pragma midl_echo("#define EVCF_OUTOFDISKSPACE 0x0040")
  37. cpp_quote("")
  38. cpp_quote("// IEmptyVolumeCacheCallBack Flags")
  39. #pragma midl_echo("#define EVCCBF_LASTNOTIFICATION 0x0001")
  40. cpp_quote("")
  41. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  42. cpp_quote("// Interface Definitions")
  43. //+---------------------------------------------------------------------------
  44. //
  45. // Copyright (c) Microsoft Corporation. All rights reserved.
  46. //
  47. // Contents: IEmptyVolumeCacheCallBack interface definition
  48. //
  49. //----------------------------------------------------------------------------
  50. cpp_quote("#ifndef _LPEMPTYVOLUMECACHECALLBACK_DEFINED")
  51. cpp_quote("#define _LPEMPTYVOLUMECACHECALLBACK_DEFINED")
  52. [
  53. object,
  54. uuid(6E793361-73C6-11D0-8469-00AA00442901),
  55. pointer_default(unique)
  56. ]
  57. interface IEmptyVolumeCacheCallBack : IUnknown
  58. {
  59. typedef [unique] IEmptyVolumeCacheCallBack* LPEMPTYVOLUMECACHECALLBACK;
  60. HRESULT ScanProgress(
  61. [in] DWORDLONG dwlSpaceUsed,
  62. [in] DWORD dwFlags,
  63. [in] LPCWSTR pcwszStatus
  64. );
  65. HRESULT PurgeProgress(
  66. [in] DWORDLONG dwlSpaceFreed,
  67. [in] DWORDLONG dwlSpaceToFree,
  68. [in] DWORD dwFlags,
  69. [in] LPCWSTR pcwszStatus
  70. );
  71. }
  72. cpp_quote("#endif")
  73. //+---------------------------------------------------------------------------
  74. //
  75. // Copyright (c) Microsoft Corporation. All rights reserved.
  76. //
  77. // Contents: IEmptyVolumeCache interface definition
  78. //
  79. //----------------------------------------------------------------------------
  80. cpp_quote("#ifndef _LPEMPTYVOLUMECACHE_DEFINED")
  81. cpp_quote("#define _LPEMPTYVOLUMECACHE_DEFINED")
  82. [
  83. object,
  84. uuid(8FCE5227-04DA-11d1-A004-00805F8ABE06),
  85. pointer_default(unique)
  86. ]
  87. interface IEmptyVolumeCache : IUnknown
  88. {
  89. typedef [unique] IEmptyVolumeCache* LPEMPTYVOLUMECACHE;
  90. [local]
  91. HRESULT Initialize(
  92. [in] HKEY hkRegKey,
  93. [in] LPCWSTR pcwszVolume,
  94. [out] LPWSTR *ppwszDisplayName,
  95. [out] LPWSTR *ppwszDescription,
  96. [out] DWORD *pdwFlags
  97. );
  98. HRESULT GetSpaceUsed(
  99. [out] DWORDLONG *pdwlSpaceUsed,
  100. [in] IEmptyVolumeCacheCallBack *picb
  101. );
  102. HRESULT Purge(
  103. [in] DWORDLONG dwlSpaceToFree,
  104. [in] IEmptyVolumeCacheCallBack *picb
  105. );
  106. HRESULT ShowProperties(
  107. [in] HWND hwnd
  108. );
  109. HRESULT Deactivate(
  110. [out] DWORD *pdwFlags
  111. );
  112. }
  113. cpp_quote("#endif")
  114. //+---------------------------------------------------------------------------
  115. //
  116. // Copyright (c) Microsoft Corporation. All rights reserved.
  117. //
  118. // Contents: IEmptyVolumeCache2 interface definition
  119. //
  120. //----------------------------------------------------------------------------
  121. cpp_quote("#ifndef _LPEMPTYVOLUMECACHE2_DEFINED")
  122. cpp_quote("#define _LPEMPTYVOLUMECACHE2_DEFINED")
  123. [
  124. object,
  125. uuid(02b7e3ba-4db3-11d2-b2d9-00c04f8eec8c),
  126. pointer_default(unique)
  127. ]
  128. interface IEmptyVolumeCache2 : IEmptyVolumeCache
  129. {
  130. typedef [unique] IEmptyVolumeCache2* LPEMPTYVOLUMECACHE2;
  131. [local]
  132. HRESULT InitializeEx(
  133. [in] HKEY hkRegKey,
  134. [in] LPCWSTR pcwszVolume,
  135. [in] LPCWSTR pcwszKeyName,
  136. [out] LPWSTR *ppwszDisplayName,
  137. [out] LPWSTR *ppwszDescription,
  138. [out] LPWSTR *ppwszBtnText,
  139. [out] DWORD *pdwFlags
  140. );
  141. }
  142. cpp_quote("#endif")