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

121 lines
3.7 KiB
C++

/*++
© 1998 Seagate Software, Inc. All rights reserved
Module Name:
RmsObjct.h
Abstract:
Declaration of the CRmsComObject class
Author:
Brian Dodd [brian] 15-Nov-1996
Revision History:
--*/
#ifndef _RMSOBJCT_
#define _RMSOBJCT_
#include "resource.h" // resource symbols
/*++
Class Name:
CRmsComObject
Class Description:
A CRmsComObject is the base class for all Rms service COM objects. This
object holds state, security, and error information about an Rms object.
--*/
class CRmsComObject :
public CComDualImpl<IRmsComObject, &IID_IRmsComObject, &LIBID_RMSLib>,
public ISupportErrorInfo
{
// CRmsComObject
public:
CRmsComObject();
HRESULT GetSizeMax(OUT ULARGE_INTEGER* pSize);
HRESULT Load(IN IStream* pStream);
HRESULT Save(IN IStream* pStream, IN BOOL clearDirty);
HRESULT CompareTo( IN IUnknown* pCollectable, OUT SHORT* pResult);
HRESULT Test(OUT USHORT *pPassed, OUT USHORT *pFailed);
// ISupportsErrorInfo
public:
STDMETHOD(InterfaceSupportsErrorInfo)(IN REFIID riid);
// IRmsComObject
public:
STDMETHOD(GetObjectId)(OUT GUID *pObjectId);
STDMETHOD(SetObjectId)(IN GUID objectId);
STDMETHOD(GetObjectType)(OUT LONG *pType);
STDMETHOD(SetObjectType)(IN LONG type);
STDMETHOD(IsEnabled)(void);
STDMETHOD(Enable)();
STDMETHOD(Disable)(IN HRESULT reason);
STDMETHOD(GetState)(OUT LONG *pState);
STDMETHOD(SetState)(IN LONG state);
STDMETHOD(GetStatusCode)(OUT HRESULT *pResult);
STDMETHOD(SetStatusCode)(IN HRESULT result);
STDMETHOD(GetName)(OUT BSTR *pName);
STDMETHOD(SetName)(IN BSTR name);
STDMETHOD(GetDescription)(OUT BSTR *pName);
STDMETHOD(SetDescription)(IN BSTR name);
STDMETHOD(GetPermissions)(OUT SECURITY_DESCRIPTOR *lpPermit);
STDMETHOD(SetPermissions)(IN SECURITY_DESCRIPTOR permit);
STDMETHOD(GetFindBy)(OUT LONG *pFindBy);
STDMETHOD(SetFindBy)(IN LONG findBy);
////////////////////////////////////////////////////////////////////////////////////////
//
// data members
//
protected:
GUID m_objectId; // Unique ID for this object.
RmsObject m_ObjectType; // The type of object.
BOOL m_IsEnabled; // TRUE, if the object is enabled for normal
// processing.
LONG m_State; // The current operating state of the object.
// Varies by object type. See RmsXXXState.
HRESULT m_StatusCode; // S_OK if the object is enabled for normal
// processing, otherwise this holds the
// result code, or reason, associated with
// the disabled object. This result is
// returned whenever normal processing
// on the object is attempted while object
// is disabled.
CWsbBstrPtr m_Name; // Name of the object.
CWsbBstrPtr m_Description; // Description for the object.
SECURITY_DESCRIPTOR m_Permit; // Defines security attributes of the object.
RmsFindBy m_findBy; // Defines the type of CompareTo to perform
// when searching a collection.
////////////////////////////////////////////////////////////////////////////////////////
//
// local methods
//
private:
HRESULT adviseOfStatusChange(void);
};
#endif // _RMSOBJCT_