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.

94 lines
2.8 KiB

  1. /*++
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. Copy.hxx
  5. Abstract:
  6. Declaration of VSS_OBJECT_PROP_Copy
  7. Adi Oltean [aoltean] 08/31/1999
  8. Revision History:
  9. Name Date Comments
  10. aoltean 08/31/1999 Created
  11. aoltean 09/09/1999 dss -> vss
  12. aoltean 09/13/1999 Moved into inc and keep only the VSS_OBJECT_PROP_Copy.
  13. Renamed into copy.hxx
  14. aoltean 09/20/1999 Adding methods for creating the snapshot, snapshot set,
  15. provider and volume property structures.
  16. Also VSS_OBJECT_PROP_Copy renamed to VSS_OBJECT_PROP_Manager.
  17. aoltean 09/21/1999 Renaming back VSS_OBJECT_PROP_Manager to VSS_OBJECT_PROP_Copy.
  18. Moving the CreateXXX into VSS_OBJECT_PROP_Ptr::InstantiateAsXXX
  19. aoltean 12/16/1999 Adding specialized copyXXX methods
  20. aoltean 03/27/2000 Adding writer support.
  21. aoltean 03/05/2001 Adding support for management objects
  22. --*/
  23. #ifndef __VSS_COPY_HXX__
  24. #define __VSS_COPY_HXX__
  25. #if _MSC_VER > 1000
  26. #pragma once
  27. #endif
  28. ////////////////////////////////////////////////////////////////////////
  29. // Standard foo for file name aliasing. This code block must be after
  30. // all includes of VSS header files.
  31. //
  32. #ifdef VSS_FILE_ALIAS
  33. #undef VSS_FILE_ALIAS
  34. #endif
  35. #define VSS_FILE_ALIAS "INCCOPYH"
  36. //
  37. ////////////////////////////////////////////////////////////////////////
  38. // Include some headers
  39. #include "vss.h"
  40. #include "vsmgmt.h"
  41. //
  42. // This class is used as a template parameter in CComEnumOnSTL for an VSS_OBJECT_PROP array element
  43. //
  44. class VSS_OBJECT_PROP_Copy
  45. {
  46. // Static Operations needed by ATL.
  47. // VSS_OBJECT_PROP_Copy is designed to act as a Copy class in CComEnumOnSTL template instantiation.
  48. public:
  49. static HRESULT copySnapshot( VSS_SNAPSHOT_PROP* lhs, VSS_SNAPSHOT_PROP* rhs);
  50. static HRESULT copyProvider( VSS_PROVIDER_PROP* lhs, VSS_PROVIDER_PROP* rhs);
  51. static HRESULT copy(VSS_OBJECT_PROP* lhs, VSS_OBJECT_PROP* rhs);
  52. static void init(VSS_OBJECT_PROP*);
  53. static void destroy(VSS_OBJECT_PROP*);
  54. };
  55. //
  56. // This class is used as a template parameter in CComEnumOnSTL for an VSS_MGMT_OBJECT_PROP array element
  57. //
  58. class VSS_MGMT_OBJECT_PROP_Copy
  59. {
  60. // Static Operations needed by ATL.
  61. // VSS_OBJECT_PROP_Copy is designed to act as a Copy class in CComEnumOnSTL template instantiation.
  62. public:
  63. static HRESULT copyVolume( VSS_VOLUME_PROP* lhs, VSS_VOLUME_PROP* rhs);
  64. static HRESULT copyDiffVolume( VSS_DIFF_VOLUME_PROP* lhs, VSS_DIFF_VOLUME_PROP* rhs);
  65. static HRESULT copyDiffArea( VSS_DIFF_AREA_PROP* lhs, VSS_DIFF_AREA_PROP* rhs);
  66. static HRESULT copy(VSS_MGMT_OBJECT_PROP* lhs, VSS_MGMT_OBJECT_PROP* rhs);
  67. static void init(VSS_MGMT_OBJECT_PROP*);
  68. static void destroy(VSS_MGMT_OBJECT_PROP*);
  69. };
  70. #endif // __VSS_COPY_HXX__