home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 1999 July
/
PCWorld_1999-07_cd.bin
/
602
/
WBPERSON
/
data1.cab
/
SDK_Files
/
C-lang
/
C.L1
/
WBKERNEL.H
< prev
next >
Wrap
C/C++ Source or Header
|
1999-06-09
|
41KB
|
764 lines
/****************************************************************************/
/* wbkernel.h - definice pro komunikaci s jadrem WinBase602 */
/* (C) Janus Drozd, 1992, 93, 94, 95, 96, 97, 98, 99 */
/* verze: 6.0 (32-bit) */
/****************************************************************************/
#ifndef __WBKERNEL_H__
#define __WBKERNEL_H__
#include "general.h"
#include "cdp.h"
/************************* Cisla systemovych tabulek ************************/
#define TAB_TABLENUM 0 /* cislo tabulky tabulek */
#define OBJ_TABLENUM 1 /* cislo tabulky objektu */
#define USER_TABLENUM 2 /* cislo tabulky uzivatelu */
#define SRV_TABLENUM 3 /* cislo tabulky serveru */
#define REPL_TABLENUM 4 /* cislo tabulky replikacnich pravidel */
#define KEY_TABLENUM 5 /* cislo tabulky verejnych klicu */
/**************************** Atribut "DELETED": ****************************/
#define DEL_ATTR_NUM 0 /* cislo atributu "DELETED" */
#define NOT_DELETED 0 /* hodnoty atributu: zaznam neni zrusen */
#define DELETED 1 /* zaznam je zrusen */
#define RECORD_EMPTY 2 /* zaznam je uvolnen */
/*************** Atributy systemovych tabulek TABTAB A OBJTAB ***************/
#define OBJ_NAME_ATR 3 /* Jmeno objektu, STRING delky OBJ_NAME_LEN znaku */
#define OBJ_CATEG_ATR 4 /* Kategorie objektu, atribut typu CHAR */
#define APPL_ID_ATR 5 /* Id aplikace, k niz objekt patri, BINARY delky 12 bajtu */
#define OBJ_DEF_ATR 6 /* Definice objektu, atribut typu Text */
#define OBJ_FLAGS_ATR 7 /* Priznaky objektu, atribut typu SHORT */
/******************************* Kategorie: *********************************/
#define CATEG_TABLE 0 // tabulka
#define CATEG_USER 1 // uzivatel
#define CATEG_VIEW 2 // pohled
#define CATEG_CURSOR 3 // dotaz
#define CATEG_PGMSRC 4 // text programu
#define CATEG_PGMEXE 5 // prelozeny program
#define CATEG_MENU 6 // menu
#define CATEG_APPL 7 // aplikace
#define CATEG_PICT 8 // obrazek
#define CATEG_GROUP 9 // skupina
#define CATEG_ROLE 10 // role
#define CATEG_CONNECTION 11 // ODBC spojeni
#define CATEG_RELATION 12 // relace
#define CATEG_DRAWING 13 // nakres
#define CATEG_GRAPH 14 // graf
#define CATEG_REPLREL 15 // replikacni vztah
#define CATEG_PROC 16 // rutina
#define CATEG_TRIGGER 17 // trigger
#define CATEG_WWW 18 // WWW objekt
#define CATEG_SEQ 20 // sekvence
#define CATEG_SERVER 26 // replikacni server
#define CATEG_MASK 0x7f
#define IS_LINK 0x80 /* spojovaci objekt */
#define CATEG_DIRCUR 27 // otevreny kurzor
/*************************** struktura kernel_info **************************/
typedef struct {
char version[6]; /* ASCIIZ oznaceni verze serveru */
uns16 logged; /* pocet prihlasenych uzivatelu */
uns16 blocksize; /* velikost clusteru */
uns32 freeblocks; /* pocet volnych clusteru v alokacni tabulce */
uns16 frames; /* pocet pametovych ramu */
uns8 fixed_pages; /* pocet ramu s fixovanym obsahem */
uns8 max_users; /* maximalni pocet uzivatelu */
uns8 rtp; /* provozni parametry */
uns32 diskspace; /* mnozstvi volneho mista na disku */
tobjname server_name; /* jmeno serveru */
uns32 local_free_memory; /* volna pamet u klienta */
uns32 remote_free_memory; /* volna pamet na serveru */
BOOL networking; /* sitova prace klienta */
uns16 owned_cursors; /* pocet otevrenych kurzoru klientem */
} kernel_info;
/************** Hodnoty slozky "modtype" v zaznamu "modifrec" ***************/
#define MODSTOP 0
#define MODLEN 2
#define MODIND 3
#define MODINT 4
#define MODPTR 5
#define MODINDPTR 6
typedef struct {
uns8 modtype;
union umoddef {
struct smodstop{ uns16 dummy; } modstop;
struct smodlen { uns16 dummy; } modlen;
struct smodind { uns16 index; } modind;
struct smodint { uns32 start; uns16 size; } modint;
struct smodp { uns8 attr; } modptr;
struct smodindp{ uns16 index; uns8 attr; } modindptr;
} moddef;
} modifrec;
/************************** hodnota typu money ******************************/
typedef struct
{ uns16 money_lo2;
sig32 money_hi4;
} monstr;
/************************* Pristupova prava: ********************************/
#define RIGHT_APPEND 0x04 /* pravo vkladat zaznamy */
#define RIGHT_INSERT 0x04 /* dtto */
#define RIGHT_DEL 0x08 /* pravo rusit zaznamy */
#define RIGHT_NEW_READ 0x10 /* pridelovat k novym zaznamum pravo cist */
#define RIGHT_NEW_WRITE 0x20 /* pridelovat k novym zaznamum pravo prepsat */
#define RIGHT_NEW_DEL 0x40 /* pridelovat k novym zaznamum pravo zrusit */
#define RIGHT_GRANT 0x80 /* universalni pravo poskytovat sva prava */
/********************* Hodnoty "NONE" ruznych typu: *************************/
#define NONEBOOLEAN ((uns8)0x80)
#define NONECHAR ((uns8)0)
#define NONEDATE 0x80000000L
#define NONETIME 0x80000000L
#define NONETIMESTAMP 0x80000000L
#define NONEMONEY /* nelze takto definovat, ma hodnotu 0,0,0,0,0,0x80 */
#define NONEINTEGER ((sig32)0x80000000L)
#define NONESHORT ((sig16)0x8000)
#define NONEREAL -1.7001e308
#define NONESTRING ""
#define NONEPTR ((uns32)-1)
/********************* Parametry funkce Set_sql_option **********************/
#define SQLOPT_NULLEQNULL 1 // hodnota NULL se rovna NULL
#define SQLOPT_NULLCOMP 2 // NULL se porovnavat s ne-NULL hodnotami
#define SQLOPT_RD_PRIVIL_VIOL 4 // hodnota bez prava cteni se jevi najo NULL
#define SQLOPT_MASK_NUM_RANGE 8 // preteceni ciselneho typu pri konverzi vrati NULL
#define SQLOPT_MASK_INV_CHAR 16 // nekonvertovatelny retezec znaku vrati NULL
#define SQLOPT_MASK_RIGHT_TRUNC 32 // zkraceni retezce pri konverzi se maskuje
#define SQLOPT_EXPLIC_FREE 64 // zrusene zaznamy se uvolni az pri explicitnim Free_deleted
/******************************* Cisla chyb: ********************************/
#ifndef NO_ERROR /* conflict with winerror.h */
#define NO_ERROR 0
#endif
#define ANS_OK 0
#define NOT_ANSWERED 0xff
#define BAD_MODIF 0x80
#define NO_RIGHT 0x81
#define BAD_ELEM_NUM 0x82
#define OUT_OF_TABLE 0x83 // 02000
#define TABLE_FULL 0x84
#define CURSOR_MISUSE 0x85
#define BAD_OPCODE 0x86
#define CANNOT_APPEND 0x87
#define NOT_LOCKED 0x88
#define NO_DESTINATION_TAB 0x89
#define INDEX_OUT_OF_RANGE 0x8a
#define NOT_A_RECORD 0x8b
#define EMPTY 0x8c
#define NO_OBJECT 0x8d // not used
#define BAD_PASSWORD 0x8e
#define PTR_TO_DELETED 0x8f
#define NIL_PTR 0x90
#define OUT_OF_KERNEL_MEMORY 0x91
#define TOO_MANY_CURSORS 0x92 // not used
#define IS_DELETED 0x93
#define INDEX_NOT_FOUND 0x94
#define OBJECT_NOT_FOUND 0x95
#define OUT_OF_APPL_MEMORY 0x96
#define BAD_DATA_SIZE 0x97
#define UNREADABLE_BLOCK 0x98
#define DEMO_VERSION 0x99
#define OUT_OF_BLOCKS 0x9a
#define REQUEST_BREAKED 0x9b
#define OS_FILE_ERROR 0x9d
#define INCOMPATIBLE_VERSION 0x9e
#define REJECTED_BY_KERNEL 0x9f
#define MUST_NOT_BE_NULL 0xa0 // 40002
#define NO_BITAB 0xa1
#define NO_MY_RIGHT 0xa2
#define IE_OUT_OF_DWORM 0xa3 /* interni chyba */
#define IE_FRAME_OVERRUN 0xa4 /* interni chyba */
#define IE_PAGING 0xa5 /* interni chyba */
#define IE_DOUBLE_PAGE 0xa6 /* interni chyba */
#define IE_OUT_OF_BSTACK 0xa7 /* interni chyba */
#define TABLE_DAMAGED 0xa8
#define CANNOT_LOCK_KERNEL 0xa9
#define END_OF_VOLUME_SPACE 0xaa /* interni zprava */
#define DEADLOCK 0xab
#define KEY_DUPLICITY 0xac // 40002
#define BAD_VERSION 0xad // client/server version mismatch
#define CHECK_CONSTRAIN 0xae // 40002
#define REFERENTIAL_CONSTRAIN 0xaf // 40002
#define UNPROPER_TYPE 0xb0
#define OUTER_JOIN_TOO_COMPLEX 0xb1 // not used
#define REQUEST_NESTING 0xb2
#define CANNOT_FOR_ODBC 0xb3
#define ERROR_IN_FUNCTION_ARG 0xb4
#define ODBC_CURSOR_NOT_OPEN 0xb5
#define DRIVER_NOT_CAPABLE 0xb6
#define TOO_COMPLEX_TRANS 0xb7
#define INTERNAL_SIGNAL 0xb8
#define PRIV_KEY_NOT_FOUND 0xb9
#define NO_WRITE_TOKEN 0xba
#define WAITING_FOR_ACKN 0xbb
#define REPL_BLOCKED 0xbc
#define BAD_TOKEN_STATE 0xbd
#define BAD_TABLE_PROPERTIES 0xbe
#define INDEX_DAMAGED 0xbf
#define PASSWORD_EXPIRED 0xc0
#define NO_KEY_FOUND 0xc1
#define DIFFERENT_KEY 0xc2
#define ASSERTION_FAILED 0xc3
#define SQ_INVALID_CURSOR_STATE 0xc4 // 24000
#define SQ_SAVEPOINT_INVAL_SPEC 0xc5 // 3B001
#define SQ_SAVEPOINT_TOO_MANY 0xc6 // 3B002
#define SQ_TRANS_STATE_ACTIVE 0xc7 // 25001
#define SQ_INVAL_TRANS_TERM 0xc8 // 2D000
#define SQ_TRANS_STATE_RDONLY 0xc9 // 25006
#define SQ_NUM_VAL_OUT_OF_RANGE 0xca // 22003
#define SQ_INV_CHAR_VAL_FOR_CAST 0xcb // 22018
#define SQ_STRING_DATA_RIGHT_TRU 0xcc // 22001
#define SQ_DIVISION_BY_ZERO 0xcd // 22012
#define SQ_CARDINALITY_VIOLATION 0xce // 21000
#define SQ_INVALID_ESCAPE_CHAR 0xcf // 22019
#define SQ_CASE_NOT_FOUND_STMT 0xd0 // 20000
#define SQ_UNHANDLED_USER_EXCEPT 0xd1 // 45000
#define SQ_RESIGNAL_HND_NOT_ACT 0xd2 // 0K000
#define SQ_EXT_ROUT_NOT_AVAIL 0xd3 // 38001
#define SQ_NO_RETURN_IN_FNC 0xd4 // 2F001
#define COLUMN_NOT_EDITABLE 0xd5
#define SQ_TRIGGERED_ACTION 0xd6 // 09000
#define REPLICATION_NOT_RUNNING 0xd7
#define REPL_MAIL_ERROR 0xd8
#define SQ_INVALID_CURSOR_NAME 0xd9 // 34000
#define ROLE_FROM_DIFF_APPL 0xda
#define SEQUENCE_EXHAUSTED 0xdb
#define NO_CURRENT_VAL 0xdc
#define LAST_DB_ERROR NO_CURRENT_VAL
#define FIRST_MAIL_ERROR 500 // client mail error numbers
#define MAIL_NOT_INITIALIZED 500
#define MAIL_ERROR 501
#define MAIL_NOT_REMOTE 502
#define MAIL_TYPE_INVALID 503
#define MAIL_LOGON_FAILED 504
#define MAIL_BAD_PROFILE 505
#define MAIL_BAD_USERID 506
#define MAIL_NO_ADDRESS 507
#define FILE_NOT_FOUND 508
/**************************** Cisla varovani: *******************************/
#define NO_WARNING 0
#define WAS_IN_TRANS 1
#define NOT_IN_TRANS 2
#define ERROR_IN_CONSTRS 3
#define IS_NOT_DEL 4
#define IS_DEL 8
#define IS_EMPTY 16
#define NO_BIPTR 32
#define INDEX_OOR 64
#define DUPL_KEY 96
#undef IS_ERROR
#define IS_ERROR 128
/********** Hodnoty vracene funkci link_kernel a interf_init ****************/
#define KSE_OK 0 /* bez chyby */
#define KSE_WINDOWS 1 /* zahlcene Windows */
#define KSE_INSTAL_PRESENT 2 /* pracuje program WBINSTAL */
#define KSE_ZALOHA_PRESENT 3 /* pracuje program ZALOHA */
#define KSE_WINEXEC 4 /* nelze spustit WBADMIN */
#define KSE_NO_MEMORY 5 /* neni dost pameti */
#define KSE_NO_CONFIG 6 /* nenalezen kofiguracni soubor WB.CNF */
#define KSE_NO_FIL 7 /* jmeno serveru neni registrovano */
#define KSE_DAMAGED 8 /* databaze je vazne poskozena */
#define KSE_NO_ACCESS 9 /* zahlceno databazove jadro */
#define KSE_SERVER_CLOSED 10 /* server zamcen */
#define KSE_BAD_VERSION 11 /* chybna verze jadra */
#define KSE_NETWORK_INIT 12 /* nedari se inicializovat sit */
#define KSE_QUIT 13 /* nevybran zadny server */
#define KSE_NOSERVER 14 /* nenalezen zadny server */
#define KSE_CONNECTION 15 /* nenavazano spojeni se serverem */
#define KSE_NOTASK 16 /* nelze vytvorit dalsi instanci */
#define KSE_WBNETMEM 17 /* nelze spustit program WBNETMEM */
#define KSE_MAXCLIENTS 18 /* prekrocen maximalni pocet clientu */
#define KSE_SPXNOTINSTALLED 19 /* zavedeny ovladac IPX nepodporuje SPX, pravdepodobne pouzito IPXODI /a */
#define KSE_MAXCONNECTION 20 /* neni dost relaci SPX (connections), nastavte v shell.cfg */
#define KSE_MAXSESSION 21 /* neni dost relaci NetBIOS (sessions), viz instalacni manual */
#define KSE_MAXNCB 22 /* neni dost ridicich bloku NetBIOS, viz instalacni manual */
#define KSE_DBASE_OPEN 23 /* databaze je jiz otevrena jinym serverem */
#define KSE_SERVER_NAME_USED 24 /* v siti jiz bezi databazovy server stejneho jmena */
#define KSE_START_THREAD 25 /* nelze spustit dalsi vlakno */
#define KSE_SYNCHRO_OBJ 26 /* nelze vytvorit synchronizacni objekt */
#define KSE_MAPPING 27 /* nelze mapovat pametovy soubor */
#define KSE_CREATE_THREAD 28 /* nelze vytvorit vlakno pro obsluhu klienta */
#define KSE_TIMEOUT 29 /* primo dostupny server neodpovida */
#define KSE_NO_WINSOCK 30 /* knihovna winsock neni instalovana */
#define KSE_WINSOCK_ERROR 31 /* chyba pri praci se socketem */
#define KSE_SERVER_NOT_KNOWN 32 /* jmeno serveru neni registrovano */
#define KSE_SERVER_PATH_NOT_SPECIF 33 /* cesta k databazi serveru neni registrovana */
#define KSE_NETBIOS_NAME 34 /* nemohu pridat jmeno pro NetBIOS */
#define KSE_FWNOTFOUND 35 /* nenalezen firewall */
#define KSE_FWCOMM 36 /* nelze komunikovat s firewallem */
#define KSE_FWDENIED 37 /* firewall odmitl vytvorit propojeni */
#define KSE_BAD_PASSWORD 38 /* chyba hesla k databazovemu souboru */
#define KSE_ESCAPED 39 /* upusteno od startu serveru */
#define KSE_NO_IPX 40 /* protokol IPX neni k dispozici */
#define KSE_EXPIRED 41 /* skoncila pouzitelnost serveru */
#define KSE_CANNOT_CREATE_FIL 42 /* nelze vytvorit databazovy soubor */
#define KSE_CANNOT_OPEN_FIL 43 /* nelze otevrit databazovy soubor */
#define KSE_CANNOT_OPEN_TRANS 44 /* nelze otevrit transakcni soubor */
#define NOINDEX 0xffff /* hodnota parametru index, nejde-li o multiatribut */
#define MAX_PACKAGED_REQS 25 /* max. pocet pozadavku v baliku */
/*************************** procedury a funkce *****************************/
enum t_isolation { READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE };
#ifdef __cplusplus
extern "C" {
#endif
// organizacni funkce:
DllKernel void WINAPI start_package (void);
DllKernel void WINAPI send_package (void);
DllKernel void WINAPI concurrent (BOOL state);
DllKernel BOOL WINAPI answered (void);
DllKernel BOOL WINAPI waiting (sig32 timeout);
// Chyby a varovani:
DllKernel int WINAPI Sz_error (void);
DllKernel int WINAPI Sz_warning (void);
// Vyhledani objektu:
DllKernel BOOL WINAPI Find2_object(const char * name, const uns8 * appl_id, tcateg category, tobjnum * position);
DllKernel BOOL WINAPI Find_object (const char * name, tcateg category, tobjnum * position);
DllKernel BOOL WINAPI Find_object_by_id(const WBUUID uuid, tcateg category, tobjnum * position);
// Prace s kurzory:
DllKernel BOOL WINAPI Open_cursor (tobjnum cursdef, tcursnum * curs);
DllKernel BOOL WINAPI Open_cursor_direct (const char * query, tcursnum * curs);
DllKernel BOOL WINAPI Close_cursor (tcursnum curs);
DllKernel BOOL WINAPI Open_subcursor (tcursnum supercurs, const char * subcurdef, tcursnum * subcurs);
DllKernel BOOL WINAPI Add_record(tcursnum curs, trecnum * recs, int numofrecs);
DllKernel BOOL WINAPI Super_recnum(tcursnum subcursor, tcursnum supercursor,
trecnum subrecnum, trecnum * superrecnum);
DllKernel BOOL WINAPI Translate(tcursnum curs, trecnum crec, int tbord, trecnum * trec);
DllKernel BOOL WINAPI Query_optimization(const char * query, char * buf, int bufsize);
// Prace se zaznamy:
DllKernel trecnum WINAPI Append(tcurstab curs);
DllKernel trecnum WINAPI Insert(tcurstab curs);
DllKernel trecnum WINAPI Look_up(tcursnum curs, const char * attrname, void * res);
DllKernel BOOL WINAPI Delete (tcurstab curs, trecnum position);
DllKernel BOOL WINAPI Undelete (ttablenum table, trecnum position);
DllKernel BOOL WINAPI Delete_all_records (tcursnum curs);
DllKernel BOOL WINAPI Rec_cnt (tcurstab curs, trecnum * recnum);
// Cteni a zapis dat:
DllKernel BOOL WINAPI Read (tcurstab cursnum, trecnum position,
tattrib attr, const modifrec * access, void * buffer);
DllKernel BOOL WINAPI Write (tcurstab cursnum, trecnum position,
tattrib attr, const modifrec * access, const void * buffer, uns16 datasize);
DllKernel BOOL WINAPI Read_ind (tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, void * data);
DllKernel BOOL WINAPI Write_ind (tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, void * data, uns16 datasize);
DllKernel BOOL WINAPI Read_ind_cnt (tcurstab cursnum, trecnum position,
tattrib attr, uns16 * count);
DllKernel BOOL WINAPI Write_ind_cnt(tcurstab cursnum, trecnum position,
tattrib attr, uns16 count);
DllKernel BOOL WINAPI Read_var (tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 start, uns32 size, void * buf, uns32 * psize);
DllKernel BOOL WINAPI Write_var (tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 start, uns32 size, const void * buf);
DllKernel BOOL WINAPI Read_len (tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 * size);
DllKernel BOOL WINAPI Write_len (tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 size);
DllKernel BOOL WINAPI Read_record (tcurstab cursnum, trecnum position,
void * buf, uns16 datasize);
DllKernel BOOL WINAPI Write_record (tcurstab cursnum, trecnum position,
const void * buf, uns16 datasize);
// prava:
DllKernel BOOL WINAPI GetSet_privils(tobjnum user_group_role,
tcateg subject_categ, ttablenum table, trecnum recnum, t_oper operation,
uns8 * privils);
// transakce:
DllKernel BOOL WINAPI Start_transaction (void);
DllKernel BOOL WINAPI Commit (void);
DllKernel BOOL WINAPI Roll_back (void);
DllKernel BOOL WINAPI Set_transaction_isolation_level(t_isolation level);
// zamky:
DllKernel BOOL WINAPI Read_lock_record (tcurstab curs, trecnum position);
DllKernel BOOL WINAPI Read_unlock_record (tcurstab curs, trecnum position);
DllKernel BOOL WINAPI Write_lock_record (tcurstab curs, trecnum position);
DllKernel BOOL WINAPI Write_unlock_record(tcurstab curs, trecnum position);
DllKernel BOOL WINAPI Read_lock_table (tcurstab curs);
DllKernel BOOL WINAPI Read_unlock_table (tcurstab curs);
DllKernel BOOL WINAPI Write_lock_table (tcurstab curs);
DllKernel BOOL WINAPI Write_unlock_table (tcurstab curs);
// prace s objekty:
DllKernel BOOL WINAPI Insert_object(const char * name, tcateg category, tobjnum * objnum);
DllKernel BOOL WINAPI Relist_objects(void);
DllKernel BOOL WINAPI GetSet_group_role(tobjnum user_or_group,
tobjnum group_or_role, tcateg subject2, t_oper operation, uns32 * relation);
DllKernel BOOL WINAPI Create_user(const char * logname,
const char * name1, const char * name2, const char * name3,
const char * identif, const WBUUID homesrv,
const char * password, tobjnum * objnum);
DllKernel BOOL WINAPI Set_password(const char * reserved, const char * password);
DllKernel BOOL WINAPI Create_link(const char * sourcename,
const char * sourceappl, tcateg category, const char * linkname);
DllKernel BOOL WINAPI Create2_link(const char * sourcename,
const uns8 * sourceapplid, tcateg category, const char * linkname);
DllKernel BOOL WINAPI Set_appl_starter(tcateg categ, const char * objname);
// sledovani stavu
DllKernel sig32 WINAPI Available_memory(BOOL local);
DllKernel sig32 WINAPI Used_memory(BOOL local);
DllKernel int WINAPI Owned_cursors(void);
DllKernel BOOL WINAPI Database_integrity(BOOL repair,
uns32 * lost_blocks, uns32 * lost_dheap,
uns32 * nonex_blocks, uns32 * cross_link, uns32 * damaged_tabdef);
DllKernel BOOL WINAPI Get_info(kernel_info * kinf);
DllKernel BOOL WINAPI GetSet_fil_size (t_oper operation, uns32 * size);
DllKernel BOOL WINAPI GetSet_fil_blocks(t_oper operation, uns32 * size);
DllKernel char * WINAPI Who_am_I (void);
DllKernel BOOL WINAPI Am_I_db_admin (void);
DllKernel sig32 WINAPI WinBase602_version(void);
DllKernel void WINAPI Enable_task_switch(BOOL enable);
DllKernel BOOL WINAPI Compact_database(int margin);
DllKernel BOOL WINAPI Log_write(const char * text);
DllKernel BOOL WINAPI Connection_speed_test(int * requests, int * kbytes);
DllKernel BOOL WINAPI Appl_inst_count(uns32 * count);
DllKernel BOOL WINAPI Get_logged_user(int index, char * username, char * applname, int * state);
// obalka aplikace v externim jazyce
DllKernel void WINAPI cdp_init (cdp_t cdp);
DllKernel sig32 WINAPI cdp_size (void);
DllKernel cdp_t WINAPI cdp_alloc (void);
DllKernel void WINAPI cdp_free (cdp_t cdp);
DllKernel int WINAPI link_kernel (const char * path, int display);
DllKernel void WINAPI unlink_kernel (void);
DllKernel int WINAPI interf_init (cdp_t cdp, int user);
DllKernel void WINAPI interf_close (void);
DllKernel BOOL WINAPI Login (const char * username, const char * password);
DllKernel BOOL WINAPI Logout (void);
DllKernel BOOL WINAPI Set_application (const char * applname);
// jine funkce serveru:
DllKernel BOOL WINAPI SQL_execute(const char * statement, uns32 * results);
DllKernel BOOL WINAPI SQL_prepare(const char * statement, uns32 * handle);
DllKernel BOOL WINAPI SQL_exec_prepared(uns32 handle, uns32 * results, int * count);
DllKernel BOOL WINAPI SQL_drop(uns32 handle);
DllKernel BOOL WINAPI Set_sql_option(uns32 optmask, uns32 optval);
DllKernel BOOL WINAPI Break(void);
DllKernel BOOL WINAPI Message_to_clients(const char * msg);
DllKernel BOOL WINAPI Set_progress_report_modulus(unsigned modulus);
// manipulace s tabulkou:
DllKernel BOOL WINAPI Enable_index(ttablenum table, int which, BOOL enable);
DllKernel BOOL WINAPI Free_deleted(ttablenum table);
DllKernel BOOL WINAPI Compact_table(ttablenum table);
// agregacni funkce:
DllKernel BOOL WINAPI C_sum (tcursnum curs, const char * attrname,
const char * condition, void * result);
DllKernel BOOL WINAPI C_max (tcursnum curs, const char * attrname,
const char * condition, void * result);
DllKernel BOOL WINAPI C_min (tcursnum curs, const char * attrname,
const char * condition, void * result);
DllKernel BOOL WINAPI C_count(tcursnum curs, const char * attrname,
const char * condition, trecnum * result);
DllKernel BOOL WINAPI C_avg (tcursnum curs, const char * attrname,
const char * condition, void * result);
// ODBC:
DllKernel BOOL WINAPI ODBC_open_cursor (uns32 connection, tcursnum * curs, const char * query);
DllKernel uns32 WINAPI ODBC_find_connection (const char * dsn_name);
DllKernel uns32 WINAPI ODBC_create_connection(const char * dsn_name);
DllKernel uns32 WINAPI ODBC_direct_connection(const char * conn_string);
// informace o atributech:
typedef BOOL (WINAPI enum_attr)(char * attrname, uns8 attrtype,
uns8 attrmult, uns16 attrspecif);
DllKernel BOOL WINAPI Enum_attributes(ttablenum table, enum_attr * callback);
DllKernel BOOL WINAPI Attribute_info(ttablenum table, const char * attrname,
tattrib * attrnum, uns8 * attrtype, uns8 * attrmult, uns16 * attrspecif);
// podpisy a replikace:
DllKernel BOOL WINAPI Signature(window_id hParent, tcursnum cursor, trecnum recnum, tattrib attr, BOOL create, void * param);
DllKernel BOOL WINAPI Repl_control(int optype, int opparsize, void * opparam);
DllKernel BOOL WINAPI Replicate(const char * ServerName, const char * ApplName, BOOL pull);
DllKernel BOOL WINAPI Reset_replication(void);
DllKernel BOOL WINAPI GetSet_next_user(tcurstab curs,
trecnum position, tattrib attr, t_oper operation, t_valtype valtype, void * value);
// e-mail
DllKernel DWORD WINAPI InitWBMail(char *Profile, char *PassWord);
DllKernel DWORD WINAPI InitWBMail602(char *EmiPath, char *UserID, char *PassWord);
DllKernel void WINAPI CloseWBMail(void);
DllKernel DWORD WINAPI LetterCreate(char *Subj, char *Msg, UINT Flags, DWORD *lpLetter);
DllKernel DWORD WINAPI LetterAddAddr(DWORD Letter, char *Addr, char *Type, BOOL CC);
DllKernel DWORD WINAPI LetterAddFile(DWORD Letter, char *fName);
DllKernel DWORD WINAPI LetterSend(DWORD Letter);
DllKernel DWORD WINAPI TakeMailToRemOffice(void);
DllKernel void WINAPI LetterCancel(DWORD Letter);
// typove konverze:
DllKernel uns32 WINAPI Make_date (int day, int month, int year);
DllKernel int WINAPI Day (uns32 dt);
DllKernel int WINAPI Month (uns32 dt);
DllKernel int WINAPI Year (uns32 dt);
DllKernel int WINAPI Quarter (uns32 dt);
DllKernel uns32 WINAPI Today (void);
DllKernel uns32 WINAPI Make_time (int hour, int minute, int second, int sec1000);
DllKernel int WINAPI Day_of_week(uns32 dt);
DllKernel int WINAPI Hours (uns32 tm);
DllKernel int WINAPI Minutes (uns32 tm);
DllKernel int WINAPI Seconds (uns32 tm);
DllKernel int WINAPI Sec1000 (uns32 tm);
DllKernel uns32 WINAPI Now (void);
DllKernel BOOL WINAPI Like (const char * s1, const char * s2);
DllKernel BOOL WINAPI Pref (const char * s1, const char * s2);
DllKernel BOOL WINAPI Substr (const char * s1, const char * s2);
DllKernel void WINAPI Upcase (char * str);
DllKernel double WINAPI money2real(monstr * m);
DllKernel BOOL WINAPI real2money(double d, monstr * m);
DllKernel uns32 WINAPI timestamp2date (uns32 dtm);
DllKernel uns32 WINAPI timestamp2time (uns32 dtm);
DllKernel uns32 WINAPI datetime2timestamp(uns32 dt, uns32 tm);
DllKernel void WINAPI time2str (uns32 tm, char * txt, short param);
DllKernel void WINAPI date2str (uns32 dt, char * txt, short param);
DllKernel void WINAPI timestamp2str(uns32 dtm, char * txt, short param);
DllKernel BOOL WINAPI str2time (char * txt, uns32 * tm);
DllKernel BOOL WINAPI str2date (char * txt, uns32 * dt);
DllKernel BOOL WINAPI str2timestamp(char * txt, uns32 * dtm);
// zastarale funkce
DllKernel BOOL WINAPI Uninst_table (ttablenum table);
DllKernel BOOL WINAPI Save_table (ttablenum table, const char * filename);
DllKernel BOOL WINAPI Restore_table(ttablenum table, const char * filename);
DllKernel BOOL WINAPI Define_table (const char * name, const char * description);
DllKernel BOOL WINAPI Get_object_rights(const char * objname, tcateg category,
const char * username, tright * rights);
DllKernel BOOL WINAPI Set_object_rights(const char * objname, tcateg category,
const char * username, tright rights);
DllKernel BOOL WINAPI Get_data_rights(ttablenum table, const char * username,
tright * rights, tdright * rd_ri, tdright * wr_ri);
DllKernel BOOL WINAPI Set_data_rights(ttablenum table, const char * username,
tright rights, tdright rd_ri, tdright wr_ri);
DllKernel BOOL WINAPI Create_group (const char * name);
DllKernel BOOL WINAPI User_to_group(tobjnum user, tobjnum group, BOOL state);
DllKernel BOOL WINAPI User_in_group(tobjnum user, tobjnum group, BOOL * state);
////////////////////////////// varianta cd_ //////////////////////////////////
// organizacni funkce:
DllKernel void WINAPI cd_start_package (cdp_t cdp);
DllKernel void WINAPI cd_send_package (cdp_t cdp);
DllKernel void WINAPI cd_concurrent (cdp_t cdp, BOOL state);
DllKernel BOOL WINAPI cd_answered (cdp_t cdp);
DllKernel BOOL WINAPI cd_waiting (cdp_t cdp, sig32 timeout);
// Chyby a varovani:
DllKernel int WINAPI cd_Sz_error (cdp_t cdp);
DllKernel int WINAPI cd_Sz_warning (cdp_t cdp);
// Vyhledani objektu:
DllKernel BOOL WINAPI cd_Find2_object(cdp_t cdp, const char * name, const uns8 * appl_id, tcateg category, tobjnum * position);
DllKernel BOOL WINAPI cd_Find_object (cdp_t cdp, const char * name, tcateg category, tobjnum * position);
DllKernel BOOL WINAPI cd_Find_object_by_id(cdp_t cdp, const WBUUID uuid, tcateg category, tobjnum * position);
// Prace s kurzory:
DllKernel BOOL WINAPI cd_Open_cursor (cdp_t cdp, tobjnum cursdef, tcursnum * curs);
DllKernel BOOL WINAPI cd_Open_cursor_direct (cdp_t cdp, const char * query, tcursnum * curs);
DllKernel BOOL WINAPI cd_Close_cursor (cdp_t cdp, tcursnum curs);
DllKernel BOOL WINAPI cd_Open_subcursor (cdp_t cdp, tcursnum supercurs, const char * subcurdef, tcursnum * subcurs);
DllKernel BOOL WINAPI cd_Add_record(cdp_t cdp, tcursnum curs, trecnum * recs, int numofrecs);
DllKernel BOOL WINAPI cd_Super_recnum(cdp_t cdp, tcursnum subcursor, tcursnum supercursor,
trecnum subrecnum, trecnum * superrecnum);
DllKernel BOOL WINAPI cd_Translate(cdp_t cdp, tcursnum curs, trecnum crec, int tbord, trecnum * trec);
DllKernel BOOL WINAPI cd_Query_optimization(cdp_t cdp, const char * query, char * buf, int bufsize);
// Prace se zaznamy:
DllKernel trecnum WINAPI cd_Append(cdp_t cdp, tcurstab curs);
DllKernel trecnum WINAPI cd_Insert(cdp_t cdp, tcurstab curs);
DllKernel trecnum WINAPI cd_Look_up(cdp_t cdp, tcursnum curs, const char * attrname, void * res);
DllKernel BOOL WINAPI cd_Delete (cdp_t cdp, tcurstab curs, trecnum position);
DllKernel BOOL WINAPI cd_Undelete (cdp_t cdp, ttablenum table, trecnum position);
DllKernel BOOL WINAPI cd_Delete_all_records (cdp_t cdp, tcursnum curs);
DllKernel BOOL WINAPI cd_Rec_cnt (cdp_t cdp, tcurstab curs, trecnum * recnum);
// Cteni a zapis dat:
DllKernel BOOL WINAPI cd_Read (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, const modifrec * access, void * buffer);
DllKernel BOOL WINAPI cd_Write (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, const modifrec * access, const void * buffer, uns16 datasize);
DllKernel BOOL WINAPI cd_Read_ind (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, void * data);
DllKernel BOOL WINAPI cd_Write_ind (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, void * data, uns16 datasize);
DllKernel BOOL WINAPI cd_Read_ind_cnt (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 * count);
DllKernel BOOL WINAPI cd_Write_ind_cnt(cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 count);
DllKernel BOOL WINAPI cd_Read_var (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 start, uns32 size, void * buf, uns32 * psize);
DllKernel BOOL WINAPI cd_Write_var (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 start, uns32 size, const void * buf);
DllKernel BOOL WINAPI cd_Read_len (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 * size);
DllKernel BOOL WINAPI cd_Write_len (cdp_t cdp, tcurstab cursnum, trecnum position,
tattrib attr, uns16 index, uns32 size);
DllKernel BOOL WINAPI cd_Read_record (cdp_t cdp, tcurstab cursnum, trecnum position,
void * buf, uns16 datasize);
DllKernel BOOL WINAPI cd_Write_record (cdp_t cdp, tcurstab cursnum, trecnum position,
const void * buf, uns16 datasize);
// prava:
DllKernel BOOL WINAPI cd_GetSet_privils(cdp_t cdp, tobjnum user_group_role,
tcateg subject_categ, ttablenum table, trecnum recnum, t_oper operation,
uns8 * privils);
// transakce:
DllKernel BOOL WINAPI cd_Start_transaction (cdp_t cdp);
DllKernel BOOL WINAPI cd_Commit (cdp_t cdp);
DllKernel BOOL WINAPI cd_Roll_back (cdp_t cdp);
DllKernel BOOL WINAPI cd_Set_transaction_isolation_level(cdp_t cdp, t_isolation level);
// zamky:
DllKernel BOOL WINAPI cd_Read_lock_record (cdp_t cdp, tcurstab curs, trecnum position);
DllKernel BOOL WINAPI cd_Read_unlock_record (cdp_t cdp, tcurstab curs, trecnum position);
DllKernel BOOL WINAPI cd_Write_lock_record (cdp_t cdp, tcurstab curs, trecnum position);
DllKernel BOOL WINAPI cd_Write_unlock_record(cdp_t cdp, tcurstab curs, trecnum position);
DllKernel BOOL WINAPI cd_Read_lock_table (cdp_t cdp, tcurstab curs);
DllKernel BOOL WINAPI cd_Read_unlock_table (cdp_t cdp, tcurstab curs);
DllKernel BOOL WINAPI cd_Write_lock_table (cdp_t cdp, tcurstab curs);
DllKernel BOOL WINAPI cd_Write_unlock_table (cdp_t cdp, tcurstab curs);
// prace s objekty:
DllKernel BOOL WINAPI cd_Insert_object(cdp_t cdp, const char * name, tcateg category, tobjnum * objnum);
DllKernel BOOL WINAPI cd_Relist_objects(cdp_t cdp);
DllKernel BOOL WINAPI cd_Relist_objects_ex(cdp_t cdp, BOOL extended);
DllKernel BOOL WINAPI cd_GetSet_group_role(cdp_t cdp, tobjnum user_or_group,
tobjnum group_or_role, tcateg subject2, t_oper operation, uns32 * relation);
DllKernel BOOL WINAPI cd_Create_user(cdp_t cdp, const char * logname,
const char * name1, const char * name2, const char * name3,
const char * identif, const WBUUID homesrv,
const char * password, tobjnum * objnum);
DllKernel BOOL WINAPI cd_Set_password(cdp_t cdp, const char * reserved, const char * password);
DllKernel BOOL WINAPI cd_Create_link(cdp_t cdp, const char * sourcename,
const char * sourceappl, tcateg category, const char * linkname);
DllKernel BOOL WINAPI cd_Create2_link(cdp_t cdp, const char * sourcename,
const uns8 * sourceapplid, tcateg category, const char * linkname);
DllKernel BOOL WINAPI cd_Set_appl_starter(cdp_t cdp, tcateg categ, const char * objname);
// sledovani stavu
DllKernel sig32 WINAPI cd_Available_memory(cdp_t cdp, BOOL local);
DllKernel sig32 WINAPI cd_Used_memory(cdp_t cdp, BOOL local);
DllKernel int WINAPI cd_Owned_cursors(cdp_t cdp);
DllKernel BOOL WINAPI cd_Database_integrity(cdp_t cdp, BOOL repair,
uns32 * lost_blocks, uns32 * lost_dheap,
uns32 * nonex_blocks, uns32 * cross_link, uns32 * damaged_tabdef);
DllKernel BOOL WINAPI cd_Get_info(cdp_t cdp, kernel_info * kinf);
DllKernel BOOL WINAPI cd_GetSet_fil_size (cdp_t cdp, t_oper operation, uns32 * size);
DllKernel BOOL WINAPI cd_GetSet_fil_blocks(cdp_t cdp, t_oper operation, uns32 * size);
DllKernel char * WINAPI cd_Who_am_I (cdp_t cdp);
DllKernel BOOL WINAPI cd_Am_I_db_admin (cdp_t cdp);
DllKernel sig32 WINAPI cd_WinBase602_version(cdp_t cdp);
DllKernel void WINAPI cd_Enable_task_switch(cdp_t cdp, BOOL enable);
DllKernel BOOL WINAPI cd_Compact_database(cdp_t cdp, int margin);
DllKernel BOOL WINAPI cd_Log_write(cdp_t cdp, const char * text);
DllKernel BOOL WINAPI cd_Connection_speed_test(cdp_t cdp, int * requests, int * kbytes);
DllKernel BOOL WINAPI cd_Appl_inst_count(cdp_t cdp, uns32 * count);
DllKernel BOOL WINAPI cd_Get_logged_user(cdp_t cdp, int index, char * username, char * applname, int * state);
// obalka aplikace v externim jazyce
DllKernel int WINAPI interf_init (cdp_t cdp, int user);
DllKernel void WINAPI cd_interf_close (cdp_t cdp);
DllKernel BOOL WINAPI cd_Login (cdp_t cdp, const char * username, const char * password);
DllKernel BOOL WINAPI cd_Logout (cdp_t cdp);
DllKernel BOOL WINAPI cd_Set_application(cdp_t cdp, const char * applname);
DllKernel BOOL WINAPI cd_Set_application_ex(cdp_t cdp, const char * applname, BOOL extended);
// jine funkce serveru:
DllKernel BOOL WINAPI cd_SQL_execute(cdp_t cdp, const char * statement, uns32 * results);
DllKernel BOOL WINAPI cd_SQL_prepare(cdp_t cdp, const char * statement, uns32 * handle);
DllKernel BOOL WINAPI cd_SQL_exec_prepared(cdp_t cdp, uns32 handle, uns32 * results, int * count);
DllKernel BOOL WINAPI cd_SQL_drop(cdp_t cdp, uns32 handle);
DllKernel BOOL WINAPI cd_Set_sql_option(cdp_t cdp, uns32 optmask, uns32 optval);
DllKernel BOOL WINAPI cd_Break(cdp_t cdp);
DllKernel BOOL WINAPI cd_Message_to_clients(cdp_t cdp, const char * msg);
DllKernel BOOL WINAPI cd_Set_progress_report_modulus(cdp_t cdp, unsigned modulus);
// manipulace s tabulkou:
DllKernel BOOL WINAPI cd_Enable_index(cdp_t cdp, ttablenum table, int which, BOOL enable);
DllKernel BOOL WINAPI cd_Free_deleted(cdp_t cdp, ttablenum table);
DllKernel BOOL WINAPI cd_Compact_table(cdp_t cdp, ttablenum table);
// agregacni funkce:
DllKernel BOOL WINAPI cd_C_sum (cdp_t cdp, tcursnum curs, const char * attrname,
const char * condition, void * result);
DllKernel BOOL WINAPI cd_C_max (cdp_t cdp, tcursnum curs, const char * attrname,
const char * condition, void * result);
DllKernel BOOL WINAPI cd_C_min (cdp_t cdp, tcursnum curs, const char * attrname,
const char * condition, void * result);
DllKernel BOOL WINAPI cd_C_count(cdp_t cdp, tcursnum curs, const char * attrname,
const char * condition, trecnum * result);
DllKernel BOOL WINAPI cd_C_avg (cdp_t cdp, tcursnum curs, const char * attrname,
const char * condition, void * result);
// ODBC:
DllKernel BOOL WINAPI cd_ODBC_open_cursor (cdp_t cdp, uns32 connection, tcursnum * curs, const char * query);
DllKernel uns32 WINAPI cd_ODBC_find_connection (cdp_t cdp, const char * dsn_name);
DllKernel uns32 WINAPI cd_ODBC_create_connection(cdp_t cdp, const char * dsn_name);
DllKernel uns32 WINAPI cd_ODBC_direct_connection(cdp_t cdp, const char * conn_string);
// informace o atributech:
typedef BOOL (WINAPI enum_attr)(char * attrname, uns8 attrtype,
uns8 attrmult, uns16 attrspecif);
DllKernel BOOL WINAPI cd_Enum_attributes(cdp_t cdp, ttablenum table, enum_attr * callback);
DllKernel BOOL WINAPI cd_Attribute_info(cdp_t cdp, ttablenum table, const char * attrname,
tattrib * attrnum, uns8 * attrtype, uns8 * attrmult, uns16 * attrspecif);
// podpisy a replikace:
DllKernel BOOL WINAPI cd_Signature(cdp_t cdp, window_id hParent, tcursnum cursor, trecnum recnum, tattrib attr, BOOL create, void * param);
DllKernel BOOL WINAPI cd_Repl_control(cdp_t cdp, int optype, int opparsize, void * opparam);
DllKernel BOOL WINAPI cd_Replicate(cdp_t cdp, const char * ServerName, const char * ApplName, BOOL pull);
DllKernel BOOL WINAPI cd_Reset_replication(cdp_t cdp);
DllKernel BOOL WINAPI cd_GetSet_next_user(cdp_t cdp, tcurstab curs,
trecnum position, tattrib attr, t_oper operation, t_valtype valtype, void * value);
#ifdef __cplusplus
} /* of extern "C" */
#endif
/******* Typy atributu (vyuziji se pri volani funkce Enum_attributes) *******/
#define ATT_BOOLEAN 1 /* Boolean */
#define ATT_CHAR 2 /* Char */
#define ATT_INT16 3 /* Short */
#define ATT_INT32 4 /* Integer */
#define ATT_MONEY 5 /* Money */
#define ATT_FLOAT 6 /* Real */
#define ATT_STRING 7 /* String */
#define ATT_CSSTRING 8 /* CSString */
#define ATT_CSISTRING 9 /* CSIString */
#define ATT_BINARY 10 /* Binary */
#define ATT_DATE 11 /* Date */
#define ATT_TIME 12 /* Time */
#define ATT_TIMESTAMP 13 /* Timestamp */
#define ATT_PTR 14 /* Pointer */
#define ATT_BIPTR 15 /* Bipointer */
#define ATT_AUTOR 16 /* sledovaci atribut: Autorizace */
#define ATT_DATIM 17 /* sledovaci atribut: Datumovka */
#define ATT_HIST 18 /* sledovaci atribut: Historie */
#define ATT_RASTER 19 /* Raster */
#define ATT_TEXT 20 /* Text */
#define ATT_NOSPEC 21 /* Nospec */
#define ATT_SIGNAT 22 /* Signature */
#endif /* !def __WBKERNEL_H__ */