/*	
 *	clipreg.h
 *
 *	レジストリテーブル
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2015 Naoyuki Sawa
 *
 *	* Tue Mar 24 02:10:47 JST 2015 Naoyuki Sawa
 *	- 1st リリース。
 *	* Tue Mar 24 21:45:37 JST 2015 Naoyuki Sawa
 *	- REG_open_key(),及び,REG_get_value()に、(keyBody=NULL)を指定しても安全にしました。
 *	  REG_open_key_v()とREG_get_value_v()の処理の大部分を共通化してコード削減しました。
 *	* Thu Mar 26 21:28:16 JST 2015 Naoyuki Sawa
 *	- dRegTblC.exeの出力データ構造を変更した事に伴い、当モジュールも大幅に変更しました。
 *	  前回まではキー配列をリニアサーチしていましたが、今後はバイナリサーチになりました。
 *	  詳細は、「clip/tool/dRegTblC/winapp.h」の同日のコメントを参照してください。
 *	* Sat Apr 11 13:20:40 JST 2015 Naoyuki Sawa
 *	 - 文字列のデータタイプを追加し、大幅な変更を行いました。
 *	   変更前のコードを参照するには、前回のアーカイブを参照してください。
 */
#ifndef __CLIP_REG_H__
#define __CLIP_REG_H__
/****************************************************************************
 *	基本的な関数
 ****************************************************************************/
const unsigned char* REG_open_key(const unsigned char* keyBody, int keyName);
int REG_get_value(const unsigned char* keyBody, int valueName);
const char* REG_get_string(const unsigned char* keyBody, int stringName);
/****************************************************************************
 *	ユーティリティ関数
 ****************************************************************************/
const unsigned char* REG_open_key_l(const unsigned char* keyBody, ...);
const unsigned char* REG_open_key_a(const unsigned char* keyBody, va_list ap);
const unsigned char* REG_open_key_v(const unsigned char* keyBody, const int* names/*[[[[keyName,]keyName],…,]keyName,]-1*/);
/*--------------------------------------------------------------------------*/
int REG_get_value_l(const unsigned char* keyBody, ...);
int REG_get_value_a(const unsigned char* keyBody, va_list ap);
int REG_get_value_v(const unsigned char* keyBody, const int* names/*[[[[keyName,]keyName],…,]valueName,]-1*/);
/*--------------------------------------------------------------------------*/
const char* REG_get_string_l(const unsigned char* keyBody, ...);
const char* REG_get_string_a(const unsigned char* keyBody, va_list ap);
const char* REG_get_string_v(const unsigned char* keyBody, const int* names/*[[[[keyName,]keyName],…,]stringName,]-1*/);
#endif//__CLIP_REG_H__
