2025-04-27 07:49:33 -04:00

318 lines
6.4 KiB
C++

/*
******************************************************************************
******************************************************************************
*
*
* INTEL CORPORATION PROPRIETARY INFORMATION
* This software is supplied under the terms of a license agreement or
* nondisclosure agreement with Intel Corporation and may not be copied or
* disclosed except in accordance with the terms of that agreement.
*
* Copyright (c) 1997, 1998 Intel Corporation All Rights Reserved
******************************************************************************
******************************************************************************
*
*
*
*
*
*/
#if !defined(__MOTOBJECTS_H__)
#define __MOTOBJECTS_H__
#include "dual.h" //dmi engine control header
#define READ_CONN_SP 2
//////////////////////////////////////////////////////////////////
// SMART POINTERS
class CEnumVariantI
{
IEnumVARIANT* p;
public:
CEnumVariantI();
~CEnumVariantI();
ULONG Next( CVariant& );
void Release ( );
operator void**() { return (void**)&p; }
};
/////////////////////////////////////////////////////////////////////////
class CUnknownI
{
LPUNKNOWN p;
public:
CUnknownI();
~CUnknownI();
void GetEnum( CEnumVariantI& Enum );
void Release ( );
operator LPUNKNOWN*() { return &p; }
};
class CDLanguagesI
{
IDualColLanguages* p;
public:
CDLanguagesI() { p = NULL; }
~CDLanguagesI() {Release(); }
void Release ();
void Add ( CString& );
void Remove ( CString& );
operator IDualColLanguages*() { return p; }
operator IDualColLanguages**() { return &p; }
operator void**() { return (void**)&p; }
};
class CDEnumColI
{
public:
IDualColEnumerations* p;
CDEnumColI();
~CDEnumColI() { Release ( );}
void Release ();
operator IDualColEnumerations*() { return p; }
operator IDualColEnumerations**() { return &p; }
operator void**() { return (void**)&p; }
};
class CDAttributeI
{
public:
IDualAttribute* p;
CDAttributeI();
~CDAttributeI() { Release ( ); }
void Release ( );
void CoCreate ( );
void Read ( LPWSTR );
void GetDmiEnum ( CDEnumColI& );
operator IDualAttribute*() { return p; }
operator IDualAttribute**() { return &p; }
operator void**() { return (void**)&p; }
};
class CDAttributesI
{
public:
IDualColAttributes* p;
CDAttributesI() { p = NULL; }
~CDAttributesI() { Release (); }
void Release ( );
void Item ( LONG lAttribute , CDAttributeI& );
operator IDualColAttributes*() { return p;}
operator IDualColAttributes**() { return &p;}
operator void**() { return (void**)&p;}
};
class CDRowI
{
IDualRow* p;
public:
CDRowI() { p = NULL; }
~CDRowI() { if ( p ) { LONG l = p->Release() ; } }
void Release ( ) { if ( p ) p->Release(); p = NULL; }
operator IDualRow*() { return p; }
operator IDualRow**() { return &p; }
operator void**() { return (void**)&p; }
void CoCreate ( );
BOOL Read ( LPWSTR );
void GetAttributes ( CDAttributesI& );
void GetKeys ( CDAttributesI& DASI );
};
class CDRowsI
{
IDualColRows* p;
public:
CDRowsI() { p = NULL; }
~CDRowsI() { Release (); }
void Remove ( CAttributes* );
void Release ( );
void Add ( CDRowI& DRI );
operator IDualColRows*() { return p;}
operator IDualColRows**() { return &p;}
operator void**() {return (void**)&p;}
};
class CDGroupI
{
IDualGroup* p;
public:
CDGroupI() { p = NULL; }
~CDGroupI() { if ( p ) { LONG l = p->Release() ; } }
void QI ( CVariant& );
void CoCreate ( );
void Read ( LPWSTR );
void GetRows ( CDRowsI& );
void GetAttributes ( CDAttributesI& );
operator IDualGroup*() { return p;}
operator IDualGroup**() { return &p;}
operator void**() { return (void**)&p; }
};
class CDGroupsI
{
IDualColGroups* p;
public:
CDGroupsI() { p = NULL; }
~CDGroupsI() { Release(); }
void Release ();
void Add ( CVariant& );
void Remove ( LONG );
operator IDualColGroups*() { return p; }
operator IDualColGroups**() { return &p; }
operator void**() { return (void**)&p; }
};
/////////////////////////////////////////////////////////////////////////
class CDComponentI
{
private:
IDualComponent* p;
public:
CDComponentI() { p = NULL; }
~CDComponentI() { Release ( ); }
void QI ( CVariant& );
void Release ( );
void GetGroups ( CDGroupsI& );
void GetLanguages ( CDLanguagesI& );
void Read ( LPWSTR );
void CoCreate ( );
operator IDualComponent*() { return p;}
operator IDualComponent**() { return &p;}
operator void**() {return (void**)&p;}
};
////////////////////////////////////////////////////////////////////////
class CDComponentsI
{
IDualColComponents* p;
public:
CDComponentsI();
~CDComponentsI();
void GetUnk ( CUnknownI& );
void Remove ( CVariant& );
void Add ( CVariant& );
void Release ( ) {if ( p ) p->Release(); p = NULL;}
operator IDualColComponents*() { return p;}
operator IDualColComponents**() { return &p;}
operator void**() {return (void**)&p;}
};
////////////////////////////////////////////////////////////////////////
class CDEnumI
{
public:
IDualEnumeration* p;
CDEnumI() { p = NULL; }
~CDEnumI() { if ( p ) { LONG l = p->Release() ; } }
operator IDualEnumeration*() { return p;}
operator IDualEnumeration**() { return &p;}
operator void**() {return (void**)&p;}
};
/////////////////////////////////////////////////////////////////////////
class CDMgmtNodeI
{
IDualMgmtNode* p;
public:
CDMgmtNodeI();
~CDMgmtNodeI();
void GetComponents( CDComponentsI& );
void GetLanguage( CBstr& );
void PutLanguage( const BSTR );
void GetVersion( CBstr& );
void Release ( ) {if ( p ) p->Release(); p = NULL;}
void AddComponent ( CVariant& );
void DeleteComponent ( LONG );
void CoCreate ( );
void Read ( LPWSTR );
operator IDualMgmtNode*() { return p;}
operator IDualMgmtNode**() { return &p;}
operator void**() {return (void**)&p;}
};
#endif // __MOTOBJECTS_H__