Source code of Windows XP (NT5)
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.

84 lines
2.6 KiB

  1. /*++
  2. 1998 Seagate Software, Inc. All rights reserved
  3. Module Name:
  4. RmsLocat.h
  5. Abstract:
  6. Declaration of the CRmsLocator class
  7. Author:
  8. Brian Dodd [brian] 15-Nov-1996
  9. Revision History:
  10. --*/
  11. #ifndef _RMSLOCAT_
  12. #define _RMSLOCAT_
  13. #include "resource.h" // resource symbols
  14. /*++
  15. Class Name:
  16. CRmsLocator
  17. Class Description:
  18. A CRmsLocator specifies a physical location for a cartridge or
  19. chanager element.
  20. --*/
  21. class CRmsLocator
  22. {
  23. public:
  24. CRmsLocator();
  25. // CRmsLocator
  26. public:
  27. HRESULT GetSizeMax(ULARGE_INTEGER* pSize);
  28. HRESULT Load(IStream* pStream);
  29. HRESULT Save(IStream* pStream, BOOL clearDirty);
  30. HRESULT CompareTo(IUnknown* pCollectable, SHORT* pResult);
  31. HRESULT Test(USHORT *pPassed, USHORT *pFailed);
  32. // IRmsLocator
  33. public:
  34. STDMETHOD(GetLocation)(LONG *pType, GUID *pLibId, GUID *pMediaSetId, LONG *pPos, LONG *pAlt1, LONG *pAlt2, LONG *pAlt3, BOOL *pInvert);
  35. STDMETHOD(SetLocation)(LONG type, GUID libId, GUID mediaSetId, LONG pos, LONG alt1, LONG alt2, LONG alt3, BOOL invert);
  36. public:
  37. enum { // Class specific constants:
  38. //
  39. Version = 1, // Class version, this should be
  40. // incremented each time the
  41. // the class definition changes.
  42. }; //
  43. RmsElement m_type; // The type of element this location
  44. // refers to (i.e. storage, drive).
  45. GUID m_libraryId; // The guid for the Library housing
  46. // the Cartridge.
  47. GUID m_mediaSetId; // The guid for the MediaSet housing
  48. // the Cartridge.
  49. LONG m_position; // The ordinal number of the storage location.
  50. LONG m_alternate1; // First alternate position specifier
  51. // (i.e. building number).
  52. LONG m_alternate2; // Second alternate position specifier
  53. // (i.e. room number).
  54. LONG m_alternate3; // Third alternate position specifier
  55. // (i.e. shelf number).
  56. BOOL m_invert; // If TRUE, the medium is inverted in this
  57. // storage location.
  58. };
  59. #endif // _RMSLOCAT_