windows-nt/Source/XPSP1/NT/base/wmi/tests/umtrprov/structurewrappers.h

84 lines
2.5 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
// StructureWrappers.h: interface for the CStructureWrappers class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_STRUCTUREWRAPPERS_H__138A24E0_ED34_11D2_804A_009027345EE2__INCLUDED_)
#define AFX_STRUCTUREWRAPPERS_H__138A24E0_ED34_11D2_804A_009027345EE2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CPersistor;
class CEventTraceProperties;
// Need to be declared before seen in class. Well, duh!
t_ostream& operator<<
(t_ostream &ros,const CEventTraceProperties &r);
t_istream& operator>>
(t_istream &ris,CEventTraceProperties &r);
// The general methodology used here may seem clunky to
// a C programmer.
// If you want to serialize an existing
// EVENT_TRACE_PROPERTIES instance use the Constructor
// "CEventTraceProperties(PEVENT_TRACE_PROPERTIES pProps)"
// to create a CEventTraceProperties instance, call
// Persist, and then destroy the CEventTraceProperties
// instance.
// If you want to de-deserialize an instance call the
// Constructor "CEventTraceProperties()", call Persist,
// call GetEventTracePropertiesInstance, then destroy the
// CEventTraceProperties instance.
// The copy constructor and assignment operators are included
// only for completeness and it is anticipated that they
// will not be used.
// Using Persist for de-serialization assumes you have a valid
// stream which contains a serialized instance.
class CEventTraceProperties
{
private:
friend t_ostream& operator<<
(t_ostream &ros,const CEventTraceProperties &r);
friend t_istream& operator>>
(t_istream &ris,CEventTraceProperties &r);
friend class CPersistor;
public:
CEventTraceProperties();
// This constructor creates a new EVENT_TRACE_PROPERTIES
// instance.
CEventTraceProperties(PEVENT_TRACE_PROPERTIES pProps);
virtual ~CEventTraceProperties();
CEventTraceProperties(CEventTraceProperties &rhs);
CEventTraceProperties &CEventTraceProperties::operator=
(CEventTraceProperties &rhs);
virtual HRESULT Persist (CPersistor &rPersistor);
bool DeSerializationOK() {return m_bDeSerializationOK;}
// Constructs an new EVENT_TRACE_PROPERTIES instance and
// returns it.
PEVENT_TRACE_PROPERTIES GetEventTracePropertiesInstance();
bool IsNULL() {return m_bIsNULL;}
protected:
bool m_bDeSerializationOK;
bool m_bIsNULL;
void Initialize(PEVENT_TRACE_PROPERTIES pProps);
void InitializeMemberVar(TCHAR *ptszValue, int nVar);
void *m_pVarArray[19];
PEVENT_TRACE_PROPERTIES m_pProps;
};
#endif // !defined(AFX_STRUCTUREWRAPPERS_H__138A24E0_ED34_11D2_804A_009027345EE2__INCLUDED_)