/*++ Copyright (c) 1999 Microsoft Corporation Module Name: Copy.hxx Abstract: Declaration of VSS_OBJECT_PROP_Copy Adi Oltean [aoltean] 08/31/1999 Revision History: Name Date Comments aoltean 08/31/1999 Created aoltean 09/09/1999 dss -> vss aoltean 09/13/1999 Moved into inc and keep only the VSS_OBJECT_PROP_Copy. Renamed into copy.hxx aoltean 09/20/1999 Adding methods for creating the snapshot, snapshot set, provider and volume property structures. Also VSS_OBJECT_PROP_Copy renamed to VSS_OBJECT_PROP_Manager. aoltean 09/21/1999 Renaming back VSS_OBJECT_PROP_Manager to VSS_OBJECT_PROP_Copy. Moving the CreateXXX into VSS_OBJECT_PROP_Ptr::InstantiateAsXXX aoltean 12/16/1999 Adding specialized copyXXX methods aoltean 03/27/2000 Adding writer support. aoltean 03/05/2001 Adding support for management objects --*/ #ifndef __VSS_COPY_HXX__ #define __VSS_COPY_HXX__ #if _MSC_VER > 1000 #pragma once #endif //////////////////////////////////////////////////////////////////////// // Standard foo for file name aliasing. This code block must be after // all includes of VSS header files. // #ifdef VSS_FILE_ALIAS #undef VSS_FILE_ALIAS #endif #define VSS_FILE_ALIAS "INCCOPYH" // //////////////////////////////////////////////////////////////////////// // Include some headers #include "vss.h" #include "vsmgmt.h" // // This class is used as a template parameter in CComEnumOnSTL for an VSS_OBJECT_PROP array element // class VSS_OBJECT_PROP_Copy { // Static Operations needed by ATL. // VSS_OBJECT_PROP_Copy is designed to act as a Copy class in CComEnumOnSTL template instantiation. public: static HRESULT copySnapshot( VSS_SNAPSHOT_PROP* lhs, VSS_SNAPSHOT_PROP* rhs); static HRESULT copyProvider( VSS_PROVIDER_PROP* lhs, VSS_PROVIDER_PROP* rhs); static HRESULT copy(VSS_OBJECT_PROP* lhs, VSS_OBJECT_PROP* rhs); static void init(VSS_OBJECT_PROP*); static void destroy(VSS_OBJECT_PROP*); }; // // This class is used as a template parameter in CComEnumOnSTL for an VSS_MGMT_OBJECT_PROP array element // class VSS_MGMT_OBJECT_PROP_Copy { // Static Operations needed by ATL. // VSS_OBJECT_PROP_Copy is designed to act as a Copy class in CComEnumOnSTL template instantiation. public: static HRESULT copyVolume( VSS_VOLUME_PROP* lhs, VSS_VOLUME_PROP* rhs); static HRESULT copyDiffVolume( VSS_DIFF_VOLUME_PROP* lhs, VSS_DIFF_VOLUME_PROP* rhs); static HRESULT copyDiffArea( VSS_DIFF_AREA_PROP* lhs, VSS_DIFF_AREA_PROP* rhs); static HRESULT copy(VSS_MGMT_OBJECT_PROP* lhs, VSS_MGMT_OBJECT_PROP* rhs); static void init(VSS_MGMT_OBJECT_PROP*); static void destroy(VSS_MGMT_OBJECT_PROP*); }; #endif // __VSS_COPY_HXX__