⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registry.h

📁 SEAL是DOS 下的32位保护模式的GUI程序
💻 H
字号:
/******************************************************************
 * SEAL 2.0                                                       *
 * Copyright (c) 1999-2002 SEAL Developers. All Rights Reserved.  *
 *                                                                *
 * Web site: http://sealsystem.sourceforge.net/                   *
 * E-mail (current maintainer): orudge@users.sourceforge.net      *
 ******************************************************************/

/*
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#ifndef _REGISTRY2_H_
#define _REGISTRY2_H_

#ifdef __cplusplus
extern "C" {
#endif

typedef unsigned int uint;

typedef struct t_key *p_key;

typedef struct t_key {

  char *name;
  char  type;
  uint  size;
  void *data;

  uint   id;

  p_key own; // Owner
  p_key nxt; // Next
  p_key prv; // Prevent
  p_key chl; // Child

} t_key;

// <Only for 0.x compatibility>
typedef struct t_registry_search *p_registry_search;
typedef struct t_registry_search
{
  p_key key;
  char *parent_name;
  char *name;
} t_registry_search;
// </>

#define RE_SUCCESS              0   // no error
#define RE_KEY_NOT_FOUND        1   // key not found
#define RE_PATH_NOT_FOUND       2   // path in registry not found
#define RE_READ_ONLY_KEY        3   // tried to write on a read-only key
#define RE_NO_KEY_SPECIFIED     4   // no key has specified
#define RE_ROOT_KEY_SPECIFIED   5   // tried to write/delete a root key
#define RE_UNKOWN               6   // unknown error

#define KEY_BYTE      1
#define KEY_SMALL     2
#define KEY_INTEGER   3
#define KEY_BIG       4
#define KEY_FLOAT     5
#define KEY_TEXT      6
#define KEY_DATA      7
#define KEY_LINK      8

#define REGISTRY_MAGIC 0x47455253 // "SREG"

#define registry_file "registry.dat"

extern p_key rootkey;

p_key found_key_in ( p_key o, char * name, char lnk );
p_key found_key_ex ( char * name, char lnk );
p_key found_key ( char * name );
char key_exists ( char * name );
char create_key ( char * parent, char * name );
void free_key ( p_key o );
char delete_key_ex ( p_key o );
char delete_key ( char * name );
char set_key_data ( char *name, char type, uint size, void *data );
char get_key_data ( char *name, char *type, uint *size, void **data );
char *key_in_path ( char *path, char *key );
uint make_key_id ( p_key o, uint id );
void write_key ( FILE *f, p_key o );
void write_registry ( void );
void read_key ( FILE *f, p_key o );
char read_registry ( void );
void make_registry ( void );
char free_registry ( void );

char set_key ( char *key, char *text );
char set_key_byte(char *key, unsigned char b);
char set_key_small(char *key, short s);
char set_key_integer(char *key, long i);
char set_key_big(char *key, long long big);
char set_key_float(char *key, float f);
char set_key_link(char*key,p_key lnk);

char *get_key ( char *key );
unsigned char get_key_byte ( char *key );
short get_key_small ( char *key );
long get_key_integer ( char *key );
long long get_key_big ( char *key );
float get_key_float ( char *key );

char reg_find_first(char *path, p_registry_search info);
char reg_find_next(p_registry_search info);

char *key_full_name ( p_key o );
char *key_owner_full_name ( char* key );
char read_reg_file ( char * file, char show );

void registry_init ( void );
void registry_done ( void );

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -