Leaked source code of windows server 2003
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.

121 lines
2.7 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1997 - 1999
  6. //
  7. // File: volclean.h
  8. //
  9. //--------------------------------------------------------------------------
  10. #ifndef _VOLFREE_H_
  11. #define _VOLFREE_H_
  12. #include <windows.h>
  13. #include <emptyvc.h>
  14. #include <initguid.h>
  15. #include <stdio.h>
  16. #define Trace(x)
  17. // {E3BF1126-BA29-4850-AF33-5BDB654F4774}
  18. DEFINE_GUID(CLSID_WebDavVolumeCleaner,
  19. 0xE3BF1126, 0xBA29, 0x4850,
  20. 0xAF, 0x33, 0x5B, 0xDB,
  21. 0x65, 0x4F, 0x47, 0x74
  22. );
  23. STDAPI_(void) DllAddRef(void);
  24. STDAPI_(void) DllRelease(void);
  25. class CWebDavCleaner : public IEmptyVolumeCache2
  26. {
  27. LONG m_cRef;
  28. DWORDLONG m_dwlUsedSpace;
  29. DWORD m_dwPercent;
  30. BOOL m_fScheduled;
  31. BOOL m_fFilesToDelete;
  32. PWSTR m_szVolume;
  33. public:
  34. CWebDavCleaner()
  35. : m_cRef(1),
  36. m_dwlUsedSpace(0),
  37. m_fScheduled(FALSE),
  38. m_fFilesToDelete(FALSE),
  39. m_dwPercent(90),
  40. m_szVolume(NULL)
  41. {
  42. Trace(L"CWebDavCleaner::CWebDavCleaner");
  43. ::DllAddRef();
  44. }
  45. ~CWebDavCleaner()
  46. {
  47. Trace(L"CWebDavCleaner::~CWebDavCleaner");
  48. if (m_szVolume) {
  49. delete [] m_szVolume;
  50. m_szVolume = NULL;
  51. }
  52. ::DllRelease();
  53. }
  54. static HRESULT WINAPI CreateInstance(REFIID riid, LPVOID *ppv);
  55. //
  56. // IUnknown methods
  57. //
  58. STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *);
  59. STDMETHODIMP_(ULONG) AddRef();
  60. STDMETHODIMP_(ULONG) Release();
  61. //
  62. // IEmptyVolumeCache methods
  63. //
  64. STDMETHODIMP Initialize(HKEY hkRegKey,
  65. LPCWSTR pcwszVolume,
  66. LPWSTR *ppwszDisplayName,
  67. LPWSTR *ppwszDescription,
  68. LPDWORD pdwFlags
  69. );
  70. STDMETHODIMP GetSpaceUsed(DWORDLONG *pdwlSpaceUsed,
  71. LPEMPTYVOLUMECACHECALLBACK picb
  72. );
  73. STDMETHODIMP Purge(DWORDLONG dwlSpaceToFree,
  74. LPEMPTYVOLUMECACHECALLBACK picb
  75. );
  76. STDMETHODIMP ShowProperties(HWND hwnd);
  77. STDMETHODIMP Deactivate(LPDWORD pdwFlags);
  78. //
  79. // IEmptyVolumeCache2 methods
  80. //
  81. STDMETHODIMP InitializeEx(HKEY hkRegKey,
  82. LPCWSTR pcwszVolume,
  83. LPCWSTR pcwszKeyName,
  84. LPWSTR *ppwszDisplayName,
  85. LPWSTR *ppwszDescription,
  86. LPWSTR *ppwszBtnText,
  87. LPDWORD pdwFlags
  88. );
  89. private:
  90. VOID pToUpperCase(IN PWSTR sz)
  91. {
  92. for (UINT i = 0; i < wcslen(sz); i++) {
  93. if ((sz[i] >= L'a') && (sz[i] <= L'z')) {
  94. sz[i] += L'A' - L'a';
  95. }
  96. }
  97. }
  98. };
  99. #endif // _VOLFREE_H_