| IDA SDK

Macros
Find UDT member flags

## Detailed Description

used by 'strmem_flags' parameter to find_udm()

## Macros
#define | STRMEM_MASK 0x000F
#define | STRMEM_OFFSET 0x0000
| get member by offset More...
#define | STRMEM_INDEX 0x0001
| get member by number More...
#define | STRMEM_AUTO 0x0002
| get member by offset if struct, or get member by index if union More...
#define | STRMEM_NAME 0x0003
| get member by name More...
#define | STRMEM_TYPE 0x0004
| get member by type. More...
#define | STRMEM_SIZE 0x0005
| get member by size. More...
#define | STRMEM_MINS 0x0006
| get smallest member by size.
#define | STRMEM_MAXS 0x0007
| get biggest member by size.
#define | STRMEM_LOWBND 0x0008
| get member by offset or the next member (lower bound) More...
#define | STRMEM_NEXT 0x0009
| get next member after the offset More...
#define | STRMEM_VFTABLE 0x10000000
| can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base class
#define | STRMEM_SKIP_EMPTY 0x20000000
| can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. More...
#define | STRMEM_CASTABLE_TO 0x40000000
| can be combined with STRMEM_TYPE: member type must be castable to the specified type
#define | STRMEM_ANON 0x80000000
| can be combined with STRMEM_NAME: look inside anonymous members too. More...
#define | STRMEM_SKIP_GAPS 0x01000000
| can be combined with STRMEM_OFFSET, STRMEM_LOWBND skip gap members

## Macro Definition Documentation

## ◆ STRMEM_OFFSET

#define STRMEM_OFFSET 0x0000

get member by offset

- in: udm->offset - is a member offset in bits

## ◆ STRMEM_INDEX

#define STRMEM_INDEX 0x0001

get member by number

- in: udm->offset - is a member number

## ◆ STRMEM_AUTO

#define STRMEM_AUTO 0x0002

get member by offset if struct, or get member by index if union

- nb: union: index is stored in the udm->offset field!
- nb: struct: offset is in bytes (not in bits)!

## ◆ STRMEM_NAME

#define STRMEM_NAME 0x0003

get member by name

- in: udm->name - the desired member name.

## ◆ STRMEM_TYPE

#define STRMEM_TYPE 0x0004

get member by type.

- in: udm->type - the desired member type. member types are compared with tinfo_t::equals_to()

## ◆ STRMEM_SIZE

#define STRMEM_SIZE 0x0005

get member by size.

- in: udm->size - the desired member size.

## ◆ STRMEM_LOWBND

#define STRMEM_LOWBND 0x0008

get member by offset or the next member (lower bound)

- in: udm->offset - is a member offset in bits

## ◆ STRMEM_NEXT

#define STRMEM_NEXT 0x0009

get next member after the offset

- in: udm->offset - is a member offset in bits

## ◆ STRMEM_SKIP_EMPTY

#define STRMEM_SKIP_EMPTY 0x20000000

can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e.

having zero size) only last empty member can be returned

## ◆ STRMEM_ANON

#define STRMEM_ANON 0x80000000

can be combined with STRMEM_NAME: look inside anonymous members too.