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.
 
 
 
 
 
 

125 lines
3.0 KiB

/*++
Copyright (c) 1999 Microsoft Corporation
Abstract:
@doc
@module Snapshot.hxx | Declarations used by the Software Snapshot interface
@end
Author:
Adi Oltean [aoltean] 07/30/1999
Revision History:
Name Date Comments
aoltean 07/30/1999 Created.
aoltean 09/09/1999 dss->vss
--*/
#ifndef __VSSW_SNAPSHOT_HXX__
#define __VSSW_SNAPSHOT_HXX__
#if _MSC_VER > 1000
#pragma once
#endif
/////////////////////////////////////////////////////////////////////////////
// Classes
//
// @class CVsSoftwareSnapshot | IVssSnapshot implementation
//
// @index method | IVssSnapshot
// @doc IVssSnapshot
//
class ATL_NO_VTABLE CVsSoftwareSnapshot :
public CComObjectRoot,
public IVssSnapshot
{
// Constructors/ destructors
public:
CVsSoftwareSnapshot();
~CVsSoftwareSnapshot();
// ATL stuff
private:
DECLARE_REGISTRY_RESOURCEID(IDR_SWPRV)
BEGIN_COM_MAP(CVsSoftwareSnapshot)
COM_INTERFACE_ENTRY(IVssSnapshot)
END_COM_MAP()
// Operations
public:
static HRESULT CreateInstance(
IN CVssQueuedSnapshot* pQSnap,
OUT IUnknown** ppSnapItf,
IN const IID iid = IID_IVssSnapshot
);
// Ovverides
public:
//
// interface IVssSnapshot
//
STDMETHOD(GetID)(
OUT VSS_ID* pSnapshotId
);
STDMETHOD(GetDevice)(
OUT VSS_PWSZ* ppwszSnapshotDeviceName
);
STDMETHOD(GetOriginalVolumeName)(
OUT VSS_PWSZ* ppwszVolumeName
);
STDMETHOD(GetAttributes)(
OUT LONG* plAttributes
);
STDMETHOD(GetCustomProperty)(
IN VSS_PWSZ pwszPropertyName,
OUT VARIANT* pPropertyValue
);
STDMETHOD(SetCustomProperty)(
IN VSS_PWSZ pwszPropertyName,
IN VARIANT PropertyValue
);
STDMETHOD(GetProperties)(
IN LONG lMask,
OUT PVSS_SNAPSHOT_PROP pProp
);
STDMETHOD(SetAttributes)(
IN ULONG lNewAttributes,
IN ULONG lBitsToChange // Mask of bits to be changed
);
STDMETHOD(SetProperties)(
IN LONG lMask,
IN PVSS_SNAPSHOT_PROP pProp
);
// Data members
protected:
CComPtr<CVssQueuedSnapshot> m_ptrQueuedSnapshot; // Release called automatically at destruction time
// Critical section or avoiding race between tasks
CComCriticalSection m_cs;
};
#endif // __VSSW_SNAPSHOT_HXX__