ENV_GetXXX

# ENV_Get*

## 構文

      #include <nitro/env.h>

      BOOL ENV_GetS8( const char* name, s8* retVal );
      BOOL ENV_GetU8( const char* name, u8* retVal );
      BOOL ENV_GetS16( const char* name, s16* retVal );
      BOOL ENV_GetU16( const char* name, u16* retVal );
      BOOL ENV_GetS32( const char* name, s32* retVal );
      BOOL ENV_GetU32( const char* name, u32* retVal );
      BOOL ENV_GetS64( const char* name, s64* retVal );
      BOOL ENV_GetU64( const char* name, u64* retVal );
      BOOL ENV_GetBOOL( const char* name, BOOL* retVal );

      BOOL ENV_GetString( const char* name, char** retPtr );
      BOOL ENV_GetStringAndLength( const char* name, char** retPtr, int* length );
      BOOL ENV_GetBinary( const char* name, void** retPtr );
      BOOL ENV_GetBinaryAndSize( const char* name, void** retPtr, int* size );

## 引数

name | リソース名へのポインタ。ただし、この文字列が "`.`"(ピリオド) から始まる場合はクラス名を省略したものとしてカレントクラスを前に補完してリソース名とします。
length | 文字列リソースを取得する際に、文字列長を格納するためのポインタです。
retVal | 取得したリソースを格納するためのポインタ
retPtr | 取得したリソースへのポインタを格納するためのポインタ
size | バイナリリソースを取得する際に、サイズを格納するためのポインタです。

## 返り値

取得に成功したかどうかを返します。取得できた場合は TRUE となります。指定のリソースが無かった場合は FALSE となります。

## 説明

指定のリソースの値を取得します。

name はりソース名で、これと同じリソース名定義のリソースを検索しますが、name が "`.`" (ピリオド) で始まっている場合は `ENV_SetClass()` でセットしたカレントクラスを前に補完します。

> (例)
> `以下の２つは同じ値を返します。
> //　(1)
> ENV_GetU32( "MYCLASS.U32VALUE", &retVal );
> //　(2)
> ENV_SetClass( "MYCLASS" );
> ENV_GetU32( ".U32VALUE", &retVal );
> `

検索は、システム内に登録されているすべてのリソース配列から行なわれます。同じリソース名のリソースがあった場合、システム内のリストの順に検索していき、先に見つかったほうを返します。

`ENV_GetS8()` は s8 型として値を取得します。リソース定義は `ENV_S8()` で行なってください。
`ENV_GetU8()` は u8 型として値を取得します。リソース定義は `ENV_U8()` で行なってください。
`ENV_GetS16()` は s16 型として値を取得します。リソース定義は `ENV_S16()` で行なってください。
`ENV_GetU16()` は u16 型として値を取得します。リソース定義は `ENV_U16()` で行なってください。
`ENV_GetS32()` は s32 型として値を取得します。リソース定義は `ENV_S32()` で行なってください。
`ENV_GetU32()` は u32 型として値を取得します。リソース定義は `ENV_U32()` で行なってください。
`ENV_GetS64()` は s64 型として値を取得します。リソース定義は `ENV_S64()` で行なってください。
`ENV_GetU64()` は u64 型として値を取得します。リソース定義は `ENV_U64()` で行なってください。
`ENV_GetBOOL()` は BOOL 型として値を取得します。リソース定義は `ENV_BOOL()` で行なってください。取得値は必ず TRUE か FALSE のどちらかの値になります。(すなわち、格納されている値が TRUE を表す値以外の 非0の値の場合でも TRUE となります)。

取得した値は retVal の示す先に格納されます。値を取得できた場合は、返り値は TRUE となります。取得できない場合は返り値は FALSE となり、retVal の示す先には 0 が代入されます。

`ENV_GetString()` は 文字列へのポインタを char* 型として取得します。リソース定義は `ENV_STRING()` で行なってください。 取得したポインタは retPtr の示す先に格納されます。取得できた場合は TRUE を返しますが、取得できない場合は FALSE を返します。格納される値は NULL です。`ENV_GetStringAndLength()` は `ENV_GetString()` に加え、文字列長を length の示す先に格納します。

`ENV_GetBinary()` は バイナリデータへのポインタを void* 型として取得します。リソース定義は `ENV_BINARY()` で行なってください。取得したポインタは retPtr の示す先に格納されます。取得できた場合は TRUE を返しますが、取得できない場合は FALSE を返します。格納される値は NULL です。`ENV_GetBinaryAndSize()` は `ENV_GetBinary()` に加え、バイナリデータサイズを size に格納します。

## 参照

`ENV_Init, ENV_GetSize, ENV_GetType, ENV_SetClass`

## 履歴

2008/10/29 誤記の修正
2005/08/29 関数名記述ミス修正
2005/08/23 リソース値の取得方法を変更
2005/08/16 初版