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.
|
|
//
// epval.h
//
// CEnumPropertyValBase
//
#ifndef EPVAL_H
#define EPVAL_H
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// SHARED_TFPROPERTYVAL_ARRAY
//
// I would love to make this a class,
// but I can't get the compiler to accept a run-time template arg
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
typedef struct _SHARED_TFPROPERTYVAL_ARRAY { ULONG cRef; ULONG cAttrVals; TF_PROPERTYVAL rgAttrVals[1]; // 1 or more...
} SHARED_TFPROPERTYVAL_ARRAY;
SHARED_TFPROPERTYVAL_ARRAY *SAA_New(ULONG cAttrVals);
inline void SAA_AddRef(SHARED_TFPROPERTYVAL_ARRAY *paa) { paa->cRef++; }
void SAA_Release(SHARED_TFPROPERTYVAL_ARRAY *paa);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// CEnumPropertyValue
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
class CEnumPropertyValue : public IEnumTfPropertyValue, public CComObjectRootImmx { public: CEnumPropertyValue(SHARED_TFPROPERTYVAL_ARRAY *paa) { Dbg_MemSetThisNameID(TEXT("CEnumPropertyValue")); Assert(_ulCur == 0); _paa = paa; SAA_AddRef(paa); } ~CEnumPropertyValue() { if (_paa != NULL) { SAA_Release(_paa); } }
BEGIN_COM_MAP_IMMX(CEnumPropertyValue) COM_INTERFACE_ENTRY(IEnumTfPropertyValue) END_COM_MAP_IMMX()
IMMX_OBJECT_IUNKNOWN_FOR_ATL()
// IEnumTfAppPropertyValue
STDMETHODIMP Clone(IEnumTfPropertyValue **ppEnum); STDMETHODIMP Next(ULONG ulCount, TF_PROPERTYVAL *rgValues, ULONG *pcFetched); STDMETHODIMP Reset(); STDMETHODIMP Skip(ULONG ulCount);
private: CEnumPropertyValue() { Dbg_MemSetThisNameID(TEXT("CEnumPropertyValue")); }
ULONG _ulCur; SHARED_TFPROPERTYVAL_ARRAY *_paa; DBG_ID_DECLARE; };
#endif // EPVAL_H
|