windows-nt/Source/XPSP1/NT/base/fs/hsm/rms/server/rmslocat.h
2020-09-26 16:20:57 +08:00

85 lines
2.6 KiB
C++

/*++
© 1998 Seagate Software, Inc. All rights reserved
Module Name:
RmsLocat.h
Abstract:
Declaration of the CRmsLocator class
Author:
Brian Dodd [brian] 15-Nov-1996
Revision History:
--*/
#ifndef _RMSLOCAT_
#define _RMSLOCAT_
#include "resource.h" // resource symbols
/*++
Class Name:
CRmsLocator
Class Description:
A CRmsLocator specifies a physical location for a cartridge or
chanager element.
--*/
class CRmsLocator
{
public:
CRmsLocator();
// CRmsLocator
public:
HRESULT GetSizeMax(ULARGE_INTEGER* pSize);
HRESULT Load(IStream* pStream);
HRESULT Save(IStream* pStream, BOOL clearDirty);
HRESULT CompareTo(IUnknown* pCollectable, SHORT* pResult);
HRESULT Test(USHORT *pPassed, USHORT *pFailed);
// IRmsLocator
public:
STDMETHOD(GetLocation)(LONG *pType, GUID *pLibId, GUID *pMediaSetId, LONG *pPos, LONG *pAlt1, LONG *pAlt2, LONG *pAlt3, BOOL *pInvert);
STDMETHOD(SetLocation)(LONG type, GUID libId, GUID mediaSetId, LONG pos, LONG alt1, LONG alt2, LONG alt3, BOOL invert);
public:
enum { // Class specific constants:
//
Version = 1, // Class version, this should be
// incremented each time the
// the class definition changes.
}; //
RmsElement m_type; // The type of element this location
// refers to (i.e. storage, drive).
GUID m_libraryId; // The guid for the Library housing
// the Cartridge.
GUID m_mediaSetId; // The guid for the MediaSet housing
// the Cartridge.
LONG m_position; // The ordinal number of the storage location.
LONG m_alternate1; // First alternate position specifier
// (i.e. building number).
LONG m_alternate2; // Second alternate position specifier
// (i.e. room number).
LONG m_alternate3; // Third alternate position specifier
// (i.e. shelf number).
BOOL m_invert; // If TRUE, the medium is inverted in this
// storage location.
};
#endif // _RMSLOCAT_