コード例 #1
0
pwr_sAttrRef wb_adrep::aref()
{
  pwr_sAttrRef aref = pwr_cNAttrRef;

  aref.Objid = pwr_cNObjid;
  aref.Body = bix();
  aref.Offset = m_offset;
  aref.Size = m_size;

  if ( m_flags & PWR_MASK_POINTER)
    aref.Flags.b.Indirect = 1;

  if ( m_flags & PWR_MASK_ARRAY)
    aref.Flags.b.Array = 1;

  if ( cdh_tidIsCid( m_tid))
    aref.Flags.b.ObjectAttr = 1;

  if ( m_flags & PWR_MASK_CASTATTR)
    aref.Flags.b.CastAttr = 1;
  if ( m_flags & PWR_MASK_DISABLEATTR)
    aref.Flags.b.DisableAttr = 1;


  return aref;
}
コード例 #2
0
ファイル: wb_bdrep.cpp プロジェクト: Strongc/proview
wb_adrep *wb_bdrep::super( pwr_tStatus *sts)
{
  if ( bix() != pwr_eBix_rt) {
    *sts = LDH__NOSUCHATTR;
    return 0;
  }

  wb_orep *orep = m_orep->vrep()->first( sts, m_orep);
  if ( EVEN(*sts)) return 0;

  if ( cdh_NoCaseStrcmp( orep->name(), "Super") != 0) {
    *sts = LDH__NOSUCHATTR;
    orep->ref();
    orep->unref();
    return 0;
  }

  wb_adrep *adrep = new wb_adrep( *orep);
  return adrep;
}