windows-nt/Source/XPSP1/NT/net/ias/sdo/sdoias/sdoattribute.h
2020-09-26 16:20:57 +08:00

87 lines
2 KiB
C++

///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999, Microsoft Corp. All rights reserved.
//
// FILE
//
// sdoattribute.h
//
// SYNOPSIS
//
// Declares the class SdoAttribute.
//
// MODIFICATION HISTORY
//
// 03/01/1999 Original version.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef SDOATTRIBUTE_H
#define SDOATTRIBUTE_H
#if _MSC_VER >= 1000
#pragma once
#endif
#include <sdoias.h>
#include "sdoiaspriv.h"
class AttributeDefinition;
///////////////////////////////////////////////////////////////////////////////
//
// CLASS
//
// SdoAttribute
//
// DESCRIPTION
//
// Implements the profile attribute SDO.
//
///////////////////////////////////////////////////////////////////////////////
class SdoAttribute
: public IDispatchImpl< ISdo, &__uuidof(ISdo), &LIBID_SDOIASLib >
{
public:
// Create a new attribute with an empty value.
static HRESULT createInstance(
const AttributeDefinition* definition,
SdoAttribute** newAttr
) throw ();
//////////
// IUnknown
//////////
STDMETHOD_(ULONG, AddRef)();
STDMETHOD_(ULONG, Release)();
STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject);
//////////
// ISdo
//////////
STDMETHOD(GetPropertyInfo)(LONG Id, IUnknown** ppPropertyInfo);
STDMETHOD(GetProperty)(LONG Id, VARIANT* pValue);
STDMETHOD(PutProperty)(LONG Id, VARIANT* pValue);
STDMETHOD(ResetProperty)(LONG Id);
STDMETHOD(Apply)();
STDMETHOD(Restore)();
STDMETHOD(get__NewEnum)(IUnknown** ppEnumVARIANT);
protected:
SdoAttribute(const AttributeDefinition* definition) throw ();
~SdoAttribute() throw ();
public:
const AttributeDefinition* def; // Definition for this attribute type.
VARIANT value; // Value of this instance.
private:
LONG refCount; // Reference count.
// Not implemented
SdoAttribute(const SdoAttribute&);
SdoAttribute& operator=(const SdoAttribute&);
};
#endif // SDOATTRIBUTE_H