Beruflich Dokumente
Kultur Dokumente
Release 5.0
302455
December 1996
Costa Mesa, California 92626 Due to continuing product development, product specifications
and capabilities are subject to change without notice.
9810886-001
Notices
This document contains information proprietary
to FileNet Corporation (FileNet). You may not
disclose or use any proprietary information or
reproduce any part of this document without
written permission from FileNet.
Education xxxviii
1 Introduction 1
FileNet System Architecture 1
Hardware 1
Software 2
Distributed Architecture 2
Remote Procedure Call 4
Servers and Their Services 5
Root Server 5
Index Server 5
Storage Library Server 6
WorkFlo/Print Server 8
WorkFlo/Fax Server 8
WorkFlo/Scan Station 9
Application Server 9
Operating environment 10
Routing Examples 13
2 Getting Started 15
Build a FileNet WAL for Windows Application 15
BATCHLIB 27
CAM 33
DISPLIB 34
FILLIN 38
FN Index 40
FNP 42
FORM 43
Create Form 44
Object Maintenance 46
Form Fields 46
Character Map Functions 47
Menu, Menubar, and Validation Table Functions 48
Execute Form 48
Form and Field Validation Checking 50
Store Form 50
IAFLIB.I Management 51
IAFLIB Folders 57
IAFLIB Logon 59
SEC (Security) 65
TTY 66
4 Error Messages 73
Error Message Display Program – MSG 73
Error Messages 74
Application Information 75
Archive 75
BATCHLIB 76
Display 84
Document Services 87
Date/Time 90
Fill In 92
Local Print 93
Forms 94
Floating Point 98
IAF Library 99
Restore 116
SCT 117
Security 118
SLACLIB 129
TTY 129
image.h 148
tile.h 151
FN_page.h 155
ASE_doc_id_typ 164
ASE_document_status_typ 165
ASE_folder_id_typ 166
ASE_image_id_typ 167
ASE_migrate_status_typ 168
ASE_nch_name_type_typ 169
ASE_net_addr_typ 170
ASE_notify_option_typ 171
ASE_osar_id_typ 172
ASE_page_number_typ 173
ASE_page_range_typ 174
ASE_relational_op_typ 175
ASE_request_id_typ 176
ASE_server_id_typ 177
ASE_service_name_typ 178
ASE_session_number_typ 179
ASE_ssn_typ 180
ASE_surface_id_typ 181
ASE_surface_offset_typ 182
ASE_time_typ 183
BATCHLIB_BatchEntryStatus 184
BATCHLIB_BatchStatus 185
BATCHLIB_DocDesc 186
BATCHLIB_page_hdr_typ 187
BES_batch_cap_typ 188
BES_batch_id_typ 189
BES_ctl_desc_typ 190
BES_doc_desc_typ 191
BES_doc_list_typ 193
BES_dyn_hdr_desc_typ 194
BES_filter_typ 198
BES_handle_typ 200
BES_hdr_desc_typ 201
BES_image_desc_typ 202
BES_image_ix_desc_typ 204
BES_info_rec_typ 205
BES_info_spec_typ 206
BES_info_typ 207
BES_ixdir_desc_typ 208
BES_ixval_desc_typ 210
BES_ixval_spec_typ 211
BES_mkf_ixval_desc_typ 212
BES_stat_hdr_desc_typ 213
CAM_attr_typ 217
CAM Constants 218
cluster_key_typ 219
CSM_cache_access_mode 220
CSM_cache_id_typ 221
CSM_object_attr_typ 222
CSM_object_desc_typ 224
CSM_object_handle_typ 225
dir_entry_typ 226
DISPLIB Constants 227
DISPLIB_input_cb 230
DISPLIB_retrieve_cb 231
DOC_annotation_desc_typ 232
DOC_annotation_id_typ 234
DOC_annotation_typ 235
DOC_committal_desc_typ 236
DOC_doc_attribute_value_typ 239
DOC_doc_location_desc_typ 240
DOC_family_create_server_typ 242
DOC_family_server_desc_typ 243
DOC_index_value_typ 245
DOC_migrate_order_typ 246
DOC_surface_desc_typ 247
DS_LIST 249
DS_LIST_ENTRY 250
DTM Masks 251
DTMdate_typ 253
DTM_tm 254
error_typ 255
ERM Constants 256
FILLIN_bkgrequest_rec_typ 257
FN_date_typ 259
FN_docnum_typ 260
FN_folnum_typ 261
FN_selection_typ 262
FN_server_version_typ 263
FN_time_typ 264
FNP_data 265
FNP_request_typ 266
FORM_BatchPageAttr_typ 267
FORM_BitmapField_typ 268
FORM_BkgAttr_typ 270
FORM_BkgImage_typ 271
FORM_BrushAttr_typ 272
FORM_ButtonField_typ 273
FORM_CheckboxField_typ 275
FORM_Checked_typ 277
FORM_ColorAttr_typ 278
FORM_ComboboxField_typ 279
FORM_data_type 281
FORM_DateField_typ 282
FORM_DateMaskAttr_typ 285
FORM_DocField_typ 286
FORM_FieldAttr_typ 289
FORM_fielddesc_typ 296
FORM_FieldEvent_typ 297
FORM_FieldType_typ 298
FORM_FontAttr_typ 299
FORM_FormAttr_typ 300
FORM_GroupboxField_typ 303
FORM_HelpAttr_typ 304
FORM_IconAttr_typ 305
FORM_LineField_typ 306
FORM_ListboxField_typ 307
FORM_ListValue_typ 310
FORM_MenuAttr_typ 311
FORM_MenubarAttr_typ 312
FORM_MenuField_typ 313
FORM_MenuItem_typ 315
FORM_NumberField_typ 316
FORM_ObjectType_typ 319
FORM_PageAttr_typ 320
FORM_PatternField_typ 321
FORM_PenAttr_typ 323
FORM_ProcAttr_typ 324
FORM_RadioField_typ 325
FORM_RectField_typ 327
FORM_ResourceAttr_typ 329
FORM_RoundRectField_typ 330
FORM_RuleAttr_typ 332
FORM_ScrollbarField_typ 333
FORM_SignatureField_typ 335
FORM_Softkey_typ 337
FORM_SoftkeyAttr_typ 338
FORM_StringField_typ 339
FORM_TableAttr_typ 342
FORM_Terminator_typ 343
FORM_TermProcAttr_typ 344
FORM_TextField_typ 345
FORM_ValFuncAttr_typ 347
FORM_ValItem_typ 348
FP_number 349
IAFLIB_image_object_typ 350
IAFLIB_prefetch_result 351
ILIB Constants 352
ILIB_DOC_annotation_id_typ 353
IMGFMT_custom_typ 354
IMGFMT_desc_typ 356
INX_closed_typ 357
INX_cluster_key_typ 358
INX_cluster_space_typ 359
INX_dcl_id_typ 360
INX_dcl_name_typ 361
INX_dir_typ 362
INX_doc_type_typ 363
INX_doc_index_rec_typ 364
INX_fam_id_typ 365
INX_fc_doc_ord_item_typ 366
INX_folder_desc_typ 367
INX_folder_name_typ 369
INX_folder_spec_typ 370
INX_index_id_typ 371
INX_index_name_typ 372
INX_index_value_typ 373
INX_query_match_typ 374
INX_retent_base_typ 376
INX_retent_disp_typ 377
INX_retent_offset_typ 378
INX_value_type_typ 379
NCH_AttributesDescValue 380
NCH_BatchDescValue 383
NCH_CacheDescValue 384
NCH_DefCacheDescValue 386
NCH_DefDeviceDescValue 387
NCH_DefServiceDescValue 388
NCH_DefService1DescValue 389
NCH_DomainName 391
NCH_ICRServiceDescValue 392
NCH_IMSDescValue 393
NCH_NetAddr_typ 394
NCH_ObjectName 395
NCH_PrintServDescValue 396
NCH_Property 397
NET_HostNum_typ 398
NET_ip_addr_typ 399
NET_NetAddr_typ 400
NET_NetNum_typ 401
PRI_annot_mark_typ 402
PRI_annot_marks_typ 403
PRI_doc_specifier_typ 404
PRI_eject_tray_typ 406
PRI_fax_mode_typ 407
PRI_option_typ 408
PRI_orientation_typ 410
PRI_overlay_typ 411
PRI_pages_printed_typ 412
PRI_paper_size_typ 413
PRI_position_typ 415
PRI_print_direction_typ 416
PRI_print_option_typ 417
PRI_print_option_typ2 423
PRI_printer_attr_typ 430
PRI_printer_attr_typ2 432
PRI_printer_op_status_typ 434
PRI_printer_status_typ 435
PRI_printer_type_typ 437
PRI_priority_typ 438
PRI_request_desc_typ 439
PRI_request_desc_typ2 444
PRI_request_filter_typ 450
PRI_request_status_typ 452
PRI_request_type_typ 454
PRI_scaling_typ 455
PRI_service_status_typ 457
PRI_service_type_typ 458
PRI_sub_status_typ 459
PS_long_option_type 460
PS_options_rec_type 462
PS_printer_attr_desc_type 463
PS_printer_status_desc_type 465
QMR_ENTRY 467
QMR_INFO 468
QMR_Softkey_typ 469
RDD Constants 470
RDD_DC_INDEX_DESC 471
RDD_DCL_ID_TYP 472
RDD_DCLASS_DESC 473
RDD_INDEX_ID_TYP 474
RDD_IXFIELD_DESC 475
RDD_KEY_IXFIELD_DESC 477
RDD_MENU_DESC 478
RDD_MENUITEM_DESC 479
RDD_VALUE_TYPE_TYP 480
SCT_access_restrictions 481
SCT_handle 482
SCT_id 483
SCT_name 484
SCT_password 485
SEC_access_wanted_typ 486
SEC_add_info_typ 487
SEC_AR_typ 489
SEC_AR_set_typ 490
SEC_delete_info_typ 491
SEC_find_func_mbr_info_typ 493
SEC_find_info_typ 494
SEC_find_term_mbr_info_typ 496
SEC_find_usr_info_typ 497
SEC_find_usr_mbr_info_typ 498
SEC_func_member_info_typ 499
SEC_func_name_typ 500
SEC_get_defaults_typ 501
SEC_get_system_info_typ 502
SEC_handle_typ 503
SEC_id_typ 504
SEC_info_type_typ 506
SEC_language_typ 507
SEC_memlist_typ 508
SEC_memlist_type_typ 509
SEC_name_typ 510
SEC_names_found_typ 511
SEC_security_defaults_typ 512
SEC_security_info_typ 513
SEC_set_defaults_typ 514
SEC_set_system_info_typ 515
SEC_stats_desc_typ 516
SEC_system_desc_typ 517
SEC_term_member_info_typ 519
SEC_time_range_typ 520
SEC_update_info_typ 521
SEC_update_service_data_typ 522
SEC_update_service_info_typ 523
SEC_update_typ 524
SEC_update_usr_choice_typ 525
SEC_update_usr_info_typ 526
SEC_user_info_typ 527
SEC_usr_member_info_typ 528
TTY_softkey_label 529
WQS_delete_typ 530
WQS_dump_handle_typ 531
WQS_entry_id_typ 532
WQS_field_name_typ 533
WQS_field_unique_typ 534
WQS_incomplete_spec_typ 535
WQS_queue_field_typ 536
WQS_queue_handle_typ 537
WQS_queue_name_typ 538
WQS_sort_order_typ 539
WQS_status_spec_typ 540
WQS_sys_field_name_typ 541
WQS_user_field_desc_typ 542
WQS_workspace_name_typ 544
WQSLIB_fetch_spec_typ 545
WQSLIB_queue_desc_typ 548
WQSLIB_queue_entry_in_typ 550
WQSLIB_queue_entry_out_typ 551
WQSLIB_queue_field_choice_typ 552
WQSLIB_sys_field_value_typ 554
WQSLIB_user_field_value_typ 555
BES_delete_image_index() 649
BES_dequeue_batch() 651
BES_enqueue_batch() 652
BES_find_batches() 655
BES_find_docs() 657
BES_find_images() 659
BES_get_image_index() 661
BES_get_info() 663
BES_get_num_cluster_id() 665
BES_get_str_cluster_id() 666
BES_logoff() 667
BES_logon() 668
BES_modify_image_index() 669
BES_move_image() 671
BES_open_batch() 673
BES_open_image() 675
BES_put_info() 677
BES_query_index_dir() 679
BES_read_image() 680
BES_read_whole_image() 682
BES_renew() 684
BES_sync_commit() 685
BES_update_batch() 687
BES_update_doc() 688
BES_update_image() 690
BES_update_index_total() 692
BES_verify_image() 693
BES_write_image() 695
CAM_add_file() 697
CAM_delete_file() 699
CAM_exit() 700
CAM_find_file() 701
CAM_get_attr() 703
CAM_init() 706
CAM_set_attr() 707
CS_compute_csum() 709
Set Checksum 709
Get Checksum 710
CSM_close_object() 712
CSM_delete_object() 713
CSM_logoff() 714
CSM_logon() 715
CSM_modify_object() 717
CSM_open_object() 718
CSM_read_object() 720
CSM_renew() 721
DISPLIB_close_object() 723
DISPLIB_free_handle() 724
DISPLIB_free_object() 725
DISPLIB_get_attr() 726
DISPLIB_get_band_bitmap() 727
DISPLIB_get_format() 729
DISPLIB_init_handle() 730
DISPLIB_paint_bitmap() 731
DISPLIB_paint_object() 733
DISPLIB_register_object() 737
DISPLIB_retrieve_typ() 739
DISPLIB_set_attr() 741
Scale-to-Gray 741
DISPLIB_set_retrieval() 743
DISPLIB_stretch_bitmap() 744
DISPLIB_yield_typ() 746
DTM_addtime() 747
DTM_asctime() 748
DTM_ctime() 749
DTM_date() 751
DTM_ftime() 752
DTM_getdate() 753
DTM_getmask() 754
DTM_getmasklength() 755
DTM_gmtime() 756
DTM_gp() 757
DTM_gtime() 758
DTM_localtime() 759
DTM_stime() 760
DTM_subdate() 761
DTM_subtime() 762
DTM_time() 763
DTM_verifymask() 764
ERM_display_error() 765
ERM_get_error() 766
ERM_log_error() 767
ERM_log_event() 768
FILLIN_bkg_commit() 770
FILLIN_bkg_commit_image() 772
FILLIN_commit() 774
FILLIN_commit_image() 776
FILLIN_do_form() 779
FILLIN_get_doc_class() 780
FILLIN_get_form_name() 782
FILLIN_index() 784
FILLIN_local_print() 786
FILLIN_server_print() 787
FN_clear_index_form() 788
FN_copy_file() 789
FN_custom_index_form() 790
FN_get_app_info_int() 792
FN_get_app_info_string() 793
FN_get_window_pos() 794
FN_index_form() 795
FN_index_form_exit() 797
FN_index_form_init() 798
FN_index_handle_to_text() 800
FN_index_text_to_handle() 802
FN_index_verify() 804
FN_save_index_form() 806
FN_set_app_file() 808
FN_set_app_info() 809
FN_set_window_pos() 810
FN_show_index_form() 811
FN_show_new_values_in_form() 813
FNP_exit() 815
FNP_init() 816
FNP_print() 817
FNP_print_form_page() 819
FNP_print_from_file() 820
FORM_add_named_rule() 821
FORM_add_rule() 823
FORM_append_item() 825
FORM_bind_val_func() 827
FORM_box_add_item() 829
FORM_box_delete() 830
FORM_box_directory() 831
FORM_box_find_item() 832
FORM_box_get_count() 833
FORM_box_get_sel() 834
FORM_box_get_sel_count() 835
FORM_box_get_text() 836
FORM_box_get_text_len() 837
FORM_box_match_item() 838
FORM_box_select_list() 839
FORM_box_set_default() 840
FORM_box_set_sel() 841
FORM_change_menu_item() 842
FORM_check_syntax() 843
FORM_clear() 844
FORM_clear_field_value() 845
FORM_clear_form_values() 846
FORM_clone_form() 847
FORM_close_object() 848
FORM_close_volatile_objects() 849
FORM_create_field() 850
FORM_create_object() 853
FORM_default_field_value() 854
FORM_default_form_values() 855
FORM_delete_field() 856
FORM_do_form() 857
FORM_enable_fields() 858
FORM_enable_form_window() 859
FORM_escape_form() 860
FORM_evaluate() 861
FORM_execute_form() 863
FORM_exit() 864
FORM_find_file() 865
FORM_find_file_in_path() 866
FORM_find_file_in_path2() 867
FORM_generate_fill_in_page() 869
FORM_generate_form_file() 870
FORM_generate_image_page() 871
FORM_generate_one_form_file() 872
FORM_generate_pcode_file() 873
FORM_get_bitmap_handle() 874
FORM_get_field_attr() 875
FORM_get_field_attr_using_ord() 877
FORM_get_field_count() 878
FORM_get_field_info() 879
FORM_get_field_name() 880
FORM_get_file_list() 881
FORM_get_file_service() 882
FORM_get_last_field() 883
FORM_get_menu_items() 884
FORM_get_menubar_items() 885
FORM_get_object_attr() 886
FORM_get_object_list() 887
FORM_get_one_valtable_item() 888
FORM_get_row_text() 889
FORM_get_terminator() 890
FORM_get_valtable_items() 891
FORM_init() 892
FORM_install_list() 893
FORM_load_file() 894
FORM_load_form_from_page() 895
FORM_load_object() 896
FORM_make_groups_contiguous() 898
FORM_paint_in_DC() 899
FORM_server_copy_file() 900
FORM_server_delete_file() 901
FORM_server_rename_file() 902
FORM_server_retrieve_file() 903
FORM_server_save_file() 904
FORM_set_field_attr() 905
FORM_set_field_attr_using_ord() 906
FORM_set_field_focus() 908
FORM_set_file_service() 909
FORM_set_menu_items() 910
FORM_set_menubar_items() 911
FORM_set_object_attr() 912
FORM_set_one_valtable_item() 914
FORM_set_valtable_items() 915
FORM_show_form() 916
FORM_step_form() 917
FORM_text_out() 919
FORM_validate_form() 920
FP_abs() 921
FP_add() 922
FP_assign() 923
FP_dbl2num() 924
FP_divide() 925
FP_eql() 926
FP_geq() 927
FP_getmode() 928
FP_gtr() 929
FP_isundef() 930
FP_leq() 931
FP_long2num() 932
FP_lss() 933
FP_multiply() 934
FP_neg() 935
FP_neq() 936
FP_num2dbl() 937
FP_num2long() 938
FP_num2mask() 939
Numeric Mask 939
FP_num2ora() 941
FP_num2sci() 942
FP_num2str() 943
FP_num2unslong() 944
FP_ora2num() 945
FP_retsign() 946
FP_round() 947
FP_rounddisp() 948
FP_setmode() 949
FP_setundef() 950
FP_str2num() 951
FP_subtract() 952
FP_trunc() 953
FP_unslong2num() 954
IAFLIB_add_notation() 955
IAFLIB_add_notation1() 957
IAFLIB_cancel_print() 959
IAFLIB_check_membership() 961
IAFLIB_check_password() 962
IAFLIB_continue_query() 963
IAFLIB_create_cache_object() 965
IAFLIB_create_folder() 967
IAFLIB_delete_annotation() 969
IAFLIB_delete_cache_object() 971
IAFLIB_delete_docs() 973
IAFLIB_delete_folders() 976
IAFLIB_file_doc() 978
IAFLIB_file_doc_after() 980
IAFLIB_find_folders() 982
IAFLIB_find_index_in_DIR() 984
IAFLIB_find_system_defaults() 985
IAFLIB_FreeAttr2Memory() 986
IAFLIB_free_client_handle() 987
IAFLIB_FreeRequest2Memory() 988
IAFLIB_FreeStatusMemory() 989
IAFLIB_get_annotations() 990
IAFLIB_get_cache_object_attrs() 992
IAFLIB_get_client_handle() 994
IAFLIB_get_current_IMS() 995
IAFLIB_get_default_restrictions() 996
IAFLIB_get_doc_attr() 998
IAFLIB_get_docs_in_folder() 1000
IAFLIB_get_file_text() 1002
IAFLIB_get_folder_attrs() 1004
IAFLIB_get_membership_list() 1006
IAFLIB_get_object() 1007
IAFLIB_get_object_text() 1009
IAFLIB_get_print_queues() 1011
IAFLIB_get_print_queues2() 1013
IAFLIB_get_print_service_info() 1015
IAFLIB_get_print_service_info1() 1017
IAFLIB_get_printer_info() 1019
IAFLIB_get_printer_info2() 1021
IAFLIB_get_security_info() 1023
IAFLIB_get_server_version() 1024
IAFLIB_get_single_DIR() 1025
IAFLIB_get_user_name() 1027
IAFLIB_get_user_stats() 1028
IAFLIB_get_version() 1029
IAFLIB_initialize_RDD() 1030
IAFLIB_is_annotated() 1031
IAFLIB_logon_user() 1033
IAFLIB_migrate_from_optical_disk() 1034
IAFLIB_migrate_to_optical_disk() 1036
IAFLIB_modify_print() 1038
IAFLIB_modify_print2() 1040
IAFLIB_move_cache_object() 1042
IAFLIB_move_folder() 1045
IAFLIB_prefetch() 1048
IAFLIB_print_docs() 1051
IAFLIB_print_docs1() 1053
IAFLIB_print_files() 1055
IAFLIB_print_files1() 1057
IAFLIB_put_annotation() 1059
Creating an Annotation 1059
Modifying an Annotation 1059
IAFLIB_put_object() 1063
IAFLIB_query_db() 1066
Specifying the Key and Filter Condition 1067
System Indexes vs. User Indexes 1068
Key and Filter Indexing Fields 1068
Key and Filter Conditions 1068
Examples of Key Conditions 1069
Examples of Filter Conditions 1070
IAFLIB_reorder_folder() 1072
IAFLIB_resize_cache_object() 1074
IAFLIB_terminate_query() 1076
IAFLIB_unfile_docs() 1077
IAFLIB_update_db() 1079
IAFLIB_update_folder() 1081
IAFLIB_where_filed() 1083
IMGFMT_cmp_tiff() 1085
IMGFMT_compress() 1086
IMGFMT_convert_image() 1087
IMGFMT_convert_image_custom() 1092
QMR_build_doc_list() 1094
QMR_create_match_window() 1095
QMR_format_report() 1097
QMR_query() 1099
QMR_select_match() 1101
RDD_exit() 1103
RDD_get_dclass_info() 1104
RDD_get_dclasses() 1105
RDD_get_handle() 1106
RDD_get_ix_info() 1107
RDD_get_key_info() 1108
RDD_get_menuitem_info() 1109
RDD_get_menuitems() 1110
RDD_get_valid_ixs() 1111
RDD_get_valid_keyixs() 1112
RDD_init() 1113
RDD_is_field_valid() 1114
RDD_is_key_valid() 1115
RDD_set_handle() 1116
REST_CloseArchive() 1117
REST_GetArchTime() 1118
REST_GetDirEntry() 1119
REST_GetFileName() 1120
REST_GetFileNames() 1121
REST_GetVolName() 1122
REST_OpenArchive() 1123
REST_RestoreDoc() 1125
REST_RestoreFile() 1127
SCT_serialize() 1129
SEC_add_info() 1130
SEC_check_access() 1132
SEC_check_functions() 1134
SEC_check_membership() 1136
SEC_delete_info() 1137
SEC_find_info() 1139
SEC_get_membership_list() 1141
SEC_get_security_info() 1143
SEC_get_system_info() 1145
SEC_logoff() 1147
SEC_logon() 1148
SEC_rename_info() 1150
SEC_renew() 1152
SEC_set_system_info() 1153
SEC_update_info() 1154
SECMAN_free_sec_handle() 1155
SECMAN_get_sec_handle() 1156
SECMAN_renew_sec_handle() 1158
ServiceNameCacheDefaults() 1159
ServiceNameDefaults() 1160
ServiceNameOptions() 1161
SLACLIB_GetAttr() 1162
SLACLIB_GetTimeStamp() 1163
SLACLIB_RegisterWindow() 1164
SLACLIB_ResetTimer() 1166
SLACLIB_SetAttr() 1167
SLACLIB_Shutdown() 1168
SLACLIB_UnRegisterWindow() 1169
SVN_get_Attr_desc() 1170
SVN_get_BES_desc() 1171
SVN_get_CSM_desc() 1172
SVN_get_DefDevice_desc() 1173
SVN_get_DefServ1_desc() 1174
SVN_get_IMS_desc() 1175
SVN_GetLocalAddr() 1176
SVN_get_PS_desc() 1177
SVN_IMSToStr() 1178
SVN_parse_service_name() 1179
TTY_clear() 1180
TTY_clear_input() 1181
TTY_clear_msg() 1182
TTY_clear_softkeys() 1183
TTY_create_window() 1184
TTY_display() 1186
TTY_display_msg() 1188
TTY_display_popup() 1190
TTY_exit() 1192
TTY_get_pos() 1193
TTY_init() 1194
TTY_make_current() 1195
TTY_read_input() 1196
TTY_scroll() 1198
TTY_set_app_info_key() 1200
TTY_set_pos() 1201
TTY_set_softkeys() 1202
TTY_update_window() 1204
WQS_close_queue() 1205
WQS_continue() 1206
WQS_count_entries() 1207
WQS_create_queue() 1208
WQS_create_workspace() 1209
WQS_delete_entry() 1211
WQS_delete_queue() 1212
WQS_delete_workspace() 1214
WQS_end_dump() 1215
WQS_get_default_service() 1216
WQS_get_queue_desc() 1217
WQS_get_queue_names() 1219
WQS_get_server_name() 1221
WQS_get_workspace_info() 1222
WQS_get_workspace_names() 1223
WQS_insert_entry() 1224
WQS_is_WQS() 1226
WQS_logoff() 1227
WQS_logon() 1228
WQS_open_queue() 1230
WQS_qlogon() 1232
WQS_read_dump() 1234
WQS_read_entry() 1238
WQS_read_queue() 1240
WQS_renew() 1242
WQS_start_dump() 1243
WQS_update_entry() 1245
WQS_update_queue() 1247
WQS_update_workspace() 1249
Glossary 1257
Describes how to build a WAL for Windows program, how to test your
programming environment, and each of the sample applications.
Provides data flow diagrams for the WAL functions that illustrate the
individual functions and groups of functions that are necessary to perform
an operation. The data flow diagrams also show the order in which
functions are called.
Describes the error message display program (MSG.EXE) and the errors
specific to each library.
Describes the data types, constants, and data structures used with the
WorkFlo Application Libraries.
Describes changes in IMS Security Services with the IMS 3.1 release and
the corresponding WAL functions and data structures.
Glossary
The first time we describe a new term, you see it in bold text. A definition for
every bolded term appears in Appendix A.
Italic type indicates the titles of books or manuals recommended for further
information.
Education
FileNet offers introductory and advanced classes for system administrators,
developers, management, and support personnel. These classes combine
lecture and lab sessions to provide both conceptual understanding of the
FileNet system and practice in its operation. For more information on class
content and schedules, please visit the Education topics in the Services and
Support area of FileNet’s web site (www.filenet.com).
Mike Calvert
Director of Documentation
FileNet Corporation
3565 Harbor Boulevard
Costa Mesa, California 92626-1420
Phone: 714.966.2449
Fax: 714.966.7153
E-mail: calvert@filenet.com
This document describes the FileNet system and the client library functions
available to application developers who want to write software in the ‘C’
language that interacts with FileNet’s imaging systems from PC workstations.
The WorkFlo Application Libraries (WAL) provide a subset of the facilities
presently supporting WorkFlo Business Systems. As a group, the WAL
interfaces provide a broad variety of functions for storing, indexing,
transferring, and retrieving data objects.
Note The following system summary includes information concerning the FileNet
IMS software only. It does not include information about the AIX/6000
operating system.
Hardware
The system hardware has the following three major categories:
The term “service” applies strictly to software. More than one service can
reside on the same server. Conversely, a particular service can reside on
more than one server. (This is discussed in greater detail in “Servers and
Their Services” on page 5.)
Software
This section overviews the most important characteristics of the software—its
distributed architecture and its implementation according to a client-server
model. A discussion of processes, abstracts, and remote procedure calls
provides supporting concepts.
Distributed Architecture
Each station and server in the system is a separate computer dedicated to
performing a specific task. The name generally describes that task. For
example, the Index server performs tasks relating to indexing. No single
computer provides all of the processing for the system. The computers, and
the associated tasks, are geographically spread across the FileNet system.
FileNet IMS permits the computers to share resources and tasks. Running
FileNet IMS system-wide supplies the software connection that allows the
system components to communicate with each other. This communication
and the sharing of tasks and resources form the distributed nature of the
system architecture.
Processes
A process refers to an executing program that performs a task. FileNet IMS
can run a process in the background or foreground. Running a process in the
background permits another process to run in the foreground at the same
time. The FileNet IMS automatically runs certain processes in the background
at determined time intervals; these are called “daemon” processes.
Abstracts
An abstract is a piece of software code that many processes use. The code
provides capabilities that a process lacks, and it extends the power of UNIX.
An abstract can be called by various processes and even by other abstracts.
To the system, the abstract is shareable: rather than repeat the code many
times, the code is written once, then used by each routine that calls it.
The called abstract provides a service to the calling process. The abstract
manages particular data structures and provides a procedural interface to the
data. In this way, an abstract insulates the calling process from having to
manage the data. The process just calls the abstract that will do the work for
it.
Client DLLs (explained below) make the actual requests. Remote services
provide the requested services on a station other than the client. In this
process, the client and server pass requests and parameters so that the
network appears not to exist. Stubs, as described below, make the network
transparent to the client software.
Client DLLs
To call a service, the client software links to a DLL. This abstract first
determines whether the requested abstract (target abstract) resides locally or
remotely. The station containing the target abstract is called the target station.
If the target abstract is local, the client stub abstract links to the target abstract
and passes any parameters included in the original call.
If the target station is remote, the client stub abstract serializes parameters for
transmission over the network and sends them and the call to the target
station and the target abstract.The client DLL also deserializes the results
returned to it across the network from the target abstract.
Remote Services
On the server providing the remote service, the Server Stub program receives
and deserializes the request and the accompanying parameters sent from the
client across the network. The Server Stub program then links to and calls the
target abstract.
When the target abstract has executed, the Server Stub program returns
results to the client stub abstract over the network.
Root Server
Each FileNet system has one root server, which has the following
characteristics:
• FileNet IMS is a distributed file system. Every server runs its own copy of
the FileNet IMS system. All files, however, are part of a single “global” file
system. Whether the disk containing the file is local or remote to a given
server, the file name is the same. Furthermore, the file name contains no
indication of the physical location of the file.
• FileNet IMS moves an entire process out to the swap area, which is
referred to as “swapping.” Also, FileNet IMS always runs processes
contiguous in physical memory.
Index Server
The Index server contains a magnetic disk that stores the index database.
Client applications can access this database. This server runs Index Services,
which stores, retrieves, and updates information in the document index
database. Currently, FileNet’s index database is a converted Oracle data
abstract, or a Sybase relational database.
There are two types of index fields, system and user. System index fields are
common across all document index records. Each document class contains
the same system index fields and different user-defined index fields. You
might also define an indexless document class which contains no user-
defined index fields.
The process of writing document index values into the Index database is
called cataloging. When cataloging is complete, documents can be retrieved
by querying using index values. Documents must be classified into document
classes. Documents also can be classified into folders.
Optionally, customers can use their own mainframes and their own databases
to keep track of the document indexes.
Software for the Storage Library server divides Storage Library server
functions into back-end and front-end processing. The front end provides
software that fields requests from other stations. That is, requests from other
stations for Storage Library services get queued by the front end for
processing by the back end. The back end processes requests from the front
end one at time. While the front end retrieves requests, the back end performs
the slow reads and writes between the page cache and an optical disk.
Document Services
Document Services provides access to image documents. It maps document
numbers into optical disk and/or magnetic disk cache locations, and returns
the compressed bitmaps (for image documents) or the actual document
data (for ASCII and other types of documents). The IAFLIB document
functions are entry points to Document Services.
Cache Services
Cache Services stores and retrieves objects from magnetic disk caches. Only
one physical cache can exist on a server. The contents of the cache are
managed by a transient database. A physical cache can contain the following
logical caches:
The (n) in the cache name represents the station number. The IAFLIB cache
functions are entry points to Cache Services.
Print Services
Print Services maintains queues of print requests. This service invokes
Document services. It runs on either the Document server or the Storage
Library server. Print Services uses the print cache to store documents that are
waiting to be printed. The IAFLIB print functions are entry points to Print
Services.
WorkFlo/Print Server
The WorkFlo/Print server is a PC-based server that controls printers that print
documents or files ranging from A-size documents to E-size drawings.
Although the server contains no magnetic disk, it does connect to an ANT.
(Note that Print Services runs on the Storage Library server, not the Print
server.)
WorkFlo/Fax Server
The WorkFlo/Fax server is a PC-based server. The necessary fax server
software resides on the hard disk of the PC. This software is a client of Print
Services.
The user can send or receive FileNet images via the fax server. When
receiving an image, the fax server optionally commits the image to the FileNet
system. The software also displays a journal of all fax server transactions.
This journal can be committed to the FileNet system.
WorkFlo/Scan Station
The WorkFlo Scan station is a PC-based workstation for scanning
documents.
Application Server
The Application server is an additional server that is used to host any
combination of these services: WorkFlo Queue Services, Batch Entry
Services, Cache Services, Print Services, and SQL Services. This server, and
the associated software services, provides a performance improvement
option by replicating and distributing certain heavily-used services.
A queue is a list of entries (one entry per row) that contains a specific number
of columns of information. Each column is called a queue field. There are two
types of queue fields, system and user. System queue fields are columns
common across all queues. User-defined queue fields can differ from queue
to queue.
• Regular queues can be filled when all required field values are available.
• Specify the WorkFlo system (workspace) name and the WorkFlo queue
name in the definition of the document class.
To define a regular queue, you must not define any user-defined field as a
rendezvous field.
Much of the disk space is dedicated to BES cache. BES cache stores images
that are waiting to be indexed and committed. A batch is a collection of
images and descriptions that indicate how the images should be combined
into documents. After the batch is committed, the batch is deleted from BES
cache.
The BATCHLIB and BES functions are entry points to Batch Entry Services.
Cache Services
If you have an Application server configured with Batch Entry Services, the
server must also contain Cache Services, which stores and retrieves objects
from magnetic disk caches.
Operating environment
The following diagram shows the location of the WAL services and their
relation to other software subsystems.
PC Workstation
Application Programs
IAFLIB
WorkFlo Application
Libraries
Communications H/W
& S/W (Courier, RPC,
XNS, or TCP/IP, U-B
or 3Com)
LAN
Application programs are the user interface programs. This is the usual level
of the software to which the user at the workstation has direct access.
The IAFLIB layer contains the high-level library routines that are available to
the application programmer. These routines set up all of the necessary calling
parameter information and make all of the necessary calls to the WAL entry
points. These are also the routines that give meaning to the data that is stored
in the various objects manipulated by the WAL services.
The WorkFlo Application Libraries layer corresponds directly with the basic
functions that are provided by the FileNet servers. For the most part, none of
the libraries are built upon any of the others (i.e., WAL modules make few
calls to other WAL modules). It is this layer of the client software that deals
directly with the Courier communications software. The entry points, data
structures, and functions provided in this layer are not addressed in this
manual; they are transparent to the applications programmer.
The communications layer is the layer that actually uses the Courier
definitions and Remote Procedure Calls to communicate across the network
with the rest of the servers on the FileNet system.
Retrieval Example
To retrieve documents that have been stored on a FileNet IMS system, you
start by accessing the Index Service. The Index Service contains data about
each document. Entry points (functions) into that service allow you to ask for
documents containing particular types of information—depending on how the
documents were indexed at the time they were stored. For example, perhaps
you want all the documents for account number 8834 or all the documents for
that account number received in July. The Index Service supplies you with the
IDs for the documents you need.
The next several steps can all be performed by one DISPLIB function, but it is
important to understand what is going on. The Document Service has a
database that lists the documents by ID and can find out what optical disks
contain the documents and where on those disks the documents can be
found. The Document Service calls a Cache Service and transfers the
documents to a cache.
Committal Example
The Batch Entry Service adds documents to the FileNet IMS system. Each
document starts out as a collection of images placed in a cache by a Cache
Service. The images are indexed using forms that are either customized or
supplied by the File Service. Some indices, such as the entry date for the
document, are required by the FileNet system. User-defined indices are
grouped by document class so that similar documents can have the same
indices.
• The documents are copied to optical disk in a storage library. For this
purpose, the Batch Entry Service calls the Document Service.
Routing Examples
A queue is a table in a database, each row of which is a unit of work. The
columns in that row contain document IDs and other data required to process
the work.
• to route work to the correct worker or group of workers. In this case, each
queue is like an in-basket that operates on a first in–first out or prioritized
basis. Each row in a queue can be likened to an item or folder in an in-
basket on an employee’s desk.
• to route work from worker to worker. In this case, each queue is also like
an in basket that operates on a first in–first out or prioritized basis. Some
workplaces do work in much the same way that factories produce cars—
in an assembly line. The work is passed from one worker to the next.
Each worker performs a different task, and when all their tasks have been
completed, the work is considered done.
• to collect data for use in statistical reports. In this case, whenever work is
accomplished, you store data about what it was, who did it, and when it
was done. Sometimes you record how long it took to do as well. After you
make the report, you empty the queue.
Note This release does not include Document Entry, which is a 16-bit application.
Programmatically-controlled Document Entry applications must use the 16-bit
versions. New customers must plan for separate 16-bit stations for Document
Entry.
• You understand the FileNet system architecture and the basics of using
the FileNet system.
Before using this reference manual, make sure that you have installed the
following software:
• The FileNet WAL for Windows. The WAL for Windows Installation Manual
leads you through the installation process.
Note WAL for Windows release 5.0 does not support long file names.
• The FileNet WAL for Windows libraries (.LIB) in the LINK statement or link
the WAL dynamic-link libraries (.DLL) at run time.
Most applications need to include the following three files before including any
other FileNet WAL include files:
The functions are defined in the prototype include (.I) files. There is one
prototype file (.I) that corresponds to one import library (.LIB) and one
dynamic-link library (.DLL). The .I file usually includes all the necessary
definition include files (.DEF and .H).
To test your programming environment, you can compile and run the sample
log on application. Follow these steps:
2 Build the application. If you are using NMAKE, type the following and press
ENTER:
NMAKE SAMPLOG.MAK
Troubleshooting
If the NMAKE file failed during the second step, check the following
possibilities:
If the NMAKE file passes the second step and fails the third step, check the
network; you might have to reinstall WAL for Windows.
The Start Date is a constant. The Current Date displays the current PC
system date.
The thumb of the scroll bar indicates the beginning of a time range. The
Difference in Days window displays the difference in days between the day
indicated by the thumb and the Current Date. To move the scroll bar thumb,
click to the right or left of the thumb or click on the left or right arrow on either
end of the scroll bar.
Log On Application
This application enables you to log on and log off. It contains two menu items,
Logon! and Logoff! When you click on Logon!, a popup window appears
indicating that you are logged on. Click on OK. When you click on Logoff!, a
popup window appears indicating that you are logged off. You can select OK
or Cancel.
The user name, password, and domain in this sample application will need
modification to run on your system.
General Application
The General application demonstrates a combination of functions, including
the IAFLIB functions.
Before using the General application, you must log on from the Log on
application. Also, once the General application has been opened, you must
select the Init option from the Init pulldown menu to enable most of the
options. This initializes a session.
The Environment option on the Init pulldown menu displays the services that
are currently selected.
The Output pulldown menu enables you to write text to the screen, erase text,
and to send text to the clipboard to exchange data with other applications.
The Display pulldown menu displays FileNet image files, documents, and
uncommitted documents. You can select various views. The file option
displays FileNet image format files from disk, such as d:\fn00000.fob.
The Annotations feature applies to the document option, but not the file
option. When there is more than one annotation, the Next and Prev options
are enabled to view the next and previous annotation.
You can print a file, a document, a single page, or get printer information from
the Print pulldown menu.
The RDD pulldown menu enables you to display document classes, index
fields, and index information.
The Query pulldown menu enables you to search for documents using a key
and filter search. These options return a list of documents, not a full Query
Match Report.
Image Application
The sample Image application demonstrates three ways to display a FileNet-
formatted image and one way to display a bitmap image.
The second option, Paint a Bitmap File, displays a bitmap file. You can add an
interface that enables the user to select bitmap files.
Security Application
This application demonstrates the use of the security functions. To obtain
various security information, first log on to the Security Services by pressing
F1.
You can then use the function keys or the mouse to obtain information about
user functions, system information, security information, and membership
lists.
The Folder pulldown menu enables you to create, delete, find, and get the
attributes of folders. Also, a move option enables you to move documents
from one folder to another.
The Find Docs pulldown menu opens a Query Match Report (QMR) window.
You can enter conditions for a document search using a Folder name, Folder
status, Document status, Key and Filter conditions.
Document Application
This application demonstrates the use of the document retrieval functions
within the IAFLIB library. The Document application has two pulldown menus:
Screen and Document.
The Screen pulldown menu enables you to display and repaint an image. You
can also clear the image and exit the application from this menu.
You can delete the document. Note that this application currently implements
this function so that you can only delete documents that are not filed in a
folder.
The Get Attr option displays the attributes of the currently displayed
document.
The Update database option enables you to update the document indices.
This sample application currently updates the database with old values. You
can modify the code to update the database with new values.
The lower half of the Document pulldown menu contains three folder options:
File Doc, Unfile Doc, and Where Filed. File Doc enables you to file a
document into a folder. You can also unfile a document. This option is enabled
only after you have located the document using Where Filed.
It contains three menus: Display, List, and Print. The Display menu displays a
document. The List menu enables you to view any documents that have been
queued in this application for printing. You can also reset the print list. The
Print menu prints the list of documents.
Commit Application
The Commit application commits a file to optical disk. This application makes
use of the BATCHLIB_BatchEntry() function, a multi-purpose BES function.
• Create a form
Indexing Application
The FNINDEX application demonstrates how to display the default index form
and the filled in values. It also shows how to display the custom index form
(specified in LOGON.CFG) and get the filled in values.
This chapter provides data flow diagrams for the WAL functions. The data flow
diagrams:
• Explain each diagram, to further clarify the options and to highlight any
caveats of which you should be aware.
Archive/Restore
The following diagram illustrates archive/restore data flow:
BATCHLIB
The following data flow diagram illustrates use of the BATCHLIB functions,
which provide high-level interface with the BES (Batch Entry Services)
functions. They are a simple way to perform batch entry operations without
using lower level BES functions.
The upper branch on the left illustrates how to perform a batch entry operation
using one function, BATCHLIB_BatchEntry(). BATCHLIB_BatchEntry()
creates a batch, writes images to a batch, creates documents from images,
indexes a document, and commits the whole batch. It returns a handle to a
batch entry status structure.
The lower left branch shows the functions you use to verify images in the BES
cache. BATCHLIB_find_batch_images() opens the batch, returns an array of
The middle branch illustrates the functions that you use to verify, index, and
update a previously-created document.
The right branch illustrates the functions that you use to update batch
information and commit a batch.
Note The Batch Entry Services (BES) library contains additional optional functions,
explained at the end of this section.
The functions listed in the first branch of BES Data Flow Diagram I pass data
to and from the remote cache. These functions are explained more in the
“CAM (Cache Manager) Data Flow Diagram” on page 33.
The functions listed in the second branch manage and assemble documents.
BES_create_doc() creates a document from images and indices. BES_
query_index_dir() retrieves the directory of indices associated with the
specified batch. BES_update_doc() updates the document indexing
information. BES_delete_doc() deletes a document. BES_find_docs() finds
one or more document descriptors.
The functions of branch three on the right-hand side allow you to manage and
commit batches. These functions are further explained by “BES (Batch Entry)
Data Flow Diagram III” on page 32.
The functions in the left branch write a local file that contains one page image
into the BES cache. BES_create_image() opens the transaction and sets the
image attributes (e.g., allocates space). BES_write_image() writes the image
data into BES.
The functions in the middle branch can be used to verify the images in BES
cache. BES_open_image() opens an image for read. BES_read_image() or
BES_read_whole_image() copies the image data into a local file. You can use
the DISPLIB functions to display the image for verification. BES_verify_
image() sets the verify status of the image.
The functions in the right branch allow you to update the image. BES_update_
image() updates the image attributes. BES_write_image() writes the new
image data into BES. BES_move_image() moves an unassembled image
from one batch to another batch. BES_delete_image() deletes an
unassembled image.
The three functions shown at the bottom of the diagram allow you to close a
transaction. Normally, you use BES_close_image() to update the BES status.
BES_abort_image() allows you to cancel what you have done in the opened
The functions in the left branch update the batch. The functions on the right
commit the batch. BES_enqueue_batch() places a previously-opened batch
into the specified queue, typically to enqueue a batch for committal. BES_
commit_batch_now() and BES_sync_commit() commit a batch
synchronously. Control returns to the user after the batch is committed.
The additional functions can be separated into the following three groups:
Functions Description
BES_create_image_index() Used for internal indexing, not for
BES_delete_image_index() document indexing. Used to store and
BES_get_image_index() control information passed to an image.
BES_modify_image_index() Could be used to control information
passed back from a scanner. After a batch
is committed, this information is deleted.
They are optional.
CAM
The following data flow diagram illustrates use of the local cache
manager (CAM) functions. These functions manage the local cache.
Local cache can be a RAM drive or any drive and directory on your PC. An
entry in the LOGON.CFG file specifies this location. For example:
CAM_find_file() checks to see if the compressed image file for the specified
document ID and page number exists in the cache. If so, it returns the file
name of the temporary file in which it is stored. CAM_get_attr() returns
attribute information for the cache object.
CAM_exit() deletes all temporary files in the cache. Call this function once
when ending a Windows application that uses CAM functions.
DISPLIB
DispLib Data Flow Diagrams I and II illustrate the use of DISPLIB (Display)
functions.
If your application displays an image more than once, register the object
before you call DISPLIB_paint_object(). Then, free the object when you have
displayed the image. This way, the application does not have to take the time
to register and free the object each time it displays.
DispLib Data Flow Diagram II illustrates two more ways to display an image.
We recommend using DISPLIB_paint_object() as shown in DispLib Data Flow
Diagram I. The path in DispLib Data Flow Diagram II is provided as a
compatible method for previously written WAL applications.
This method of image display loops to get and display bands until the image is
painted. You can use Windows functions (SelectObject(), BitBlt(), and
DeleteObject()) or DISPLIB_paint_bitmap(). DISPLIB_close_object() closes
any FileNet banded image file opened by DISPLIB_get_band_bitmap().
FILLIN
The FILLIN functions allow a user to fill in, index, print, and commit a form.
FN Index
The first function, FN_index_form_init() allocates and initializes data for the
index form. It returns a data handle to the index form.
FNP
This data flow diagram illustrates the use of the local print (FNP) functions.
For remote printing, see “IAFLIB Print (Remote)” on page 60.
FNP_init() allocates enough memory for an FNP_data data structure and fills
it with the corresponding information. For local printing, this function should be
called once by each application.
After initializing the data structure, you can print from three functions. FNP_
print() prints a list of documents. FNP_print_from_file() prints a document
page by specifying a filename (FileNet formatted), usually a CAM file. FNP_
print_form_page() prints a form page. Finally, FNP_exit() frees all resources
that were requested by FNPRINT. Call once before the application terminates.
FORM
This data flow diagram illustrates the use of the form library (FORM)
functions. This section presents the FORM functions in the following three
areas: Create Form, Execute Form, and Store Form.
Use FORM_init() to initialize the FORM library and use FORM_exit() to free
the resources used by the FORM library.
We recommend that you use the AutoForm System Development Kit (SDK) to
create forms and store them as form files.
• Store a form (ASCII file) on the PC local disk, PC LAN server, or FileNet
system root server
Create Form
The Create Form Diagram illustrates how the Create Form function creates or
modifies form objects and form fields. You can save a form in memory to a
form file. You can display a form that resides in memory by executing a form.
To execute a form from a file, load the form into memory, then call the execute
form functions.
FORM File
The FORM File diagram illustrates how a form file can contain many form
objects. Form objects are forms, menubars, menus, and validation tables. For
performance reasons, we recommend that you create only one form per form
file.
2 Use FORM_set_object_attr() to set a single form attribute. Make this call once
for each form attribute you want to assign.
3 Use FORM_create_field() to create a single field. Make this call once for each
field you want to appear on the form.
4 Use FORM_set_field_attr() to set a single field attribute. Make this call once for
each field attribute you want to assign.
Use the form character map to write text and paint background images.
Object Maintenance
Form Fields
A form can contain a menubar, a character map, menus, and form fields.
Because FORM_create_object() creates a form with default attributes, you
might find that the default form fields are adequate for a simple form.
There are two types of form fields: input fields and display fields.
FORM_create_field()
FORM_clear_field_value()
FORM_default_field_value()
FORM_delete_field()
FORM_enable_fields()
FORM_get_bitmap_handle()
FORM_get_field_attr()
FORM_get_field_attr_using_ord()
FORM_get_field_count()
FORM_get_field_info()
FORM_get_field_name()
FORM_get_last_field()
FORM_make_groups_contiguous()
FORM_set_field_attr()
FORM_set_field_attr_using_ord()
The following two functions change all input field values in a form:
FORM_clear_form_values()
FORM_default_form_values()
The following functions create and maintain the contents of comboboxes and
listboxes:
FORM_append_item()
FORM_box_add_item()
FORM_box_delete()
FORM_box_directory()
FORM_box_find_item()
FORM_box_get_count()
FORM_box_get_sel()
FORM_box_get_sel_count()
FORM_box_get_text()
FORM_box_get_text_len()
FORM_box_match_item()
FORM_box_select_list()
FORM_box_set_default()
FORM_box_set_sel()
FORM_install_list()
FORM_get_menubar_items()
FORM_set_menubar_items()
FORM_change_menu_item()
FORM_get_menu_items()
FORM_set_menu_items()
FORM_get_valtable_items()
FORM_set_valtable_items()
Execute Form
A form is not visible to the user until you execute it. The form execution stages
include:
1 Display the form. You can display a form in many ways. For example, you can
display it as hidden, grayed, minimized, or maximized. To display a form for
fill-in, use:
FORM_do_form()
FORM_enable_form_window()
FORM_execute_form()
FORM_show_form()
FORM_step_form()
2 Update the form. A user can fill in form fields or you can use FORM_set_field_
attr() to update them. You can change menus and menubars during execution.
• Call FORM_escape_form().
After a user terminates a form, the function returns a terminator to indicate the
state of the execution. For modal form execution, the function returns the
terminator from the last parameter of the function. For modeless form
execution, use FORM_get_terminator() to retrieve the terminator value.
Field validation is evaluated before the field is updated. If validation fails, the
cursor remains in the current field. An error is returned.
FORM_add_named_rule()
FORM_add_rule()
FORM_check_syntax()
FORM_evaluate()
Store Form
A form is stored as an ASCII file on a FileNet system root server, a PC’s local
disk, or a PC LAN server.
You can store an unlimited number of form objects in a form file. For
performance reasons, we recommend that you store one form per file.
Each FileNet system has a remote file service. A remote file service allows
you to store and retrieve forms files on a FileNet server.
When storing form files to or retrieving form files from a FileNet server, you
can specify the form filename or a path and a form filename. When you
specify a filename only, the FileNet system uses the FN search path defined
in the LOGON.CFG file. When you specify a path and filename, the FileNet
system searches the specified path beneath the FN search path.
FORM_find_file()
FORM_find_file_in_path()
FORM_get_file_list()
Use the following functions to manipulate form files in a FileNet system root
server:
FORM_get_file_service()
FORM_server_copy_file()
FORM_server_delete_file()
FORM_server_rename_file()
FORM_server_retrieve_file()
FORM_server_save_file()
FORM_set_file_service()
Before you execute a form that is stored as a file or committed to the FileNet
system, you must use the following functions to load a form from file or from a
committed form page into memory:
FORM_load_file()
FORM_load_form_from_page()
FORM_load_object()
FORM_generate_fill_in_page()
FORM_generate_form_file()
FORM_generate_image_page()
FORM_generate_one_form_file()
FORM_gererate_pcode_file()
IAFLIB.I Management
IAFLIB.I can be separated into the following eight sections:
IAFLIB_SECURITY IAFLIB_ANNOTATION
IAFLIB_CACHE IAFLIB_FOLDER
IAFLIB_INDEX IAFLIB_DISPLAY
IAFLIB_PRINT IAFLIB_OCR
#define IAFLIB_SELECT
#define IAFLIB_CACHE
#define IAFLIB_INDEX
#include <IAFLIB.I>
To specify the sections to exclude, you define the sections that you want to
exclude, then include iaflib.i. For example, the following statements exclude
the IAFLIB_OCR and IAFLIB_DISPLAY sections:
#define IAFLIB_NOOCR
#define IAFLIB_NODISPLAY
#include <IAFLIB.I>
The IAFLIB_SECURITY section contains the log on functions for log on. The
rest of the functions are security functions. We recommend that, rather than
use the rest of these security functions, you use the SECLIB functions
whenever applicable.
The IAFLIB_INDEX section contains the functions that query the index
database and modify the indexing record (including delete).
The IAFLIB_FOLDER section contains the functions that manage the folders.
The IAFLIB_OCR section contains the functions that are not supported.
Always exclude this section from IAFLIB.I for a WAL for Windows application.
IAFLIB_get_band_bitmap()
IAFLIB_close_image_file()
IAFLIB_paint_image()
IAFLIB_paint_bitmap()
DISPLIB_get_band_bitmap()
DISPLIB_close_object()
DISPLIB_paint_object()
DISPLIB_paint_bitmap()
The lower half of the diagram illustrates how data flows between the PC,
remote cache, and the optical disk.
IAFLIB_put_object() writes the data to the cache object, which must already
exist, or updates the object’s attributes, or both.
After the query, pass the array of DIR_h to Query Match Report (QMR)
functions to view the query data. Having viewed the document information,
documents can be selected. Pass the selected document ID (doc_id) to the
following sets of functions for further processing.
The function branch on the far left illustrates functions to use to display the
image. IAFLIB_prefetch() is an optional function for prefetching documents.
Your application might benefit from prefetching documents from optical disk to
remote cache. For example, your application can pass a range of document
ID’s to the IAFLIB_prefetch() function to be prefetched at night to be ready the
next day. IAFLIB_get_object() retrieves an object and places it in a file in the
PC’s local cache. It returns the name of the file containing the object in
filename.
The second branch from the left illustrates how to get document attributes. If
you want more information about a document, call IAFLIB_get_doc_attr().
IAFLIB_get_doc_attr() returns a handle to a DOC_doc_location_desc_typ()
structure for the specified document.
• Delete annotations
The branch on the far right of the illustration defines how to update document
index information. IAFLIB_get_single_DIR() performs a high-performance,
non-interruptible query. It returns a single document index record retrieving it
by its ID number. Given a Document Index Record (DIR) pointer and an index
ID, IAFLIB_find_index_in_DIR() returns a pointer to the value of the index in
the DIR if the index is present. This function provides an easy way to use or
change an index value via the returned pointer. IAFLIB_update_db() closes a
document, changes the index values of an existing document index record, or
both.
IAFLIB Folders
The following data flow diagram illustrates the use of the folder functions.
Note Use folder_name to specify a specific file name. You can use wildcard
characters (* and ?) for matches in folder specification.
IAFLIB Logon
The following data flow diagram illustrates the functions that are used to log
on and off of the FileNet system.
The functions on the left show the logical flow of a log on application.The
functions on the right show the logical flow of an application using IAFLIB.
See the log on sample application for code that demonstrates the use of these
functions.
After you log on, LTS.EXE runs in the background. The log on application
yields to other applications. In the application path, you should use IAFLIB_
get_user_name() to check whether the user has logged on to the FileNet
system. IAFLIB_get_client_handle() allocates resources on behalf of a client
and returns a handle. This handle must be passed to most IAFLIB functions.
SendMessage(-1,msg,NULL,0L);
The top left box in the flowchart includes two functions that get printer
information. On a large system, this type of information enables the routing of
print jobs to less-used printers so that printers do not become overloaded.
The print function you use depends on the type of file you want to print.
IAFLIB_print_files() prints the contents of a DOS file containing standard
ASCII text. It prints one file per call. IAFLIB_print_docs() submits a request to
print documents or uncommitted images.
Each of these functions returns a unique request ID. This request ID must be
specified when you modify or cancel a print request.
The branch on the left uses the IAFLIB query functions to perform the query.
The function used to initiate a query is IAFLIB_query_db(). This function
returns an array of DIR_h structures. IAFLIB_query_db() performs an Index
Database Query. Use IAFLIB_continue_query() to retrieve further matches
from the same query specification.
An application can download this information from the Index Server by calling
RDD_init(), which loads the information into a local cache and returns a RDD
handle.
The functions in the branch on the far left get the names of document classes,
indexes, key indexes, and menu items. RDD_get_dclasses() returns a count
of document classes and a handle to an array of document class names.
RDD_get_valid_ixs() returns a handle to an array of index names. RDD_get_
valid_keyixs() returns a handle to an array of key indexnames. RDD_get_
menuitems() returns a handle to an array of menu item strings.
The functions in the branch on the far right check the validity of indices and
key indices. RDD_is_field_valid() returns an index field descriptor if the
specified index is a valid index for one or more of the document classes listed
in the input. RDD_is_key_valid() returns index field descriptor if the specified
index is a valid key index for one or more of the document classes listed in the
input.
The two functions at the bottom of the flow diagram allow you to use the RDD
memory area for purposes other than containing the Retrieval Data
Dictionary. These functions have nothing to do with the Retrieval Data
Dictionary but they take advantage of RDD memory.
SEC (Security)
The following data flow diagram illustrates the use of the security functions
which provide an interface to the security database and Security Service. This
library enhances the security features of the IAFLIB library.
The six functions in the right branch retrieve or modify security information.
SEC_find_info() retrieves information from the security database about users,
workstations, functions and their members. SEC_add_info() enables a
logged-on user to add information to the security database for users,
workstations, functions, and their members. SEC_delete_info() enables the
logged-on user to delete information from the security database for users,
workstations, functions, and their members. SEC_update_info() enables the
logged-on user to update information in the security database for a user,
group, or service process. SEC_set_system_info() enables the logged-on
user to set either system information in the security database, or the system
date/time. SEC_rename_info() changes the name of a user or group in the
security database to a new name.
TTY
The TTY functions provide a simple window system for reading and writing
data.
The TTY data flow is shown in TTY Data Flow Diagrams I and II.
The functions in the left branch manipulate the cursor position and window.
TTY_set_pos() sets and TTY_get_pos() returns the caret position within the
TTY window. TTY_scroll() scrolls the rectangular area specified.
TTY_display() displays data at the current caret position. You can optionally
use TTY_update_window() to immediately show the results of any display
commands.
If you know the name of the domain to search, the workspace name, and the
name of the queue, you can find the name of the Queue Service by calling
WQS_get_server_name(). It returns the name of the WorkFlo Queue Server
responsible for servicing the specified queue. Use WQS_qlogon() if you know
the name of the workspace and the name of the queue to be accessed. The
log on functions return a queue session handle that is passed to all WQS
functions.
The functions in the left branch illustrate how to browse a queue. These
functions can only read the contents of a queue. They cannot modify
anything. This is a fast way to read a queue.
The functions in the middle branch of the diagram illustrate how to read and
update an entire queue. WQS_read_queue() retrieves one or more entries
that satisfy a set of filter conditions from a queue. WQS_update_queue()
modifies the definition of an existing queue.
The functions in the right branch illustrate how to modify individual queue
entries. A queue entry consists of system-defined queue fields and user-
defined queue fields. WQS_count_entries() returns the number of queue
entries in a queue that satisfy a specified set of filter conditions. WQS_read_
entry() retrieves a specific entry, the identification of which is already known.
WQS_insert_entry() inserts one or more entries into a queue. WQS_delete_
entry() deletes one or more entries from a queue and WQS_update_entry()
modifies a specific queue entry.
This chapter describes the error message display program (MSG.EXE) and
the errors specific to each library.
The MSG utility provides explanatory text for FileNet error numbers (also
called error tuples). The remainder of the chapter describes the errors defined
in the header files.
When provided with an error tuple at the DOS prompt, MSG.EXE provides a
text description of the reason for failure. MSG uses the ERM.IDX and
ERM.DAT files. If MSG.EXE, ERM.IDX, and ERM.DAT are not in the same
directory, MSG.EXE must be in one of the execution PATH directories, and
ERM.IDX and ERM.DAT must be in one of the data path APPEND directories.
Syntax
MSG error
error can be any number of errors separated by spaces. Each error has one of
the following formats:
When MSG is entered without entering any errors, the program displays a text
message showing the syntax of the command line.
Examples
msg 4,0,1 4,0,2 4,0,3
Error Messages
The include file PCWS.H defines the module identifiers for the various WAL
service functions as well as all other PCWS functions. Also included in
PCWS.H is the definition of the error-tuple packing routine that is used. This
routine packs the long value that contains the error-tuple format (category +
function + number) used to return errors.
For the most part, errors are passed through by all of the FileNet modules.
Thus, a call to a WAL entry point should return the error code of the actual
module that failed, along with the reason for failure, rather than mapping this
code to some error that is specific to the module called by the client
application program. This provides for a more specific error listing, which is
more useful to the client in pinpointing the cause of the problem.
Some library errors are divided into the following two categories:
Those that are not in the protocol would typically represent an error in the
programming of the PC workstation (caused by the application programmer,
not the user). These are most often used by the developer when creating the
application programs, to debug the code.
Those errors that are in the protocol represent errors that are legitimate user
errors (that cannot be caught by the application program because they are
syntactically and semantically correct). An example of this type of error is a
user requesting a document for which there is insufficient access privilege.
As the interface to the FileNet system, the WAL for Windows function calls
return a wide variety of errors, some specific to the call, some related to
underlying subsystems, and some related to local or remote network layers.
The first column in the error message tables in the following sections
represents the error number. To form an error tuple, use the err_encode()
function. For example:
err_encode(10, 0, RDD_DCLASS_NOT_FOUND);
Application Information
Defined in appinfo.i.
Archive
Defined in archlib.i.
BATCHLIB
Defined in batchlib.i.
Display
Defined in displib.i.
Document Services
Defined in doc.def.
Date/Time
Defined in dtm.def.
Fill In
Defined in fillin.i.
Local Print
Defined in fnprint.i.
Forms
Defined in formlib.i.
Floating Point
Defined in fp.def.
IAF Library
The IAF Library includes Folders, Document Retrieval, Cache Management,
Log on, Remote Print-Folders, and Remote Print.
Defined in iaflib.i.
Index Form
Defined in indxform.i.
Index Services
Defined in inx_err.h.
Remote Print
Defined in pri.def.
Restore
Defined in restlib.i.
SCT
Defined in sct.def
Security
Defined in secdefs.h.
Security Management
Defined in secman.i.
Service Name
Defined in servname.i.
SLACLIB
Defined in slaclib.i.
TTY
Defined in ttylib.i.
This chapter describes the format of banded images, tiled images, postage
stamp images, and images on optical disk as used by FileNet.
Note WAL for Windows supports some TIFF image formats. If you need more
information, contact FileNet for details about which TIFF image formats are
supported.
Page Layout
Each page is composed of a number of horizontal strips known as bands.
Each band usually contains the same number of scan lines, except for the last
band, which might be short. An A-size banded image usually contains
34 bands of 64 scan lines each. An additional, final band has about 24 lines.
The following figure shows an image divided into bands.
Memory Format
In memory, a banded image starts with a header that provides general
information about the image. This information includes:
The banded image header also contains a field to record the resolution of the
image. Note that there are two #defines that refer to a density of 200 SPI. The
most appropriate code to use when creating images is SPI200. The other
code, SPI200A, is provided for compatibility with old documents that were
processed through a rotation routine that zeroed the density field as a side-
effect.
Following the banded image header is an array of band descriptors, one entry
per band. Each entry indicates:
Each band is stored in the format that best suits the data inside it. A field in
the band descriptor indicates what type of band is being examined. Most
bands are compressed one-dimensionally (CCITT Group III), without
extension codes. Their band descriptors flag them as CMP_BAND. In
addition, lines in excess of 220 bytes wide are split in half and treated as two
lines. For more information, see “Special Limitations” on page 147.
• Some bands are marked RDC_BAND. This means that the image data in
the band has been reduced 2:1 along each axis. The data itself is stored
uncompressed. In such a band, the band_size field is correct, but the
nlines field reflects the unreduced band. Since the line_width field is
maintained on an image level and not a band level, it also reflects the
unreduced band.
IAI creates this type of band when the image threatens to exceed a
reasonable size limit. Following the array of band descriptors is the image
data (bitmap), grouped into bands, each of which is long-word aligned.
The bands are in the same relative positions as the band descriptors.
image_header
band 0 descriptor
band 1 descriptor
band 2 descriptor
.
.
.
band n descriptor
band 0 data
band 1 data
band 2 data
.
.
.
band n data
Coding Details
The complete description of banded images can be found in the header file
image.h. A copy of this file is included in this chapter; see “image.h” on
page 148.
From there, the band descriptors are randomly addressable, such as band_
p[3]; the pointer can also be incremented for sequential access. The portion of
the bitmap corresponding to each band is not easily addressed and must be
located by adding up the sizes of each of the preceding bands, if any, and
offsetting that much from bitmap_p.
Page Layout
As the name implies, the image is segmented into small rectangular regions
called tiles. The tiles are made up of bands of scan lines, in much the same
way as a simple banded image.
The following figure shows a C-size image divided into tiles. Note that the tiles
are numbered sequentially from left to right and top to bottom. Tile zero is in
the upper left corner.
tile 5
Memory Format
In memory, a tiled image starts with a header that provides general
information about the image. This information includes:
Following the image header is an array of tile pointers, one per tile in the
image. The tile pointer locates the tile structure within the image data and
gives the size of the tile. The location is given as a byte offset from the
beginning of the tiled image header to the beginning of the tile. A tile is always
located by using its pointer, not its relative position in the image data. There
might be extra tile pointers in the array. The process dealing with the image
uses no more tiles than is appropriate.
• A tile header
• Normal tiles form the bulk of the image. They are tile_width by tile_height.
Both of these dimensions are usually set to 1024.
• Any tile that is not exactly this size is smaller. Such tiles are, collectively,
considered “runts.'
• The right side of the image contains tiles that are narrower than the rest
when tile_width does not divide evenly into width. These runt tiles are
remainder_width by tile_height.
• If tile_height does not divide evenly into height, the last row of tiles
contains runt tiles that are tile_width by remainder_height.
• If both the last row and right column of tiles are fragmentary, the runt tile
in the bottom right corner has the unique dimension of remainder_width
by remainder_height.
It is possible to play tricks with the tiled image header and produce interesting
images. The FileNet fax server, for instance, removes the header from a
banded image and installs a special header. This makes it look like a tiled
image, with one huge tile. OEMs are cautioned to avoid variation in image
format unless FileNet engineering has approved the change.
Since runt tiles must be detected by dividing tile dimensions into the image
dimensions, they must be located with no additional positioning data: they
default to the right and bottom edges. If an image is rotated, the runt edges
are assumed to rotate along with the image. Any process that manipulates
tiled images must examine the xform field in the image header. If rotation was
applied, the process must look for runts along the appropriate edges. For
example, an image that was rotated 90 degrees clockwise might have runts
along only the bottom and left edges instead of right and bottom edges.
The figure “Tiled Image in Memory” on page 142 shows the memory layout of
a tiled image. In this example, the image is well-behaved in that the i-th tile
happens to be in position i for every case. This is not always true for every
tiled image and, in fact, will probably not be the case with any rotated image
you encounter. To get to a tile, you must follow the corresponding pointer.
tile 0 pointer
tile 1 pointer
tile 2 pointer
...
tile n pointer
tile 0 header
band list
band data
tile 1 header
band list
band data
tile 2 header
band list
band data
...
tile n header
band list
band data
Coding Details
The ultimate description of tiled images can be found in the header file tile.h.
See a copy of this file, under “tile.h” on page 151.
must be computed before you can find anything else. After that,
locates the first tile header. Once you locate the tile header,
The band descriptor and bitmap portions of a tile are identical to those of a
banded image and can be processed by common routines.
Tile headers can be located by adding the offset in the tile pointer to the base
address of the tiled_image_header itself. The computation needs a few casts,
as follows:
The comp_alg field in the tiled_image_hdr is reserved for future use. It must
currently be zero for all documents.
The full image and postage stamp are stored together by the application level
for subsequent retrieval and display. This association is not a part of the
image format itself. For more information, see “Images on Optical Disk” on
page 145.
A postage stamp is created at 100 SPI by IAI. Its orientation is the same as
that of the full image.
A tiled image does not necessarily include a postage stamp. The FileNet fax
server, for instance, creates tiled images with only a single huge tile and no
postage stamp. Code that demands the presence of a postage stamp breaks
when it runs into one of these.
Format
The postage stamp is stored in tiled image format. Unlike standard tiled
images, the entire image is captured as a single tile. This is indicated by width
equal to tile_width and height equal to tile_height.
The figure “Optical Disk Header” on page 146 shows the layout of the header
attached to an image on optical disk. Note that, although the header is usually
built with room for 80 subpages, only some of them are populated. The
number of populated entries is given by the count field.
Following the main header is the data area. The subpage descriptor’s offset
field is used to locate the beginning of the actual page within the data area.
Once at the actual page, the banded or tiled image header is applied, as
appropriate.
As an exception to this, there are page types that are not actually pages. If a
subpage descriptor’s type field is tiledImageWidthHeight, the offset and length
fields carry data and do not refer to an actual image.
32 bits
offset
length
offset
length
offset
length
... ...
offset
length
Special Limitations
Compressed image data in a FileNet image approximately follows the CCITT
standard for Group-III or Group-IV compression. The exceptions are
important, so read this section carefully.
Office document images are banded so that they can be decompressed and
examined a section at a time, if necessary. This is the same reasoning behind
the use of tiles on large documents. Because a tile is usually 1024x1024
pixels, it is small enough that banding to further sharpen the decompression
granularity is unnecessary. However, we provided banding. A subsequent
image format can be added to provide unbanded tiles.
The compression emulator was also incapable of processing scan lines with
an odd number of bytes. As a result, images produced by FileNet have an
even number of bytes per scanline and the compressed data is laid with
bands starting on long-word boundaries. Attempts to use the emulator to
decompress images with odd lengths fail, usually producing corrupted output.
Attempts to decompress such images using the VLSI compression chip work,
but place a warning message in the station error log. Images that are intended
to be completely compatible with FileNet images should follow the even-
length and long-bound conventions.
• The first band has a CCITT EOL code at the beginning of the band.
• Bands in the middle have neither an EOL code at the beginning nor an
RTC code at the end. They do have EOL codes at the end of each line.
The intent is that multiple bands can be decompressed at once, should the
user so desire, the collection appearing as a complete image. Alignment
requirements for the beginning of bands make it likely that the unused
padding space between bands contains useless data. If you wish to
decompress more than one band at a time, overwrite the padding with time-fill
codes.
For your convenience, we include copies of the header files image.h, tile.h,
and FN_page_header.h.
image.h
/*********************************************************************
* IMAGE.H
*
* -------------------------------------------------------------
* ( The following lines are for source control identification
* purposes. Please do not alter or delete. )
*
* $Revision: 1.2 $
* Checked-in $Date: 20 Jun 1996 12:23:36 $
* -------------------------------------------------------------
**********************************************************************/
#include "pshpack1.h"
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
/*
* Physical layout :
* --------------------------
* | |
* | image_header |
,* | |
,* --------------------------
,* | | - Number of entries is image_header.nbands
,* | band list |
,* | (array of |
,* | band_desc) |
* --------------------------
* | - All band data is long-word aligned.
* | band data |
* | |
* --------------------------
*/
struct image_header {
char format; /* = 2 .. this is image format #2 */
char config; /* see defines below */
short nbands; /* number of bands in image */
short line_width; /* number of pixels in scan line */
short nlines; /* number of lines in image */
};
/* image_header.config defines */
# define IROT_NULL 0 /* image rotation is in low order 2 bits */
# define IROT_90 1
# define IROT_180 2
# define IROT_270 3
# define IMIRROR 0x04 /* Mirrored image if this bit set */
# define IRESMASK 0x70 /* Mask to extract resolution information */
# define IEDITTED 0x80 /* Image has been editted if this bit set */
struct band_desc {
unsigned char band_format; /* see band_format defines below */
unsigned char nlines; /* scan lines in band */
unsigned short band_size; /* number of bytes in band */
};
/* band_desc.band_format defines */
# define NULL_BAND 0x00 /* null: no data, just place holder */
# define RAW_BAND 0x01 /* raw: bitmap at scanned res. */
# define CMP_BAND 0x02 /* compressed: compressed at scanned res. */
# define RDC_BAND 0x03 /* reduced: bitmap scaled 2:1 from scanned res */
# define GRY_BAND 0x04 /* grey: future .. grey scale/half tone/? */
# define MG3_BAND 0x05 /* makeup codes/G3: CMP_BAND w/ makeup codes */
# define G4_BAND 0x06 /* G4: compressed G4-2d at scanned res. */
union image_ptr
{ struct image_header *header;
struct band_desc *band;
char *image;
int *param;
};
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#include "poppack.h"
tile.h
/*
* FileNet Tiled Image Format Definitions
*
* Initial Version 10/3/85 dan
* Changed tiled_image_hdr magic field from to unsigned long. 10/8/85 dan
* Modified tile_image_hdr to have all long fields and added comp_alg. Changed
* TILED_MAGIC to TILED_IMAGE_MAGIC, and changed value to 0x12345678. Added
* magic field to tile_hdr and manifest constant TILED_HDR_MAGIC. 851202 lkp
* Put ifdefs around IROT defines so that this file can be included in a
* compilation that also includes <sys/image.h>. 860424 lkp
* Added disp_xform by shortening the xform field to a short. Also bumped the
* version manifest constant to 1. 870325 lkp
* Added defines for for new band kinds to support G4 compression and
* compression with makeup codes. Bumped version manifest constant to 2.
* 880328 lkp
*
*/
#include "pshpack1.h"
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
/*
* Tiled Image File Physical Layout:
*
* ---------------------------
* | |
* | tiled_image_hdr |
* | |
* ---------------------------
* | |
* | tile pointers |
* | (array of tile_ptr) |
* | |
* ---------------------------
* | |
* | tile |
* | |
* ---------------------------
* .
* .
* .
* ---------------------------
* | |
* | tile |
* | |
* ---------------------------
*/
/*
* Tile Physical Layout:
*
* ---------------------------
* | |
* | tile_hdr |
* | |
* ---------------------------
* | |
* | band list |
* | (array of |
* | band_desc) |
* | |
* ---------------------------
* | |
* | band data | Note: All Band Data is word aligned.
* | |
* ---------------------------
*/
struct tiled_image_hdr {
unsigned long magic; /* MAGIC Number for validation */
unsigned long format; /* FileNet Image format */
unsigned long version; /* FileNet Image version */
unsigned short disp_xform; /* Display-time transformations */
unsigned short xform; /* Image Transformations */
unsigned long resolution; /* Image scan resolution (spi) */
unsigned long comp_alg; /* Compression algorithm used */
unsigned long width; /* Image width in pixels */
unsigned long height; /* Image height in pixels */
unsigned long tile_width; /* Tile width in pixels */
unsigned long tile_height; /* Tile height in pixels */
};
struct tile_ptr {
unsigned long offset; /* Tile offset from beginning */
unsigned long length; /* Length of entire tile in bytes:
header, band list, and data */
};
struct tile_hdr {
unsigned long magic; /* Magic number for validation */
unsigned long nbands; /* Number of bands in a tile */
};
struct band_desc {
#endif
/*
* Manifest Constants
*
*/
#ifndef IROT_NULL
#endif
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#include "poppack.h"
FN_page.h
/*
* Page Header structure
*
* Definitions of the page header structures for various types of pages.
*
* original: 1984 by Fred Wilcox
* updated: July, 1986 by Preston L. Bannister
* updated: December, 1987 by Preston L. Bannister
* updated: June, 1988 by Preston L. Bannister
* updated: August, 1988 by Preston L. Bannister
* updated: July, 1990 by Preston L. Bannister
* updated: October, 1992 by Debbie Botros -- added cmp page types
*/
#include "pshpack1.h"
#ifndef FN_page_header_h
#define FN_page_header_h
#ifndef ExplicitData_h
#include <Explicit.h>
#endif
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
/*
Note that PageHeader may be variable sized based on number of
actual Subpage objects. The recommended maximum is so that the
entire structure will fit in the first 1K bytes.
FN_ANNOT_DOC (n.a.)
FN_OTHER_DOC FN_OTHER_PAGE_TYPE
#define FN_CHAR_SET_MAGIC0x54414c4bL
typedef enum {
postageStamp=0,
tiledImage=1,
tiledImageWidthHeight=2,
pcodeByteStream=3,
nativeGTIdocument=4
} FN_SubPageType;
typedef struct {
unsigned32 type; /* actually a FN_SubpageType */
unsigned32 offset; /* width field for tiledImageWidthHeight */
unsigned32 length; /* height field for tiledImageWidthHeight */
} FN_SubPageDescriptor;
typedef struct {
unsigned8 type; /* magic number */
unsigned8 _1, _2, _3; /* (pad to long word boundary) */
unsigned32 count; /* number of sub-page objects */
FN_SubPageDescriptor subPage[FN_MAX_SUBPAGE]; /* desc of sub-page objects */
} FN_PageHeader;
/*
* Note that there is already a page header used for form
* documents (defined below). For existing vanilla images, the
* byte containing the magic number is all there is in the way of
* a page header. The page header structure expected would depend
* on the value of the first byte of the page (the type field).
*/
/*
* Page header structure for a FN_FORM_PAGE_TYPE page.
*
* Each document should have a page header structure at the
* beginning of each page. At present, an image page only
* contains the first byte of this structure; a form page
* contains the entire structure.
*/
/*
#define FN_FILENAMESIZE 16
#define FN_MAXFORMPAGESIZE 50000
/*
* Macro definitions:
* In each of these macros, buf_p is a pointer
* to the beginning of the page buffer. It may be defined as
* a (char *) or (struct FN_pg_hdr *) or (FN_page_header_p).
*/
#define FN_FORM_FILE_NAME_PTR(buf_p)\
(((char *)(buf_p)) + ((struct FN_pg_hdr *)(buf_p))->filenameoffset)
#define FN_FORM_DATA_PTR(buf_p)\
(((char *)(buf_p)) + ((struct FN_pg_hdr *)(buf_p))->dataoffset)
#define FN_FORM_PRINT_DATA_PTR(buf_p)\
(((char *)(buf_p)) + ((struct FN_pg_hdr *)(buf_p))->printoffset)
#endif /* ! FN_page_header_h */
/* stamp 0G^DXCRHLc\]@W:S4KuE\?YKPIJaD[>U:e2I`CZ=W7N3IeB[<S6M */
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#include "poppack.h"
This chapter describes the data types, constants, and data structures in the
WorkFlo Application Libraries.
ASE_capability_typ
This type identifies a capability granted to perform a function. Generally, you
use this type when updating objects.
ASE_doc_id_typ
This type refers to a document. Typically, you use this type in conjunction with
ASE_page_number_typ (which refers to the page within that document).
ASE_doc_id_typ must be within the minimum and maximum range.
ASE_document_status_typ
This type specifies the assigned status of a copy of a document on optical
disk.
ASE_folder_id_typ
This type refers to a folder and must be within the minimum and maximum
range.
ASE_image_id_typ
This type specifies an image ID that is the standard type used to identify
uncommitted images or other objects that are not pages in a document. Each
image has a per-system unique ID allocated by Document Services.
ASE_migrate_status_typ
This type specifies the migration status of pages of a document from optical
disk.
ASE_nch_name_type_typ
This type specifies either an IMS name or a service name for those services
that require those names.
ASE_net_addr_typ
This structure specifies a network address.
typedef struct {
unsigned long net;
unsigned short host[3];
unsigned short socket;
} ASE_net_addr_typ;
ASE_notify_option_typ
This type specifies the notification option and request IDs for document
migration requests and print requests.
ASE_osar_id_typ
This type specifies the ID of an OSAR. Every OSAR unit has a (per-system)
unique OSAR identifier.
ASE_page_number_typ
This type refers to a page within a document and must be within the minimum
and maximum page range.
ASE_page_range_typ
This structure specifies a document and the contiguous set of pages within
that document for migration.
typedef struct {
ASE_doc_id_typ doc_id;
ASE_page_number_typ first_page;
ASE_page_number_typ last_page;
} ASE_page_range_typ;
See Also
“ASE_doc_id_typ” on page 164
ASE_relational_op_typ
This type specifies relational operators.
ASE_request_id_typ
This type specifies the ID of a print request. The ID is always non-null.
ASE_server_id_typ
This type specifies the server ID.
ASE_INVALID_SERVER_ID 0
ASE_DOC_LOC_SERVER_ID 1
ASE_service_name_typ
This type specifies the 3-part service name.
ASE_session_number_typ
This type specifies the session number returned on the call to a FileNet
service.
ASE_ssn_typ
This type defines a system serial number. Each FileNet system is shipped
with a 32-bit system serial number. Application processors can also be
allocated a system serial number. These numbers are generally used to
distinguish objects with identical system-relative identifiers that originated on
different systems. System serial numbers must be in the range ASE_MIN_
SSN to ASE_MAX_SSN.
ASE_surface_id_typ
This type specifies the ID of a surface of an optical disk. Every surface of
every optical disk has a (per-system) unique surface ID assigned by
Document Services.
ASE_surface_offset_typ
This type specifies the offset of a document on a surface. For each document
on an optical disk surface, a surface offset represents the sector address of
the document’s descriptor on that surface.
ASE_time_typ
This type specifies the amount of time elapsed since the starting time.
BATCHLIB_BatchEntryStatus
This structure contains data about a specified batch, including document and
image IDs and an error.
typedef struct {
WORD status_count;
BATCHLIB_BatchStatus status[1];
} BATCHLIB_BatchEntryStatus;
See Also
“BATCHLIB_BatchStatus” on page 185
BATCHLIB_BatchStatus
typedef struct {
PCWS_ERR_TYP error;
FN_docnum_typ doc_id;
FN_docnum_typ page;
} BATCHLIB_BatchStatus;
See Also
“FN_docnum_typ” on page 260
BATCHLIB_DocDesc
This structure contains the attributes of a specified document.
typedef struct {
WORD page_count;
HANDLE files_h;
HANDLE pg_hdrs_h;
WORD index_count;
HANDLE index_val_h;
} BATCHLIB_DocDesc;
BATCHLIB_page_hdr_typ
This structure defines the header at the top of a batch page.
typedef struct {
byte page_type;
byte fill1, fill2, fill3;
long page_use;
WORD hdr_size;
} BATCHLIB_page_hdr_typ;
BES_batch_cap_typ
This structure specifies batch capabilities. The structure, which contains the
batch number, is passed to all subsequent calls on a batch opened by BES_
create_batch() or BES_open_batch(). Client cannot modify the values in the
structure.
Client sessions require that creating or opening a batch returns a state object
to the client that must be presented on all subsequent calls dealing with that
batch. Batch Entry Services uses the concept of a capability to identify
ownership of the batch, since ownership of the capability enables the client to
perform operations on busy batches.
typedef struct {
BES_batch_id_typ batch_id;
FN_time_typ open_time;
SCT_id open_user_id;
unsigned long open_ssn;
} BES_batch_cap_typ;
open_ssn unsigned long. The system serial number of where the batch
resides.
See Also
“BES_batch_id_typ” on page 189
BES_batch_id_typ
This type specifies the batch ID.
BES_ctl_desc_typ
This structure specifies a batch control structure.
There is one batch control record in the FileNet system’s transient database.
This record contains the next batch ID. Batch Entry Services controls the
contents of this record; the client cannot explicitly change its contents. The
record is never deleted.
typedef struct {
unsigned long batch_id;
unsigned long batch_name_id;
unsigned long quick_name_id;
unsigned long form_name_id;
unsigned long wps_name_id;
unsigned long test_name_id;
unsigned long dew_name_id;
unsigned long batch_open_id;
} BES_ctl_desc_typ;
batch_name_id
unsigned long.
quick_name_id
unsigned long. Not used.
batch_open_id
unsigned long.
BES_doc_desc_typ
This structure specifies a document descriptor. There is one batch document
descriptor for each document in the batch. The descriptor defines the
structure of a document, the indexing values for the document, and other
status information. Each batch has a list of document descriptors, and each
document descriptor is assigned a unique number that is stored in the doc_id
field. Each doc_id is assigned when a document descriptor is created and is
not reused.
Batch Entry Services allows the user to update certain fields in the batch
document descriptors.
typedef struct {
FN_docnum_typ doc_id;
short doc_type;
long num_pages;
short num_indices;
short num_reqd_indcs;
unsigned short phase_num;
unsigned long phase_error;
unsigned short phase_status[BES_NUM_PHASES];
unsigned long fam_id;
cluster_key_typ cluster_key;
long ocr_schema;
} BES_doc_desc_typ;
num_reqd_indcs
short. Number of required indexing fields in this document.
fam_id unsigned long. Optical disk family to which this document will
be committed.
See Also
“FN_docnum_typ” on page 260
BES_doc_list_typ
This structure is a linked list that keeps track of an array of documents and the
list of images in each document.
See Also
“BES_doc_desc_typ” on page 191
BES_dyn_hdr_desc_typ
This structure defines a batch dynamic header record. There is one batch
dynamic header for each batch. The batch dynamic header record has the
following features:
• Deletion occurs when the batch is deleted, either as the result of explicit
instructions from the client (using the delete batch function) or as the
result of successful committal.
• Data in the structure can be modified by the Batch Entry Services client,
using the update batch function.
typedef struct {
char batch_name[FN_MAX_BIG_O_LEN + 1];
long exp_pages;
long exp_docs;
unsigned short pages_per_doc; /* 0 if variable */
FN_BOOL double_sided;
FN_BOOL verify_images;
FN_BOOL verify_indices;
short committal_type;
FN_BOOL batch_total;
short this_phase;
short next_phase;
short phase_status[BES_NUM_PHASES];
FN_time_typ phase_lst_time[BES_NUM_PHASES];
SCT_id phase_user_id[BES_NUM_PHASES];
short sort_order;
FN_BOOL ocr_enable; /* 2.8+ only */
FN_BOOL auto_index; /* 2.8+ only */
#ifdef WFD40
long migrate_delay; /* 3.1+ only */
/* 3.1+ only, migrate cache */
ASE_service_name_typ migr_dest_cache;
long reserved_1; /* 3.1+ only */
exp_pages long. Number of total pages the client expects the batch to
contain when it’s committed.
pages_per_doc
unsigned short. Number of pages per document. A value of
zero specifies that the document length is variable.
phase_lst_time
FN_time_typ. Last time phase accessed.
phase_user_id
SCT_id. Operator who last accessed phase.
sort_order short. Specifies the order of images in the batch. The client
can use this field to determine the order in which scanned
images are assembled into a document. Can be one of the
following:
BES_SEQUENTIAL 0 sequential
BES_REVERSE 1 reverse
migr_dest_cache
ASE_service_name_typ. If non-null, pages of the committed
documents are migrated to the cache specified in this field.
migr_dest_cache is initialized to NULL when the batch is
created. You can update it later using BES_update_batch().
See Also
“ASE_service_name_typ” on page 178
BES_filter_typ
This structure designates the filter declaration for finding batches. Each item
implies a conditional evaluation; all conditional evaluations must pass for the
filter to pass.
Each item in the filter can have a value from the group of values described
below. Each item can also have the value BES_FILTER_ALL, which means
that you do not use a specific item as a filter and match any value.
typedef struct {
short open_flag;
short queue;
short this_phase;
short next_phase;
short which_status;
short phase_status;
} BES_filter_typ;
queue short. Filters batches based on their batch header queue field
value. Can be one of the following:
BES_NO_QUEUE Accept batches that are not in
the queue yet
BES_UNCOMMIT_QUEUE Accept uncommitted batches
BES_COMMIT_QUEUE Accept committed batches
BES_INPROGRESS_QUEUE Accept enqueued batches
BES_OCR_QUEUE Accept batches that are in
OCR queue
BES_handle_typ
This type specifies a handle.
BES_hdr_desc_typ
This structure keeps track of data for the Batch Entry Services.
typedef struct {
BES_dyn_hdr_desc_typ d;
BES_stat_hdr_desc_typ s;
} BES_hdr_desc_typ;
See Also
“BES_dyn_hdr_desc_typ” on page 194
BES_image_desc_typ
This structure describes a batch image descriptor. There is one batch image
descriptor for each image in the batch. An image descriptor might eventually
become a page of a document. Images and their descriptors cannot be
shared among documents. All images in a batch need not be used as
document pages. Images not belonging to any document are not written to
optical disk and are deleted when the batch is deleted.
The batch image descriptor is created when the client adds an image to the
batch. It is deleted when the batch is deleted, either as the result of explicit
instructions from the client (using the delete batch function, see “BES_delete_
batch()” on page 645) or as the result of successful committal. Batch Entry
Services lets the client update certain fields in the record.
typedef struct {
FN_docnum_typ image_id;
unsigned long image_length;
short image_type;
short image_ver_stat;
FN_docnum_typ doc_id;
ASE_page_number_typ page_id;
FN_BOOL end_of_doc;
unsigned short index_len;
} BES_image_desc_typ;
image_ver_stat
short. Verification status. Can be one of the following:
BES_UNSEEN 0 Image is unverified
See Also
“ASE_page_number_typ” on page 173
BES_image_ix_desc_typ
This structure provides a character description of an image index.
typedef struct {
char index_value[BES_MAX_INDEX_LEN + 1];
} BES_image_ix_desc_typ;
BES_info_rec_typ
This structure is used in the BES_get_info() and BES_set_info() functions.
typedef struct {
BES_info_spec_typ info_spec;
unsigned short info_len;
char info_text[BES_MAX_INFO_TEXT];
} BES_info_rec_typ;
See Also
“BES_info_spec_typ” on page 206
BES_info_spec_typ
This structure is used in BES_info_rec_typ for the BES_get_info() and BES_
set_info() functions.
typedef struct {
BES_info_typ spec_type;
union {
FN_docnum_typ doc_id;
FN_docnum_typ image_id;
BES_ixval_spec_typ ixval_spec;
} spec;
} BES_info_spec_typ;
See Also
“BES_info_typ” on page 207
BES_info_typ
typedef unsigned short BES_info_typ;
BES_ixdir_desc_typ
This structure describes a batch index directory structure. There is one batch
index directory structure for each indexing field associated with the document
class to which the batch belongs. (Indexing fields apply to each document
within a batch because all documents in a batch belong to the same
document class.)
The batch index directory structure is created when the batch is created and
deleted when the batch is deleted, either as the result of explicit instructions
from the client (using the delete batch function, see “BES_delete_batch()” on
page 645) or as the result of successful committal.
The client can modify only one field: the expected batch total. Batch Entry
Services itself modifies the actual batch total, if required. (The actual batch
total is computed as the sum of all document index values for the particular
index. Batch totals are computed only if the boolean batch_total in the BES_
dyn_hdr_desc_typ is TRUE.
typedef struct {
unsigned short index_id;
char index_name[FN_MAX_BIG_O_LEN + 1];
unsigned short index_type;
unsigned short max_string_len;
char menu_name[FN_MAX_ANYNAMELEN + 1];
FN_BOOL verify_flag;
FN_BOOL required_flag;
FN_BOOL batch_tot_flag;
FN_BOOL up_case_flag;
short source;
FP_number exp_total;
FP_number act_total;
char mask[FN_MAX_IXMASKLEN + 1];
} BES_ixdir_desc_typ;
max_string_len
unsigned short. Maximum string length (string types only).
menu_name char. Name of the menu associated with this index (menu
types only).
exp_total FP_number. Value the client expects for the total of all values
of this index.
act_total FP_number. Value that Batch Services computes for the total
of all values of this index.
See Also
“FP_number” on page 349
BES_ixval_desc_typ
This structure is returned by BATCHLIB_find_batch_docs(), BES_find_docs(),
and BES_get_image_index(). This structure is input for BATCHLIB_update_
batch_doc() and BES_create_doc().
typedef struct {
unsigned short index_id;
unsigned short index_type;
char index_value[BES_MAX_INDEX_LEN + 1];
short data_status;
} BES_ixval_desc_typ;
BES_ixval_spec_typ
This structure is used in the BES_info_rec_typ structure for BES_get_info()
and BES_set_info() functions.
typedef struct {
FN_docnum_typ index_id;
unsigned short index_id;
} BES_ixval_spec_typ;
See Also
“FN_docnum_typ” on page 260
BES_mkf_ixval_desc_typ
This structure specifies a batch index value record. There is one batch index
value record for each index in each document. For example, if a document
class has n indexing fields and a batch has m documents, the batch at the
time of committal will have n times m batch_ixval records.
The client creates the records when each document is created. The records
are deleted when the batch is deleted, either as the result of explicit
instructions from the client (using the delete batch function, see “BES_delete_
batch()” on page 645) or as the result of successful committal.
The client also can delete selected batch_ixval records by using the delete
document and update document functions (see “BES_delete_doc()” on
page 646 and “BES_update_doc()” on page 688). Batch Entry Services
allows the client to update certain fields in the batch_ixval records.
typedef struct {
unsigned short index_id;
unsigned short index_type;
unsigned short index_len;
char index_value[BES_MAX_INDEX_LEN + 1];
short data_status;
} BES_mkf_ixval_desc_typ;
data_status short. Used in IMS 2.8 or later. Confidence level (for OCR).
BES_stat_hdr_desc_typ
This structure describes a batch static header. There is one batch static
header for each batch. The batch static header contains document class
information. The class information is only a snapshot of the document class
definition at the time the batch was created because document class
definitions can change, possibly invalidating certain invariant conditions in the
batch.
• Deletion occurs when the batch is deleted, either as the result of explicit
instructions from the client (using the delete batch function, see “BES_
delete_batch()” on page 645) or as the result of successful committal.
typedef struct {
short open_flag;
unsigned long queue;
long qtime;
FN_time_typ create_time;
SCT_id create_user_id;
FN_BOOL tab_out_flag;
char doc_class_name[FN_MAX_DCNAMESIZE + 1];
short num_indices;
short num_reqd_indcs;
short num_menus;
char indexing_form[FN_MAX_ANYNAMELEN + 1];
SCT_access_restrictions access_restrct;
unsigned short cluster_space;
unsigned short cluster_index;
unsigned long fam_id;
char wfl_queue_name[FN_MAX_WFQUEUENAME + 1];
char wfl_sys_name[FN_MAX_WFSYSNAME + 1];
short retent_disp;
short retent_base;
short retent_offset;
long act_pages;
long act_docs;
long next_doc_id;
} BES_stat_hdr_desc_typ;
queue unsigned long. The logical queue in which the batch resides.
Can be one of the following:
BES_NO_QUEUE 0 Not in any queue yet.
BES_UNCOMMIT_QUEUE 1 Errors from committal.
BES_COMMIT_QUEUE 2 Committal queue.
BES_INPROGRESS_QUEUE 3 Worked on by daemon.
BES_OCR_QUEUE 4 Batch in OCR queue.
qtime long. Time the batch was queued (placed in the queue).
doc_class_name
char. Name of the document class to which the documents in
the batch belong.
num_reqd_indcs
short. Number of indexing fields whose values must be
defined.
wfl_queue_name
char. Name of the WorkFlo queue associated with the
document class. The documents in the batch will be assigned
to this queue when committed.
See Also
“FN_time_typ” on page 264
CAM_attr_typ
This enumeration specifies five enumerated constants that describe the
attributes of a local cache object. This enumeration is used in the CAM_get_
attr() and CAM_set_attr() functions.
typedef enum {
CAM_attr_page_count,
CAM_attr_target_size,
CAM_attr_current_size,
CAM_attr_xact_busy,
CAM_attr_csum
} CAM_attr_typ;
CAM Constants
cluster_key_typ
This structure specifies data about space and the cluster ID. Clusters are
collections of optical disks, linked together to optimize the speed in which
documents are stored and retrieved.
typedef struct {
unsigned short cluster_space;
unsigned short cluster_id[3];
} cluster_key_typ;
CSM_cache_access_mode
typedef unsigned short CSM_cache_access_mode;
CSM_CACHE_READ 0x0001
CSM_CACHE_WRITE 0x0002
CSM_CACHE_DELETE 0x0004
CSM_CACHE_READWRITE (CSM_CACHE_READ | CSM_CACHE_WRITE)
CSM_CACHE_READDELETE (CSM_CACHE_READ | CSM_CACHE_DELETE)
CSM_CACHE_WRITEDELETE (CSM_CACHE_WRITE | CSM_CACHE_DELETE)
CSM_CACHE_READWRITEDELETE CSM_CACHE_READ | CSM_CACHE_WRITE | CSM_
CACHE_DELETE)
CSM_cache_id_typ
This type specifies the cache ID.
CSM_object_attr_typ
This structure specifies CSM object attributes that are accessible to the client.
typedef struct {
unsigned long max_length;
unsigned long cur_length;
FN_time_typ created;
FN_time_typ last_read;
FN_time_typ duration;
SCT_access_restrictions security;
unsigned short client_attr[CSM_CLIENT_ATTR_ELMNTS];
} CSM_object_attr_typ;
CSM_REFRESH_DURATION 3
For objects already read
CSM_CURRENT_DURATION 4
Don’t change current duration
See Also
“FN_time_typ” on page 264
CSM_object_desc_typ
This structure describes the CSM object that uniquely identifies an instance of
an object in a cache. There can be only one instance of a given CSM_object_
desc_typ in a cache at one time. Cache Services cannot validate any of the
fields in a CSM_object_desc_typ; it will only guarantee that the object does
not have the same CSM_object_desc_typ as other objects in the same cache.
typedef struct {
ASE_ssn_typ ssn;
ASE_doc_id_typ id;
ASE_page_number_typ page;
} CSM_object_desc_typ;
See Also
“ASE_doc_id_typ” on page 164
CSM_object_handle_typ
This type is a handle to the requested object. The server returns this type
when a request is made.
dir_entry_typ
This structure specifies the document index record entry and associated data.
typedef struct {
char path_name[128];
time_t mod_time;
WORD st_mode;
WORD st_dev;
long st_size;
WORD start_page_no;
WORD end_page_no;
} dir_entry_typ;
path_name char. File name including the full path in the FileNet system.
start_page_no WORD. The page number that contains the beginning of the
file.
end_page_no WORD. The page number that contains the end of the file.
DISPLIB Constants
The following table includes the Attribute Types:
Display Modes:
Formats:
Rotation:
DISPLIB_input_cb
This structure describes the value of DISP_ATTR_INPUT_CALLBACK. The
DISPLIB_set_attr() function uses this structure to enable you to configure
your I/O functions for all paint operations. If you choose not to define your I/O
functions, the default input access methods are the standard file I/O functions.
To specify alternate I/O functions, you must first write alternate functions for
the open, close, seek, and read operations for a specific object. When the
application uses your alternate I/O function specified in this structure, your
function must return the address of the object to context_h.
The callback functions use the CALLBACK calling convention and must be
exported by including them in an EXPORTS statement in the application’s
module-definition file.
typedef struct {
HANDLE context_h;
error_typ (CALLBACK *open)(HANDLE, PSTR);
error_typ (CALLBACK *close)(HANDLE);
error_typ (CALLBACK *seek)(HANDLE, LONG, int, LPLONG);
error_typ (CALLBACK *read)(HANDLE, PSTR, WORD, PWORD);
} DISPLIB_input_cb;
CALLBACK *open
error_typ. Callback of the open function. For the default,
returns a handle to the opened file for a given filename. For
alternate callback function, returns a handle to the object.
CALLBACK *close
error_typ. Callback of the close function. See open, above.
CALLBACK *seek
error_typ. Callback of the seek function. See open, above.
CALLBACK *read
error_typ. Callback of the read function. See open, above.
Note Only FileNet images can use client callbacks for accessing the source data.
Formats such as FileNet Pcodes and FileNet forms cannot be rendered in
conjunction with client-defined callbacks for data acquisition.
DISPLIB_retrieve_cb
This structure describes the value of DISP_ATTR_RETRV_CALLBACK. The
DISPLIB_set_attr() function uses this structure to set the DISPLIB_retrieve_
typ retrieve callback function. This is the preferred method for setting the
retrieval callbacks. DISPLIB_set_retrieve() is for backward compatibility only.
typedef struct {
HANDLE context;
DISPLIB_retrieve_typ proc;
} DISPLIB_retrieve_cb;
See Also
“DISPLIB_retrieve_typ()” on page 739
DOC_annotation_desc_typ
This structure describes the attributes of an annotation.
typedef struct {
ASE_doc_id_typ doc_id;
ASE_page_number_typ page;
DOC_annotation_id_typ annot_id;
FN_time_typ created;
FN_time_typ modified;
SCT_access_restrictions security;
unsigned short annot_len;
byte annot[DOC_MAX_ANNOTATION_LEN];
} DOC_annotation_desc_typ;
created FN_time_typ. The date and time that the annotation was
created.
modified FN_time_typ. The date and time that the annotation was last
modified.
240 Specifies that the data is for VAR use only. Client
libraries and FileNet applications ignore this
attribute. A VAR can use this attribute to
encapsulate proprietary information.
See Also
“ASE_doc_id_typ” on page 164
DOC_annotation_id_typ
This structure specifies the ID of an annotation. An annotation ID is the page-
relative identifier of an annotation on a page. There is no order implied by this
identifier, and annotations can be non-contiguous. Annotation IDs will not
change, even if an annotation with a lower number is deleted.
typedef struct {
unsigned long high_order;
unsigned long low_order;
} DOC_annotation_id_typ;
DOC_annotation_typ
This structure specifies the type of an annotation.
DOC_committal_desc_typ
This structure describes the information used to commit a document. This
information is passed to Document Services when a document is to be
committed on the system.
typedef struct {
ASE_doc_id_typ doc_id;
ASE_service_name_typ cache;
ASE_ssn_typ ssn;
unsigned short images_num;
ASE_image_id_typ * images;
INX_fam_id_typ family_id;
SCT_access_restrictions security;
INX_dcl_name_typ doc_class;
INX_doc_type_typ doc_type;
INX_cluster_key_typ cluster;
FN_BOOL tolerate_dups;
unsigned short indexes_len;
unsigned short indexes_num;
DOC_index_value_typ * indexes;
} DOC_committal_desc_typ;
See Also
“ASE_doc_id_typ” on page 164
DOC_doc_attribute_value_typ
This structure contains the attributes that can be modified. The other
attributes of a document in the locator database (such as, pages, primary_
surface, and primary_offset) are read-only to clients.
typedef struct {
unsigned short attr_type;
union {
SCT_access_restrictions security;
ASE_document_status_typ status;
} attr_union;
} DOC_doc_attribute_value_typ;
See Also
“ASE_document_status_typ” on page 165
DOC_doc_location_desc_typ
This structure contains the data that is maintained for each document by the
document locator database.
typedef struct {
ASE_doc_id_typ doc_id;
ASE_surface_id_typ primary_surface_id;
ASE_surface_offset_typ primary_offset;
ASE_document_status_typ primary_status;
ASE_surface_id_typ secondary_surface_id;
ASE_surface_offset_typ secondary_offset;
ASE_document_status_typ secondary_status;
ASE_page_number_typ pages;
ASE_ssn_typ original_ssn;
ASE_doc_id_typ original_doc_id;
SCT_access_restrictions security;
ASE_service_name_typ cache;
} DOC_doc_location_desc_typ;
primary_surface_id
ASE_surface_id_typ. The ID of the primary (family) surface to
which the copy is written; set to ASE_INVALID_SURFACE_
ID if the primary copy has not been written to optical disk.
secondary_surface_id
ASE_surface_id_typ. The ID of the secondary (transaction
logging) surface to which the copy is written; set to ASE_
INVALID_SURFACE_ID if the secondary copy has not been
written to optical disk.
secondary_offset
ASE_surface_offset_typ. The sector address of the
secondary_status
ASE_document_status_typ. The status of the secondary
(transaction) copy on optical disk.
original_doc_id
ASE_doc_id_typ. The document ID by which this document is
known on the system where it was created; set to ASE_
INVALID_DOC_ID if it was first created on the local system.
See Also
“ASE_doc_id_typ” on page 164
DOC_family_create_server_typ
This structure contains server information that is used when creating a new
optical disk family.
typedef struct {
ASE_server_id_typ server_id;
unsigned short desired_current_surfaces;
FN_BOOL preferred_osars_valid;
ASE_osar_id_typ preferred_osars[ASE_MAX_CURR_SURFS];
} DOC_family_create_server_typ;
desired_current_surfaces
unsigned short. The number of surfaces that can be current
(i.e., writable) at any one time for the family.
preferred_osars_valid
FN_BOOL. TRUE if preferred_osars contains valid
information; if TRUE, then the number of valid entries must
be equal to desired_current_surfaces.
preferred_osars
ASE_osar_id_typ. A list of the IDs of preferred OSARs.
See Also
“ASE_osar_id_typ” on page 172
DOC_family_server_desc_typ
This structure contains the optical disk family information for a server. Only
DOC_family_desc_type uses this structure.
typedef struct {
ASE_server_id_typ server_id;
unsigned short desired_current_surfaces;
unsigned short actual_current_surfaces;
ASE_surface_id_typ current_surfaces[ASE_MAX_CURR_SURFS];
ASE_surface_id_typ previous_surfaces[ASE_MAX_CURR_SURFS];
ASE_osar_id_typ preferred_osars[ASE_MAX_CURR_SURFS];
} DOC_family_server_desc_typ;
desired_current_surfaces
unsigned short. The number of surfaces that can be current
(i.e., writable) at any one time for the family.
actual_current_surfaces
unsigned short. The number of surfaces that are current at
the moment; this will deviate from desired_current_surfaces
only if the latter has changed recently.
current_surfaces
ASE_surface_id_typ. A sequence of IDs for the current
surfaces; the sequence will be of length actual_current_
surfaces.
previous_surfaces
ASE_surface_id_typ. A sequence of IDs for the previous
surfaces; the sequence will be of length actual_current_
surface if interleaving is TRUE, zero otherwise. It is used
when interleaving to determine which cartridge to return to.
preferred_osars
ASE_osar_id_typ. A sequence of OSAR IDs into which new
surfaces will be placed. The sequence will be of length
desired_current_surfaces. Document Services will step
through the sequence when placing new cartridges.
See Also
“ASE_osar_id_typ” on page 172
DOC_index_value_typ
This structure is similar to the INX_index_value_typ structure, except indexes
are identified by their names rather than their index IDs. This structure
provides independence from the local Index service, thus enabling the
document to be imported on another system that has compatible indexes.
typedef struct {
INX_index_name_typ index_name;
char _pad;
INX_value_type_typ type;
char data[2];
} DOC_index_value_typ;
See Also
“INX_index_name_typ” on page 372
DOC_migrate_order_typ
This type specifies the order in which the pages of a document are migrated
from optical disk.
DOC_surface_desc_typ
This structure contains a description of an optical disk surface. This structure
contains the data kept in the Document Server’s locator database on each
optical disk surface known to the system.
typedef struct {
ASE_surface_id_typ surface_id;
INX_fam_id_typ family_id;
FN_BOOL surface_unavailable;
FN_BOOL write_protect;
unsigned short sides;
FN_time_typ label_date;
FN_time_typ full_date;
FN_time_typ archive_date;
unsigned long surface_size;
ASE_ssn_typ original_ssn;
ASE_surface_id_typ original_surface_id;
unsigned long active_docs;
unsigned long deleted_docs;
unsigned long clusters;
unsigned long sectors;
unsigned long pages;
ASE_server_id_typ server_id;
} DOC_surface_desc_typ;
surface_unavailable
FN_BOOL. TRUE if the surface should not be used for reads
or writes.
label_date FN_time_typ. The date and time at which the surface was
entered in the system.
full_date FN_time_typ. The date and time at which the surface filled
up.
archive_date FN_time_typ. The date and time at which the surface was
archived.
original_surface_id
ASE_surface_id_typ. The ID of the surface as it was known
on its original system; set to ASE_INVALID_SURFACE_ID if
local.
pages unsigned long. The total number of pages in all the active and
deleted documents on the surface.
See Also
“ASE_server_id_typ” on page 177
DS_LIST
typedef struct { /* VARIABLE SIZE */
ASE_service_name_typ IMS;
DS_LIST_ENTRY doc[1];
} DS_LIST;
See Also
“ASE_service_name_typ” on page 178
DS_LIST_ENTRY
typedef struct {
FN_docnum_typ doc_id;
unsigned page_count;
} DS_LIST_ENTRY;
See Also
“FN_docnum_typ” on page 260
DTM Masks
Date and time masks are formed from separators and components. The
components represent parts of dates and times (such as days). Separators
show where one component stops and another starts. They are inserted in
the string exactly where you put them in the mask. Separators are optional.
To use the date and time mask, you can set the components in the PCWS
reference file named in WIN.INI file. Examples include the following settings:
[DTM]
dd=dd ;Day of the month (1 – 31)
ddd=ddd ;Day of the year (1 – 366)
mm=mm ;Number of the month (1 – 12)
mon=mon ;Three-letter abbreviation of the month (Jan – Dec)
month=month ;Full name of the month (January – December)
yy=yy ;Last two digits of the year (00 – 99)
yyyy=yyyy ;All four digits of the year (0000 – 9999)
w=w ;Number for the day of the week (0 – 6, 0 = Sunday
; and 6 = Saturday)
day=day ;Three-letter abbreviation for the weekday (Sun – Sat)
dayname=dayname
;Full name of the day of the week (Sunday – Saturday)
hh=hh ;Hour of the day (0 – 23)
tt=tt ;Minutes of the hour (0 – 59)
ss=ss ;Seconds of the minute (0 – 59)
am=am ;Gives the time in a.m. or p.m. (p.m. is not shown);
;instead of using a 24-hour clock
ampm am pm ;Gives the time in a.m. or p.m.
DateMask=mm/dd/yyyy ;Default date mask
DateTimeMask=mm/dd/yyyy hh:tt:ss;Default time mask
The complete list of separators allowed in the date or time mask is:
, . / - < > ? : |
^ ; “ [ ] { } _ =
@ % + ( ) * & # <space>
Examples
If a time variable is equivalent to Tuesday, June 7, 1983 at 32 seconds after
2:05 p.m., you can use the mask in the left column for the date output shown
in the right column:
DTMdate_typ
This type specifies the number of seconds after January 1, 1970.
DTM_tm
This structure categorizes the input from DTMdate_typ (the elapsed time
since January 1, 1970) into fields for seconds, minutes, and days.
tm_mday int. The day of the month. For example, this would be a 5 on
May 5th.
tm_wday int. The number for the day of the week. Sunday is 0 and
Saturday is 6.
tm_yday int. The number for the day in the year. For example, January
1 is day 1 and February 10 is day 41.
error_typ
This type is returned by the software to indicate that a fatal or non-fatal error
has occurred.
ERM Constants
FILLIN_bkgrequest_rec_typ
This structure contains the background fill-in request record.
typedef struct {
WORD status;
WORD attempt_cnt;
char form_file[FILLIN_LEN_FILE_NAME+1];
char form_name[FORM_LEN_OBJ_NAME + 1];
char doc_class[FN_MAX_DCNAMESIZE + 1];
WORD num_indices;
ASE_service_name_typ BES;
ASE_service_name_typ RFS;
ASE_doc_id_typ doc_id;
BOOL form_page;
error_typ err;
} FILLIN_bkgrequest_rec_typ;
form_file char. Name of the file that contains the fillin form.
See Also
“ASE_doc_id_typ” on page 164
FN_date_typ
This type specifies the number days before or since January 1, 1970.
FN_docnum_typ
This type specifies a number as a document ID.
FN_folnum_typ
This type specifies the ID of a folder.
FN_selection_typ
This type specifies information about the user selection.
FN_server_version_typ
This structure defines the server software version. Version numbers are
returned from IAFLIB_get_server_version().
typedef struct {
unsigned long arch_num;
unsigned long major_num;
unsigned long minor_num;
unsigned long cycle_num;
} FN_server_version_typ;
arch_num =3
major_num =1
minor_num =0
cycle_num =7
FN_time_typ
This type designates the time in FileNet format.
FN_MIN_TIME -1999999999
FN_MAX_TIME 2147000000 01/14/2038 04:53:20
FN_UNDEF_TIME FN_UNDEF_DATE
FNP_data
This structure contains information that is specific to a client application
instance and its print request. It is essential to maintain this information during
the course of printing. This is especially true when there are multiple
instances of a client application independently requesting Local Printing
services. This structure is private to FNPRINT.
typedef struct {
HWND ClienthWnd;
HWND ParenthWnd;
HANDLE JobHandle;
HANDLE ClientHandle;
HDC PrtDC;
LPSTR FilePtr;
HANDLE LocalList;
unsigned Doc_cnt;
HANDLE hAbortDlg;
int curDocIndex;
} FNP_data;
ParenthWnd HWND. Parent window of the abort box (either the client
application window or the main window of FNPRINT).
FNP_request_typ
This data structure transfers printing information between the client
application and FNPRINT. The structure is mainly used for printing
documents.
typedef struct {
ASE_page_range_typ Range;
WORD copies;
WORD style;
WORD disp_mode;
} FNP_request_typ;
disp_mode WORD. Display mode. Among the various display modes that
are available in DISPIMG, only IAFLIB_ZOOM and IAFLIB_
QUARTER are used.
See Also
“ASE_page_range_typ” on page 174
FORM_BatchPageAttr_typ
This structure is used in FORM_BkgAttr_typ to specify the Batch type
background image.
typedef struct {
char BESName[FORM_LEN_SECURITY+1];
char BatchName[FN_MAX_BIG_O_LEN+1];
ASE_doc_id_typ ID;
} FORM_BatchPageAttr_typ;
See Also
“ASE_doc_id_typ” on page 164
FORM_BitmapField_typ
This structure stores data about a bitmap field.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
char Description[FORM_LEN_OBJ_DESC + 1];
HBITMAP hBitmap;
char RCName[FORM_LEN_OBJ_NAME + 1];
char FileName[FORM_LEN_FILE_NAME + 1];
WORD MapMode;
WORD BltMode;
DWORD RasterOp;
WORD BrushStyle;
DWORD BrushColor;
WORD BrushHatch;
DWORD BkColor;
DWORD UserAttr;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_BitmapField_typ;
Style WORD.
RasterOp DWORD.
BrushStyle WORD.
FORM_BkgAttr_typ
typedef struct {
FORM_BkgImage_typ ImageType;
union {
FORM_Page_Attr_typ Doc;
FORM_BatchPageAttr_typ Batch;
char File[FORM_LEN_FILE_NAME+1];
} Bkg;
} FORM_BkgAttr_typ;
Doc FORM_Page_Attr_typ.
Batch FORM_BatchPageAttr_typ.
File char. Name of the file that contains the background image.
See Also
“FORM_BatchPageAttr_typ” on page 267
FORM_BkgImage_typ
This enumeration is used in FORM_BkgAttr_typ to indicate the background
image type.
typedef enum {
FORM_BKG_NONE,
FORM_BKG_DOC_PAGE,
FORM_BKG_BATCH_PAGE,
FORM_BKG_FILE
} FORM_BkgImage_typ;
FORM_BKG_NONE
FORM_BKG_DOC_PAGE
FORM_BKG_BATCH_PAGE
FORM_BKG_FILE
FORM_BrushAttr_typ
This structure stores brush attributes such as size, texture, and color.
typedef struct {
WORD BrushStyle;
DWORD BrushColor;
WORD BrushHatch;
} FORM_BrushAttr_typ;
FORM_ButtonField_typ
This structure designates pushbutton fields.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
char Text[FORM_LEN_BUTTON_TEXT + 1];
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
FORM_Terminator_typ Terminator;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_ButtonField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
See Also
“FORM_Terminator_typ” on page 343
FORM_CheckboxField_typ
This structure designates checkbox fields.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
WORD Style;
FORM_Checked_typ DefaultVal;
FORM_Checked_typ Value;
char Text[FORM_LEN_BUTTON_TEXT + 1];
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_CheckboxField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
See Also
“FORM_Checked_typ” on page 277
FORM_Checked_typ
This enumeration specifies the values of checkboxes.
typedef enum {
FORM_UNCHECKED,
FORM_CHECKED,
FORM_UNDEF_CHECK
} FORM_Checked_typ;
FORM_ColorAttr_typ
This structure specifies color attributes for a text field.
typedef struct {
DWORD FrColor;
DWORD BkColor;
} FORM_ColorAttr_typ;
FORM_ComboboxField_typ
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
HANDLE hDefaultVal;
HANDLE hValue;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_ComboboxField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
FORM_data_type
This structure specifies the type ID of a value.
FORM_DateField_typ
This structure defines a date or a time field.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int ActualWidth;
char InputMask[FORM_LEN_FIELD_MASK + 1];
char OutputMask[FORM_LEN_FIELD_MASK + 1];
WORD Style;
FN_date_typ DefaultVal;
FN_date_typ Value;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
FN_date_typ Min;
FN_date_typ Max;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_DateField_typ;
DisplayWidth int. Display width is less than or equal to the actual width;
display/actual height is one row.
OutputMask char. The mask you want to use to output the date.
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
See Also
“FN_date_typ” on page 259
FORM_DateMaskAttr_typ
This structure specifies the input and output date mask.
typedef struct {
char InputMask[FORM_LEN_FIELD_MASK + 1];
char OutputMask[FORM_LEN_FIELD_MASK + 1];
} FORM_DateMaskAttr_typ;
InputMask char. The mask you want to use to input the date.
OutputMask char. The mask you want to use to output the date.
FORM_DocField_typ
This structure defines document, folder, and integer fields. Within this
structure, the DefaultVal, Value, Min, and Max fields are of type FN_docnum_
typ for documents and FN_folnum_typ for folders.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int ActualWidth;
WORD Style;
DWORD DefaultVal;
DWORD Value;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD Min;
DWORD Max;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_DocField_typ;
DisplayWidth int. Display width is less than or equal to the actual width;
display/actual height is one row.
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
FORM_FieldAttr_typ
This enumeration specifies the current attribute of a specified call.
typedef enum {
FORM_FA_ALL,
FORM_FA_ACTUALSIZE,
FORM_FA_BACKCOLOR,
FORM_FA_BRUSH,
FORM_FA_CHARLIST,
FORM_FA_DEFAULT,
FORM_FA_DESCRIPTION,
FORM_FA_DISPLAYAREA,
FORM_FA_FIELDPROC,
FORM_FA_FILENAME,
FORM_FA_FONT,
FORM_FA_FORECOLOR,
FORM_FA_GROUP,
FORM_FA_HELP,
FORM_FA_MAPMODE,
FORM_FA_MASK,
FORM_FA_OBJNAME,
FORM_FA_ORDINAL,
FORM_FA_PEN,
FORM_FA_PROMPT,
FORM_FA_RANGE,
FORM_FA_RASTEROP,
FORM_FA_RESOURCE,
FORM_FA_ROUNDNESS,
FORM_FA_RULELIST,
FORM_FA_SECURITY,
FORM_FA_SIZE,
FORM_FA_STRETCHMODE,
FORM_FA_STYLE,
FORM_FA_TABLE,
FORM_FA_TERMCODE,
FORM_FA_TEXT,
FORM_FA_TEXTFORMAT,
FORM_FA_TYPE,
FORM_FA_USER,
FORM_FA_VALFUNC,
FORM_FA_VALUE,
FORM_FA_COLWIDTH
} FORM_FieldAttr_typ;
FORM_FA_ALL
FORM_FA_ACTUALSIZE The size of the actual data underlying an input field, for which the display
size can be different. Attr is a pointer to a POINT. Attr->x is the maximum
input width (columns * 100) of the field, and Attr->y is the maximum input
height (rows * 100). FORM_FA_ACTUALSIZE applies to date,
document, folder, number, string, and time fields only. For all but string
Attr-> is ignored and the standard size is used.
FORM_FA_BACKCOLOR The background color. Attr is a pointer to a DWORD created with the
RGB macro. This attribute applies to all fields except form fields. For
scrollbars, this is the bar color.
FORM_FA_BRUSH A Windows brush object for filling a graphics region. Attr is a pointer to a
structure of type FORM_BrushAttr_type. FORM_FA_BRUSH applies to
bitmap, ellipse, pattern, rectangle, and roundrect fields.
FORM_FA_CHARLIST A list of characters for controlling input to string fields. Attr is a pointer to
a handle. If NULL, all characters are allowed. If non-NULL, the handle
contains a null-terminated string of characters. Depending on the Style
field, the string value is either limited to contain only these characters or
none of them. FORM_FA_CHARLIST applies to string fields only. It is
the caller’s responsibility to free the handle when done using it.
FORM_FA_DEFAULT The default value of an input field. Attr is a pointer to data of the
appropriate type for the field. This does not affect the current value of the
field, but it does affect the result of subsequent calls to FORM_default_
form_values() or FORM_default_field_value() (for the same field). See
under FORM_FA_VALUE for the interpretation of the value parameter
for the various data types.
FORM_FA_DESCRIPTION The field description, used for maintenance only, never displayed. This
attribute applies to all field types. Attr is a pointer to a buffer at least
FORM_LEN_OBJ_DESC + 1 bytes in size, into which to copy the
description of the field.
FORM_FA_DISPLAYAREA The area on the form in which the field is displayed. This attribute applies
to fields of type checkbox, date, document, folder, form, number,
radiobutton, and scrollbar. For all of these, the display height in Attr is
ignored and a standard height is used. This attribute (including height)
also applies to fields of type menu, pushbutton, string, bitmap, graphic
text, groupbox, line, pattern, rect, and roundrect. This attribute applies to
signature fields, but for position only—both width and height are ignored
in favor of standard values. Attr is a pointer to a RECT. Attr->left is the x-
coordinate of the upper left corner of the display field in 1/100ths of a
character width. Attr->top is the y-coordinate of the upper left corner in 1/
100ths of a character height. Attr->right is the width of the field in 1/
100ths of a character width (length for scrollbars). Attr->bottom is the
height in 1/100ths of a character height.
FORM_FA_FIELDPROC The function to process Windows messages to the field. This attribute
applies to all field types, except ellipse, graphic text, line, rect, and
roundrect. Attr is a pointer to a structure of type FORM_ProcAttr_typ.
FORM_FA_FILENAME The name of the file containing the field data, for form, menu, and bitmap
fields. Attr is a pointer to a buffer at least FORM_LEN_FILE_NAME + 1
bytes in size, into which to copy the file name.
FORM_FA_FONT The font to use for a graphic text field. Attr is a pointer to a structure of
type FORM_FontAttr_typ. Weight can use values defined in windows.h:
FW_DONTCARE, FW_THIN, FW_EXTRALIGHT, FW_LIGHT, FW_NORMAL,
FW_MEDIUM, FW_SEMIBOLD, FW_BOLD, FW_EXTRABOLD, FW_HEAVY,
FW_ULTRALIGHT, FW_REGULAR, FW_DEMIBOLD, FW_ULTRABOLD, and
FW_BLACK.
FORM_FA_FORECOLOR The foreground color. Attr is a pointer to a DWORD created with the RGB
macro. This attribute applies to all fields except form fields. Fields that
have a pen or brush can use this attribute to change the color of the pen
or brush without changing its other characteristics. For fields with both a
pen and a brush, this attribute affects both the pen color and the brush
color, and returns the pen color. For scroll bars, this is the thumb color.
FORM_FA_GROUP The name of the radiobutton group. Attr is a pointer to a buffer at least
FORM_LEN_FIELD_NAME + 1 bytes in size, into which to copy the
group name.
FORM_FA_HELP This attribute applies to all input field types. The help text or screen for
the field. Attr is a pointer to a structure of type FORM_HelpAttr_typ.
FORM_FA_MAPMODE The Windows device context map mode for bitmap fields. Attr is a pointer
to a short, and returns one of MM_ANISOTROPIC, MM_ISOTROPIC,
and MM_TEXT. See SetMapMode in the Windows Programmer’s
Reference for more information.
FORM_FA_MASK The input and output display mask for date, number, and time fields. Attr
is a pointer to a structure of type FORM_DateMaskAttr_typ, into which to
copy the masks.
FORM_FA_OBJNAME The name of the object (i.e., the form or menu) associated with a form or
menu field. Attr is a pointer to a buffer at least FORM_LEN_OBJ_NAME
+ 1 bytes in size, into which to copy the object name.
FORM_FA_ORDINAL The position within the field list of the field. A number from 1 to n, where
n is the total field count. This attribute applies to all field types. Attr is a
pointer to a WORD. Setting this attribute reorders the fields within a form.
If Attr points to zero, the field is given the highest currently-used ordinal,
and the ordinals of other fields are adjusted accordingly.
To understand how the reordering works, consider the operation as
having two steps. First, the field to be repositioned is removed from the
list. The gap is closed by decrementing the ordinals of all fields with
higher ordinals. Then a space is created by incrementing the ordinals of
all fields with ordinals above or equal to *Attr. Finally, *Attr is assigned to
the field originally removed from the list.
FORM_FA_PEN The pen used for drawing lines and borders in ellipse, line, rectangle, and
roundrect fields. Attr is a pointer to a structure of type FORM_PenAttr_
typ.
FORM_FA_PROMPT The text appearing in the prompt area of a form when an input field gets
the input focus. This attribute applies to all input field types. Attr is a
pointer to a buffer at least FORM_LEN_FIELD_PROMPT + 1 bytes in
size, into which to copy the prompt.
FORM_FA_RANGE The minimum and maximum allowable values for the input field. Attr is a
pointer to an array of two elements of the appropriate data type for the
field. The first is the minimum; the second is the maximum. See FORM_
FA_VALUE for the various data types.
FORM_FA_RASTEROP The raster operand used to blt a pattern or bitmap field into the display
context. Attr is a pointer to a DWORD. For patterns, only PATCOPY,
PATINVERT, DSTINVERT, BLACKNESS, and WHITENESS are
allowed. For bitmaps, any raster op can be used, including but not limited
to:
SRCCOPY dest = source
SRCPAINT dest = source OR dest
SRCAND dest = source AND dest
SRCINVERT dest = source XOR dest
SRCERASE dest = source AND (not dest)
NOTSRCCOPY dest = (not source)
NOTSRCERASE dest = (not source) AND (not dest)
MERGECOPY dest = (source AND pattern)
MERGEPAINT dest = (NOT source) OR dest
PATCOPY dest = pattern
PATPAINT dest = try it and see
PATINVERT dest = pattern XOR dest
DSTINVERT dest = (not dest)
BLACKNESS dest = BLACK
WHITENESS dest = WHITE
Items not on this list are not allowed by the Forms Language, and
therefore cannot be saved. See also the Windows Programmer’s
Reference under BitBlt and Appendix A.
FORM_FA_RESOURCE Specifies a Windows-resource, currently used only for bitmap fields. Attr
is a pointer to a structure of type FORM_ResourceAttr_typ.
FORM_FA_ROUNDNESS The width and height of the ellipse used to round the corners of a
roundrect field. Attr is a pointer to a POINT. Attr->x is the width (columns
* 100), and Attr->y is the height (rows * 100).
FORM_FA_RULELIST The list of rules associated with the field. This attribute applies to all input
field types and form fields. Attr is a pointer to a structure of type FORM_
RuleAttr_typ.
FORM_FA_SECURITY The three-part name of the group to which one must belong in order to
sign a signature field. This is a null-terminated string in which the parts
are separated by the “:” character. Attr is a pointer to a buffer at least
FORM_LEN_SECURITY + 1 bytes in size, into which to copy the string.
FORM_FA_SIZE The size in bytes (not including null terminators, where applicable) of the
field value for all input field types. For string fields, the returned size is
not greater than the product of the actual width and the actual height. For
signature fields, the returned size is the length of the string containing the
name of the last user who signed the field. For graphic text fields, Attr
returns the string length of the text. For other display and form fields, Attr
returns zero. Attr is a pointer to a WORD in which to return the size.
This attribute cannot be set with FORM_set_field_attr().
FORM_FA_STRETCHMODE The stretch mode (or BLT mode) for a bitmap field. See
SetStretchBltMode in the Windows Programmer’s Reference for more
information. Attr is a pointer to a short, which contains one of
BLACKONWHITE, COLORONCOLOR, and WHITEONBLACK.
FORM_FA_STYLE Attr is a pointer to a WORD.
FORM_FA_TABLE The validation table for a string field. Attr is a pointer to a structure of type
FORM_TableAttr_typ.
FORM_FA_TERMCODE The termination code to be returned when a pushbutton is pushed. Attr
is a pointer to a structure of type FORM_Terminator_typ.
FORM_FA_TEXT The text of a checkbox, pushbutton, radiobutton, graphic text, or
groupbox field. For all but graphic text, Attr is a pointer to a buffer FORM_
LEN_BUTTON_TEXT + 1 bytes in size. For graphic text, Attr is a pointer
to a handle to the null-terminated text.
FORM_FA_TEXTFORMAT The DrawText format for displaying a graphic text field. Attr is a pointer
to a WORD. See DrawText in Windows SDK Programmer’s Reference
for more information. The format is a combination of: DT_LEFT, DT_
CENTER, DT_RIGHT, DT_TOP, DT_VCENTER, DT_BOTTOM, DT_
WORDBREAK, DT_SINGLELINE, DT_EXPANDTABS, DT_TABSTOP, DT_
EXTERNALLEADING, and DT_NOPREFIX.
FORM_FA_TYPE The data type of the field. This attribute applies to all field types. Attr is a
pointer to a FORM_FieldType_typ. This attribute cannot be set with
FORM_set_field_attr().
FORM_FA_USER An unsigned long assigned to a field for the client’s use. This attribute
applies to all field types. Attr is a pointer to a DWORD.
FORM_FA_VALFUNC The validation function for the field. This attribute applies to all input field
types and form fields. Attr is a pointer to a structure of type FORM_
ValFuncAttr_typ.
FORM_FA_VALUE The current value of the input field. This attribute applies to all input field
types. Attr is a pointer to the appropriate data type.
FORM_FT_CHECKBOX—FORM_Checked_typ, FORM_UNDEF_CHECK for
no value.
FORM_FT_DATE—FN_date_typ, FN_UNDEF_DATE for no value.
FORM_FT_SCROLLBAR—int.
FORM_fielddesc_typ
This structure provides a description of a field for FileNet FORM pages.
typedef struct {
DWORD fld_name_offset;
char fld_type;
WORD fld_len;
DWORD fld_val_offset;
} FORM_fielddesc_typ;
fld_name_offset
DWORD. Offset from beginning of file to this field’s NULL-
terminated name.
FORM_FieldEvent_typ
This enumeration specifies the field events.
typedef enum {
FORM_FE_NONE,
FORM_FE_VALUECHANGE
} FORM_FieldEvent_typ;
FORM_FE_NONE No event.
FORM_FE_VALUECHAGE Field value has changed.
FORM_FieldType_typ
This enumeration designates field types.
typedef enum {
FORM_FT_NULL,
FORM_FT_CHECKBOX,
FORM_FT_DATE,
FORM_FT_DOCUMENT,
FORM_FT_FOLDER,
FORM_FT_FORM,
FORM_FT_MENU,
FORM_FT_NUMBER,
FORM_FT_PUSHBUTTON,
FORM_FT_RADIOBUTTON,
FORM_FT_SCROLLBAR,
FORM_FT_SIGNATURE,
FORM_FT_STRING,
FORM_FT_TIME,
FORM_FT_BITMAP,
FORM_FT_ELLIPSE,
FORM_FT_GROUPBOX,
FORM_FT_LINE,
FORM_FT_PATTERN,
FORM_FT_RECT,
FORM_FT_ROUNDRECT,
FORM_FT_TEXT
FORM_FT_INTEGER,
FORM_FT_LISTBOX,
FORM_FT_COMBOBOX,
} FORM_FieldType_typ;
FORM_FontAttr_typ
This structure specifies font attributes.
typedef struct {
char FontName[FORM_LEN_FILE_NAME + 1];
WORD PointSize;
WORD Weight;
} FORM_FontAttr_typ;
FORM_FormAttr_typ
This enumeration specifies form and object attributes.
typedef enum {
FORM_ATTR_ALL,
FORM_ATTR_CHAR_MAP,
FORM_ATTR_COLOR,
FORM_ATTR_DESC,
FORM_ATTR_FILENAME,
FORM_ATTR_TERMPROC,
FORM_ATTR_HELP,
FORM_ATTR_ICON,
FORM_ATTR_MENUBAR,
FORM_ATTR_OBJNAME,
FORM_ATTR_RULELIST,
FORM_ATTR_SOFTKEYS,
FORM_ATTR_TITLE,
FORM_ATTR_VALFUNC,
FORM_ATTR_MENUBARSTYLE,
FORM_ATTR_BACKGROUND,
FORM_ATTR_PREFKEY,
FORM_ATTR_BKGIMAGE
} FORM_FormAttr_typ;
FORM_GroupboxField_typ
This structure specifies the attributes of a group box on a form.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
char Text[FORM_LEN_BUTTON_TEXT + 1];
char Description[FORM_LEN_OBJ_DESC + 1];
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_GroupboxField_typ;
Style WORD.
FORM_HelpAttr_typ
This structure specifies help file data.
typedef struct {
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
} FORM_HelpAttr_typ;
FORM_IconAttr_typ
This structure specifies information associated with an icon.
typedef struct {
PSTR Predefined;
HICON hIcon;
char RCName[FORM_LEN_OBJ_NAME + 1];
char FileName[FORM_LEN_FILE_NAME + 1];
} FORM_IconAttr_typ;
FORM_LineField_typ
This structure specifies information for a Form Line field.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
char Description[FORM_LEN_OBJ_DESC + 1];
WORD PenStyle;
WORD PenWidth;
DWORD PenColor;
DWORD BkColor;
DWORD UserAttr;
} FORM_LineField_typ;
Style WORD.
PenStyle WORD.
FORM_ListboxField_typ
This structure specifies data for a list box on a form.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
int ColumnWidth;
WORD HorzExtent;
WORD Style;
FORM_ListValue_typ DefaultVal;
FORM_ListValue_typ Value;
FORM_ListValue_typ TabStops;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_ListboxField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
See Also
“FORM_ListValue_typ” on page 310
FORM_ListValue_typ
typedef struct
{
WORD NumSelected;
HANDLE hSelected;
} FORM_ListValue_typ;
FORM_MenuAttr_typ
This structure specifies data about a menu on a form.
typedef struct {
char MenuName[FORM_LEN_OBJ_NAME + 1];
char MenuFile[FORM_LEN_FILE_NAME + 1];
} FORM_MenuAttr_typ;
FORM_MenubarAttr_typ
typedef struct {
char MenubarName[FORM_LEN_OBJ_NAME + 1];
char FileName[FORM_LEN_FILE_NAME + 1];
} FORM_MenubarAttr_typ;
FORM_MenuField_typ
This structure specifies menu fields.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
char MenuName[FORM_LEN_OBJ_NAME + 1];
char MenuFile[FORM_LEN_FILE_NAME + 1];
WORD Style;
FN_selection_typ DefaultVal;
FN_selection_typ Value;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_MenuField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
See Also
“FN_selection_typ” on page 262
FORM_MenuItem_typ
This structure specifies the attributes of an item on a menu.
typedef struct {
char Code;
char Desc[FORM_LEN_MENUITEM_DESC + 1];
WORD Style;
} FORM_MenuItem_typ;
FORM_NumberField_typ
This structure specifies number fields.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int ActualWidth;
char Mask[FORM_LEN_FIELD_MASK + 1];
WORD Style;
FP_number DefaultVal;
FP_number Value;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
FP_number Min;
FP_number Max;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_NumberField_typ;
DisplayWidth int. Display width is less than or equal to the actual width;
display/actual height is one row.
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
See Also
“FP_number” on page 349
FORM_ObjectType_typ
This enumeration designates object types.
typedef enum {
FORM_OT_ALL,
FORM_OT_FORM,
FORM_OT_MENU,
FORM_OT_MENUBAR,
FORM_OT_VALTABLE,
FORM_OT_REPORT,
FORM_OT_PAMPHLET
} FORM_ObjectType_typ;
FORM_PageAttr_typ
This structure specifies the document and page in which a specified data is
located.
typedef struct {
ASE_ssn_typ SSN;
ASE_doc_id_typ ID;
ASE_page_number_typ Page;
} FORM_PageAttr_typ;
See Also
“ASE_doc_id_typ” on page 164
FORM_PatternField_typ
This structure specifies data about a Pattern field on a form.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
char Description[FORM_LEN_OBJ_DESC + 1];
WORD BrushStyle;
DWORD BrushColor;
WORD BrushHatch;
DWORD BkColor;
DWORD RasterOp;
DWORD UserAttr;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_PatternField_typ;
Style WORD.
BrushStyle WORD.
BrushHatch WORD.
DSTINVERT
BLACKNESS
WHITENESS
FORM_PenAttr_typ
This structure specifies the color and size of a pen.
typedef struct {
WORD PenStyle;
WORD PenWidth;
DWORD PenColor;
} FORM_PenAttr_typ;
PenStyle WORD.
FORM_ProcAttr_typ
typedef struct {
char ProcName[FORM_LEN_VALFUNC_NAME + 1];
char ProcLib[FORM_LEN_FILE_NAME + 1];
FIELDPROC Proc;
DWORD ExtraParam
} FORM_ProcAttr_typ;
ProcLib char. NULL or name of the library that contains the function.
FORM_RadioField_typ
This structure provides information for radio button fields.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
WORD Style;
FORM_Checked_typ DefaultVal;
FORM_Checked_typ Value;
char Text[FORM_LEN_BUTTON_TEXT + 1];
char Group[FORM_LEN_FIELD_NAME + 1];
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_RadioField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
See Also
“FORM_Checked_typ” on page 277
FORM_RectField_typ
This structure defines an ellipse or a rectangle.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
char Description[FORM_LEN_OBJ_DESC + 1];
WORD PenStyle;
WORD PenWidth;
DWORD PenColor;
DWORD BkColor;
WORD BrushStyle;
DWORD BrushColor;
WORD BrushHatch;
DWORD UserAttr;
} FORM_RectField_typ;
Style WORD.
PenStyle WORD.
BrushStyle WORD.
BrushHatch WORD.
FORM_ResourceAttr_typ
This structure specifies data about a GDI object or resource.
typedef struct {
HANDLE hRC;
char RCName[FORM_LEN_OBJ_NAME + 1];
char FileName[FORM_LEN_FILE_NAME + 1];
} FORM_ResourceAttr_typ;
FileName char. Name of the (.bmp) file that contains the bitmap.
FORM_RoundRectField_typ
This structure defines a rounded rectangle.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
int RoundWidth;
int RoundHeight;
WORD Style;
char Description[FORM_LEN_OBJ_DESC + 1];
WORD PenStyle;
WORD PenWidth;
DWORD PenColor;
DWORD BkColor;
WORD BrushStyle;
DWORD BrushColor;
WORD BrushHatch;
DWORD UserAttr;
} FORM_RoundRectField_typ;
Style WORD.
PenStyle WORD.
BrushStyle WORD.
BrushHatch WORD.
FORM_RuleAttr_typ
This structure specifies validation rules.
typedef struct {
WORD NumRules;
HANDLE hRule;
} FORM_RuleAttr_typ;
FORM_ScrollbarField_typ
This structure provides information that defines scrollbar fields. BarColor is
set and returned using FORM_FA_FORECOLOR, and ThumbColor is set and
returned using FORM_FA_BACKCOLOR.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayLength;
WORD Style;
int DefaultVal;
int Value;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
int Min;
int Max;
DWORD BarColor;
DWORD ThumbColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_ScrollbarField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
FORM_SignatureField_typ
This structure provides information that defines signature fields.
typedef struct {
int DisplayX;
int DisplayY;
WORD Style;
char Security[FORM_LEN_SECURITY + 1];
char Value[FORM_LEN_SECURITY + 1];
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_SignatureField_typ;
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
FORM_Softkey_typ
This structure contains information that defines a softkey.
typedef struct {
char Label[FORM_LEN_SOFTKEY_LABEL + 1];
BYTE Kind;
FORM_Terminator_typ Terminator;
char MenuName[FORM_LEN_OBJ_NAME + 1];
char FileName[FORM_LEN_FILE_NAME + 1];
} FORM_Softkey_typ;
Label char. Key label. (The text appears in the menu bar.)
MenuName char. Name of the menu that contains the softkey. If supplied,
the menu to be used as a pulldown.
FileName char. Name of the file that contains the menu. If the menu
name is supplied, an optional file name can be supplied. If
none is given, the current file is used. See “FORM_set_
menubar_items()” on page 911.
See Also
“FORM_Terminator_typ” on page 343
FORM_SoftkeyAttr_typ
This structure specifies data related to a softkey in a menu.
typedef struct {
WORD NumKeys;
HANDLE hKeys;
} FORM_SoftkeyAttr_typ;
FORM_StringField_typ
This structure provides information that defines string fields.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
int ActualWidth;
int ActualHeight;
WORD Style;
HANDLE hCharList;
HANDLE hDefaultVal;
HANDLE hValue;
char Description[FORM_LEN_OBJ_DESC + 1];
char Prompt[FORM_LEN_FIELD_PROMPT + 1];
HANDLE hHelpText;
char HelpFile[FORM_LEN_FILE_NAME + 1];
WORD HelpMod;
WORD HelpScr;
HANDLE hMin;
HANDLE hMax;
DWORD FrColor;
DWORD BkColor;
DWORD UserAttr;
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
char ValTableName[FORM_LEN_OBJ_NAME + 1];
char ValTableFile[FORM_LEN_FILE_NAME + 1];
WORD NumRules;
HANDLE hRule;
FIELDPROC FieldProc;
DWORD ExtraParam;
} FORM_StringField_typ;
DisplayWidth int. Display width is less than or equal to the actual width.
DisplayHeight int. Display height is less than or equal to the actual height.
Style WORD.
Prompt char. Text output in the message window that prompts user
for input.
ValFuncLib char. Name of the LIB file that contains the function.
ValTableFile char. Name of the file that contains the validation table.
FORM_TableAttr_typ
This structure specifies validation table data.
typedef struct {
char ValTableName[FORM_LEN_OBJ_NAME + 1];
char ValTableFile[FORM_LEN_FILE_NAME + 1];
} FORM_TableAttr_typ;
ValTableFile char. Name of the file that contains the validation table.
FORM_Terminator_typ
This structure contains information that defines a terminator key.
typedef struct {
WORD Key;
WORD Shift;
} FORM_Terminator_typ;
Shift WORD. Shift state of the key. The shift state can be formed
by OR–ing FORM_SHIFT_ALT, FORM_SHIFT_CTL, and/or
FORM_SHIFT_SHIFT together.
FORM_TermProcAttr_typ
typedef struct {
char ProcName[FORM_LEN_VALFUNC_NAME + 1];
char ProcLib[FORM_LEN_FILE_NAME + 1];
TERMPROC Proc;
DWORD ExtraParam
} FORM_TermProcAttr_typ;
Proc TERMPROC.
ExtraParam DWORD.
FORM_TextField_typ
This structure specifies data about a text field on a form.
typedef struct {
int DisplayX;
int DisplayY;
int DisplayWidth;
int DisplayHeight;
WORD Style;
HANDLE hText;
WORD Format;
char Description[FORM_LEN_OBJ_DESC + 1];
DWORD FrColor;
DWORD BkColor;
char FontName[FORM_LEN_FILE_NAME + 1];
WORD PointSize;
WORD Weight;
DWORD UserAttr;
} FORM_TextField_typ;
Style WORD.
FORM_ValFuncAttr_typ
typedef struct {
char ValFuncName[FORM_LEN_VALFUNC_NAME + 1];
char ValFuncLib[FORM_LEN_FILE_NAME + 1];
ERRFARPROC ValFunc;
DWORD ValFuncParam;
} FORM_ValFuncAttr_typ;
ValFuncLib char. Name of the LIB file that contains the function.
FORM_ValItem_typ
This structure contains information that defines a validation table item.
typedef struct {
char Item[FORM_LEN_VALITEM_STRING + 1];
char Desc[FORM_LEN_VALITEM_DESC + 1];
} FORM_ValItem_typ;
FP_number
This type designates a number type.
IAFLIB_image_object_typ
This enumeration specifies the possible image types in WorkForce Desktop.
typedef enum
{
FN_BATCH,
FN_PRINT_JOB,
FN_CACHE,
FN_DOCUMENT_CLASS,
FN_DOCUMENT_TYP,
FN_WORKFLO_QUEUE_DEFINITION,
FN_WORKFLO_QUEUE_DESCRIPTION,
FN_WORKFLO_WORKSPACE,
FN_CACHE_OBJECT,
FN_ANNOTATION,
FN_TAB,
FN_FOLDERVIEW_STATE,
FN_FOLDER_TYP,
FN_FOLDER_NOTE,
FN_GENERAL_WORKFLO_OBJECT
} IAFLIB_image_object_typ;
IAFLIB_prefetch_result
This structure describes the result of the prefetch of one page range. It is
returned by IAFLIB_prefetch().
typedef struct {
ASE_page_number_typ pages_in_doc;
ASE_service_name_typ dest_cache;
error_typ range_error;
} IAFLIB_prefetch_result;
range_error error_typ (long). The error (if any) returned when attempting
to prefetch this page range.
See Also
“ASE_page_number_typ” on page 173
ILIB Constants
Styles of Objects
Styles of Annotations
These constants are used in IAFLIB_put_annotation().
ILIB_DOC_annotation_id_typ
This structure specifies the ID of an annotation. An annotation ID is the page-
relative identifier of an annotation on a page. There is no order implied by this
identifier, and annotation IDs can be non-contiguous. Annotation IDs will not
change, even if a lower-numbered annotation is deleted.
typedef struct {
unsigned long high_order;
unsigned long low_order;
} ILIB_DOC_annotation_id_typ;
IMGFMT_custom_typ
This structure contains the data for JPEG conversions. This structure is
included in the IMGFMT.I file.
JPEG_resolution
int.
JPEG_luminance
int. Range -7 to +100.
JPEG_chrominance
int. Range -7 to +100.
JPEG_params_valid
BOOL. True only if the three JPEG values are valid.
IMGFMT_desc_typ
This structure designates the IMGFMT descriptor.
INX_closed_typ
This type specifies whether records for active, closed, or both active and
closed documents and folders are returned.
INX_CL_ACTIVE 0 Specifies that only records for active documents are returned.
INX_CL_CLOSED 1 Specifies that only records for closed documents are
returned.
INX_CL_ALL 2 Specifies that records for all documents are returned.
INX_cluster_key_typ
typedef struct {
INX_cluster_space_typ cluster_space;
unsigned short cluster_id[3];
} INX_cluster_key_typ;
cluster_space INX_cluster_space_typ.
See Also
“INX_cluster_space_typ” on page 359
INX_cluster_space_typ
typedef unsigned short INX_cluster_space_typ;
INX_dcl_id_typ
This type specifies a document class ID.
INX_dcl_name_typ
This type specifies a document class name.
INX_dir_typ
This type designates an abbreviation for INX_doc_index_rec_typ.
See Also
“INX_doc_index_rec_typ” on page 364
INX_doc_type_typ
typedef byte INX_doc_type_typ;
INX_doc_index_rec_typ
This is a variable structure for general record (raw row). This structure
represents a document index record. The values in INX_doc_index_rec_typ
include both the system and user indexing information for the document.
value_len unsigned short. The value_len field is the total byte length of
the values structure sequence; it does not include the length
of the value_len field itself (2 bytes) and value_num field (2
bytes).
value_len
value_num
values
index_id index_id index_id
type type type
data ... data ... data ...
See Also
“INX_index_value_typ” on page 373
INX_fam_id_typ
typedef unsigned long INX_fam_id_typ;
INX_fc_doc_ord_item_typ
This structure orders the documents in a folder. The structure is used in the
IAFLIB_get_docs_in_folder() function.
See Also
“FN_docnum_typ” on page 260
INX_folder_desc_typ
This structure includes a description of a folder.
archive_date FN_date_typ (long). The date when the folder and its
contents will be archived.
delete_date FN_date_typ (long). The date when the folder and its
contents will be deleted.
auto_del_period
short. The number of months to leave documents in a folder.
See Also
“FN_date_typ” on page 259
INX_folder_name_typ
This structure specifies the name of a folder.
The character slash (/) separates the components. Each full folder name is
unique within a system.
INX_folder_spec_typ
This structure is like INX_folder_name_typ except that you can use wildcards
to specify folder names. Through the use of common prefixes, folders can be
logically grouped. You can use the notation described in the text below to
specify collections of folders.
An asterisk (*) wildcard refers to zero or more folder-name characters and can
appear at the end of the last component of the name. A trailing slash has a
special function and refers to both the name specified and all folders below it.
For example:
INX_index_id_typ
This type specifies an index ID, which defines a system-wide unique number
to identify an index. Index IDs are refer to both system and user indexes.
INX_INVALID_INDEX_ID 0
INX_index_name_typ
This type specifies a system-wide unique index name.
INX_index_value_typ
typedef INX_VARYING struct {
INX_index_id_typ index_id;
INX_value_type_typ type;
char data[2];
} INX_index_value_typ;
See Also
“INX_index_id_typ” on page 371
INX_query_match_typ
This variable structure specifies a query match record. IAFLIB_query_db()
and IAFLIB_continue_query() return a sequence of INX_query_match_typ
structures.
The returned string data (ASCII) varies in length, but must have an even
number of bytes. Other returned data has constant length defined in INX_
index_value_type_typ (see “INX_value_type_typ” on page 379). Strings are
stored and padded with null characters, if needed, for even-byte boundary
alignment.
Note next_p is NOT used as a pointer. To retrieve the next query match, you need
to use the INX_query_match_typ pointer as follows:
error_typ err;
HANDLE qm_h;
INX_query_match_typ *qm_p;
WORD ii, num_matches;
...
err = IAFLIB_query_db(...&num_matches, &qm_h);
qm_p = (INX_query_match_typ *)GlobalLock(qm_h);
for (ii=0; ii<num_matches; ii++) {
...
/* Next query match is offset by next_p */
(LPSTR)qm_p += (WORD)qm_p->next_p;
} /* end of for */
GlobalUnlock(qm_h);
See Also
“FN_folnum_typ” on page 261
INX_retent_base_typ
This type specifies a document or folder retention base. The time at which a
document or folder is to be disposed of is specified by its retention base and
retention offset, defined as the system indexes f_retentBase and
f_retentOffset. The retention base is either the entry date of the document or
folder or the date the document was explicitly closed by a client.
INX_retent_disp_typ
This type describes a document or folder retention disposition. The retention
disposition, defined in the system index f_retentDisp, specifies what happens
to a document when its retention date has expired. Default retention
parameters are associated with both document classes and folders, but the
retention parameters for a specific document or folder can be modified by the
client using IAFLIB_update_db() or IAFLIB_update_folder().
INX_retent_offset_typ
This type designates a document or folder retention offset. The time at which
a document or folder is to be disposed of is specified by its retention base and
retention offset, defined as the system indexes f_retentBase and
f_retentOffset. The retention offset specifies the minimum number of months
from the retention base at which time the document will be disposed of.
From release 3.0, the maximum value of the retention offset is 16,383 months
instead of 966 months. It is defined in limits.h as:
INX_value_type_typ
This type defines the data types of an index value. Each index value in a
document index record has a fixed data type.
NCH_AttributesDescValue
This structure defines the format of the attributes property value. These
attributes can be returned from SVN_get_Attr_desc() function.
typedef struct {
unsigned short level;
unsigned long object_checksum_level;
unsigned long default_system_char_set;
unsigned long former_system_char_set;
unsigned long major_high_num;
unsigned long major_low_num;
unsigned long major_minor_num;
unsigned long major_cycle_num;
unsigned long vendor_id;
} NCH_AttributesDescValue;
object_checksum_level
unsigned long. Indicates the level of checksum checking to
be implemented on the object. Valid values are:
NCH_NO_CHECKSUM 0
NCH_MIN_CHECKSUM 1
NCH_FULL_CHECKSUM 2
default_system_char_set
unsigned long. Defines the character set this system uses in
its RPC communications. See the table on page 381.
former_system_char_set
unsigned long. Defines the character set of the rendering
objects that come into the system.
major_high_num
unsigned long. Indicates the system software release
number. For example, for server software 3.1.0.7, it returns:
major_high_num =3
major_low_num =1
major_minor_num = 0
major_cycle_num = 7
major_low_num
unsigned long. See major_high_num.
major_minor_num
unsigned long. See major_high_num.
major_cycle_num
unsigned long. See major_high_num.
NCH_BatchDescValue
This structure defines the format of the BatchDesc property value.
typedef struct {
unsigned short level;
NCH_ObjectName ims;
NCH_ObjectName cachename;
} NCH_BatchDescValue;
See Also
“NCH_ObjectName” on page 395
NCH_CacheDescValue
This structure defines the format of the CacheDesc property value.
typedef struct {
unsigned short level;
unsigned long ssn;
unsigned long cache_id;
unsigned long min_sector_size;
unsigned long max_sector_size;
unsigned short refcnts;
unsigned short ageable;
struct {
unsigned long read_group
unsigned long write_group
unsigned long AX_group;
} security;
} NCH_CacheDescValue;
ssn unsigned long. System serial number for the specified cache.
min_sector_size
unsigned long. The minimum size in sectors of the specified
cache.
max_sector_size
unsigned long. The maximum size in sectors of the specified
cache.
NCH_DefCacheDescValue
This structure defines the format of the property value used to store
information about the default cache.
typedef struct {
unsigned short level;
NCH_ObjectName default_cold_cache;
NCH_ObjectName default_entry_cache;
NCH_ObjectName default_gti_cache;
NCH_ObjectName default_pdb_cache;
NCH_ObjectName default_fillin_cache;
NCH_ObjectName default_ocr_cache;
} NCH_DefCacheDescValue;
default_cold_cache
NCH_ObjectName.
default_entry_cache
NCH_ObjectName.
default_gti_cache
NCH_ObjectName.
default_pdb_cache
NCH_ObjectName.
default_fillin_cache
NCH_ObjectName.
default_ocr_cache
NCH_ObjectName.
See Also
“NCH_ObjectName” on page 395
NCH_DefDeviceDescValue
typedef struct {
unsigned short level;
NCH_ObjectName default_printer;
NCH_ObjectName default_tape_drive;
} NCH_DefDeviceDescValue;
default_printer
NCH_ObjectName. Three-part NCH name for default printer.
default_tape_drive
NCH_ObjectName. Three-part NCH name for default tape
drive.
See Also
“NCH_ObjectName” on page 395
NCH_DefServiceDescValue
This structure defines the format of the property value used to store
information about the default service.
typedef struct {
unsigned short level;
NCH_ObjectName default_bes;
NCH_ObjectName default_dtars_service;
NCH_ObjectName default_ims;
NCH_ObjectName default_print_service;
NCH_ObjectName default_skf_service;
NCH_ObjectName default_wflq_service;
NCH_ObjectName default_sort_service;
NCH_ObjectName default_sql_service;
} NCH_DefServiceDescValue;
default_bes NCH_ObjectName.
default_dtars_service
NCH_ObjectName.
default_ims NCH_ObjectName.
default_print_service
NCH_ObjectName.
default_skf_service
NCH_ObjectName.
default_sflq_service
NCH_ObjectName.
default_sort_service
NCH_ObjectName.
default_sql_service
NCH_ObjectName.
See Also
“NCH_ObjectName” on page 395
NCH_DefService1DescValue
This structure defines the format of the property value used to store
information about the default service.
We have renamed OCR service to ICR service in the Network Clearing House
(NCH). The following changes in the nch_form.h include:
to:
to:
typedef struct {
unsigned short level;
NCH_ObjectName default_icr_service;
NCH_ObjectName default_file_service;
NCH_ObjectName default_sec_service;
} NCH_DefService1DescValue;
default_icr_service
NCH_ObjectName. Assigned name.
default_file_service
NCH_ObjectName. Assigned name.
default_sec_service
NCH_ObjectName. Assigned name.
See Also
“NCH_ObjectName” on page 395
NCH_DomainName
typedef struct {
char organization[NCH_MAX_ORG_LENGTH];
char domain[NCH_MAX_DOMAIN_LENGTH];
} NCH_TwoPartName,
NCH_DomainName,
NCH_DomainNamePattern;
NCH_ICRServiceDescValue
The ICRServiceDesc property values contain the icr_wqs_service and icr_
cache service names.
typedef struct {
unsigned short level;
NCH_ObejctName icr_bes_service;
NCH_ObejctName icr_wqs_service;
NCH_ObejctName icr_sql_service;
NCH_ObejctName icr_cache;
} NCH_ICRServiceDescValue;
icr_bes_service
NCH_ObjectName. BES service instance used by ICR
service.
icr_wqs_service
NCH_ObjectName. WQS service instance used by ICR
service.
icr_sql_service
NCH_ObjectName. SQL service instance used by ICR
service.
See Also
“NCH_ObjectName” on page 395
NCH_IMSDescValue
This structure defines the format of the IMSDesc property value.
typedef struct {
unsigned short level;
NCH_ObjectName index_service;
NCH_ObjectName document_service;
unsigned long ssn;
NCH_ObjectName forms_service;
} NCH_IMSDescValue;
document_service
NCH_ObjectName. Name of the Document Service for the
specified IMS.
ssn unsigned long. Name of the SSN for the specified IMS.
See Also
“NCH_ObjectName” on page 395
NCH_NetAddr_typ
This structure is equivalent to NET_NetAddr_typ structure.
socketNumber
unsigned short. 16-bit socket number.
See Also
“NET_HostNum_typ” on page 398
NCH_ObjectName
This structure defines the names of each FileNet application service. Each
instance of a service has a name used to uniquely identify it. The service
name to network address translation is done by the NCH service. Each field is
null-terminated unless it’s the maximum length.
typedef struct {
char organization[NCH_MAX_ORG_LENGTH];
char domain[NCH_MAX_DOMAIN_LENGTH];
char object[NCH_MAX_OBJECT_LENGTH];
} NCH_ObjectName;
NCH_PrintServDescValue
typedef struct {
unsigned short level;
NCH_ObjectName print_cache;
} NCH_PrintServDescValue;
See Also
“NCH_ObjectName” on page 395
NCH_Property
typedef unsigned long NCH_Property;
NCH_ITEM_PROP 0
NCH_GROUP_PROP 1
NCH_ALL_PROPERTIES 0
NCH_NULL_PROPERTY 0xffffffff unsigned long
NCH_SERV_TER 0
NCH_SERV_SEC 1
NCH_SERV_PRI 2
NET_HostNum_typ
typedef struct NET_HostNum_typ {
unsigned char hostNumber[6];
} NET_HostNum_typ;
NET_ip_addr_typ
typedef struct ip_addr_typ {
unsigned char addr[4];
} NET_ip_addr_typ;
NET_NetAddr_typ
typedef struct NET_NetAddr_typ {
NET_NetNum_typ netNumber;
NET_HostNum_typ hostNumber;
unsigned short socketNumber;
} NET_NetAddr_typ;
socketNumber
unsigned short. 16-bit socket number.
See Also
“NET_HostNum_typ” on page 398
NET_NetNum_typ
typedef struct NET_NetNum_typ {
unsigned char netNumber[4];
} NET_NetNum_typ;
PRI_annot_mark_typ
typedef struct {
long x_coord;
long y_coord;
unsigned short annot_id;
} PRI_annot_mark_typ;
PRI_annot_marks_typ
typedef struct {
unsigned short num_annots;
PRI_annot_mark_typ mark [1];
} PRI_annot_marks_typ;
See Also
“PRI_annot_mark_typ” on page 402
PRI_doc_specifier_typ
This structure specifies a document ID, a range of pages to be printed, and
the source (either a Cache service of a Document service). If the source is a
Cache service, the specification also includes an SSN, which builds the
CSM_object_desc_typ(s) for the source cache, and a boolean delete_after,
which, if TRUE, automatically deletes objects from the cache after they are
printed.
typedef struct {
ASE_page_range_typ doc;
PRI_service_type_typ svc_type;
ASE_service_name_typ svc_name;
ASE_ssn_typ ssn;
FN_BOOL delete_after;
} PRI_doc_specifier_typ;
Note Do not set the delete_after flag to TRUE if printing an uncommitted image
from the batch entry cache.
See Also
“ASE_page_range_typ” on page 174
PRI_eject_tray_typ
This type specifies the eject tray for a print job. This value is used in the PRI_
print_option_typ2 structure. An eject tray number can be specified (1..n), or
PRI_DEFAULT_EJECT_TRAY can be specified for the default tray.
PRI_fax_mode_typ
This type specifies the resolution at which the request is transmitted.
PRI_option_typ
This type specifies print options. These defines enumerate the possible types
of print options in the PRI_print_option_typ, PS_long_option_type, and PRI_
print_option_typ2 structures. The option_type field in those structures
determines which of the union’s members is appropriate.
PRI_OPTION_PAPER_SIZE 0 For print jobs; the paper size or paper tray location.
PRI_OPTION_PRIORITY 1 For print jobs; the relative importance of this print
request compared to other print jobs.
PRI_OPTION_PRINTER_NAME 2 For print or fax jobs, the specific machine to use.
PRI_OPTION_COLLATE 3 For print jobs; sorts the printed output by copy
(instead of by page) when printing multiple copies
of a multi-page document.
PRI_OPTION_SECURITY 4 Not used; if specified, it is ignored.
PRI_OPTION_COPIES 5 For print jobs; the number of copies to print. (You
can only fax one copy.)
PRI_OPTION_PRINT_TIME 6 The time at which the job is to be processed.
PRI_OPTION_STAPLE 7 For print jobs; specifies that copies are stapled.
(Note that FileNet does not currently support any
printers with this capability.)
PRI_OPTION_TWO_SIDED 8 Specifies that copies are printed on both sides.
(Note that FileNet does not currently support any
printers with this capability.)
PRI_OPTION_FORM_NAME 9 Not used; if specified, it is ignored.
PRI_OPTION_NOTE 10 Specifies a note that will print on the request
header page for a print request.
PRI_OPTION_ANNOTATIONS 11 Prints annotations associated with a document.
PRI_OPTION_REQUEST_HEADER 12 For print jobs, prints a cover page for all print jobs;
for fax, enables cover sheets.
PRI_OPTION_DOC_HEADERS 13 For print jobs; prints a cover page for each
document in a print job. Applicable to print
requests for committed documents only.
PRI_orientation_typ
This type specifies the orientation option that the image has on a page.
PRI_overlay_typ
typedef unsigned short PRI_overlay_typ;
PRI_NO_OVERLAY 0 No overlays.
PRI_ONE_OVERLAY 1 First page has an overlay.
PRI_MULTI_OVERLAY 2 All pages have an overlay.
PRI_MAX_OVERLAY PRI_MULTI_OVERLAY
PRI_pages_printed_typ
typedef struct {
unsigned short doc_order;
ASE_page_number_typ page;
} PRI_pages_printed_typ;
See Also
“ASE_page_number_typ” on page 173
PRI_paper_size_typ
This type specifies the paper sizes or paper tray locations that printers can
handle.
Note that specifying a size or location affects what the Printer Imaging
software does when a tray runs out of paper. If you specify a paper size,
Printer Imaging takes the paper from any tray where it finds that size of paper.
If you specify a paper tray location, Printer Imaging keeps drawing paper from
that location, and pauses if the tray is empty. If you specify DONT_CARE,
Printer Imaging goes to the next tray with the same paper size, if possible;
otherwise, the print job waits until more paper is loaded. (The page bitmap is
already laid out when Printer Imaging finds the tray empty, so it locks in
whatever page size it finds first for a Don’t Care request.)
PRI_position_typ
typedef struct PRI_position_typ {
unsigned long request_id;
unsigned long priority;
unsigned long sequence_num;
unsigned long num_printing_reqs;
} PRI_position_typ;
sequence_num
unsigned long.
num_printing_reqs
unsigned long.
PRI_print_direction_typ
This type specifies the print direction options. These values represent the two
print directions available.
PRI_print_option_typ
This structure is used in a PS_options_rec_type structure, and contains a
union of all the print options. The option_type field determines which union
member is used. Union members that are larger than four bytes are pointers,
to keep the size of the structure optimal.
typedef struct {
PRI_option_typ option_type;
union {
PRI_paper_size_typ paper_size;
PRI_priority_typ priority;
ASE_service_name_typ * printer_name_p;
FN_BOOL collate;
SCT_access_restrictions security;
unsigned short copies;
FN_time_typ print_time;
FN_BOOL staple;
FN_BOOL two_sided;
char * form_name_p;
char * note_p;
FN_BOOL annotations;
FN_BOOL request_header;
FN_BOOL doc_headers;
PRI_scaling_typ scaling;
PRI_orientation_typ orientation;
FN_BOOL overlay;
char * phone_num_p;
char * headline_p;
PRI_fax_mode_typ fax_mode;
FN_BOOL page_footnote;
FN_BOOL time_footnote;
} opt;
} PRI_print_option_typ;
PRI_PS_TOP 16
PRI_PS_BOTTOM 17
PRI_PS_THIRD 18
PRI_PS_DEFAULT 19
PRI_PS_HALF_LETTER 20
PRI_PS_BEST_AVAIL 21
PRI_PS_10x14 22
printer_name_p
ASE_service_name_typ (NCH_ObjectName) *. Pointer to a
three-part NCH name that specifies the printer.
annotations FN_BOOL. You can print any notes the user has attached to
a document by setting annotations to TRUE. If TRUE, the
annotations attached to a page of a document print on a
separate page directly after the document page. The default
value for annotations is the setting in the logon file.
request_header
FN_BOOL. If TRUE, prints a job header for the specified print
job. The default is the setting in the logon file.
A job header prints a cover page for all print jobs. The Printer
Imaging software lays out job headers using a template file,
header.job, located in /usr/local/sd/<print_server_station#>
(i.e., there’s one header.job file per print server). Your support
representative can modify the template file to customize the
job header.
One of the fields on the job header is a note. Use the note
field to specify the text (up to 40 characters) for this note.
phone_num_p
char *. Fax option.
See Also
“ASE_service_name_typ” on page 178
PRI_print_option_typ2
This structure is used in a PS_options_rec_type structure and contains a
union of all print options. The option_type field determines which union
member is used. Union members that are larger than 4 bytes are pointers,
which keeps the size of the structure optimal. This structure is used by
IAFLIB_modify_print2(), IAFLIB_print_docs1(), and IAFLIB_print_files1().
typedef struct {
PRI_option_typ option_type;
union {
PRI_paper_size_typ paper_size;
PRI_priority_typ priority;
ASE_service_name_typ * printer_name_p;
FN_BOOL collate;
SCT_access_restrictions security;
unsigned short copies;
FN_time_typ print_time;
FN_BOOL staple;
FN_BOOL two_sided;
char form_name_p[PRI_MAX_FORM_NAME_LEN + 1];
char note_p[PRI_MAX_NOTE_LEN + 1];
FN_BOOL annotations;
FN_BOOL request_header;
FN_BOOL doc_headers;
PRI_scaling_typ scaling;
PRI_orientation_typ orientation;
FN_BOOL overlay;
char phone_num_p[PRI_MAX_PHONE_NUM_LEN + 1];
char phone_ext_p[PRI_MAX_PHONE_EXT_LEN + 1];
char headline_p[PRI_MAX_HEADLINE_LEN + 1];
char memo_p[PRI_MAX_MEMO_LEN + 1];
PRI_fax_mode_typ fax_mode;
FN_BOOL page_footnote;
FN_BOOL time_footnote;
PRI_eject_tray_typ eject_tray;
ASE_doc_id_typ cover_doc;
ASE_ssn_typ ssn;
} opt;
} PRI_print_option_typ2;
PRI_PS_A5 12
PRI_PS_B4 13
PRI_PS_B5 14
PRI_PS_18x24 15
PRI_PS_TOP 16
PRI_PS_BOTTOM 17
PRI_PS_THIRD 18
PRI_PS_DONT_CARE 19
PRI_PS_HALF_LETTER 20
PRI_PS_BEST_AVAIL 21
PRI_PS_10x14 22
PRI_PS_DEFAULT 23
PRI_PS_EXECUTIVE 24
printer_name_p
ASE_service_name_typ (NCH_ObjectName) *. The printer_
name_p field is a pointer to a three-part NCH name that
specifies the printer you want to use.
form_name_p char. Not used. If you specify this option, the corresponding
argument is ignored.
annotations FN_BOOL. You can print any notes the user attached to a
document by setting annotations to TRUE. If TRUE, the
annotations attached to a page of a document print on a
separate page directly after the document page. The default
value for annotations is the setting in the LOGON.CFG file.
request_header
FN_BOOL. If TRUE, prints a job header for the specified print
job. The default is the setting in the LOGON.CFG file.
A job header prints a cover page for all print jobs. The Printer
Imaging software lays out job headers using a template file,
header.job, located in /usr/local/sd/<print_server_station#>
(i.e., there’s one header.job file per print server). Your support
representative can modify the template file to customize the
job header.
One of the fields on the job header is a note. Use the note
field to specify the text (up to 40 characters) for this note.
See Also
“ASE_doc_id_typ” on page 164
PRI_printer_attr_typ
This structure describes the capabilities of a specified printer.
pages_per_min
unsigned short. Speed of this printer.
two_sided bool. True if printer can duplex (print on both sides of the
paper).
num_paper_sizes
unsigned short. Length of paper_sizes array.
See Also
“ASE_service_name_typ” on page 178
PRI_printer_attr_typ2
This structure describes the capabilities of a specified printer.
pages_per_min
unsigned short. Speed of the printer.
num_paper_sizes
unsigned short. Number of items in paper_sizes.
num_eject_trays
unsigned short. Number of items in eject_trays.
num_fax_modes
unsigned short. Number of items in fax_modes.
See Also
“ASE_service_name_typ” on page 178
PRI_printer_op_status_typ
This type specifies the operational status of a printer. PRI_get_service_
status() returns the status.
PRI_printer_status_typ
This structure represents the status of a printer. The structure has a *next
pointer to build a linked list of PRI_printer_statuses, one for each physical
printer controlled by the service.
requests_queued
unsigned short. The requests queued for this print server
only. For the entire service, see “PRI_service_status_typ” on
page 457.
pages_queued
unsigned short. Pages assigned to this print server only.
num_paper_sizes
unsigned short. Number of items in paper_sizes array.
See Also
“ASE_service_name_typ” on page 178
PRI_printer_type_typ
This type specifies the type of a device.
PRI_priority_typ
This type specifies the priority given to requests if no other priority is
specified.
PRI_request_desc_typ
This structure describes the publicly-visible attributes of a print request.
IAFLIB_get_print_queues() returns an array of these structures.
typedef struct {
ASE_request_id_typ request_id;
FN_time_typ submit_time;
PRI_request_status_typ request_status;
FN_BOOL fax_request;
PRI_request_type_typ request_type;
union {
unsigned long pages;
unsigned long bytes;
} length;
FN_time_typ done_time;
FN_time_typ print_time;
PRI_priority_typ priority;
PRI_paper_size_typ paper_size;
unsigned short copies;
FN_BOOL collate;
FN_BOOL staple;
FN_BOOL two_sided;
FN_BOOL annotate;
FN_BOOL req_header;
FN_BOOL doc_headers;
PRI_scaling_typ scaling;
PRI_orientation_typ orientation;
PRI_fax_mode_typ fax_mode;
FN_BOOL page_footnote;
FN_BOOL time_footnote;
ASE_service_name_typ printer;
ASE_service_name_typ user;
char form_name[32];
char note[42];
char phone_num[40];
char headline[98];
} PRI_request_desc_typ;
request_status
PRI_request_status_typ (unsigned short)
PRI_RS_UNKNOWN 0
PRI_RS_QUEUED 1
PRI_RS_PRINTING 2
PRI_RS_COMPLETE 3
PRI_RS_FAILED 4
PRI_RS_CANCELLED 5
PRI_RS_WAITING 6
PRI_RS_FETCHING 7
PRI_RS_SUSPENDED 8
PRI_PS_A5 12
PRI_PS_B4 13
PRI_PS_B5 14
PRI_PS_18x24 15
PRI_PS_TOP 16
PRI_PS_BOTTOM 17
PRI_PS_THIRD 18
PRI_PS_DONT_CARE 19
PRI_PS_HALF_LETTER 20
PRI_PS_BEST_AVAIL 21
PRI_PS_DEFAULT 23
PRI_PS_MAX_PAPER_SIZE 23
page_footnote
FN_BOOL. If TRUE, page footnote will be printed.
See Also
“ASE_request_id_typ” on page 176
PRI_request_desc_typ2
This structure describes the publicly-visible attributes of a print request.
IAFLIB_get_print_queues2() and IAFLIB_get_print_service_info1() return an
array of these structures.
PRI_sub_status_typ sub_status;
ASE_doc_id_typ cover_doc;
ASE_ssn_typ cover_ssn;
unsigned short num_docs;
PRI_doc_specifier_typ * doc_array;
} PRI_request_desc_typ2;
submit_time FN_time_typ (long). The time the print job was submitted.
request_status
PRI_request_status_typ (unsigned short).
PRI_RS_UNKNOWN 0
PRI_RS_QUEUED 1
PRI_RS_PRINTING 2
PRI_RS_COMPLETE 3
PRI_RS_FAILED 4
PRI_RS_CANCELLED 5
PRI_RS_WAITING 6
PRI_RS_FETCHING 7
PRI_RS_SUSPENDED 8
two-sided FN_BOOL. Print pages using both sides of the paper (if
supported by the printer).
page_footnote
FN_BOOL. If TRUE, page footnote will be printed.
See Also
“ASE_doc_id_typ” on page 164
PRI_request_filter_typ
This structure defines a filter condition for IAFLIB_get_print_queues(). This
filter makes the following choices about displaying requests:
• All requests that have an ID greater than the ID of the first request
typedef struct {
ASE_service_name_typ user;
unsigned short queue_type;
PRI_priority_typ priority;
PRI_request_status_typ request_status;
ASE_service_name_typ printer;
ASE_request_id_typ request_id;
} PRI_request_filter_typ;
request_status
PRI_request_status_typ (unsigned short). Filter for the
request status. The default is PRI_RS_UNKNOWN. Can be
one of the following:
PRI_RS_UNKNOWN 0
PRI_RS_QUEUES 1
PRI_RS_PRINTING 2
PRI_RS_COMPLETE 3
PRI_RS_FAILED 4
PRI_RS_CANCELLED 5
PRI_RS_WAITING 6
PRI_RS_FETCHING 7
PRI_RS_SUSPENDED 8
See Also
“ASE_request_id_typ” on page 176
PRI_request_status_typ
This type provides information on the current status of a print request. The
last two are internal only, and mapped into PRI_RS_QUEUED for clients.
PRI_RS_UNKNOWN 0 A status of unknown means that the request is not one of the other
statuses listed above. (This might occur if the status variable has
garbage in it, such as when it has not been set.)
PRI_RS_QUEUED 1 An initiated print request is given a queued status. A delayed
request is given the status queued by Print Services when Print
Services determines that it is time to submit the request for further
processing.
PRI_RS_PRINTING 2 Just prior to printing the first page of a request, Print Services
marks the request as printing.
PRI_RS_COMPLETE 3 When the last page of a request is printed, Print Services marks
the request as complete. Requests marked as complete remain in
the database for 1 minute.
PRI_RS_FAILED 4 If the request cannot be completed and Print Services encounters
an error, the Print Services process that encounters the error is
responsible for changing the status to failed.
If the print cache is full (or if other problems exist), Print Services
does not immediately mark a job in progress as failed. It retries
once every 15 seconds up to a pre-specified time limit to copy or
migrate the document into the cache. If there is still no room in the
cache, the job is marked as failed.
Without user intervention, failed requests remain in the database
forever.
PRI_RS_CANCELLED 5 If the user cancels a print request, then Print Services marks the
request as cancelled. A cancelled job stays in the database (and
the queue) for ten minutes. (This gives the user time to restart a
job cancelled in error.)
PRI_RS_WAITING 6 If you modify a printer name for a print request, Print Services
gives the request a status of waiting until it reissues the request
to the new printer. Also, if a print request was initiated as a
delayed request, it is given the status waiting. (As mentioned
above, a request has a queued status when Print Services
determines that it is time to submit the request for further
processing.)
PRI_RS_FETCHING 7 Requests that are being processed have their status changed
from queued to fetching just prior to migrating the first page of the
document from Document Services. (If Print Services receives a
request to print a document and the optical disk that contains the
document is not in the OSAR, the request’s status is fetching.)
PRI_RS_SUSPENDED 8 The same processing as a cancelled request occurs if the request
is suspended (by giving it a priority of 0) except Print Services
marks the request as suspended instead of cancelled. If you
suspend a print document request, Print Services deletes the
object related to it from the print cache except for print requests
that are reports, screens, or windows because the original copy of
these resides only in the print cache.
PRI_MAX_REQ_STATUS PRI_RS_SUSPENDED
PRI_request_type_typ
This type specifies the two types of print requests supported by Print
Services: document print requests and data (ASCII) print requests. The type
values are only valid for the request_type field of the PRI_request_desc_typ.
PRI_scaling_typ
This type specifies the values for scaling print options.
PRI_SCALE_NORMAL 0 This is the default scaling option. The Printer Imaging (PI)
software on the FileNet system repetitively performs gross
scaling until the vertical dimension of the image is
approximately equal to the vertical dimension of the paper. If
this causes the horizontal dimension to grow too large, the
right margin is clipped a configured amount. This option does
not preserve the aspect ratio. However, this is very fast and
preserves data on the bottom of the image (where clipping
seems to be most objectionable).
PRI_SCALE_CLIPBOTH 1 The PI software repetitively performs gross scaling until the
image size is approximately equal to the paper size. If the
scaled image is larger than the paper, the right and bottom
margins is clipped a configured amount. The aspect ratio is
preserved.
PRI_SCALE_EXACT 2 The image is scaled to fit the paper as closely as possible
without losing any data. Despite the use of “exact” in the
name, this option does not guarantee to fit even one edge
precisely. This is the slowest scaling operation.
PRI_SCALE_APPROX 3 The PI software repetitively performs gross scaling until the
image size occupies as much of the paper size as possible
without clipping data. If the image exceeds the paper size, the
image is scaled down by an entire 2x. Successive 2x
reductions are performed until the image fits. The aspect ratio
is preserved.
PRI_SCALE_ORIGINAL 4 This option causes no change in size. Note, however, that
whenever you specify Original size, the PI software ignores
any requested paper size. Instead, the paper size for each
printed page is determined by Printer Imaging as the smallest
paper on which the image can be placed without clipping the
image. Since most scanners collect data edge-to-edge but
most printers cannot print edge-to-edge, this option usually
causes PI to request a larger paper size than was originally
scanned.
PRI_service_status_typ
This structure is the basis for the service status. Its major component is the
head of a linked list of PRI_printer_statuses (see “PRI_printer_status_typ” on
page 435).
typedef struct {
unsigned short requests_queued;
unsigned short num_printers;
PRI_printer_status_typ* printer_statuses;
} PRI_service_status_typ;
requests_queued
unsigned short. The total number of print requests pending
for this service.
printer_statuses
PRI_printer_status_typ *. Pointer to an array of printer
statuses, one for each print server under control of this
service.
See Also
“PRI_printer_status_typ” on page 435
PRI_service_type_typ
This type specifies service types. In PRI_print_docs(), documents come from
one of two different services–either a Document service or a cache service.
The caller must specify which using one of these defines.
PRI_sub_status_typ
typedef struct PRI_sub_status_typ
{
unsigned long sub_status_prg;
unsigned long pct_complete;
} PRI_sub_status_typ;
sub_status_prg
unsigned long. Sub status progress.
PS_long_option_type
This structure contains a union of the print options that require more extensive
data, such as a character string. The PS_options_rec_type structure uses this
structure. (For options requiring no more than four bytes of information, use
the PRI_print_option_typ structure.) The option_type field determines which
union member is used.
typedef struct {
PRI_option_typ option_type;
union {
ASE_service_name_typ printer_name;
char form_name[PS_MAX_STRING_LEN];
char note[PS_MAX_NOTE_LEN + 1];
SCT_access_restrictions security;
char phone_number[FAX_PHONE_NUM_LEN + 1];
char headline_msg[PS_MAX_HEADLINE_LEN + 1];
} opt_long;
} PS_long_option_type;
PRI_OPTION_PAGE_FOOTNOTE 20
PRI_OPTION_TIME_FOOTNOTE 21
PRI_OPTION_EJECT_TRAY 22
PRI_OPTION_PHONE_EXT 23
PRI_OPTION_MEMO 24
PRI_OPTION_COVER_DOC 25
note char. Specifies the note appearing on the job header page for
a print request. Maximum length is 40 characters.
phone_number
char. Fax option only.
See Also
“ASE_service_name_typ” on page 178
PS_options_rec_type
This structure specifies the type of options. The structure contains an array of
short options and an array of long options. IAFLIB_print_docs(), IAFLIB_
print_files(), and IAFLIB_modify_print() use this structure as input.
typedef struct {
BYTE num_scalars;
BYTE num_strings;
PRI_print_option_typ short_opt[PRINT_MAX_OPTIONS];
PS_long_option_type long_opt[MAX_STRING_OPTIONS];
} PS_options_rec_type;
See Also
“PRI_print_option_typ” on page 417
PS_printer_attr_desc_type
This structure specifies the printer attributes that define the capabilities of a
printer. IAFLIB_get_printer_info() returns this structure.
typedef struct {
ASE_service_name_typ name;
PRI_printer_type_typ device_type;
ASE_service_name_typ security;
WORD ppm;
FN_BOOL two_sided;
FN_BOOL has_stapler;
WORD num_trays;
WORD num_paper_sizes;
PRI_paper_size_typ paper_supported[PRI_MAX_PAPER_SIZE+1];
} PS_printer_attr_desc_type;
num_trays WORD. The number of trays that this printer can support.
num_paper_sizes
WORD. The number of paper sizes that this printer is capable
of printing on.
paper_supported
PRI_paper_size_typ (unsigned short). The paper sizes that
this printer is capable of printing on. Can be one of the
following values:
PRI_PS_UNKNOWN 0
PRI_PS_LETTER 1
PRI_PS_LEGAL 2
PRI_PS_B 3
PRI_PS_C 4
PRI_PS_D 5
PRI_PS_E 6
PRI_PS_A0 7
PRI_PS_A1 8
PRI_PS_A2 9
PRI_PS_A3 10
PRI_PS_A4 11
PRI_PS_A5 12
PRI_PS_B4 13
PRI_PS_B5 14
PRI_PS_18x24 15
PRI_PS_TOP 16
PRI_PS_BOTTOM 17
PRI_PS_THIRD 18
PRI_PS_DONT_CARE 19
PRI_PS_HALF_LETTER 20
PRI_PS_BEST_AVAIL 21
PRI_PS_10x14 22
PRI_PS_DEFAULT 23
PRI_PS_EXECUTIVE 24
PRI_PS_MAX_PAPER_SIZE 24
See Also
“ASE_service_name_typ” on page 178
PS_printer_status_desc_type
This structure specifies printer status. IAFLIB_get_print_service_info() returns
this structure.
typedef struct {
ASE_service_name_typ name;
PRI_printer_op_status_typ op_status;
WORD prt_direction;
WORD num_requests_queued;
WORD num_pages_queued;
WORD num_paper_sizes;
PRI_paper_size_typ paper_loaded[PRI_MAX_PAPER_SIZE + 1];
} PS_printer_status_desc_type;
num_requests_queued
WORD. The number of requests ready and queued to this
printer.
num_pages_queued
WORD. The number of document pages queued to this
printer.
num_paper_sizes
WORD. The number of paper sizes that this printer currently
has loaded.
See Also
“ASE_service_name_typ” on page 178
QMR_ENTRY
typedef struct {
FN_docnum_typ doc_id;
unsigned short pages;
FN_folnum_typ folder_id;
LONG offset;
unsigned nbytes;
int nlines;
BOOL fselect;
int DIRoffset;
int reserved1;
int reserved2;
} QMR_ENTRY;
See Also
“FN_docnum_typ” on page 260
QMR_INFO
typedef struct {
HANDLE hInstQmr;
HANDLE hHelp;
HANDLE hFolder;
HANDLE IAFLIB_client_h;
HANDLE qmr_list_h;
int no_entries;
FN_BOOL complete;
char WndTitle[80];
HWND hQmrWnd;
HANDLE DIRs_h;
HANDLE hIndexForm;
HANDLE hIndexFormLib;
byte termkey;
} QMR_INFO;
IAFLIB_client_h
HANDLE. IAFLIB client handle.
QMR_Softkey_typ
typedef struct {
char label[QMR_LEN_SOFTKEY_LABEL+1];
byte key;
} QMR_Softkey_typ;
label char. Key label (the text that appears on the menubar).
RDD Constants
RDD_DC_INDEX_DESC
This structure defines the unique index parameters within a specified
Document Class. These parameters are significant only for document entry in
the specified Document Class.
typedef struct {
RDD_INDEX_ID_TYP index_id;
FN_BOOL required;
FN_BOOL batch_total_flag;
FN_BOOL verify_flag
} RDD_DC_INDEX_DESC;
batch_total_flag
FN_BOOL. TRUE if values for this index must be totaled
during document entry of batches belonging to this document
class.
See Also
“RDD_INDEX_ID_TYP” on page 474
RDD_DCL_ID_TYP
typedef unsigned short RDD_DCL_ID_TYP;
RDD_DCLASS_DESC
This structure specifies the document class descriptor.
See Also
“RDD_DC_INDEX_DESC” on page 471
RDD_INDEX_ID_TYP
This type designates an index ID that is unique within a system. An index is
referenced either by an index name or an index ID. Index IDs refer to system
and user indexes.
RDD_IXFIELD_DESC
This structure specifies an index field descriptor. The descriptor is the
complete description of an index.
typedef struct {
char name[FN_MAX_IXNAME + 1];
RDD_INDEX_ID_TYP id;
char desc[FN_MAX_IXDESCLEN + 1];
RDD_VALUE_TYPE_TYP valuetype;
FN_BOOL upper;
FN_BOOL issystem;
unsigned max_length;
char menuname[FN_MAX_MENU_NAME_LEN + 1];
char maskname[FN_MAX_IXMASKLEN + 1];
} RDD_IXFIELD_DESC;
menuname char. The name of the menu associated with the index; only
valid if the index type is RDD_VT_MENU.
See Also
“RDD_INDEX_ID_TYP” on page 474
RDD_KEY_IXFIELD_DESC
This structure specifies the key index field descriptor.
typedef struct {
char name[FN_MAX_IXNAME + 1];
RDD_INDEX_ID_TYP id;
unsigned no_indices;
unsigned short indices[RDD_MAX_KEY_INDEXES];
} RDD_KEY_IXFIELD_DESC;
See Also
“RDD_INDEX_ID_TYP” on page 474
RDD_MENU_DESC
This structure provide a menu description.
See Also
“RDD_MENUITEM_DESC” on page 479
RDD_MENUITEM_DESC
This structure provides a description of a menu item.
typedef struct {
char name[FN_MAX_MENU_ITEM_NAME_LEN + 1];
unsigned short id;
} RDD_MENUITEM_DESC;
RDD_VALUE_TYPE_TYP
typedef unsigned short RDD_VALUE_TYPE_TYP;
SCT_access_restrictions
This structure specifies document access restrictions.
typedef struct {
SCT_id read_group;
SCT_id write_group;
SCT_id AX_group;
} SCT_access_restrictions;
See Also
“SCT_id” on page 483
SCT_handle
typedef struct {
SCT_id who;
SCT_id where;
SCT_password password;
} SCT_handle;
who SCT_id;
where SCT_id;
password SCT_password;
See Also
“SCT_id” on page 483
SCT_id
This type specifies a user or group number. FileNet reserves the first 19
numbers. Other numbers are assigned to client-created users and groups as
each is created.
SCT_name
typedef char SCT_Name[SCT_maxnamelength];
SCT_password
typedef char SCT_password[SCT_maxpasswordlength];
#define SCT_maxpasswordlength 16
SEC_access_wanted_typ
This type designates the type of security access.
SEC_add_info_typ
This structure contains information to be added to the security database. The
information is either for a user, group, workstation, or function. Information
also includes membership information for a user, group, workstation, or
function.
typedef struct {
unsigned short info_type;
union {
SEC_user_info_typ usr_info;
SEC_usr_member_info_typ usr_mbr_info;
ASE_service_name_typ term_name;
SEC_term_member_info_typ term_mbr_info;
char func_name[SEC_MAX_FUNC_NAME_LENGTH];
SEC_func_member_info_typ func_mbr_info;
} u;
} SEC_add_info_typ;
term_mbr_info
SEC_term_member_info_typ. Contains membership
information for a workstation. The information in this structure
is only meaningful if info_type is specified as SEC_
INFOTYPE_TERMINAL_MEMBER.
func_mbr_info
SEC_func_member_info_typ. Contains membership
information for a function. The information in this structure is
only meaningful if info_type is specified as SEC_INFOTYPE_
FUNCTION_MEMBER.
See Also
“ASE_service_name_typ” on page 178
SEC_AR_typ
typedef unsigned long SEC_AR_typ;
SEC_AR_set_typ
This structure specifies read, write, and execute permission.
typedef struct {
SEC_AR_typ read;
SEC_AR_typ write;
SEC_AR_typ ax;
} SEC_AR_set_typ;
See Also
“SEC_AR_typ” on page 489
SEC_delete_info_typ
This structure contains information to be deleted from the security database.
The structure is passed as one of the input parameters to SEC_delete_info().
typedef struct {
unsigned short info_type;
union {
ASE_service_name_typ usr_name;
SEC_usr_member_info_typ usr_mbr;
ASE_service_name_typ term_name;
SEC_term_member_info_typ term_mbr;
char func_name[SEC_MAX_FUNC_NAME_LENGTH];
SEC_func_member_info_typ func_mbr;
} u;
} SEC_delete_info_typ;
func_name char. The name of the function that is to be deleted from the
security database. This field is meaningful if info_type is
SEC_INFOTYPE_FUNCTION.
See Also
“ASE_service_name_typ” on page 178
SEC_find_func_mbr_info_typ
typedef struct {
char func_name[SEC_MAX_FUNC_NAME_LENGTH];
ASE_service_name_typ prev_name;
} SEC_find_func_mbr_info_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_find_info_typ
This structure specifies the kind of information to be retrieved from the
security database. The information is about users, workstations, functions, or
membership. This structure is passed as one of the input parameters to SEC_
find_info().
typedef struct {
unsigned short info_type;
union {
SEC_find_usr_info_typ usr_name_info;
SEC_find_usr_mbr_info_typ usr_mbr_info;
ASE_service_name_typ term_name;
SEC_find_term_mbr_info_typ term_mbr_info;
char func_name[SEC_MAX_FUNC_NAME_LENGTH];
SEC_find_func_mbr_info_typ func_mbr_info;
} u;
unsigned short max_names;
} SEC_find_info_typ;
usr_name_info
SEC_find_usr_info_typ. This field is only meaningful if info_
type is SEC_INFOTYPE_USER.
term_mbr_info
SEC_find_term_mbr_info_typ. This field is only meaningful if
info_type is SEC_INFOTYPE_TERMINAL_MEMBER.
func_mbr_info
SEC_find_func_mbr_info_typ. The information in this
structure is only meaningful if info_type is SEC_INFOTYPE_
FUNCTION_MEMBER.
See Also
“ASE_service_name_typ” on page 178
SEC_find_term_mbr_info_typ
typedef struct {
ASE_service_name_typ term_name;
ASE_service_name_typ prev_name;
} SEC_find_term_mbr_info_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_find_usr_info_typ
typedef struct {
ASE_service_name_typ usr_name;
ASE_service_name_typ prev_name;
} SEC_find_usr_info_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_find_usr_mbr_info_typ
typedef struct {
ASE_service_name_typ term_name;
ASE_service_name_typ prev_name;
} SEC_find_term_mbr_info_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_func_member_info_typ
This structure specifies membership information for a function.
typedef struct {
char func_name[SEC_MAX_FUNC_NAME_LENGTH];
unsigned short num_mbr;
ASE_service_name_typ * mem_list;
} SEC_func_member_info_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_func_name_typ
typedef struct {
char func_name[SEC_MAX_FUNC_NAME_LENGTH];
} SEC_func_name_typ;
SEC_get_defaults_typ
This structure specifies the default security information for a system.
typedef struct {
unsigned short term_sec;
unsigned short und_func;
unsigned short def_lang;
ASE_service_name_typ noone_name;
ASE_service_name_typ anyone_name;
char def_org[NCH_MAX_ORG_LENGTH];
char def_domain[NCH_MAX_DOMAIN_LENGTH];
} SEC_get_defaults_typ;
anyone_name
ASE_service_name_typ (NCH_ObjectName). The name for
the security default, any one.
See Also
“ASE_service_name_typ” on page 178
SEC_get_system_info_typ
This structure contains the system information retrieved by SEC_get_system_
info() to be returned to the client.
typedef struct {
unsigned short get_type;
union {
SEC_get_defaults_typ get_def;
long get_date_time;
} u;
} SEC_get_system_info_typ;
get_date_time
long. This field is meaningful if get_type is SEC_INFOTYPE_
DATE_TIME. The information in this field is the date and time
of the system clock in seconds since 1/1/70.
See Also
“SEC_get_defaults_typ” on page 501
SEC_handle_typ
This structure is a security service handle that enables a user to log on again
and to identify a user to a remote system.
typedef struct {
SCT_handle sct_handle;
} SEC_handle_typ;
See Also
“SCT_handle” on page 482
SEC_id_typ
This type designates security IDs for IMS 3.x. The first six constants
correspond to the SCT_id constants used in IMS releases prior to 3.1.
Only the user system administrator can create or update users or groups from
a PC client. The following categories of users or groups are defined for
IMS 3.1:
These IDs are not in the security database. Some security services entry-
points, such as, SEC_id_to_name(), accept the IDs as valid. The IDs occur in
access restrictions for objects such as documents and queues.
SEC_info_type_typ
typedef unsigned short SEC_info_type_typ;
SEC_language_typ
typedef char SEC_language_typ[SEC_LANGAUGE_LENGTH + 1];
#define SEC_LANGUAGE_LENGTH 16
SEC_memlist_typ
This structure contains membership information about a user or group. This
information is returned by SEC_get_membership_list(). The membership
information is either a subscription list or a subscriber list. A subscription list is
a list of groups of which this user or group is a member. A subscriber list is a
list of users who are members of this user/group. The subscriber list is not
currently supported.
typedef struct {
SEC_memlist_type_typ list_type;
SEC_id_typ security_id;
unsigned short included_len;
HANDLE included_list;
unsigned short excluded_len;
HANDLE excluded_list;
} SEC_memlist_typ;
See Also
“SEC_id_typ” on page 504
SEC_memlist_type_typ
typedef unsigned short SEC_memlist_type_typ;
SEC_MEMLIST_SUBSCRIPTION 1
SEC_MEMLIST_SUBSCRIBER 2
SEC_name_typ
typedef char SEC_name_typ[SEC_FULL_OBJECT_LENGTH + 1];
#define SEC_FULL_OBJECT_LENGTH 83
SEC_names_found_typ
This structure contains information retrieved by SEC_find_info().
typedef struct {
unsigned short name_type;
unsigned short num_found;
union {
HANDLE svc_names;
HANDLE func_names;
} u;
} SEC_names_found_typ;
SEC_security_defaults_typ
This structure contains default and configuration information about the
security service and the user ID assigned to the next, newly-created user.
typedef struct {
unsigned short terminal_security;
unsigned short undefined_functions;
unsigned short default_language;
ASE_service_name_typ noone_name;
ASE_service_name_typ anyone_name;
NCH_DomainName default_domain;
} SEC_security_defaults_typ;
terminal_security
unsigned short.
undefined_functions
unsigned short
default_language
unsigned short. The default language (can be specified from
setup).
anyone_name
ASE_service_name_typ (NCH_ObjectName). Three-part
NCH name indicating access by anyone.
default_domain
NCH_DomainName. Specifies a default domain.
See Also
“ASE_service_name_typ” on page 178
SEC_security_info_typ
This structure contains user security information. SEC_get_security_info()
returns this security information.
typedef struct {
ASE_service_name_typ name;
SEC_id_typ id;
SEC_id_typ primary_group;
unsigned short language;
FN_BOOL for_login;
} SEC_security_info_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_set_defaults_typ
This structure specifies the default security information for a system.
typedef struct {
unsigned short term_sec;
unsigned short undef_func;
unsigned short def_lang;
char def_org[NCH_MAX_ORG_LENGTH];
char def_domain[NCH_MAX_DOMAIN_LENGTH];
} SEC_set_defaults_typ;
SEC_set_system_info_typ
This structure contains system information for security. This structure is one of
the input parameters to SEC_set_system_info().
typedef struct {
unsigned short set_type;
union {
SEC_set_defaults_typ set_def;
long set_date_time;
} u;
} SEC_set_system_info_typ;
set_date_time
long. This field is meaningful if set_type is SEC_INFOTYPE_
DATE_TIME. The information in this field is the value of the
system clock in seconds elapsed since
1/1/70.
See Also
“SEC_set_defaults_typ” on page 514
SEC_stats_desc_typ
This structure contains IMS 3.1 user and group security administration
information including account activity and password maintenance data.
success_log_time
ASE_time_typ. Time of last successful login.
success_where
SEC_name_typ. Location of last login.
failed_log_time
ASE_time_typ. Time of last failed login attempt.
pwd_grace_period
FN_BOOL. 1 indicates password grace period has begun; 0
indicates grace period has not begun.
pwd_expires_time
ASE_time_typ. Time of password expiration.
See Also
“ASE_time_typ” on page 183
SEC_system_desc_typ
This structure specifies configurable security controls for IMS 3.1. You can
override system defaults by setting allow_override. Note that the password
length restriction defined in sct.def accepts 16 characters without an error
message, but uses only 8.
#define SCT_servermaxpasswordlength 8
device_security
FN_BOOL. 0 indicates off, 1 on.
no_func_def_ok
FN_BOOL. 0 indicates no, 1 yes.
pwd_special_char
FN_BOOL. Special character required in password: 0
indicates no, 1 yes.
pwd_renewal_days
unsigned short. Time in days until password expires.
pwd_grace_period
unsigned short. Time in days until password grace-logon
period expires.
pwd_failure_mins
unsigned short. Time delay for password entry until automatic
session disable.
log_success_logon
FN_BOOL. Record successful logons: 0 indicates no, 1 yes.
log_failed_logon
FN_BOOL. Record failed logons:0 indicates no, 1 yes.
log_db_updates
FN_BOOL. Record database updates:0 indicates no, 1 yes.
See Also
“ASE_ssn_typ” on page 180
SEC_term_member_info_typ
This structure designates the workstation. SEC_add_info() uses this structure
as input.
typedef struct {
ASE_service_name_typ term_name;
unsigned short num_mbr;
ASE_service_name_typ * mem_list;
} SEC_term_member_info_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_time_range_typ
typedef struct SEC_time_range_typ
{
long start_min;
long start_hour;
long start_dweek;
long end_min;
long end_hour;
long end_dweek;
} SEC_time_range_typ;
SEC_update_info_typ
This structure specifies user or service process information that is updated in
the security database. This structure is one of the input parameters to SEC_
update_info().
typedef struct {
unsigned short info_typ;
union {
SEC_update_usr_info_typ update_usr;
SEC_update_service_info_typ update_service;
} u;
} SEC_update_info_typ;
update_service
SEC_update_service_info_typ. This field is meaningful if
info_typ is SEC_INFOTYPE_SERVICE_PROCESS. The
SEC_update_service_info_typ structure contains one or
more pieces of update information about a server process.
See Also
“SEC_update_service_info_typ” on page 523
SEC_update_service_data_typ
This structure contains update information about a service process.
typedef struct {
unsigned short serv_choice;
union {
ASE_service_name_typ usr_name;
char passwd [SCT_maxpasswordlength];
} u;
} SEC_update_service_data_typ;
passwd char. Specifies the new password of the service process. This
field is only meaningful if serv_choice is SEC_UPDATE_
SVCPRCS_PASSWORD.
See Also
“ASE_service_name_typ” on page 178
SEC_update_service_info_typ
This structure contains update information about a server process.
typedef struct {
unsigned short num_service;
SEC_update_service_data_typ * service_data;
} SEC_update_service_info_typ;
See Also
“SEC_update_service_data_typ” on page 522
SEC_update_typ
typedef unsigned long SEC_update_typ;
SEC_update_usr_choice_typ
This structure contains update security information about a user.
typedef struct {
unsigned short choice_type;
union {
char passwd[SCT_maxpasswordlength];
unsigned short language;
ASE_service_name_typ primary;
FN_BOOL for_login;
} u;
} SEC_update_usr_choice_typ;
See Also
“ASE_service_name_typ” on page 178
SEC_update_usr_info_typ
This structure specifies the user information that is to be updated.
typedef struct {
ASE_service_name_typ usr_name;
unsigned short num_usr_choices;
SEC_update_usr_choice_typ * usr_choices;
} SEC_update_usr_info_typ;
num_usr_choices
unsigned short. The number of elements in the list usr_
choices. Each element represents specific user information
to be updated.
See Also
“ASE_service_name_typ” on page 178
SEC_user_info_typ
This structure specifies user information to be added to the security database.
SEC_add_info() uses this structure.
typedef struct {
ASE_service_name_typ usr_name;
char passwd[SCT_maxpasswordlength];
unsigned short usr_language;
ASE_service_name_typ usr_primary_group;
unsigned short usr_for_login;
} SEC_user_info_typ;
usr_primary_group
ASE_service_name_typ (NCH_ObjectName). The primary
group to which this user belongs.
See Also
“ASE_service_name_typ” on page 178
SEC_usr_member_info_typ
This structure specifies user membership information. SEC_add_info() uses
this information.
typedef struct {
ASE_service_name_typ usr_name;
unsigned short num_mbr;
ASE_service_name_typ * mem_list;
} SEC_usr_member_info_typ;
See Also
“ASE_service_name_typ” on page 178
TTY_softkey_label
This structure specifies key information for input to TTY_set_softkeys() call.
WQS_delete_typ
This structure specifies deletion information for a queue entry for input to
WQS_read_queue().
WQS_dump_handle_typ
This type is not currently used.
WQS_entry_id_typ
This type specifies an entry in a queue. WQS_read_queue() or WQS_read_
dump() (in the WQSLIB_queue_entry_out_typ structure) return this type. This
type is input for WQS_read_entry(), WQS_delete_entry(), and WQS_update_
entry().
WQS_ROWID_SIZE is 18.
WQS_field_name_typ
This type specifies a queue indexing field for input to several WQS and
WQSLIB data structures.
WQS_field_unique_typ
typedef unsigned short WQS_field_unique_typ;
WQS_incomplete_spec_typ
typedef unsigned short WQS_incomplete_spec_typ;
WQS_queue_field_typ
This type specifies the data type of a queue indexing field. Several WQS and
WQSLIB data structures use this type.
WQS_queue_handle_typ
This type is not currently used.
WQS_queue_name_typ
This type specifies the name of a WorkFlo queue. This type is returned by
WQS_get_queue_name() and used as input to several other functions.
WQS_sort_order_typ
This type specifies the sort order of query results. The WQSLIB_fetch_spec_
typ structure uses this type for input.
WQS_status_spec_typ
This type specifies a search condition based on the status of a field. The
WQSLIB_fetch_spec_typ structure uses this type as input.
WQS_sys_field_name_typ
This type specifies the name of a system indexing field.
WQS_user_field_desc_typ
This structure contains the client’s view of the definition of a user-defined field.
typedef struct {
WQS_field_name_typ fld_name;
WQS_queue_field_typ fld_type;
unsigned short fld_length;
unsigned short fld_unique;
FN_BOOL fld_required;
FN_BOOL fld_rendev;
FN_BOOL fld_display;
} WQS_user_field_desc_typ;
See Also
“WQS_field_name_typ” on page 533
WQS_workspace_name_typ
This type specifies the name of a WorkFlo workspace. To create a workspace,
use WQS_create_workspace().
WQSLIB_fetch_spec_typ
This structure contains the search conditions for a retrieval request. Search
conditions can be specified for the system-defined fields as well as the user-
defined fields. The search conditions are ANDed together to form a query.
The result of the retrieval can be ordered according to the content of a field (or
fields) that is declared as inverted or unique-inverted.
typedef struct {
FN_time_typ deadline;
unsigned short min_priority;
unsigned short max_priority;
char group_name[SCT_maxnamelength + 1];
char user_name[SCT_maxnamelength + 1];
WQS_status_spec_typ status_spec;
FN_BOOL even_delayed;
WQS_incomplete_spec_typ incomplete_spec;
FN_BOOL check_user;
unsigned short num_find_fields;
HANDLE find_fields_h;
HANDLE string_val_h;
WQS_field_name_typ sort_field;
WQS_sort_order_typ sort_order;
} WQSLIB_fetch_spec_typ;
incomplete_spec
WQS_incomplete_spec_typ. If this value is TRUE, then only
those entries for which all the required fields have values will
qualify. Note that if a required field is explicitly set to the NULL
value, then incomplete must be TRUE in order for the entry to
be included in the match set.
num_find_fields
unsigned short. Specifies the number of user-defined fields
that must be searched.
See Also
“FN_time_typ” on page 264
WQSLIB_queue_desc_typ
This structure contains the client’s view of a queue definition. The structure is
a collection of header information and user-defined definitions.
typedef struct {
WQS_workspace_name_typ workspace_name;
WQS_queue_name_typ queue_name;
SCT_access_restrictions desc_acc;
SCT_access_restrictions content_acc;
char text_desc[WQS_max_text_desc_length + 1];
unsigned short num_fields;
WQS_user_field_desc_typ user_field_desc[1];
} WQSLIB_queue_desc_typ;
workspace_name
WQS_workspace_name_typ. Name of the workspace, up to
14 characters in length. Each queue logically belongs to one,
and only one, workspace.
user_field_desc
WQS_user_field_desc_typ. A list of user field descriptions.
num_fields specifies the number of items in the list.
See Also
“SCT_access_restrictions” on page 481
WQSLIB_queue_entry_in_typ
This structure contains the description of an entry to be inserted into a queue.
typedef struct {
unsigned short num_user_fields;
HANDLE user_field_val_h;
HANDLE string_val_h;
unsigned short num_sys_fields;
HANDLE sys_field_val_h;
} WQSLIB_queue_entry_in_typ;
num_user_fields
unsigned short. The number of user-defined fields depicted in
this record. Note that the value of num_user_fields is not
necessarily the same as the number of fields defined for the
queue. This can be because a non-required field does not
have a value specified or the queue is a rendezvous type
queue.
user_field_val_h
HANDLE. Handle to array of num_user_fields WQSLIB_
user_field_value_typ.
num_sys_fields
unsigned short. The number of system-defined fields
depicted in this record.
sys_field_val_h
HANDLE. Handle to array of num_sys_fields WQSLIB_sys_
field_value_typ.
WQSLIB_queue_entry_out_typ
This structure contains the description of an entry retrieved from a queue.
typedef struct {
unsigned short num_user_fields;
HANDLE user_field_val_h;
HANDLE string_val_h;
unsigned short num_sys_fields;
HANDLE sys_field_val_h;
WQS_entry_id_typ entry_id;
} WQSLIB_queue_entry_out_typ;
num_user_fields
unsigned short. The number of user-defined fields in this
entry. This value is the same as the number of user-fields
defined for the queue.
user_field_val_h
HANDLE. Handle to array of num_user_fields WQSLIB_
user_field_value_typ.
num_sys_fields
unsigned short. The number of system-defined fields in this
entry. This value is a constant and, as of the time of this
writing, is equal to 7.
sys_field_val_h
HANDLE. Handle to array of num_sys_fields WQSLIB_sys_
field_value_typ.
See Also
“WQS_entry_id_typ” on page 532
WQSLIB_queue_field_choice_typ
typedef struct {
WQS_queue_field_typ qf_type;
union {
unsigned short qf_string_offset;
FN_selection_typ qf_sel_value;
FP_number qf_number_value;
long int qf_int_value;
FN_time_typ qf_time_value;
FN_date_typ qf_date_value;
ASE_doc_id_typ qf_docid_value;
ASE_folder_id_typ qf_folderid_value;
unsigned short qf_bool_value;
} val;
} WQSLIB_queue_field_choice_typ;
qf_string_offset
unsigned short. For string fields, qf_string_offset contains the
offset of the actual field data in the buffer referenced through
string_val_h in WQSLIB_queue_entry_in_typ, WQSLIB_
queue_entry_out_typ, and WQSLIB_fetch_spec_typ. Each
string in the buffer is NULL-terminated, and has maximum
length WQS_max_string_field_length not including the
terminating NULL character.
qf_number_value
FP_number. Value of a number field.
qf_time_value
FN_time_typ. Value of a time field.
qf_date_value
FN_date_typ. Value of a date field.
qf_docid_value
ASE_doc_id_typ. Value of a document ID field.
qf_folderid_value
ASE_folder_id_typ. Value of a folder ID field.
qf_bool_value
unsigned short. Value of a boolean field.
See Also
“ASE_doc_id_typ” on page 164
WQSLIB_sys_field_value_typ
This structure represents the content of a system-defined field in a queue_
entry.
typedef struct {
WQS_sys_field_name_typ sys_field_name;
union {
unsigned short sf_pri;
FN_BOOL sf_status;
char sf_group_name[SCT_maxnamelength + 1];
char sf_user_name[SCT_maxnamelength + 1];
FN_time_typ sf_entry_time;
FN_time_typ sf_delay_time;
FN_time_typ sf_timeout;
} val;
} WQSLIB_sys_field_value_typ;
sys_field_name
WQS_sys_field_name_typ. Name of the field, which can be
one of the following: priority, status, user name, group name,
entry time, delay time, or timeout.
sf_group_name
char. The group name.
See Also
“FN_time_typ” on page 264
WQSLIB_user_field_value_typ
This structure specifies the content of a user-defined field in a queue entry.
typedef struct {
WQS_field_name_typ field_name;
WQSLIB_queue_field_choice_typ field_value;
} WQSLIB_user_field_value_typ;
See Also
“WQS_field_name_typ” on page 533
The first section of this chapter briefly describes the functions included in
each library.
Function Overview
Large libraries, such as the IAFLIB and Forms libraries, are grouped
functionally.
For information on data types, data structures, and constants used in these
functions, see Chapter 6, “Data Types and Structures,” on page 163.
Note The current WAL for Windows SDK release supports a subset of the function
protocols in the include files. If you have questions about undocumented
function protocols that are in the include files, please consult with FileNet
support before you use them.
Archive Functions
The following function allows a client to archive files to the FileNet system.
ARCH_DocEntry()
This function provides a high-level interface by which to create
archive documents in batches of one document at a time.
BATCHLIB Functions
These functions provide a high-level interface with the BES functions. For
more information on BES functions, see “BES Functions (Batch Entry
Services)” on page 559.
BATCHLIB_BatchAbort()
This causes the batch entry in progress to be aborted. It deletes the
batch.
BATCHLIB_BatchEntry()
This provides an all-in-one user-interface for the BES functions. It
returns a handle to a batch entry status structure.
BATCHLIB_commit_files()
This commits an array of DOS files into a FileNet system as a single
document.
BATCHLIB_commit_file_list()
The use and interface of this function are similar to BATCHLIB_
commit_files(). It is easier to call from a third party application (e.g.,
WINWORD.EXE) through a Dynamic Link Library (DLL).
BATCHLIB_enqueue_batch()
This opens the batch, enqueues the named batch in the selected
queue, and closes the batch.
BATCHLIB_find_batch_docs()
This finds one or more document descriptors.
BATCHLIB_find_batch_images()
This opens the batch, returns an array of image descriptors, and
closes the batch.
BATCHLIB_find_batches()
This returns batch headers that match the specified filter.
BATCHLIB_get_batch_object()
This retrieves the object from the Batch Entry Service and places it in
a file in the PC’s local cache.
BATCHLIB_update_batch()
This updates the dynamic batch header for the named batch.
BATCHLIB_update_batch_doc()
This updates a previously-created document.
BES_logon()
This establishes a Batch Entry Service session and returns a number
that identifies the session to the client.
BES_renew()
This has been obsolete since release 3.1.
Batch Functions
BES_alloc_batch_name()
This generates a unique batch name.
BES_alloc_ids()
This acquires a block of unique integers to be used as image
identifiers.
BES_close_batch()
This closes a specified batch.
BES_commit_batch_now()
This synchronously commits a batch.
BES_create_batch()
This creates a batch with the specified name (and associated with the
specified document class name).
BES_delete_batch()
This deletes all state information related to a previously-opened
batch.
BES_dequeue_batch()
This opens the batch at the head of the committal queue.
BES_enqueue_batch()
This places a previously-opened batch into the specified queue. It is
typically used for asynchronous committals.
BES_find_batches()
This returns batch headers that match the specified filter.
BES_open_batch()
This provides exclusive update privileges to a specified batch.
BES_sync_commit()
This commits the batch synchronously. Control is returned to the user
after the committal. If the page cache is full, this call returns a CSM_
no_resources error.
BES_update_batch()
This updates certain fields in the dynamic batch header.
Image Functions
BES_abort_image()
This aborts the current image transaction, and removes the image if
the transaction was started with a create.
BES_close_image()
This attempts to commit the image transaction.
BES_close_csum_image()
This attempts to commit the image transaction with checksum
information.
BES_create_image()
This creates an image in the cache, and leaves it open for
subsequent reads and writes.
BES_delete_image()
This deletes the image descriptor associated with the specified image
and frees space occupied by the image data.
BES_find_images()
This returns an array of image descriptors.
BES_move_image()
This moves an unassembled image from one batch to another within
the same server.
BES_open_image()
This opens the specified image for read-only (no writing or update)
and returns the associated image descriptor record.
BES_read_image()
This reads a specified number of bytes from an image in which there
is a current transaction.
BES_read_whole_image()
This reads a whole image from BES cache into PC local cache.
BES_update_image()
This updates the image attributes and leaves the image open for
subsequent reads or writes.
BES_verify_image()
This updates the image verification status in the image descriptor
record associated with the specified image.
BES_write_image()
This writes a specified number of bytes to an image.
Index Functions
BES_query_index_dir()
This retrieves the directory of indices associated with the specified
batch.
BES_update_index_total()
This updates the batch total for the specified index.
Document Functions
BES_create_doc()
This assembles a document from images and indices.
BES_delete_doc()
This deletes a document.
BES_find_docs()
This finds one or more document descriptors.
BES_update_doc()
This updates a previously-created document.
BES_create_image_index()
This creates the index data associated with a specified image.
BES_delete_image_index()
This deletes the index data associated with a specified image.
BES_get_image_index()
This retrieves indexing information associated with a specified image.
BES_get_info()
This retrieves the additional information associated with a batch, a
document in a batch, an image in a batch, an index type associated
with the class of a batch, or an index value associated with a specific
document of a batch. This information is added by the BES_put_info()
function.
BES_get_num_cluster_id()
This computes the cluster ID for a key of type FP_number. After the
calculation, the cluster ID is returned as three unsigned short
integers. This function returns NULL.
BES_get_str_cluster_id()
This computes the cluster ID for a key of type LPSTR. After the
calculation, cluster ID is returned as three unsigned short integers.
This function returns NULL.
BES_modify_image_index()
This modifies the index data associated with a specified image.
BES_put_info()
This enables the client to associate additional information with a
batch record, a batch document record, a batch image record, a
batch class index type record, or a batch document index value
record.
CAM Functions
The F3CAM DLL contains the PCWS local cache manager. FileNet images
reside in this file-based cache when retrieved with the IAFLIB_get_object()
call.
CAM_add_file()
This writes out the retrieved object to a file in the cache.
CAM_delete_file()
This deletes a file that holds a page of a document from the local
cache.
CAM_exit()
Each application that uses CAM calls this once, when terminating or
ending the Windows session.
CAM_find_file()
This checks whether a document or image exists in the cache.
CAM_get_attr()
This gets an attribute of a local cache object.
CAM_init()
Each application that uses CAM calls this once, during initialization.
CAM_set_attr()
This sets an attribute of a local cache object.
CSM Functions
The F3CSMLIB DLL contains Cache Services Manager functions.
CSM_close_object()
This closes an object in the server cache.
CSM_delete_object()
This deletes the specified object from the server cache.
CSM_logoff()
This closes a connection to the Cache Services Manager.
CSM_logon()
This establishes a connection to the Cache Services Manager.
CSM_modify_object()
This changes the attributes of an object in the server cache.
CSM_open_object()
This opens an object in the server cache.
CSM_read_object()
This reads data from an object in the server cache.
CSM_renew()
This re-establishes a connection to the Cache Services Manager
when a disconnect occurred without logoff.
CS Functions
The F3CS DLL contains one function to compute the checksum of an object.
CS_compute_csum()
This computes the checksum of an object.
DISPLIB Functions
The F3DISPLB DLL contains functions that display and manipulate images.
DISPLIB_close_object()
This closes any FileNet banded image file opened by DISPLIB_get_
band_bitmap().
DISPLIB_free_handle()
This returns memory allocated for the DISPLIB context handle
obtained from a prior call to DISPLIB_init_handle().
DISPLIB_free_object()
This frees an object previously registered with the DISPLIB_register_
object() call.
DISPLIB_get_attr()
This retrieves the specified attribute for a currently-registered object.
DISPLIB_get_band_bitmap()
This frees a Windows bitmap object that contains the requested band
in a format suitable for use in a SelectObject, BitBlt sequence of GDI
calls.
DISPLIB_get_format()
This returns the format of a specified object.
DISPLIB_init_handle()
This allocates memory for a DISPLIB context and returns a handle.
DISPLIB_paint_bitmap()
This paints a bitmap into the output display context using a paint
structure and the specified parameters.
DISPLIB_paint_object()
This paints an object into an output device context.
DISPLIB_register_object()
This registers an object for subsequent DISPLIB_paint_object() calls
by causing the header to be read and any structures to be initialized
for subsequent optimized paints.
DISPLIB_retrieve_typ()
This is a callback to retrieve a committed FileNet banded image.
DISPLIB_set_attr()
This sets attributes for the currently-registered object.
DISPLIB_set_retrieval()
This sets the retrieval callback for subsequent DISPLIB_paint_
object() calls.
DISPLIB_stretch_bitmap()
This paints a bitmap (must be less than 64K) into the output device
context at a specified location.
DISPLIB_yield_typ()
This is a callback function supplied to the DISPLIB_paint_object() call
to provide a mechanism by which the caller yields the CPU between
processing of bands of data.
DTM Functions
The Date/Time Manager (DTM) functions comprise the F3DTM DLL.
DTM_addtime()
This adds two time values.
DTM_asctime()
This converts a date to a string using the specified mask.
DTM_ctime()
This converts a date or time to a string using the specified mask.
DTM_date()
This converts the system time to a date string using the specified
mask.
DTM_ftime()
This returns the current date or time.
DTM_getdate()
This converts a string to a date.
DTM_getmask()
This returns the system date or time mask.
DTM_getmasklength()
This returns the maximum length of a string formatted with the
specified mask.
DTM_gmtime()
This converts a date or time value to date format representing the
equivalent Greenwich mean time.
DTM_gp()
This converts a date value to a date number.
DTM_gtime()
This converts a date or time string to a number.
DTM_localtime()
This converts a date number to date format (local time).
DTM_stime()
This sets the system (current) time from a date number.
DTM_subdate()
This subtracts one time period from another.
DTM_subtime()
This subtracts one time period from another.
DTM_time()
This converts the system (current) time to a date number.
DTM_verifymask()
This checks whether an input mask is valid.
ERM Functions
The F3ERM DLL contains functions that retrieve and display text messages
associated with FileNet error tuples. The message database is contained in
the PCWS-resident disk files ERM.DAT (data) and ERM.IDX (index).
ERM_display_error()
This displays a message box that contains the error tuple, the text (if
found), and a hand icon, captioned with the application name and
containing an OK button.
ERM_get_error()
This returns a string containing the message text for an error tuple.
ERM_log_error()
This searches the error message index file (ERM.IDX) for a matching
tuple. It logs the error message in a log file and displays it, if desired.
ERM_log_event()
This is the primary function for logging messages. It formats the
string, then passes the string to erm_log_message(), which appends
a time stamp and sends the message to be written.
FILLIN Functions
The FILLIN functions enable a client to fill in, commit, and print a FileNet form.
FILLIN_bkg_commit()
This enqueues a fill-in request in the background process queue (if
background processing is enabled in the configuration file). The form
will be committed in FileNet PC Form format.
FILLIN_bkg_commit_image()
This enqueues a fill-in request in the background process queue (if
background processing is enabled in the configuration file). The form
will be committed in Group III banded image format.
FILLIN_commit()
This generates and commits the fill-in page for the form. The form will
be committed in FileNet PC Form format.
FILLIN_commit_image()
This generates and commits the fill-in page for the form. The form will
be committed in Group III banded image format.
FILLIN_do_form()
This synchronously executes a form.
FILLIN_get_doc_class()
This gets the name of a document class from the user.
FILLIN_get_form_name()
This gets a file name and form name from the user.
FILLIN_index()
This indexes a document using the specified document class.
FILLIN_local_print()
This locally prints an uncommitted fill-in form.
FILLIN_server_print()
This remotely prints an uncommitted fill-in form via Print Services.
FN Functions (APPINFO)
The F3APPINF DLL contains functions that use application information files
and retrieve information from them.
FN_copy_file()
This copies a file.
FN_get_app_info_int()
This returns an integer from the PCWS preferences file.
FN_get_app_info_string()
This copies a character string from the PCWS preferences file into a
buffer.
FN_get_window_pos()
This gets the window position and style from the PCWS preference
file.
FN_set_app_file()
This sets the application information filename, allowing alternate files
to be used.
FN_set_app_info()
This copies a character string into the PCWS preferences file.
FN_set_window_pos()
This saves the position and style of a window to the PCWS
preference file.
FN Functions (INDXFORM)
The F3IDXFRM DLL contains a complete user interface for providing index
values for a document to be committed.
FN_clear_index_form()
This clears an indexing window of field values.
FN_custom_index_form()
This collects and validates indexing information for a document to be
created. It is similar to FN_show_index_form(), but it allows the use of
a pre-defined FormLib form.
FN_index_form()
This collects and validates indexing information for a document to be
created by displaying an indexing form window. It provides for
backward compatibility.
FN_index_form_exit()
This frees all resources allocated to an index form.
FN_index_form_init()
This allocates and initializes data for an index form.
FN_index_handle_to_text()
This converts a data handle returned from FN_show_index_form() or
FN_custom_index_form() to a text-formatted string of index
descriptions.
FN_index_text_to_handle()
This converts a text-formatted string of index descriptions into a form
suitable for input to FN_show_index_form() or FN_custom_index_
form().
FN_index_verify()
This displays the form window to enable the user to compare the
original index values to those just entered in index verification.
FN_save_index_form()
This saves an index form.
FN_show_index_form()
This collects and validates indexing information for a document to be
created. It is the recommended function for this purpose.
FN_show_new_values_in_form()
This dynamically updates a previously displayed index form.
FNP_exit()
This deallocates all resources requested by FNPRINT.
FNP_init()
This allocates memory for an FNP_data data structure and fills it with
the corresponding information.
FNP_print()
This prints a list of documents.
FNP_print_form_page()
This prints a form page.
FNP_print_from_file()
This prints the FileNet formatted image of a specified file name.
FORM Functions
Initialization Functions
The following functions initialize and terminate the forms library.
FORM_init()
This allocates and initializes data for the session.
FORM_exit()
This frees all the resources allocated to the session.
FORM_find_file()
This finds the specified file using the path specified in LOGON.CFG.
FORM_find_file_in_path()
This finds the specified file using the path specified in the path
parameter.
FORM_find_file_in_path2()
This finds the specified file, using the path specified in the path
parameter, and saves it in the location specified by where_save.
FORM_generate_fill_in_page()
This writes a FileNet FORM page representation of a form to a file.
FORM_generate_one_form_file()
This writes the Forms Language specification of all objects in the
session that belong to file_name and form_name to new_file_name.
FORM_generate_form_file()
Writes to a new file the Forms Language specification of all objects in
a session belonging to an existing file. You can then save this file to
centralized storage for general use.
FORM_generate_image_page()
This writes a FileNet IMAGE page representation of a form to a file.
FORM_generate_pcode_file()
This writes a FileNet P-code stream, including an IMAGE page
representation of a form, to a file.
FORM_get_file_list()
This returns the number of files with which objects are associated and
a handle to the list of filenames.
FORM_get_file_service()
This returns the current file service name that is associated with the
session. FORMLIB uses the service name to locate form files.
FORM_load_file()
This loads the specified file into the session by parsing its contents
and storing the data in the session.
FORM_set_file_service()
This sets the current file service name.
FORM_close_object()
This frees the resources associated with an object of type form,
menu, menu bar, or validation table.
FORM_close_volatile_objects()
This closes all objects in the session that are marked as Volatile.
FORM_create_object()
This creates a new object of the specified type and returns a handle
to the object. The object handle returned is required by other
FORMLIB calls.
FORM_get_object_attr()
This returns the form attribute for the specified form attribute type.
FORM_get_object_list()
This searches for all objects of the specified type found in the
specified file.
FORM_load_object()
This loads an object defined in a file and returns a handle to the
object.
FORM_set_object_attr()
This sets a form attribute with a specified form attribute type.
FORM_clear()
This clears the rectangular area specified on the character map for
the specified form.
FORM_get_row_text()
This copies the specified row into a buffer.
FORM_text_out()
This displays data on the specified character map.
FORM_clear_field_value()
This resets a field to an appropriate undefined state.
FORM_clear_form_values()
This resets all input fields in the form to their appropriate undefined
state.
FORM_create_field()
This adds a field of a specified type to a form.
FORM_default_field_value()
This sets the value of the specified input field in a form to its default
value.
FORM_default_form_values()
This sets the value of all input fields in a form to their default values.
FORM_delete_field()
This deletes a field from a form.
FORM_enable_fields()
This enables or disables input fields.
FORM_get_field_attr()
This returns the specified field attribute for the field specified.
FORM_get_field_attr_using_ord()
This returns the specified field attribute for a field specified by its
ordinal value.
FORM_get_field_count()
This returns the count of input fields, display fields, or form fields in a
form.
FORM_get_field_info()
This returns information about a specified field.
FORM_get_field_name()
This returns the name of a field of specified type and order.
FORM_get_last_field()
This returns the name of the last field (if any) visited on the most
recent execution of a form.
FORM_make_groups_contiguous()
This reorders the fields such that all radio buttons within a group are
contiguous.
FORM_set_field_attr()
This sets the specified field attribute for the specified field.
FORM_set_field_attr_using_ord()
This sets the specified field attribute for a field using a specified
ordinal value.
FORM_set_field_focus()
This sets the focus on the specified field_name field.
FORM_change_menu_item()
This changes an item in a menu.
FORM_get_menu_items()
This returns the number of menu items in a menu and a handle to the
list of menu items.
FORM_set_menu_items()
This replaces the contents of the specified menu with the specified
number of menu items.
FORM_get_menubar_items()
This returns the number of menubar items in a menubar and a handle
to the list of menubar items.
FORM_set_menubar_items()
This replaces the contents of the specified menubar with the specified
number of menubar items.
FORM_get_valtable_items()
This returns the number of table items in a validation table and a
handle to an array of structures representing the items.
FORM_get_one_valtable_item()
This returns a pointer to a single item in the validation table.
FORM_set_vltable_items()
This replaces the contents of a table with a specified number of
validation table items.
FORM_set_one_valtable_item()
This sets a single item in the validation table.
Execute Functions
These functions execute a form and return the terminator that ended the
execution.
FORM_clone_form()
This adds an exact copy of a form to the same session as the original.
FORM_do_form()
This executes a form, displays all the visible features in a window,
accepts user input in the input fields, and calls any validation
functions as appropriate.
FORM_enable_form_window()
This enables or disables the form window.
FORM_escape_form()
This escapes form execution.
FORM_execute_form()
This executes the form associated, displays all the visible features in
a window, accepts user input in the input fields, and calls any
validation functions as appropriate.
FORM_get_terminator()
This returns the terminator (if any) from the most recent execution of
a form.
FORM_paint_in_DC()
This paints a form in the display context.
FORM_show_form()
This displays or updates a form without executing it.
FORM_step_form()
This executes a form, displays all the visible features in a window,
accepts user input in the specified input field, and calls any validation
functions as appropriate.
FORM_server_copy_file()
This copies a file on centralized storage.
FORM_server_delete_file()
This deletes a file from the centralized storage where it resides.
FORM_server_rename_file()
This renames a file on centralized storage.
FORM_server_retrieve_file()
This retrieves a file from centralized storage.
FORM_server_save_file()
This saves a file on centralized storage.
FORM_append_item()
This appends a NULL-terminated string to a list in a listbox field or a
combobox field.
FORM_box_add_item()
This adds an item to a listbox or combobox field.
FORM_box_delete()
This deletes an item (or all items) from a listbox or combobox field.
FORM_box_directory()
This adds a list of files from the current directory to a listbox or
combobox field.
FORM_box_find_item()
This finds the first item that matches the specified string.
FORM_box_get_count()
This returns the count of items in a listbox or combobox field.
FORM_box_get_sel()
This returns the current selection in a single-selection listbox or
combobox field.
FORM_box_get_sel_count()
This returns the number of selected items in a listbox or combobox
field.
FORM_box_get_text()
This returns the NULL-terminated string data for the specified item in
a listbox or combobox field.
FORM_box_get_text_len()
This returns the length of the NULL-terminated string data for the
specified item in a listbox or combobox field.
FORM_box_match_item()
This finds the first item that matches the supplied prefix string.
FORM_box_select_list()
This sets or clears a list of items in a multi-selection listbox.
FORM_box_set_default()
This adds an item (or all items) to, or removes an item (or all items)
from, the default value of a multiple-selection listbox.
FORM_box_set_sel()
This sets the current selection in a single-selection listbox or
combobox field.
FORM_install_list()
This associates a list of items with a newly-created field.
FORM_add_rule()
This adds a rule to a form.
FORM_add_named_rule()
This adds a named rule to a form.
FORM_check_syntax()
This checks the syntax for a rule expression.
FORM_evaluate()
This evaluates a rule expression.
FORM_validate_form()
This performs field and form validation given the handle to a form that
has values.
FORM_bind_val_func()
This binds a function to a validation function name for a specific form.
FORM_get_bitmap_handle()
This gets a handle to the bitmap when a bitmap field is created or
modified.
FORM_load_form_from_page()
This reads the FORM language from a file, parses it, and returns a
form handle.
FP Functions
The F3FP DLL contains functions for manipulating floating point numbers.
FP_abs()
This returns the absolute value of a floating point number.
FP_add()
This adds two floating point numbers.
FP_assign()
This assigns the value of one floating point number to another.
FP_dbl2num()
This converts a double to an FP_number.
FP_divide()
This divides one floating point number by another.
FP_eql()
This checks whether two floating point numbers are equal.
FP_geq()
This checks whether a floating point number is greater than or equal
to another.
FP_getmode()
This returns the value of the European mode flag.
FP_gtr()
This checks whether one floating point number is greater than
another.
FP_isundef()
This checks whether a floating point number is undefined.
FP_leq()
This checks whether one floating point number is less than or equal to
another.
FP_long2num()
This converts a long to an FP_number.
FP_lss()
This checks whether one floating point number is less than another.
FP_multiply()
This multiplies two floating point numbers.
FP_neg()
This sets a floating point number to the additive inverse of another.
FP_neq()
This checks for inequality between two floating point numbers.
FP_num2dbl()
This converts an FP_number to a double.
FP_num2long()
This converts an FP_number to a long.
FP_num2mask()
This formats a floating point number using the specified mask.
FP_num2ora()
This formats a floating point number in Oracle format.
FP_num2sci()
This formats a floating point number in scientific notation.
FP_num2str()
This converts a floating point number to an ASCII string.
FP_num2unslong()
This converts an FP_number to an unsigned long.
FP_ora2num()
This converts an Oracle-formatted floating point number into a
FileNet floating point number.
FP_retsign()
This checks whether a floating point number is positive, zero, or
negative.
FP_round()
This rounds off a floating point number to the specified power of ten.
FP_rounddisp()
This rounds off a floating point number for display.
FP_setmode()
This sets or clears European mode.
FP_setundef()
This sets a floating point number to an undefined value.
FP_str2num()
This converts a string to a floating point number.
FP_subtract()
This subtracts one floating point number from another.
FP_trunc()
This truncates the mantissa of a floating point number.
FP_unslong2num()
This converts an unsigned long to an FP_number.
IAFLIB Functions
IAFLIB functions are the highest layer of interface provided in DLLs. They
reduce complex operations to a single function, such as retrieving a page for
display or performing a query.
Print Functions
IAFLIB_cancel_print()
This cancels print requests.
IAFLIB_FreeAttr2Memory()
This unlocks and frees the memory used by the PRI_printer_attr_typ2
structure.
IAFLIB_FreeRequest2Memory()
This unlocks and frees the memory used by the PRI_request_desc_
typ2 structure.
IAFLIB_FreeStatusMemory()
This unlocks and frees the memory used by the PRI_printer_status_
typ structure.
IAFLIB_get_print_queues()
This retrieves information about print requests presently known to
Print Services.
IAFLIB_get_print_queues2()
This retrieves information about one or more print requests presently
known to the Print Service. Note that this call can only be used with
IMS 3.3.1 or later.
IAFLIB_get_print_service_info()
This returns information about the status of a Print Service along with
information about the status of the individual printers and fax
machines the Print Service controls.
IAFLIB_get_print_service_info1()
This returns information about the status of a Print Service along with
information about the status of the individual printers and fax
machines this Print Service is controlling.
IAFLIB_get_printer_info()
This gets a list of printers for the specified Print Service, and retrieves
attribute information about these printers.
IAFLIB_get_printer_info2()
This gets a list of printers for the specified Print Service, and retrieves
attribute information about these printers.
IAFLIB_modify_print()
This modifies print options of a print request.
IAFLIB_print_docs()
This submits a request to print documents or uncommitted images.
IAFLIB_print_docs1()
This submits a request to print documents or uncommitted images.
IAFLIB_print_docs1() provides similar functionality to IAFLIB_print_
docs(), but uses the PRI_print_option_typ2 structure instead of PS_
options_rec_type.
IAFLIB_print_files()
This prints the contents of a DOS file containing standard ASCII text.
IAFLIB_print_files1()
This prints the contents of a DOS file containing standard ASCII text
(for example, a source program listing). IAFLIB_print_files1() provides
similar functionality to IAFLIB_print_files(), but uses the PRI_print_
option_typ2 structure instead of PS_options_rec_type.
Security Functions
IAFLIB_check_membership()
This checks whether the current user is a member of the specified
group.
IAFLIB_check_password()
This checks whether the password is correct.
IAFLIB_get_membership_list()
This returns the names of all the groups to which a user/group
belongs.
IAFLIB_get_security_info()
This retrieves information about a user or group.
IAFLIB_find_system_defaults()
This returns a structure of security configuration settings for IMS 3.1
security services.
IAFLIB_get_user_name()
This returns the NCH name for the user.
IAFLIB_get_user_stats()
This retrieves IMS 3.1 user group, password status, and account
activity information for security management and creating and
changing passwords.
IAFLIB_logon_user()
This validates the name and password by logging on and off of the
IMS.
IAFLIB_get_band_bitmap()
This returns a handle to a Windows-style BITMAP object containing
the requested band in a format suitable for use in a SelectObject,
BitBlt call sequence.
IAFLIB_get_file_text()
This extracts text from a TEXT- or a FORM-type page.
IAFLIB_get_object()
This retrieves an object and places it in a file in the PC’s local cache.
IAFLIB_get_object_text()
This extracts text from a TEXT- or FORM-type page.
IAFLIB_paint_bitmap()
This paints a bitmap (in Microsoft format) in a display context using a
PAINTSTRUCT.
IAFLIB_paint_image()
This paints a FileNet image in a display context using a
PAINTSTRUCT.
Query Functions
IAFLIB_continue_query()
This continues a query and gets more matches.
IAFLIB_get_single_DIR()
This performs a high-performance, non-interruptible query. Returns a
single document index record retrieved by its ID number.
IAFLIB_query_db()
This performs an Index Database Query. Use IAFLIB_continue_
query() to retrieve further matches from the same query specification.
IAFLIB_terminate_query()
This interrupts a query if a query or continuation is in progress. It
terminates a query if an incomplete query has been made for the
client (which frees up resources on the Index server).
Cache Functions
IAFLIB_create_cache_object()
This creates a cache object with the specified attributes.
IAFLIB_delete_cache_object()
This deletes an object from the cache.
IAFLIB_get_cache_object_attrs()
This retrieves object attributes from a Cache Service.
IAFLIB_move_cache_object()
This copies or moves a cache object to the specified cache.
IAFLIB_put_object()
This writes data to a cache object, which must already exist, or
updates the object's attributes, or both.
IAFLIB_resize_cache_object()
This modifies the max_length attribute of an object.
Document Functions
IAFLIB_delete_docs()
This deletes each document in an array from both the Index Services
database (if it is present there) and the Document Services database
of the logged on IMS.
IAFLIB_find_index_in_DIR()
Given a Document Index Record (DIR) pointer and an index ID, this
call returns a pointer to the value of the index in the DIR if the index is
present.
IAFLIB_get_doc_attr()
This returns document attributes for a document.
IAFLIB_migrate_from_optical_disk()
This retrieves a document from the optical disk and places it in the
server cache.
IAFLIB_migrate_to_optical_disk()
This migrates a committed document from a cache to optical disk.
IAFLIB_prefetch()
This initiates the prefetch of a list of documents from optical disk to
the specified cache.
IAFLIB_update_db()
This closes a document, changes the index values of an existing
document index record, or both.
Folder Functions
IAFLIB_create_folder()
This creates a new folder.
IAFLIB_delete_folders()
This removes folders from the database.
IAFLIB_file_doc()
This files a document into, or removes a document from, a folder.
IAFLIB_file_doc_after()
This files an array of documents into a folder following a specified
document ID.
IAFLIB_find_folders()
This returns an array of folder names.
IAFLIB_get_docs_in_folder()
This returns a handle for an array of document IDs that are filed in a
specified folder.
IAFLIB_get_folder_attrs()
This retrieves the attributes of a folder.
IAFLIB_move_folder()
This moves or copies a folder subtree from one parent to another.
IAFLIB_reorder_folder()
This reorders documents in a specified folder by putting a document
list after a specified document ID.
IAFLIB_unfile_docs()
This removes a list of documents from a specified folder.
IAFLIB_update_folder()
This changes the attributes of an existing folder, closes a folder, or
both.
IAFLIB_where_filed()
This returns an array of folder IDs that contain the given document.
Annotation Functions
IAFLIB_add_notation()
This adds a notation to a document list that is to be printed.
IAFLIB_add_notation1()
This adds a notation to a document list that is to be printed. IAFLIB_
add_notation1() provides similar functionality to IAFLIB_add_
notation(), but uses the PRI_print_option_typ2 structure instead of
PS_options_rec_type.
IAFLIB_delete_annotation()
This deletes an existing annotation.
IAFLIB_get_annotations()
This returns a handle to all the annotations for the specified page of a
document.
IAFLIB_is_annotated()
This returns a flag indicating whether there is an annotation on any
page of the specified document.
IAFLIB_put_annotation()
This creates or modifies an annotation.
IAFLIB_get_client_handle()
This allocates resources on behalf of a client, and returns a handle.
IAFLIB_get_current_IMS()
This returns the three-part NCH name of the IMS to which the client is
currently logged on.
IAFLIB_get_default_restrictions()
This returns default access restrictions for creation of a new FileNet
object.
IAFLIB_get_server_version()
This returns the version of the server software that is currently logged
on.
IAFLIB_get_version()
This returns the version of the WAL client libraries installed on a
particular workstation.
IMGFMT Functions
The image format (IMGFMT) functions compress and convert FileNet images.
IMGFMT_cmp_tiff()
This compresses TIFF image data. This function is usually used
within a loop to compress the image one band at a time.
IMGFMT_compress()
This compresses a specified number of lines of image data into
FileNet format.
IMGFMT_convert_image()
This converts an image file from one format to another.
QMR_build_doc_list()
This allocates and fills a structure containing a list of the selected
documents for printing or displaying.
QMR_format_report()
This formats the index data from document index records into an
ASCII text file suitable for displaying or printing.
QMR_query()
This performs a query, optionally displays a QMR window, and
returns a list of selected document IDs in ASCII for DDE.
QMR_select_match()
This invokes the Query Match Report window, which displays the
results of a query against the Index Database and enables the user to
select one or more of the documents.
RDD_exit()
This performs cleanup.
RDD_get_dclass_info()
This returns a handle to a memory buffer containing a document
class descriptor for the document class specified.
RDD_get_dclasses()
This returns a count of document classes and a handle to an array of
document class names.
RDD_get_handle()
This returns the handle requested (a handle previously registered
with RDD_set_handle()).
RDD_get_ix_info()
This returns an index descriptor for the specified index.
RDD_get_key_info()
This returns a key descriptor for the specified key index.
RDD_get_menuitem_info()
This returns a menu item descriptor for the specified menu item.
RDD_get_menuitems()
This returns a handle to an array of menu item strings.
RDD_get_valid_ixs()
This returns a handle to an array of index names.
RDD_get_valid_keyixs()
This returns a handle to an array of key index names.
RDD_init()
This initializes RDD with index database dictionary information from
the specified IMS.
RDD_is_field_valid()
This returns an index field descriptor if the specified index is a valid
index for one or more of the document classes listed in the input.
RDD_is_key_valid()
This returns an index field descriptor if the specified index is a valid
key index for one or more of the document classes listed in the input.
RDD_set_handle()
This registers a handle with RDD, so other modules can get it using
RDD_get_handle().
REST Functions
The following functions enable a client to restore files from an archive created
with ARCH_DocEntry().
REST_CloseArchive()
This frees resources associated with a restore operation.
REST_GetArchTime()
This returns the time at which an archive was created.
REST_GetDirEntry()
This returns the directory entry of a file in an archive.
REST_GetFileName()
This returns the name of a file in an archive.
REST_GetFileNames()
This returns a list of the files in an archive.
REST_GetVolName()
This returns the name of the volume from which an archive was
created.
REST_OpenArchive()
This obtains an archive handle, which is used to do the actual restore
operation. Optionally, it returns a list of the files in an archive.
REST_RestoreDoc()
This restores all files in an archive, with optional user interface.
REST_RestoreFile()
This restores specific files in an archive, with optional user interface.
SEC Functions
The following functions provide an interface to the security database and
Security Service.
SCT_serialize()
This has not operated since release 3.1.
SEC_add_info()
This enables a logged-on user to add information to the security
database for users, workstations, functions, and their members.
SEC_check_access()
This verifies that a user’s access is approved based on the set of
access restrictions passed to this routine and the type of access
required.
SEC_check_functions()
This verifies that a user has access to the functions indicated.
SEC_check_membership()
This checks whether a user or group is a member of the specified
group.
SEC_delete_info()
This enables the logged-on user to delete information from the
security database for users, workstations, functions, and their
members.
SEC_find_info()
This retrieves information from the security database about users,
workstations, functions, and their members.
SEC_get_membership_list()
This returns the names of all the groups to which a user/group
belongs.
SEC_get_security_info()
This returns information about a user or group.
SEC_get_system_info()
This retrieves system information from the security database, or from
the operating system.
SEC_logoff()
This terminates a service logon with a Security Service.
SEC_logon()
This establishes a service logon with the Security Service.
SEC_rename_info()
This changes the name of a user or group in the security database to
a new name.
SEC_renew()
This re-establishes a service session with the Security Service when
a session handle times out.
SEC_set_system_info()
This enables the logged-on user to set either system information in
the security database, or the system date/time.
SEC_update_info()
This enables the logged-on user to update information in the security
database for a user, group, or service process.
SECMAN_free_sec_handle()
This terminates a service logon with the security services.
SECMAN_get_sec_handle()
This establishes a service logon with the security services.
SECMAN_renew_sec_handle()
This re-establishes a service session with the security services when
a session handle times out.
ServName Functions
The F3SRVNAM DLL contains functions to allow the user to specify a
Clearinghouse server name, and to obtain the default service names
associated with a domain and organization.
ServiceNameCacheDefaults()
This retrieves a Clearinghouse Default Cache Descriptor record from
a domain. If the domain is NULL, the default domain is used.
ServiceNameDefaults()
This retrieves a Clearinghouse Default Service Descriptor record from
a domain. If the domain is NULL, the default domain is used.
ServiceNameOptions()
This provides a user interface to select a Clearinghouse object by
browsing through organizations and domains.
SVN_get_Attr_desc()
This retrieves a server’s attributes descriptor record.
SVN_get_BES_desc()
This retrieves a Clearinghouse BES Descriptor record for the
specified Batch Entry Service.
SVN_get_CSM_desc()
This retrieves a Clearinghouse CSM Descriptor record for either the
CSM name specified or the Batch Entry Service name specified.
SVN_get_DefDevice_desc()
This gets the NCH_DefDeviceDescValue structure for the specified
domain. This structure contains the NCH object names for the default
printer and default tape drive.
SVN_get_DefServ1_desc()
This retrieves a Clearinghouse DefServ1 Descriptor record for either
the DefServ1 name specified or the Batch Entry Service name
specified.
SVN_get_IMS_desc()
This retrieves a Clearinghouse IMS Descriptor record for either the
IMS name specified or the Batch Entry Service name specified.
SVN_GetLocalAddr()
This gets the local Ethernet address.
SVN_get_PS_desc()
This retrieves a Print Service descriptor record.
SVN_IMSToStr()
This converts an ASE_service_name_typ structure to an NCH name.
SVN_parse_service_name()
Converts a 3-part NCH name to an ASE_service_name_typ.
SLACLIB Functions
The SLACLIB functions enable WAL programs to use the Software License
Access Control (SLAC) key management system. You can use these
functions to automatically log off users that have been idle for a specified
period.
SLACLIB_GetAttr()
This retrieves an attribute from SLACLIB.
SLACLIB_GetTimeStamp()
This returns the latest timestamp. Chooses the latest time stamp from
these three: the SLACLIB internal timestamp, the COURIER
timestamp, and the IAFLIB timestamp.
SLACLIB_RegisterWindow()
This registers a window with SLACLIB.
SLACLIB_ResetTimer()
This resets the SLACLIB internal timer.
SLACLIB_SetAttr()
This sets an attribute in SLACLIB.
SLACLIB_Shutdown()
This performs a SLAC key shutdown of all registered windows, in
reverse order (newest window first).
SLACLIB_UnRegisterWindow()
This unregisters a window with SLACLIB.
TTY Functions
The TTY functions provide a simple window system for reading and writing
data.
TTY_clear()
This clears the specified rectangular area.
TTY_clear_input()
This clears the input buffer.
TTY_clear_msg()
This clears the message window.
TTY_clear_softkeys()
This clears the softkey labels from the menu bar.
TTY_create_window()
This sets the defaults for the TTY window.
TTY_display()
This displays the specified data at the current caret position.
TTY_display_msg()
This replaces the contents of the message window with the specified
string.
TTY_display_popup()
This displays the specified data in a popup window.
TTY_exit()
This destroys the TTY window.
TTY_get_pos()
This returns the caret position within the TTY window.
TTY_init()
This returns a handle to client-relative data needed by the F3TTYLIB
DLL to perform its other functions. Called once for each TTY window.
TTY_make_current()
This performs the specified action(s): brings the TTY window to the
top and/or makes the TTY window active.
TTY_read_input()
This displays characters from the keyboard buffer.
TTY_scroll()
This scrolls the specified rectangular area.
TTY_set_app_info_key()
This sets the key under which window size and position are saved in
the LOGON.CFG file.
TTY_set_pos()
This sets the caret position within the TTY window.
TTY_set_softkeys()
This puts the softkey labels into the menu bar.
TTY_update_window()
This causes the display window to show the results of display
commands immediately.
WQS_continue()
This has been obsolete since release 3.1.
WQS_get_default_service()
This returns the NCH object name of the default Queue Service.
WQS_get_server_name()
This returns the NCH object name of the WorkFlo Queue Server
responsible for servicing the named queue.
WQS_is_WQS()
This determines whether the server software is using WQS services
or WQM services.
WQS_logoff()
This terminates a service logon with a Queue Service.
WQS_logon()
This establishes a service logon with a WorkFlo Queue Service.
WQS_qlogon()
This establishes a service logon with the WorkFlo Queue Service
responsible for servicing the specified queue.
WQS_renew()
This has been obsolete since release 3.1.
WQS_close_queue()
This closes a queue (when no further operations on the queue will be
performed).
WQS_create_queue()
This sets up a new queue.
WQS_create_workspace()
This creates a workspace by setting up the necessary directories and
Clearinghouse entry.
WQS_delete_queue()
This deletes a queue from the workspace.
WQS_delete_workspace()
This deletes a workspace by removing the directories and
Clearinghouse entry associated with the workspace.
WQS_end_dump()
This terminates a dump.
WQS_get_queue_desc()
This returns the definition of an existing queue.
WQS_get_queue_names()
This returns the number of queues in a given workspace.
WQS_get_workspace_info()
This returns the security information and the text description of the
workspace for a specified workspace name.
WQS_get_workspace_names()
This returns the names of the workspaces defined in the specified
domain.
WQS_open_queue()
This opens a queue for processing.
WQS_read_dump()
This retrieves the next one or more entries that satisfy a set of filter
conditions from a dumped queue.
WQS_read_queue()
This retrieves one or more entries that satisfy a set of filter conditions
from a queue.
WQS_start_dump()
This signals the beginning of a queue dump.
WQS_update_queue()
This modifies the definition of an existing queue.
WQS_update_workspace()
This allows you to modify a workspace.
WQS_count_entries()
This returns the number of queue entries in a queue that satisfy a
specified set of filter conditions.
WQS_delete_entry()
This deletes one or more entries from a queue.
WQS_insert_entry()
This inserts one or more entries into a queue.
WQS_read_entry()
This retrieves a specific entry, the identification of which is already
known.
WQS_update_entry()
This modifies a specific queue entry.
ARCH_DocEntry()
ARCH_DocEntry() provides a high-level interface by which to create Archive
documents in batches of one document at a time. Each file in the file list
becomes a page in the archive document. It automatically adds a directory
page and FileNet page headers. This routine is suitable for calling from
external programs such as Microsoft Word for Windows.
Syntax
#include <archlib.i>
Parameters
batch_service_name
PSTR input. A string containing the Batch Entry Service
name. For example: Bes1:domain:FileNet. If NULL, the
default BES is used.
parent_app PSTR input. Parent application name (for the format of the
data pages); can be NULL.
class_name PSTR input. Name of the document class for which to create
the batch. If NULL, all document class names are shown in a
listbox to allow the user to select a document class.
index_values_h
HANDLE input. Handle for an array of structures of type
BES_ixval_desc_typ. Obtained from FN_index_text_to_
handle(). Can be NULL if index_count is zero, to pass in no
indexing information.
show_progress
FN_BOOL input. TRUE to create a modeless dialog box in
which to display status messages.
Errors Returned
ARCHLIB_No_Files
No file specified.
ARCHLIB_File_Create
Cannot create file.
ARCHLIB_No_Mem
Not enough memory.
ARCHLIB_Lock_Failed
Global lock failed (not enough memory?)
ARCHLIB_File_Write
Cannot write file.
ARCHLIB_File_Read
Cannot read file.
This function calls BATCHLIB_BatchEntry() and can return the errors from
that function.
See Also
“REST_CloseArchive()” on page 1117
BATCHLIB_BatchAbort()
BATCHLIB_BatchAbort() interrupts and cancels a call to BATCHLIB_
BatchEntry() in progress. The batch is deleted and all resources are cleaned
up.
This entry point is useful only if the dialogue window passed to BATCHLIB_
BatchEntry() is called. After BATCHLIB_BatchEntry() returns to the caller, the
batch can no longer be aborted.
Syntax
#include <batchlib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
Error Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
See Also
“BATCHLIB_BatchEntry()” on page 604
BATCHLIB_BatchEntry()
BATCHLIB_BatchEntry() is a high-level interface for use by applications such
as fax. It returns a handle for a BATCHLIB_BatchEntry-Status structure. It
also creates a batch and commits it. If the batch is in an acceptable state for
committal, it is closed internally and then enqueued for committal.
The call aborts on any unrecoverable error. If the entire batch commits
successfully, the status_count field in the returned structure will be equal to
the number of documents committed, and each of the error.err_ret fields will
equal success.
For documents committed successfully, the page field will be the number of
pages (last page number) in the document. Otherwise, it will contain the page
number of the page for which the error occurred (zero meaning a document
error prior to processing any pages).
If the returned handle is NULL, no memory was available for allocating the
status structure. In this case, none of the BATCHLIB_BatchEntry() actions are
performed. BATCHLIB_BatchEntry() does not free any data handles passed
into it.
When you use this function with WorkForce Desktop applications, you must
always initialize all of the index fields in the BATCHLIB_DocDesc struct.
Syntax
#include <batchlib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
dynamic_header_p
BES_dyn_hdr_desc_typ * input. Pointer to a batch dynamic
header structure. The batch_name field is ignored; all others
are used. If this parameter is NULL, BATCHLIB uses a
standard set of values to make things as automatic as
possible.
Errors Returned
IAFLIB_no_memory
Not enough memory.
IAFLIB_lock_err
Unable to lock memory block (low memory?)
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_func_not_found
Entry point in library not found.
BATCHLIB_Bad_Page_Count
Bad page count.
BATCHLIB_Bad_FileName
The specified file does not exist.
BES_No_Mem
Not enough memory.
BES_Bad_Handle
Bad BESLIB handle.
See Also
“IAFLIB_get_client_handle()” on page 994
BATCHLIB_commit_files()
BATCHLIB_commit_files() commits an array of DOS files into a FileNet
system as a single document. Each file contains a FileNet format image. Each
file becomes one page of the document.
This call supports the FileNet Banded Group III and TIFF Unbanded Group IV
formats.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
filename_h HANDLE input. Handle to a list of file names. Each file name
is separated by a null character. The file name includes drive
and path.
bes_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
UI BOOL input. If TRUE, displays the indexing form for the user.
If FALSE, form_title, form_file, and form_name are ignored.
form_file PSTR input. The custom indexing form file. If NULL, the
default indexing form file is used.
form_name PSTR input. The custom indexing form name. If NULL, the
default indexing form is used.
indices_returned
WORD * output. Number of indices in new_inx_h.
See Also
“BATCHLIB_commit_file_list()” on page 610
BATCHLIB_commit_file_list()
BATCHLIB_commit_file_list() functions similarly to BATCHLIB_commit_files(),
with regard to use and interface. It is easier to call from a third party
application (e.g., WINWORD.EXE) through a Dynamic Link Library (DLL).
BATCHLIB_commit_file_list BATCHLIB_commit_files
Uses a TAB character to separate the Uses NULL to separate the image
image files in filename_h. files in filename_h.
Returns doc_id in LPSTR type. Returns doc_id in FN_docnum_typ.
The formats supported by this call are FileNet Banded Group III and TIFF
Unbanded Group IV.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
filename_p PSTR input. A list of file names. Each file name is separated
by a TAB. The file name includes drive and path.
UI BOOL input. If TRUE, displays the indexing form for the user.
If FALSE, form_title, form_file, and form_name are ignored.
form_file PSTR input. The custom indexing form file. If NULL, the
default indexing form file is used.
form_name PSTR input. The custom indexing form name. If NULL, the
default indexing form is used.
indices_returned
WORD * output. Number of indices in new_inx_h.
See Also
“BATCHLIB_commit_files()” on page 607
BATCHLIB_enqueue_batch()
BATCHLIB_enqueue_batch() opens the named batch, enqueues the batch in
the selected queue, and closes the batch.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
queue_selector
short input. Queue ID.
Errors Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_load_library_err
Failed to load library DLL.
IAFLIB_func_not_found
Entry point in library not found.
See Also
“IAFLIB_get_client_handle()” on page 994
BATCHLIB_find_batch_docs()
BATCHLIB_find_batch_docs() finds one or more document descriptors. It
returns, at most, max_docs descriptors. The doc_id in the first descriptor is
greater than starting_doc_id. BATCHLIB_find_batch_docs() handles the
opening and closing of the batch.
The client can specify whether to return the page number array, the index
value array, or both.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. The client handle obtained from IAFLIB_get_
client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
starting_doc_id
FN_docnum_typ input. Starting document number for search.
Documents whose number is greater than starting_doc_id
are returned. For the first call to BATCHLIB_find_batch_
docs(), set starting_doc_id to zero.
get_pages_flag
FN_BOOL input. TRUE to return pages_h_p.
get_indices_flag
FN_BOOL input. TRUE to return index_values_h_p.
doc_desc_h_p
HANDLE * output. Pointer to a handle for an array of
document descriptors of type BES_doc_desc_typ.
index_values_h_p
HANDLE * output. If get_indices_flag is true, index_values_
h_p returns a pointer to a handle for an array of BES_ixval_
desc_typ structures for all the document descriptors returned.
Errors Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_load_library_err
Failed to load library DLL.
IAFLIB_func_not_found
Entry point in library not found.
See Also
“IAFLIB_get_client_handle()” on page 994
BATCHLIB_find_batch_images()
BATCHLIB_find_batch_images() opens the batch, returns an array of image
descriptors, and closes the batch. The image_id in the first image descriptor
will be greater than starting_image_id.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. The client handle obtained from IAFLIB_get_
client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
starting_image_id
FN_docnum_typ input. Starting image number. Image
descriptors containing image_ids greater than starting_
image_id are returned.
num_images_p
long * output. Pointer to actual number of image descriptors
returned.
image_descs_h_p
HANDLE * output. Pointer to a handle for an array of BES_
image_desc_typ structures.
Errors Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_load_library_err
Failed to load library DLL.
IAFLIB_func_not_found
Entry point in library not found.
See Also
“IAFLIB_get_client_handle()” on page 994
BATCHLIB_find_batches()
BATCHLIB_find_batches() returns batch headers that match the specified
filter. This call, used for reports, allows the client to access one or more batch
headers without opening the batches.
For example, the client can use this call to return the headers of all active
batches, all uncommitted batches, and all batches with a particular error state.
The batch_name and rel_op parameters specify the starting point for the
search. BATCHLIB_find_batches() returns a sequence of no more than max_
headers. A boolean (done_p) is set to TRUE when no more batch headers
satisfying the condition are found.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. The client handle obtained from IAFLIB_get_
client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
batch_name PSTR input. Starting batch name. Use empty string to search
all batches.
num_headers_p
unsigned short * output. Pointer to the actual number of batch
headers returned.
Errors Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_load_library_err
Failed to load library DLL.
IAFLIB_func_not_found
Entry point in library not found.
See Also
“IAFLIB_get_client_handle()” on page 994
BATCHLIB_get_batch_object()
BATCHLIB_get_batch_object() retrieves the object from the Batch Entry
Service and places it in a file in the PC’s local cache. It returns the name of
the file containing the object in file_name. The object is left closed.
Reading begins at the specified offset. The actual number of bytes read will
be less than the number of bytes requested if the offset plus num_bytes goes
beyond the end of the object.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. The client handle obtained from IAFLIB_get_
client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
file_name PSTR output. The name of the file in the PC’s local cache
that contains the retrieved object.
Errors Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_load_library_err
Failed to load library DLL.
IAFLIB_func_not_found
Entry point in library not found.
See Also
“IAFLIB_get_client_handle()” on page 994
BATCHLIB_update_batch()
BATCHLIB_update_batch() updates the dynamic batch header for the named
batch. The batch is closed on return from this call.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. The client handle obtained from IAFLIB_get_
client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
Errors Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_load_library_err
Failed to load library DLL.
IAFLIB_func_not_found
Entry point in library not found.
See Also
“IAFLIB_get_client_handle()” on page 994
BATCHLIB_update_batch_doc()
BATCHLIB_update_batch_doc() updates a previously-created document. The
client can alter the page composition, the document indexing information, or
both. The session remains open on return from this call.
Syntax
#include <iaflib.i>
#include <batchlib.i>
Parameters
client_h HANDLE input. The client handle obtained from IAFLIB_get_
client_handle().
batch_service_p
ASE_service_name_typ * input. Pointer to the Batch Entry
Service to use. If NULL, the default batch service is used.
index_values_p
BES_ixval_desc_typ * input. Array of index values or NULL. If
NULL, BATCHLIB_update_batch_doc() does not alter the
indexing information.
Errors Returned
IAFLIB_bad_client_handle
Bad IAFLIB client handle.
IAFLIB_load_library_err
Failed to load library DLL.
IAFLIB_func_not_found
Entry point in library not found.
See Also
“IAFLIB_get_client_handle()” on page 994
BES_abort_image()
BES_abort_image() aborts the current image transaction and removes the
image if the transaction was started with a create. The image is opened on
entry to this call and closed upon return. The batch retains the state it had
prior to the initiation of the transaction.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_no_transaction
There is no image transaction in progress at this time.
See Also
“BES_logon()” on page 668
BES_alloc_batch_name()
BES_alloc_batch_name() generates a unique batch name. Batch Entry
Services can allocate several types of unique batch names. The batch_type
parameter specifies a template for the batch name.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
batch_type short input. Batch type identifier. Can be one of the following:
Errors Returned
BES_err_invalid_batch_type
An invalid batch type was supplied.
See Also
“BES_logon()” on page 668
BES_alloc_ids()
BES_alloc_ids() acquires a block of unique integers to be used as image
identifiers.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_too_many_ids
Too many image IDs requested.
See Also
“BES_logon()” on page 668
BES_client_register()
BES_client_register() enables you to use the IMS 3.1 batch dynamic header
defined in BES_dyn_hdr_desc_typ. If you have a 3.1 IMS, you can delay
migration to optical disk by setting a parameter in BES_dyn_hdr_desc_typ.
You can also control migration to a specific cache instead of to optical disk.
If you’ve used pre-WAL 4.0 versions and are now using a 3.1 IMS, redefine
session_num, formerly type HANDLE, size WORD (2 bytes), now a class
member, size DWORD (4 bytes).
To use this call, you must compile with the switch -DWFD40. If the call does
not use 40 as the client_type value in the table below or if WFD40 is not
enabled, the header type defaults to 3.0. Unless you use the new features
described, you need not compile with the -DWFD40 switch. Your application
can use the 3.1 IMS services without the switch.
Syntax
#include <beslib.i>
Parameters
session_h ASE_session_number_typ input. Session handle returned by
BES_logon().
See Also
“BES_logon()” on page 668
BES_close_batch()
BES_close_batch() closes a specified batch. Do not use it after you call BES_
delete_batch(), BES_enqueue_batch(), BES_commit_batch_now(), or BES_
sync_commit().
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
See Also
“BES_logon()” on page 668
BES_close_csum_image()
BES_close_csum_image() sets a checksum of an image and commits the
checksummed image transaction in the same way as BES_close_image().
The checksum of the image should be calculated as soon as the image data
is created. It is calculated by CS_compute_csum().
Within a single batch, all images should have checksum values or all images
should not have checksum values. When an image is committed by BES_
close_image() or BES_close_csum_image() with csum_exist set to FALSE,
all checksums for other images in the batch are removed.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
csum long input. Specifies the checksum value for the image. Can
be obtained from CS_compute_csum().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_invalid_batch_cap
The client attempted to read or write an image with an invalid batch
capability.
BES_err_no_transaction
There is no image transaction in progress at this time.
See Also
“BES_close_image()” on page 633
BES_close_image()
BES_close_image() attempts to commit the image transaction. For a BES_
create_image() transaction, BES_close_image() creates an image and an
image descriptor record. For a BES_update_image() transaction, BES_close_
image() replaces the prior image with the updated image and maintains
applicable document membership.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_invalid_batch_cap
The client attempted to read or write an image with an invalid batch
capability.
BES_err_no_transaction
There is no image transaction in progress at this time.
See Also
“BES_create_image()” on page 641
BES_commit_batch_now()
BES_commit_batch_now() commits the batch synchronously. Control is
returned to the user after the committal. If the committal cache is full, this call
waits until the committal cache is cleaned up. If the call is slow to return, the
committal cache is probably full.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_phase_incomplete
The client did not complete one or more of the required phases before
enqueuing the batch for committal.
BES_err_image_not_verified
The client did not verify one or more of the images before enqueuing
the batch for committal. This error is returned only if the client has
specified that image verification is required.
BES_err_commit_batch_total
The batch total was invalid when the batch was enqueued for
committal. This error is returned only if batch totaling is a required
phase.
BES_err_ixval_not_found
An index value record was not found.
BES_err_no_required_index
One or more of the required indexing fields did not have values before
the batch was enqueued for committal.
BES_err_index_not_verified
One or more index values were not verified before the batch was
enqueued for committal. This error is returned only if index verification
is a required phase.
See Also
“BES_enqueue_batch()” on page 652.
BES_create_batch()
BES_create_batch() creates a batch with the specified name, associated with
the specified document class name. Upon success, BES_create_batch()
returns the batch header record and batch capabilities. The batch capabilities
structure, which contains the batch number, is passed to all subsequent calls
on the open batch. After the batch is created, it is left open and marked busy.
BES_create_batch() initializes all phase status records and opens the batch
for subsequent use.
The client should use BES_open_batch() to open existing batches and mark
them as busy.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_no_resources
The operation failed due to a lack of server-side resources. This error
might indicate a transient condition.
BES_err_batch_name_too_long
The client attempted to create a batch name that is too long.
BES_err_batch_exists
A batch already exists with the name specified.
See Also
“BES_logon()” on page 668
BES_create_doc()
BES_create_doc() creates a document from images and indices. Batch totals,
if any, will be updated with the incoming index values. The batch must be open
and locked before using this call. It is left open and locked after completion of
the call.
• If you are using WorkFlo or WorkForce modules, be sure you initialize all
INX_doc_index_rec_typ (DIRs) before calling BES_create_doc().
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
index_values_p
BES_ixval_desc_typ * input. Pointer to an array of index
values.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_doc_exists
A document already exists and another cannot be created with the
same document number.
BES_err_no_resources
The operation failed due to a lack of server-side resources. This error
might indicate a transient condition.
BES_err_bad_pages
An inappropriate image ID was specified (i.e., the image ID is already
part of another document).
BES_err_too_many_pages
The client attempted to create a document with too many pages.
BES_err_too_many_indices
The client attempted to create a document with too many indices.
See Also
“BES_logon()” on page 668
BES_create_image()
BES_create_image() opens a transaction and creates the image attributes
(i.e., allocates space). It leaves the transaction open for BES_write_image() to
input the image data to the BES cache.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
image_desc_p
BES_image_desc_typ * input. Pointer to image descriptor
structure.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_image_exists
The image already exists; another cannot be created with the same
image identifier.
BES_err_no_resources
The operation failed due to a lack of server-side resources. This error
might indicate a transient condition.
BES_err_already_in_transaction
There is already a transaction in process on this image. (You cannot
do the requested operation when a transaction is in process on an
image.)
See Also
“BES_logon()” on page 668
BES_create_image_index()
BES_create_image_index() creates the index data associated with a
specified image. The image need not be open. However, the batch must be
open and locked before using this call and it is left open and locked after
completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_batch_busy
The batch is currently in the busy state and cannot be opened at this
time unless the client wishes to assert override.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
BES_err_image_index_exists
The specified image already has indexing information associated with
it.
BES_err_no_transaction
There is no image transaction in progress at this time.
BES_err_invalid_image_index
The length of the image index is invalid; it cannot exceed 240 bytes.
See Also
“BES_logon()” on page 668
BES_delete_batch()
BES_delete_batch() deletes all state information related to the previously-
opened batch. All images associated with the batch are deleted from the
cache. The batch and all images are closed and no longer exist.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
See Also
“BES_logon()” on page 668
BES_delete_doc()
BES_delete_doc() deletes a document. The function unconditionally deletes
all assembly and indexing information associated with the document. The
client can elect to delete the images from the page cache. The batch must be
open and locked before using this call. It is left open and locked after
completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
del_images_flag
FN_BOOL input. TRUE to delete images currently assigned
to the document from the page cache.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_doc_not_found
The specified document number is not a document in this particular
batch.
See Also
“BES_logon()” on page 668
BES_delete_image()
BES_delete_image() deletes the image descriptor associated with the
specified image and frees space occupied by the image data. The batch must
be open and locked before using this call. It is left open and locked after
completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
See Also
“BES_logon()” on page 668
BES_delete_image_index()
BES_delete_image_index() deletes the index data associated with a specified
image. The image need not be open. However, the batch must be open and
locked before using this call. It is left open and locked after completion of the
call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_batch_busy
The batch is currently in the busy state and cannot be opened at this
time unless the client wishes to assert override.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
See Also
“BES_logon()” on page 668
BES_dequeue_batch()
BES_dequeue_batch() opens the batch at the head of the committal queue.
This batch can subsequently be deleted, closed, or enqueued. Deletion
causes all batch related states to be permanently removed. Closure returns to
the queue all the batches eligible for dequeuing from the commit queue.
Enqueuing returns the batch to the uncommit queue.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_found
There is no batch with the specified name.
See Also
“BES_logon()” on page 668
BES_enqueue_batch()
BES_enqueue_batch() places a previously-opened batch into the specified
queue. This call is usually used to enqueue a batch for committal, but can also
be used to return a batch that failed committal to the uncommit queue.
When this function returns, the committal process might not be completed by
the FileNet Server. If you need to force the committal to take place
immediately, you can use BES_commit_batch_now() or BES_sync_commit().
Syntax
#include <beslib.i>
#include <bes.def>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
queue_selector
short input. Queue identifier. Can be one of the following
(from bes.def):
BES_OCR_QUEUE
BES_INPROGRESS_QUEUE
BES_COMMIT_QUEUE
BES_UNCOMMIT_QUEUE
BES_NO_QUEUE
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_invalid_queue
The client attempted to enqueue the batch to an invalid queue.
BES_err_phase_incomplete
The client did not complete one or more of the required phases before
enqueuing the batch for committal.
BES_err_image_not_verified
The client did not verify one or more of the images before enqueuing
the batch for committal. This error is returned only if the client has
specified that image verification is required.
BES_err_no_required_index
One or more of the required indexing fields did not have values before
the batch was enqueued for committal.
BES_err_index_not_verified
One or more index values were not verified before the batch was
enqueued for committal. This error is returned only if index verification
is a required phase.
BES_err_commit_batch_total
The batch total was invalid when the batch was enqueued for
committal. This error is returned only if batch totaling is a required
phase.
BES_err_ixval_not_found
An index value record was not found.
See Also
“BES_commit_batch_now()” on page 635
BES_find_batches()
BES_find_batches() returns batch headers that match the specified filter; it
accesses one or more batch headers without opening the batches. BES_find_
batches() is usually used to generate reports.
For example, the client can use this entry point to return the headers of all
active batches, all uncommitted batches, and all batches with a particular
error state.
The batch_name and rel_op parameters specify the starting point for the
search. BES_find_batches() returns a sequence of no more than max_
headers. It sets done_p to TRUE when it finds no batch header that satisfies
the condition.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
batch_name PSTR input. Starting batch name. The least significant batch
name is a zero-length string.
num_headers_p
WORD * output. Pointer to the actual number of batch
headers returned in headers_h_p.
See Also
“BES_logon()” on page 668
BES_find_docs()
BES_find_docs() finds one or more document descriptors. It returns, at most,
max_docs descriptors. The doc_id in the first descriptor is greater than
starting_doc_id.
The client can specify whether to return the page number array, the index
value array, or both.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
starting_doc_id
FN_docnum_typ input. Starting document number for search.
This number is a batch-relative document ID. Documents
whose number is greater than starting_doc_id will be
returned. For the first call to BES_find_docs(), set starting_
doc_id to zero.
get_pages_flag
FN_BOOL input. TRUE to return pages_h_p.
get_indices_flag
FN_BOOL input. TRUE to return index_values_h_p.
doc_descs_h_p
HANDLE * output. Pointer to a handle for array of document
descriptors of type BES_doc_desc_typ. Memory for this list is
allocated by BESLIB, and must be returned by calling
GlobalFree.
index_values_h_p
HANDLE * output. Pointer to a handle for array of index
values of type BES_ixval_desc_typ. Memory for this list is
allocated by BESLIB, and must be returned by calling
GlobalFree.
See Also
“BES_logon()” on page 668
BES_find_images()
BES_find_images() returns an array of image descriptors. The image_id in
the first image descriptor is greater than starting_image_id. The batch
indicated by batch_cap_p must be open before using this call and it remains
open after completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
starting_image_id
FN_docnum_typ input. Starting image number. Image
descriptors containing image_ids greater than starting_
image_id will be returned.
num_images_p
long * output. Pointer to actual number of image descriptors
returned.
image_descs_h_p
HANDLE * output. Pointer to a handle for an array of image
descriptors of type BES_image_desc_typ. The array is NULL
if there is no image.
Error Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
See Also
“BES_logon()” on page 668
BES_get_image_index()
BES_get_image_index() retrieves indexing information associated with a
specified image. The image need not be open. Note, however, that the batch
indicated by batch_cap_p must be open before using this call and it is left
open after completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
max_index_length
WORD input. Maximum size of returned index value.
index_length_p
WORD * output. Pointer to actual length of index value.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_batch_busy
The batch is currently in the busy state and cannot be opened at this
time unless the client wishes to assert override.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
See Also
“BES_logon()” on page 668
BES_get_info()
BES_get_info() retrieves the additional information associated with a batch, a
document in a batch, an image in a batch, an index type associated with the
class of a batch, or an index value associated with a specific document of a
batch. This information is added by the BES_put_info() function.
• BES_INFO_BATCH
• BES_INFO_DOC
• BES_INFO_IMAGE
• BES_INFO_IDXVAL
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
search_spec_p
BES_info_rec_typ * input. Indicates the type of information in
which to search. You specify the information type in the info_
spec field in the structure.
Note This function requires the Series 6000 software version 3.0 or later.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_no_resources
The operation failed due to a lack of server-side resources. This error
might indicate a transient condition.
See Also
“BES_logon()” on page 668
BES_get_num_cluster_id()
BES_get_num_cluster_id() computes the cluster ID for a key of type FP_
number. After the calculation, a pointer to the cluster ID is returned in cid_p.
This function returns NULL.
Syntax
#include <beslib.i>
Parameters
fp_num FN_number input. Specifies the FileNet Floating Point
number that contains the cluster ID.
See Also
“FP_number” on page 349
BES_get_str_cluster_id()
BES_get_str_cluster_id() computes the cluster ID for a key of type LPSTR.
After the calculation, a pointer to the cluster ID is returned in cid_p. This
function returns NULL.
Syntax
#include <beslib.i>
Parameters
str_key PSTR input. Specifies the alphanumeric key that contains the
cluster ID.
BES_logoff()
BES_logoff() terminates a Batch Entry Services session and invalidates a
session on the server. No further call can be made to Batch Entry Services
until after another BES_logon() call.
Clients call BES_logoff() when finished with the service to minimize Batch
Entry Services’ maintenance of active sessions.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session ID to log off.
Errors Returned
BES_err_bad_ses_id
The session ID passed is not a valid session ID.
See Also
“BES_logon()” on page 668
BES_logon()
BES_logon() establishes a Batch Entry Service session and returns a number
that identifies the session to the client. The number must be passed to
subsequent calls to Batch Entry Services. The client can open multiple
batches per session and each session remains active for at least the number
of seconds specified by timeout.
Syntax
#include <beslib.i>
Parameters
credential_p PSTR input. An unused parameter since release 3.1.
batch_service_p
ASE_service_name_typ * input. Identifies the Batch Entry
Service. (Note that you cannot use NULL for the default
service name.)
Errors Returned
BES_err_no_permission
See Also
“BES_logoff()” on page 667
BES_modify_image_index()
BES_modify_image_index() modifies the index data associated with a
specified image. The image need not be open. The batch must be open and
locked before using this call and it is left open and locked after completion of
the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_batch_busy
The batch is currently in the busy state and cannot be opened at this
time unless the client wishes to assert override.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
BES_err_no_image_index
This image does not have an associated index value.
BES_err_invalid_image_index
The length of the image index is invalid; it cannot exceed 240 bytes.
See Also
“BES_logon()” on page 668
BES_move_image()
BES_move_image() moves an unassembled image from one batch to
another. The image remains unassembled after it is moved. You can move
images from one document class to another within the same server. You
cannot move images from one server to another.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_batch_busy
The batch is currently in the busy state and cannot be opened at this
time unless the client wishes to assert override.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
BES_err_no_image_index
This image does not have an associated index value.
BES_err_invalid_image_index
The length of the image index is invalid; it cannot exceed 240 bytes.
See Also
“BES_logon()” on page 668
BES_open_batch()
BES_open_batch() provides the client with exclusive update privileges to a
specified batch. This call marks the opened batch as busy.
Note that the override parameter allows clients with sufficient privilege to open
a busy batch.
BES_open_batch() returns the batch header and the batch capabilities. The
batch capabilities structure, which contains the batch number, is passed to all
subsequent calls on the open batch.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_found
There is no batch with the specified name.
BES_err_batch_not_locked
The override parameter is set to TRUE, but the batch is not locked.
BES_err_batch_busy
The batch is currently in the busy state and cannot be opened at this
time unless the client wishes to assert override.
BES_err_bad_service_name
Batch service name doesn’t match between logon and the existing
batch. The batch service name was changed in the configuration files
between the time this batch was created and now.
BES_err_wrong_queue
Cannot open batch when queue not equal to BES_UNCOMMIT_
QUEUE or BES_NO_QUEUE.
See Also
“BES_logon()” on page 668
BES_open_image()
BES_open_image() opens the specified image for read-only (no writing or
update) and returns the associated image descriptor record. The batch
remains open at completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
image_desc_p
BES_image_desc_typ * output. Pointer to image descriptor
structure.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
BES_err_already_in_transaction
There is already a transaction in process on this image. (You cannot
do the requested operation when a transaction is in process on an
image.)
See Also
“BES_logon()” on page 668
BES_put_info()
BES_put_info() provides the client with the ability to associate additional
information with a batch record, a batch document record, a batch image
record, a batch class index type record, or a batch document index value
record.
This information is defined and interpreted by the client. BES services does
not use this information. A client can use BES_get_info() to retrieve this
information.
• BES_INFO_BATCH
• BES_INFO_DOC
• BES_INFO_IMAGE
• BES_INFO_IDXVAL
This function requires the Series 6000 software version 3.0 or later.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_no_resources
The operation failed due to a lack of server-side resources. This error
might indicate a transient condition.
See Also
“BES_get_info()” on page 663
BES_query_index_dir()
BES_query_index_dir() retrieves the directory of indices associated with the
specified batch. The batch has to be open before using this call and it is left
open after completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
num_indices_p
long * output. Pointer to a number of indexing fields.
index_descs_h_p
HANDLE * output. Pointer to a handle for an array of index
descriptors (BES_ixdir_desc_typ).
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_ixdir_not_found
The index record (Column name) does not exist.
See Also
“BES_logon()” on page 668
BES_read_image()
BES_read_image() attempts to read num_bytes bytes from an image on
which there is a current transaction. Reading begins at the specified offset.
The actual number of bytes read is less than the number of bytes requested if
offset plus num_bytes goes beyond the end of the image. The batch has to be
open before using this call and it is left open after completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
image_data_h_p
HANDLE * output. Pointer to a handle to buffer that contains
the data read.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_no_transaction
There is no image transaction in progress at this time.
BES_err_invalid_batch_cap
The client attempted to read or write an image with an invalid batch
capability.
See Also
“BES_logon()” on page 668
BES_read_whole_image()
BES_read_whole_image() reads a whole image from BES cache into PC
local cache.
Avoid setting the buf_size parameter too large or too small. We recommend
setting it to a minimum of 1MB or data_size. For example:
For performance reasons, we recommend that you use this function instead of
BES_read_image().
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
data_size unsigned long input. The size of the whole image. It can be
found in BES_image_desc_typ which is returned from BES_
open_image().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_no_transaction
There is no image transaction in progress at this time.
BES_err_invalid_batch_cap
The client attempted to read or write an image with an invalid batch
capability.
See Also
“BES_logon()” on page 668
BES_renew()
BES_renew() re-establishes a service logon with a Batch Entry Service. If the
BES session idles longer than the timeout period, your BES session might be
lost. Your BES function call returns the error BES_err_bad_sess_id in this
case. Always check for the error and use this to re-establish the service logon.
Syntax
#include <beslib.i>
Parameters
credential_p PSTR input. An unused parameter since release 3.1.
batch_service_p
ASE_service_name_typ * input. Pointer to the name of the
Batch Entry Service. (Note that you cannot use NULL for the
default service name.)
See Also
“ASE_service_name_typ” on page 178
BES_sync_commit()
BES_sync_commit() commits the batch synchronously. It returns control to
the user after the committal. If the page cache is full, this call returns a CSM_
no_resources error.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_phase_incomplete
The client did not complete one or more of the required phases before
enqueuing the batch for committal.
BES_err_image_not_verified
The client did not verify one or more of the images before enqueuing
the batch for committal. This error is returned only if the client has
specified that image verification is required.
BES_err_commit_batch_total
The batch total was invalid when the batch was enqueued for
committal. This error is returned only if batch totaling is a required
phase.
BES_err_ixval_not_found
An index value record was not found.
BES_err_no_required_index
One or more of the required indexing fields did not have values before
the batch was enqueued for committal.
BES_err_index_not_verified
One or more index values were not verified before the batch was
enqueued for committal. This error is returned only if index verification
is a required phase.
CSM_no_resources_in_target_cache
Cache is full. It needs to be cleaned up.
See Also
“BES_commit_batch_now()” on page 635
BES_update_batch()
BES_update_batch() updates certain fields in the dynamic batch header. The
batch must be open and locked before using this call. It is left open and locked
after completion of the call.
Use this function when you have written something into the BES, thereby
avoiding re-doing everything from the beginning when a problem occurs.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
See Also
“BES_logon()” on page 668
BES_update_doc()
BES_update_doc() updates a previously-created document. The client can
alter the page composition, the document indexing information, or both. The
batch must be open and locked before using this call. It is left open and locked
after completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
index_values_p
BES_ixval_desc_typ * input. Pointer to an array of index
values or NULL.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_no_resources
The operation failed due to a lack of server-side resources. This error
might indicate a transient condition.
BES_err_bad_pages
An inappropriate image ID was specified (i.e., the image ID is already
part of another document).
BES_err_too_many_pages
The client attempted to create a document with too many pages.
BES_err_doc_not_found
The specified document number is not a document in this particular
batch.
BES_err_too_many_indices
The client attempted to create a document with too many indices.
See Also
“BES_logon()” on page 668
BES_update_image()
BES_update_image() updates the image attributes, then leaves the image
open for subsequent reads or writes. The batch has to be open and locked
before using this call and it is left open and locked after completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
image_desc_p
BES_image_desc_typ * input. Pointer to image descriptor
structure. The doc_id and page_id fields in this structure are
not updated.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_image_not_found
The specified image is not an image associated with this particular
batch.
BES_err_no_resources
The operation failed due to a lack of server-side resources. This error
might indicate a transient condition.
BES_err_already_in_transaction
There is already a transaction in process on this image. (You cannot
do the requested operation when a transaction is in process on an
image.)
See Also
“BES_logon()” on page 668
BES_update_index_total()
BES_update_index_total() updates the batch total for the specified index. The
batch has to be open and locked before using this call and it is left open and
locked after completion of the call.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_ixdir_not_found
Column name record does not exist.
See Also
“BES_logon()” on page 668
BES_verify_image()
BES_verify_image() updates the image verification status in the image
descriptor record associated with the specified image. The batch has to be
open and locked before using this call and it is left open and locked after
completion of the call.
Syntax
#include <beslib.i>
#include <bes.def>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
image_desc_p
BES_image_desc_typ * input/output. Pointer to image
descriptor. The updated image_desc_p is returned,
overwriting the input.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_image_not_found
The specified image is not associated with this particular batch.
See Also
“BES_logon()” on page 668
BES_write_image()
BES_write_image() writes num_bytes bytes to the BES cache where space is
allocated by BES_create_image() or BES_update_image(). BES_write_
image() starts writing at the specified offset. The batch has to be open and
locked before using this call and it is left open and locked after the call
completes.
Syntax
#include <beslib.i>
Parameters
session_num ASE_session_number_typ input. Session number returned
by BES_logon().
image_data_h HANDLE input. Handle for image data. For clients calling
BES, buffer size must be a multiple of 1024.
Errors Returned
BES_err_batch_not_open
There is currently no open batch associated with the client’s session.
BES_err_no_transaction
There is no image transaction in progress at this time.
BES_err_invalid_batch_cap
The client attempted to read or write an image with an invalid batch
capability.
See Also
“BES_create_image()” on page 641
CAM_add_file()
CAM_add_file() adds a file to the cache and updates the internal file table
entry with the file name and size.
If a file already exists for the given ssn/doc_id/page_num and the append_flag
is FALSE, it does not write the data to the cache. If adding the file causes the
maximum size of the cache to be exceeded, cleanup is automatic.
If page_num is zero, the doc_id is presumed to be the window handle for the
calling client (the client is using a page from a disk file). In this case, the data
is always written, even if the file already exists.
Syntax
#include <cam.i>
Parameters
ssn unsigned long input. SSN of object. The special values ASE_
LOCAL_SSN and ASE_INVALID_SSN match any ssn.
append_flag BOOL input. TRUE means append data to existing cache file,
if any. FALSE means to protect the overwriting of an existing
file.
Errors Returned
CAM_E_ALREADY_EXIST
The append_flag is FALSE and the file is already in cache.
See Also
“CAM_find_file()” on page 701
CAM_delete_file()
CAM_delete_file() deletes a file that holds a page of a document from the
local cache.
When the cache is full, the CAM services have to find which objects to delete
and then delete them. To do this, the CAM services use the least-recently
used (LRU) deletion algorithm.
For more information on how objects are managed in local cache, see “CAM”
on page 33 of Chapter 3, “Data Flow Diagrams,” on page 25
This function can also be called to force a refresh of the documents in the
cache.
Syntax
#include <cam.i>
Parameters
ssn unsigned long input. SSN of object. The special values ASE_
LOCAL_SSN and ASE_INVALID_SSN match any ssn.
Errors Returned
CAM_EE_FILE_NOT_FOUND
No such file in cache.
See Also
“FN_docnum_typ” on page 260
CAM_exit()
CAM_exit() deletes all temporary files in the cache.
Each application that uses CAM calls this function exactly once when
terminating or ending the Windows session. It decrements an internal client
count. When the client count reaches zero, CAM deletes the temporary files in
the cache.
Syntax
#include <cam.i>
CAM_find_file()
CAM_find_file() checks whether the compressed image file for the ssn/doc_id/
page_no exists in the cache. If so, it returns the file name of the temporary file
in which it is stored. The page count specified in CAM_add_file() is returned in
page_count_p.
Syntax
#include <cam.i>
Parameters
ssn unsigned long input. SSN of object. The special values ASE_
LOCAL_SSN or ASE_INVALID_SSN match any ssn.
page_count_p
unsigned short * output. If the object file is found, page_
count_p is a pointer to the number of pages in the entire
document.
Errors Returned
CAM_EE_FILE_NOT_FOUND
The specified file is not in the cache.
See Also
“CAM_add_file()” on page 697
CAM_get_attr()
CAM_get_attr() gets an attribute of a local cache object. If multiple
applications might access the same local cache object at the same time, use
this function to check whether the object is busy before you call functions such
as IAFLIB_get_object() or CAM_find_file().
Of the five attributes you can get, the most important is CAM_attr_xact_busy.
If CAM_attr_xact_busy is TRUE, the object has not yet been fully written into
the local cache.
CAM_add_file() can append data into a local cache one part at a time.
Because of this, there is a period during which CAM_find_file() or IAFLIB_
get_object() can return a file name before the object is fully written to the local
cache. Therefore, you receive the CAM_EE_XACT_BUSY error when you use
the file as though it contained the whole object. Call CAM_get_attr() when you
want your application to proceed without waiting until the whole object is
written to the local cache.
CAM_init()
Loop2
Loop1
Use the data
CAM_add_file() Local (You can start to
CAM_get_attr()
CAM_set_attr() cache paint before the
whole file is added
to local cache.)
CAM_exit()
Loop1 adds the data one part at a time into the local cache while Loop2 uses
the available data one part at a time.
Note You must call CAM_init() exactly once before using CAM_get_file().
1 Read an object.
4 Compare the computed checksum with the original checksum. If the two
checksums are not the same, the read object is different from the original
object. The object might have been corrupted during the device
I/O or network transfer.
Syntax
#include <cam.i>
Parameters
ssn unsigned long input. SSN of object. The special values ASE_
LOCAL_SSN or ASE_INVALID_SSN match any ssn.
Errors Returned
CAM_EE_INVALID_ATTR
The attribute specified by attr_typ is not valid.
CAM_EE_XACT_BUSY
The object is busy. This error usually occurs when the object is not yet
completely written to the local cache.
See Also
“CAM_add_file()” on page 697
CAM_init()
CAM_init() increments an internal client count that CAM uses to determine
whether the temporary files in the cache should be deleted. Each application
that uses CAM should call it exactly once during initialization.
Syntax
#include <cam.i>
CAM_set_attr()
CAM_set_attr() sets an attribute of a local cache object. When using CAM_
add_file() to append an object into a local cache file one part at a time, use
CAM_set_attr() to set the attributes of the object to indicate the current status
of the object. This prevents other applications from treating the file as though
it contained the whole object.
Use this function when you want other applications to wait to use the whole
object until it is written into the local cache. For more information, see “CAM_
get_attr()” on page 703.
Note You must call CAM_init() exactly once before using CAM_get_file().
Syntax
#include <cam.i>
Parameters
ssn unsigned long input. SSN of object. The special values ASE_
LOCAL_SSN or ASE_INVALID_SSN match any ssn.
See Also
“CAM_add_file()” on page 697
CS_compute_csum()
CS_compute_csum() computes the checksum of the specified data and
returns it in csum. If a data object has been divided into more than one piece,
for example, in two buffers, use the following method to compute the total
checksum:
The computed checksum is in a format native to the local machine and should
be serialized across the network as a long word. If the local machine cannot
handle bigender format, long-swap the checksum before storing it on media
that must be in bigender format.
For applications other than checksumming images, buf_p does not need to be
on a 4 byte boundary, but “ptr modulo 4” must be the same each time CS_
compute_csum() is called.
Set Checksum
The checksum should be created as soon as the object is created. For
example, if the object (an image) is created from a PC, the checksum should
be computed and set right after the image verification state. The steps
include:
1 Read an image.
5 Commit the batch. Be aware that every image in the batch must be closed by
BES_close_csum_image(), otherwise, none of the images will contain
checksums after the committal.
Get Checksum
When copying an object from a server to a PC, IAFLIB_get_object() stores the
original checksum in CAM_attr_csum using CAM_set_attr(). IAFLIB_get_
object() also computes the checksum of the read image to make sure the
image data is not corrupted during the network transfer. If the PC-computed
checksum is not the same as the original checksum, the function returns the
CSM_invalid_checksum error.
2 After you have moved the image from one device to another, read the image.
4 Compare the computed checksum with the original checksum to test for
corruption.
Syntax
#include <cs.i>
Parameters
buf_p PSTR input. Pointer to data buffer.
See Also
“BES_close_csum_image()” on page 631
CSM_close_object()
CSM_close_object() closes an object in the server cache and zeroes the
handle in oh (open object handles are never zero).
If the update parameter is FALSE, the attributes (not data) of the object are
not updated; these attributes are cur_length, last_read, duration, security, and
client_attr. Therefore, calls to CSM_modify_object() made while this object
was open do not change the value of these attributes when update is FALSE.
Syntax
#include <iaflib.i>
Parameters
handle ASE_session_number_typ input. The server cache handle
returned from CSM_logon().
See Also
“CSM_logon()” on page 715
CSM_delete_object()
CSM_delete_object() deletes the object(s) indicated. This action deletes an
object from a non-reference count cache and decrements the reference count
by 1 for a reference count cache. The object is physically removed from a
reference count cache only when the reference count is 1 prior to this call.
The caller must be logged on to the server cache with DELETE access.
Syntax
#include <iaflib.i>
Parameters
handle ASE_session_number_typ input. The server cache handle
returned from CSM_logon().
1. object_p->page == CSM_ALL_PAGES
See Also
“CSM_logon()” on page 715
CSM_logoff()
CSM_logoff() closes a connection to the Cache Services Manager. Any object
which is open on this handle is closed. Any CSM transaction in progress on
this handle is terminated.
Syntax
#include <iaflib.i>
Parameters
handle ASE_session_number_typ input. Handle for the cache
service returned from CSM_logon().
See Also
“CSM_logon()” on page 715
CSM_logon()
CSM_logon() establishes a connection to the Cache Services Manager.
Syntax
#include <iaflib.i>
Parameters
credential_p PSTR. Input. ID of system logged on to the IMS server.
session_number
ASE_session_number_typ * output. Handle for the cache
service.
See Also
“ASE_service_name_typ” on page 178
CSM_modify_object()
CSM_modify_object() alters the attributes of an object in the server cache.
Syntax
#include <iaflib.i>
Parameters
number ASE_session_number_typ input. The server cache handle
returned from CSM_logon().
See Also
“CSM_logon()” on page 715
CSM_open_object()
CSM_open_object() opens an object in the server cache. An object must be
opened before it can be read.
Syntax
#include <iaflib.i>
Parameters
handle ASE_session_number_typ input. The server cache handle
obtained from CSM_logon().
1. object_p->page == CSM_ALL_PAGES
See Also
“CSM_logon()” on page 715
CSM_read_object()
CSM_read_object() reads data from an object in the server cache. Reads the
number of bytes requested from the specified offset in the object. If the read
passes the end of the object, but starts within the object, *bytes_read_p
equals the object size minus the starting offset and no error is returned. If the
read starts past the end of the object, a CSM_out_of_range error is returned.
Syntax
#include <iaflib.i>
Parameters
number ASE_session_number_typ input. The server cache handle
returned from CSM_logon().
offset unsigned long input. The offset at which the read should
start.
See Also
“CSM_logon()” on page 715
CSM_renew()
CSM_renew() re-establishes a connection to the Cache Services Manager
when there is a disconnect without logoff.
Syntax
#include <iaflib.i>
Parameters
credential_p PSTR input. ID of system logged onto the IMS server.
session_number
ASE_session_number_typ output. Handle for the cache
service.
See Also
“ASE_service_name_typ” on page 178
DISPLIB_close_object()
DISPLIB_close_object() closes any FileNet banded image file opened by
DISPLIB_get_band_bitmap(). It leaves the file open after a call to DISPLIB_
get_band_bitmap() with a file status parameter of DISP_INIT_FILE.
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
call to DISPLIB_init_handle().
See Also
“DISPLIB_get_band_bitmap()” on page 727
DISPLIB_free_handle()
DISPLIB_free_handle() frees memory allocated for a DISPLIB context handle
obtained from a prior call to DISPLIB_init_handle().
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. The DISPLIB context handle obtained from a
call to DISPLIB_init_handle().
See Also
“DISPLIB_init_handle()” on page 730
DISPLIB_free_object()
DISPLIB_free_object() frees an object previously registered with DISPLIB_
register_object().
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
prior call to DISPLIB_init_handle().
See Also
“DISPLIB_init_handle()” on page 730
DISPLIB_get_attr()
DISPLIB_get_attr() retrieves the specified attribute for a currently-registered
object. Before you call this function, you must call DISPLIB_register_object()
to register the object. If you do not register the object, this function returns an
error (DISPLIB_not_registered).
Specify all size attributes with a POINT structure. Specify all scaling factors
with a RECT structure as in the scaling rectangle passed into DISPLIB_paint_
object(). All other attributes are of type WORD.
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
prior call to DISPLIB_init_handle().
See Also
“DISPLIB_init_handle()” on page 730
DISPLIB_get_band_bitmap()
DISPLIB_get_band_bitmap() returns a Windows bitmap object containing the
requested band in a format suitable for use in a SelectObject, BitBlt sequence
of GDI calls. It reads the band from the specified file and decompresses and
scales it, as needed, based on the other input parameters.
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
prior call to DISPLIB_init_handle().
file_status BOOL (int) input. Set status to DISP_INIT_FILE for the first
DISPLIB_get_band_bitmap() call per file name to read the
entire header and fill in general image related structures. Use
DISP_SAME_FILE for subsequent calls to optimize
performance. Note that DISPLIB_paint_object() performs all
optimizations in a manner that is transparent to the client.
bitmap_h_p HBITMAP * output. Pointer to the handle for the bitmap. Must
be freed by calling DISPLIB_close_object() before changing
to new image.
See Also
“DISPLIB_close_object()” on page 723
DISPLIB_get_format()
DISPLIB_get_format() returns the format of the object. The file type
recognition algorithm is the same as that used by DISPLIB_paint_object() or
DISPLIB_register_object() with a DISPLIB_unknown file format parameter.
Syntax
#include <displib.i>
Parameters
file_name PSTR input. File name of object.
See Also
“DISPLIB_paint_object()” on page 733
DISPLIB_init_handle()
DISPLIB_init_handle() allocates memory for a DISPLIB context and returns a
handle to the memory. It must eventually be called to free the allocated
memory.
Syntax
#include <displib.i>
Parameters
disp_h_p HANDLE * output. Pointer to the DISPLIB context handle for
subsequent DISPLIB functions.
See Also
“DISPLIB_free_handle()” on page 724
DISPLIB_paint_bitmap()
DISPLIB_paint_bitmap() paints a bitmap into the output display context in
ps p using the specified parameters. Does not use StretchBlt, so color is not
retained in the operation.
Syntax
#include <displib.i>
Parameters
ps_p LPPAINTSTRUCT input. Pointer to the output paintstruct.
Only the hdc and rcPaint fields are used.
bitmap_h HBITMAP input. Handle for the bitmap to paint into output
display context.
x int input. x and y are the origins of the bitmap in output device
context. The unit is a pixel.
See Also
The sample application in the directory C:\FILENET\SAMPLE\IMAGE\.
DISPLIB_paint_object()
DISPLIB_paint_object() paints an object into an output device context. The
file can be in any of the formats shown in the following table. The second
column of the table indicates the constant name for the format.
PCX DISPLIB_pcx
Windows 2 bitmaps DISPLIB_bmp
Windows 3 device independent bitmaps DISPLIB_dib
FileNet forms DISPLIB_fn_pcform
FileNet COLD documents DISPLIB_fn_cold
FileNet banded images DISPLIB_fn_image
FileNet tiled images DISPLIB_fn_tiled
Windows 2 Microsoft Paint DISPLIB_msp
Note WAL for Windows supports some TIFF image formats. If you need more
information, contact FileNet for details about which TIFF image formats are
supported.
The function to which the yield_p parameter points is called before each band
is painted. This enables you to abort DISPLIB_paint_object() if, for example,
the user indicates that the object is no longer of interest. DISPLIB_paint_
object() sends to the yield_p function the client handle that was passed to it
when it was called. The yield_p function can:
To display the background image with the PCODE page, the DISPLIB_set_
retrieval() function must precede calls to DISPLIB_paint_object(). DISPLIB_
set_retrieval()’s retrieve_p parameter is a pointer to the function that
DISPLIB_paint_object() calls when it discovers that the PCODE page has a
background image. DISPLIB_paint_object() sends the client handle provided
in the DISPLIB_set_retrieval() function and information about the background
image to the retrieve_p function. This information is the system serial
number (SSN), document ID, and page number for the background image.
See “DISPLIB_retrieve_typ()” on page 739 for more information.
Return success (zero) and the file_name for the file containing the
background image. Then DISPLIB_paint_object() paints the background
image as well as the PCODE page.
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
prior call to DISPLIB_init_handle().
x int input. x and y are the origins of the bitmap in output device
context. The unit is a pixel.
See Also
“DISPLIB_init_handle()” on page 730
DISPLIB_register_object()
DISPLIB_register_object() registers an object for subsequent DISPLIB_paint_
object() calls by causing the header to be read and structures to be initialized
for optimized subsequent paints. The file name passed in doesn’t have to be
the same across subsequent DISPLIB_paint_object() calls, but the object
being displayed must be identical to the object being registered.
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
prior call to DISPLIB_init_handle().
DISPLIB_dib
DISPLIB_msp
DISPLIB_tiff
DISPLIB_jpeg
See Also
“DISPLIB_free_object()” on page 725
DISPLIB_retrieve_typ()
DISPLIB_retrieve_typ() is one of the callback type that retrieves a committed
FileNet banded image. DISPLIB handles COLD pages that contain embedded
references to FileNet banded images only in this way. The DISPLIB_set_
retrieval() function sends DISPLIB a handle (retrieve_h) to a function of the
DISPLIB_retrieve_typ() type. When the DISPLIB_paint_object() function
realizes that the PCODE page (COLD page) it is processing has an
embedded reference to a committed document (a background image), it calls
the function to which retrieve_p points and sends it to the client handle
provided earlier by the DISPLIB_set_retrieval() function. It also sends the
function to which retrieve_p points the system serial number (SSN), document
ID, and page number for the embedded document.
Syntax
#include <displib.i>
Parameters
retrieve_h HANDLE input. A client-supplied handle for the DISPLIB_
set_retrieval() function.
file_name PSTR output. The name of the file containing the retrieved
page.
See Also
“DISPLIB_paint_object()” on page 733
DISPLIB_set_attr()
DISPLIB_set_attr() sets attributes for the currently-registered object. You can
use it to set attributes such as scaling factors, display mode, and scale to fit.
You can also use this function to set two callback functions. For more
information about setting the DISPLIB_retrieve_cb() and DISPLIB_input_cb()
callback functions, see Chapter 6, “Data Types and Structures,” on page 163.
Before you call this function, you must first call DISPLIB_register_object() to
register the object. If you do not register the object, this function returns an
error (DISPLIB_not_registered).
Scale-to-Gray
When using gray-scaling, call DISPLIB_set_attr() with the DISP_ATTR_
HWND attribute. Pass in the window handle as the attribute value. Next, set
the SCALETOGRAY attribute. Do this before painting the object. For example:
Other Windows favor modes do not need the extra DISP_ATTR_HWND call.
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
prior call to DISPLIB_init_handle().
DISP_ATTR_SCALE_FACTORS
DISP_ATTR_FORMAT
DISP_ATTR_NATIVE_SIZE
DISP_ATTR_SCALED_SIZE
DISP_ATTR_RESOLUTION
DISP_ATTR_SCALE_TO_FIT
DISP_ATTR_FORM_HANDLE
DISP_ATTR_RETRV_CALLBACK
DISP_ATTR_INPUT_CALLBACK
DISP_ATTR_HWND
DISP_ATTR_FAVOR_MODE
DISP_ATTR_STORE_ROTATION
DISP_ATTR_TIFF_HANDLE
DISP_ATTR_UNSUPPORTED_TIFF
DISP_ATTR_EDIT_APPNAME
DISP_ATTR_EDIT_FILENAME
See Also
“DISPLIB_init_handle()” on page 730
DISPLIB_set_retrieval()
DISPLIB_set_retrieval() sets the retrieval callback function for all subsequent
DISPLIB_paint_object() calls using the current DISPLIB handle (disp_h) until
another DISPLIB_set_retrieval() function sends a new or a NULL callback
function.
Syntax
#include <displib.i>
Parameters
disp_h HANDLE input. A DISPLIB context handle obtained from a
prior call to DISPLIB_init_handle().
See Also
“DISPLIB_init_handle()” on page 730
DISPLIB_stretch_bitmap()
DISPLIB_stretch_bitmap() paints a bitmap (must be less than 64K) into the
output device context using a specified location. It can also stretch and rotate
the bitmap.
Syntax
#include <displib.i>
Parameters
hdc HDC input. Output device context.
x int input. x and y coordinates set the focal point of the bitmap
in the output device context. The function stretches from this
point. The function rotates the bitmap using this point as the
axis. The unit is a pixel.
Note This function does not use the Windows StretchBlt function. The color of the
bitmap is not retained in this operation.
DISPLIB_yield_typ()
DISPLIB_yield_typ() operates when called by DISPLIB_paint_object(), just
before each band is painted. If it returns success, DISPLIB_paint_object()
paints the band. If it returns an error, DISPLIB_paint_object() aborts the paint
and returns its error as the DISPLIB_paint_object() return value.
Syntax
#include <displib.i>
Parameters
yield_h HANDLE input. A client-supplied private handle passed into
DISPLIB_paint_object(). When NULL, a NULL handle is
used.
See Also
“DISPLIB_paint_object()” on page 733
DTM_addtime()
DTM_addtime() adds the period to which period_p points to the period to
which source_p points, returning the result in the date/time structure to which
answer_p points.
Syntax
#include <DTM.i>
Parameters
answer_p DTM_tm * output. Pointer to the date/time structure holding
the result date or time.
Note The three date/time structures must be distinct. The calculation cannot be
done in place; answer_p cannot be the same structure as either period_p or
source_p.
See Also
“DTM_tm” on page 254
DTM_asctime()
DTM_asctime() converts a date/time structure into a date or time string using
a given mask. It formats the date/time structure to which time_p points into the
string time_string, using the mask provided by mask.
Syntax
#include <DTM.i>
Parameters
time_string char * output. The time string.
mask char * input. The mask. See “DTM Masks” on page 251.
See Also
“DTM_tm” on page 254
DTM_ctime()
DTM_ctime() converts a date or time number to a date or time string using a
given mask. It formats the date or time to which time_num_p points into the
string time_string, using the mask provided by mask. Type specifies whether
time_num_p is a pointer to a date or a time. A date number is the number of
days from January 1, 1970. A time number is the number of seconds since
midnight January 1, 1970 Coordinated Universal Time (UCT, formerly called
Greenwich mean time).
Syntax
#include <DTM.i>
Parameters
time_string char * output. The date or time string.
mask char * input. The mask. See “DTM Masks” on page 251.
Notes
The buffer pointed to by time_string must be large enough to hold the output.
is the same as
is the same as
See Also
“DTMdate_typ” on page 253
DTM_date()
DTM_date() converts the current system time to a date or time string. The
string is formatted using the mask provided by mask and put in the string
time_string.
Syntax
#include <DTM.i>
Parameters
time_string char * output. The date or time string. time_string must be
large enough to hold the output.
mask char * input. The mask. See “DTM Masks” on page 251.
DTM_ftime()
DTM_ftime() converts the current system time to a date/time structure. It
returns the current date or time in time_p.
Syntax
#include <DTM.i>
Parameters
time_p DTM_tm * output. Pointer to the date/time structure.
See Also
“DTM_tm” on page 254
DTM_getdate()
DTM_getdate() converts a date or time string to a date/time structure. Any
part of the structure that is not specifically provided by the string receives data
from the current system time. For example, unless the string provides the day
of the year, the tm_yday part of the structure contains the number for the
current day of the year.
Syntax
#include <DTM.i>
Parameters
time_p DTM_tm * output. Pointer to the date/time structure.
mask char * input. The mask. See “DTM Masks” on page 251.
See Also
“DTM_tm” on page 254
DTM_getmask()
DTM_getmask() returns the system date or time mask.
Syntax
#include <DTM.i>
Parameters
mask char * output. The mask. See “DTM Masks” on page 251.
mask must be large enough to hold the output.
DTM_getmasklength()
DTM_getmasklength() returns the maximum length (including the terminating
NULL) of a string formatted with the given mask.
Syntax
#include <DTM.i>
Parameters
length_p int * output. Pointer to the maximum allowable length of the
given mask.
mask char * input. The mask. See “DTM Masks” on page 251.
DTM_gmtime()
DTM_gmtime() converts the date or time number to which tnum_p points into
a date/time structure to which time_p points, representing the equivalent
Coordinated Universal Time. Type specifies whether time_num_p is a pointer
to a date or to a time.
A date number is the number of days from January 1, 1970. A time number is
the number of seconds since midnight January 1, 1970 Coordinated Universal
Time.
Syntax
#include <DTM.i>
Parameters
time_p DTM_tm * output. Pointer to the date/time structure.
See Also
“DTMdate_typ” on page 253
DTM_gp()
DTM_gp() converts a date/time structure (containing local time) to a date or
time number.
A date number is the number of days from January 1, 1970. A time number is
the number of seconds since midnight January 1, 1970 Coordinated Universal
Time.
Syntax
#include <DTM.i>
Parameters
time_num_p DTMdate_typ * output. Pointer to the date or time number.
See Also
“DTMdate_typ” on page 253
DTM_gtime()
DTM_gtime() converts the date or time string time_string into the date or time
number to which time_num_p points, using the mask provided by mask. Type
specifies whether time_string is a date or a time string.
A date number is the number of days from January 1, 1970. A time number is
the number of seconds since midnight January 1, 1970 Coordinated Universal
Time.
Syntax
#include <DTM.i>
Parameters
time_num_p DTMdate_typ * output. Pointer to the date or time number.
mask char * input. The mask. See “DTM Masks” on page 251.
Notes
The following function calls are equivalent:
See Also
“DTMdate_typ” on page 253
DTM_localtime()
DTM_localtime() converts a date or time number to a date/time structure
representing the equivalent local time. type specifies whether time_num_p is
a pointer to a date or a time.
A date number is the number of days from January 1, 1970. A time number is
the number of seconds since midnight January 1, 1970 Coordinated Universal
Time.
Syntax
#include <DTM.i>
Parameters
time_p DTM_tm * output. Pointer to the date/time structure.
See Also
“DTMdate_typ” on page 253
DTM_stime()
DTM_stime() sets the system time to the specified date number. A date
number is the number of days from January 1, 1970.
Syntax
#include <DTM.i>
Parameters
tnum_p DTMdate_typ input. Pointer to the date number.
See Also
“DTMdate_typ” on page 253
DTM_subdate()
DTM_subdate() subtracts the time in period_p from the time in source_p,
returning the difference. answer_p is a pointer to the resulting date or time
number. type specifies whether answer_p is a pointer to a date or time.
A date number is the number of days from January 1, 1970. A time number is
the number of seconds since midnight January 1, 1970 Coordinated Universal
Time.
Syntax
#include <DTM.i>
Parameters
answer_p DTMdate_typ * output. Pointer to the date or time number.
See Also
“DTMdate_typ” on page 253
DTM_subtime()
DTM_subtime() subtracts the time in the structure to which period_p points
from the time in the structure to which source_p points, returning the result in
the structure to which answer_p points.
This can be used to determine the difference between two times or to obtain a
period that is a given amount of time earlier than a particular time. For
example, you can find the time that is 30 days earlier than today or find the
time difference between when a transaction was requested and when that
transaction was completed.
Syntax
#include <DTM.i>
Parameters
answer_p DTM_tm * output. Pointer to the date/time structure
containing the result.
See Also
“DTM_tm” on page 254
DTM_time()
DTM_time() converts the current system time to a date or time number. It
returns the number to which tnum_p points. type specifies date or time.
A date number is the number of days from January 1, 1970. A time number is
the number of seconds since midnight January 1, 1970 Coordinated Universal
Time.
Syntax
#include <DTM.i>
Parameters
tnum_p DTMdate_typ * (long) output. Pointer to the date or time
number.
Notes
err = DTM_CurrentTime(tnum_p);
is the same as
err = DTM_CurrentDate(tnum_p);
is the same as
See Also
“DTMdate_typ” on page 253
DTM_verifymask()
DTM_verifymask() sets the character to which status_p points to DTM_YES if
mask is a valid input mask. Otherwise, it sets it to DTM_NO.
Syntax
#include <DTM.i>
Parameters
status_p char * output. Pointer to the one-character return status.
mask char * input. The mask. See “DTM Masks” on page 251.
ERM_display_error()
ERM_display_error() displays a message box containing the caption app_
name, the error tuple, the error text (if found), a hand icon, and an OK button.
Syntax
#include <erm.i>
Parameters
parent_h HWND input. Window handle that is the parent of the
message box; can be NULL.
See Also
The sample code in most of the sample applications
ERM_get_error()
ERM_get_error() returns a text string corresponding to the specified error
tuple.
Syntax
#include <erm.i>
Parameters
err error_typ input. The error tuple.
text PSTR output. String containing error text. text must be large
enough to contain the error text;144 characters maximum.
ERM_log_error()
ERM_log_error() searches the erm index file for a matching error tuple. It logs
the error message in a log file and displays it as well, if you’ve specified this.
The error log file is specified in the logon.cfg file.
Syntax
#include <erm.i>
Parameters
parent_h HWND input. Window handle for the parent of the message
box.
ERM_log_event()
ERM_log_event() is the primary entry point for logging messages. It logs the
current time and the formatted string in a temporary file. It can also show it in
a window if LogWindow is set to 1 in the LOGON.CFG file. To use this
function, you must have the following setup in your LOGON.CFG file.
Note The syntax is unusual. In contrast to the usual syntax convention, use a
semicolon to mark the end of LogLevel, LogFile, and LogPermFile.
[Log]
LogLevel=1; ;1 is On; 0 is Off
LogFile=c:\filenet\temp.log; ;Temporary file
LogPermFile=c:\filenet\perm.log; ;Permanent file
LogFileSize=16 ;Temporary file size in Kbytes
LogWindow=1 ;1 means show window
LogWindowRows=16 ;Number of rows in the log window
LogPerm=1 ;1 means when temporary file is full,
;all data will be transferred (appended)
; to the permanent file
Syntax
#include <erm.i>
Parameters
err error_typ input. The error tuple.
remotely BOOL input. If TRUE, error is from the remote FileNet UNIX
server. If FALSE, error is from the PC.
FILLIN_bkg_commit()
FILLIN_bkg_commit() enqueues a fill-in request in the background process
queue (if background processing is enabled in the configuration file). To
enable the background processing, set the keyword BkgAllowed to 1 in the
[Fill-In Document] section of the configuration file (LOGON.CFG).
The form is committed as a FileNet PC Form type image. When you retrieve
the form image, the image retains its original color. You can use FORM_load_
file() to load the form image.
Syntax
#include <fillin.i>
Parameters
formlib_h HANDLE input. Session handle obtained from FORM_init().
batch_service_p
ASE_service_name_typ * input. Pointer to the NCH name
structure for the Batch Entry Service to use when committing
the filled-in form. If NULL, the system’s default batch service
is used.
form_name PSTR input. The name of the form that was filled in.
index_values_h
HANDLE input. Handle for an array of indices of type BES_
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errNoBkgAllowed
FILLIN error: Background committal disabled.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
FILLIN_errFileCreate
FILLIN error: Create file failed.
FILLIN_errWriteFailed
FILLIN error: Write file failed.
See Also
“FILLIN_bkg_commit_image()” on page 772
FILLIN_bkg_commit_image()
FILLIN_bkg_commit() enqueues a fill-in request in the background process
queue (if background processing is enabled in the configuration file). To
enable the background processing, set the keyword BkgAllowed to 1 in the
[Fill-In Document] section of the configuration file (LOGON.CFG).
The form is committed in the Group III banded image format. When you
retrieve the image, the color of the image is black and white only. For
performance reasons, we recommend that you use FILLIN_bkg_commit_
image().
To access the form field values, you must commit the form as a FileNet PC
Form type image.
Syntax
#include <fillin.i>
Parameters
formlib_h HANDLE input. Session handle obtained from FORM_init().
batch_service_p
ASE_service_name_typ * input. Pointer to the NCH name
structure for the Batch Entry Service to use when committing
the filled-in form. If NULL, the system’s default batch service
is used.
form_name PSTR input. The name of the form that was filled in.
index_values_h
HANDLE input. Handle for an array of indices of type BES_
ixval_desc_typ. The indices are defined by the document
class.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errNoBkgAllowed
FILLIN error: Background committal disabled.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
FILLIN_errFileCreate
FILLIN error: Create file failed.
FILLIN_errWriteFailed
FILLIN error: Write file failed.
See Also
“FILLIN_bkg_commit()” on page 770
FILLIN_commit()
FILLIN_commit() generates and commits the fill-in page for the form. The
form_h parameter must be a valid FormLib form handle. The fill-in page is
committed using the specified document class, Batch Service, and user
indices. If the BATCHLIB call succeeds, the document ID allocated is returned
in the doc_id parameter.
The form is committed as a FileNet PC Form type image. When you retrieve
the form image, the image retains its original colors. Use FORM_load_file() to
load the form image.
Syntax
#include <fillin.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle(). If NULL, IAFLIB_get_client_handle() is called.
batch_service_p
ASE_service_name_typ * input. Pointer to structure
containing NCH name of Batch Entry Service. Can be NULL
for default.
index_values_h
HANDLE input. Handle for an array of BES_ixval_desc_typ
structures.
dialog_h HWND input. Dialog window handle. Use this to show the
status message.
dialog_id WORD input. Dialog ID of the text field to which the message
will be sent.
concurrency BOOL input. If TRUE, does not return the error FILLIN_
errBkgInProgress if foreground and background committals
can be processed concurrently.
async_committal
BOOL input. If TRUE, the committal process is enqueued. If
FALSE, the committal process is immediate.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errBkgInProgress
FILLIN error: Foreground committals not allowed while background in
progress.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
See Also
“FILLIN_bkg_commit()” on page 770
FILLIN_commit_image()
FILLIN_commit() generates and commits the fill-in page for the form. The
form_h parameter must be a valid FormLib form handle. The fill-in page is
committed using the specified document class, Batch Service, and user
indices. If the BATCHLIB call succeeds, the document ID allocated is returned
in the doc_id parameter.
The form will be committed in the Group III banded image format. When you
retrieve the image, the color of the image is in black and white only. For
performance reasons, we recommend that you use FILLIN_bkg_commit_
image() instead of FILLIN_commit_image().
If you need to access the form field values, commit the form as a FileNet PC
Form type image. For more information, see “FILLIN_bkg_commit()” on
page 770 and “FILLIN_commit()” on page 774.
Syntax
#include <fillin.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle(). If NULL, IAFLIB_get_client_handle() is called.
batch_service_p
ASE_service_name_typ * input. Pointer to structure
containing NCH name of Batch Entry Service. Can be NULL
for default.
index_values_h
HANDLE input. Handle for an array of BES_ixval_desc_type
structures.
dialog_id WORD input. Dialog ID of the text field to which the message
will be sent.
async_committal
BOOL input. If TRUE, the committal process is enqueued. If
FALSE, the committal process is immediate.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errBkgInProgress
FILLIN error: Foreground committals not allowed while background in
progress.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
See Also
“FILLIN_bkg_commit()” on page 770
FILLIN_do_form()
FILLIN_do_form() synchronously executes a form. Softkeys for the form are
removed and Fill-in softkeys are installed.
Syntax
#include <fillin.i>
Parameters
form_h HANDLE input. Form handle.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
See Also
“FORM_Terminator_typ” on page 343
FILLIN_get_doc_class()
FILLIN_get_doc_class() gets the name of a document class from the user.
The selected document class is returned in the class_name parameter.
Syntax
#include <fillin.i>
Parameters
ims_p ASE_service_name_typ * input. Pointer to the NCH name
structure for the IMS storing the folder. If NULL, the default
IMS specified in IAFLIB_logon_user() is used.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
See Also
“IAFLIB_logon_user()” on page 1033
FILLIN_get_form_name()
FILLIN_get_form_name() gets a file name and form name from the end user.
Syntax
#include <fillin.i>
Parameters
file_service_p ASE_service_name_typ * input. Pointer to the structure
containing the NCH name of the remote File Service to use
when retrieving forms. If NULL, the system’s default remote
File Service is used.
form_name PSTR output. Name of the form that was input by the end
user.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
See Also
“ASE_service_name_typ” on page 178
FILLIN_index()
FILLIN_index() indexes the document using the document class specified by
the class_name parameter. The sys_index_values_p parameter is a pointer to
the default indices and the num_sys_indices parameter is the number of
default indices.
A handle for the values the user enters is returned in the user_index_values_
h_p pointer parameter and a pointer to the count of those indices is returned
in the num_user_indices_p parameter. The title parameter is the title
displayed in the caption of the indexing window.
If file_name and form_name parameters are specified, they are the custom
forms to use for indexing. If not specified, the logon configuration file is
checked to see whether a custom form is defined for the document class. If
one is defined, it is used; otherwise, a default form is used.
Syntax
#include <fillin.i>
Parameters
index_form_h HANDLE input. If NULL, default index form is used.
num_sys_indices
WORD input. Number of system indices.
sys_index_values_p
void * input. Pointer to system indices of type BES_ixval_
desc_typ.
file_name PSTR input. File name of the custom form. It can be NULL
when using default index form.
form_name PSTR input. Form name of the custom form. It can be NULL
when using default index form.
num_user_indices_p
WORD * output. Pointer to the number of indices from the
user.
user_index_values_h_p
HANDLE * output. Handle for a structure of type BES_ixval_
desc_type.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
See Also
“IAFLIB_logon_user()” on page 1033
FILLIN_local_print()
FILLIN_local_print() prints an uncommitted fill-in form locally.
Syntax
#include <fillin.i>
Parameters
form_h HANDLE input. Form handle for the form to be printed locally.
FILLIN_server_print()
FILLIN_server_print() prints an uncommitted fill-in form through Print
Services. If dialog_h and dialog_id are valid, a message is displayed.
Syntax
#include <fillin.i>
Parameters
form_h HANDLE input. Form handle for the form to be printed.
dialog_id WORD input. Static control ID within the dialog box where
status messages are displayed. Can be NULL.
Errors Returned
FILLIN_errBadParam
FILLIN error: Empty parameters passed.
FILLIN_errNoMemory
FILLIN error: Not enough memory.
FILLIN_errLockFailed
FILLIN error: Memory Lock failed.
FILLIN_errStartPrtSrv
FILLIN error: Unable to start Print Server.
FN_clear_index_form()
Clears indexing values.
Syntax
#include <indxform.i>
Parameters
form_h HANDLE input. The form handle. Obtained from FN_index_
form_init().
Errors Returned
INDXFORM_lock_err
Unable to lock memory block (low memory?)
See Also
“FN_index_form_init()” on page 798
FN_copy_file()
FN_copy_file() copies the source file to the destination file.
Syntax
#include <appinfo.i>
Parameters
source_file_name
PSTR input. Source file name.
dest_file_name
PSTR input. Destination file name.
Errors Returned
APPINFO_open_err
Document class not given in call to IAFLIB_index_form().
APPINFO_read_error
Document class has no user indices.
FN_custom_index_form()
Collects and validates indexing information for a document to be created. FN_
custom_index_form() is similar to FN_show_index_form(), but allows the use
of a pre-defined FormLib form.
Syntax
#include <indxform.i>
#include <BES.def>
Parameters
form_h HANDLE input. The form handle. Obtained from FN_index_
form_init().
title PSTR input. Title that appears in the caption area of the form
window. If title is NULL, the form title is used.
index_values1_p
void * input. Pointer to an array of initial values of type BES_
ixval_desc_typ.
num_indices2_p
WORD * output. Pointer to the number of items in index_
values2_h_p.
index_values2_h_p
HANDLE * output. Pointer to a handle for the array of values
of type BES_ixval_desc_typ.
Note The information from RDD about indices for the document class is assumed
to be consistent with the slightly more recent information obtained from the
batch header. This could be a problem if the database were to change while
the PC is logged on.
Errors Returned
INDXFORM_Bad_Dclass
Document class is not specified (or does not exist).
INDXFORM_lock_err
Unable to lock memory block (low memory?)
INDXFORM_no_memory
Not enough memory.
INDXFORM_no_indices
Document class has no user indices.
INDXFORM_user_cancel
User cancelled.
See Also
“FN_index_form_init()” on page 798
FN_get_app_info_int()
FN_get_app_info_int() returns an integer from the PCWS preferences file,
named in WIN.INI. This function is similar to the Windows function
GetProfileInt().
Syntax
#include <appinfo.i>
Parameters
app_name PSTR input. The preference file name.
FN_get_app_info_string()
FN_get_app_info_string() copies a character string (from the LOGON.CFG
file named in the [FileNet PCIS] section in the Windows WIN.INI file) into the
string value. This function is similar to the Windows GetProfileString()
function; FN_get_app_info_string()’s return value is an error tuple, as
contrasted with GetProfileString(), which returns the count of copied
characters. If key_name is NULL, the function fills value with the list of key
names (but not the values) associated with app_name. Each key name in the
list is null-terminated.
Syntax
#include <appinfo.i>
Parameters
app_name PSTR input. The preferences app name.
default PSTR input. A value for the key word. When the key_name
specified is not in the preferences file, default is returned as
value.
size short input. The number of characters (including the last null
character) copied to value.
FN_get_window_pos()
FN_get_window_pos() gets the window position and style from the PCWS
preferences file named in the WIN.INI file.
The expected format of the window position and style in the PCWS
preferences file is:
[<app_name>]
<key_name> = 207,149,373,299,0,0
The first four numbers specify the window position and the last two indicate
whether the window is minimized or maximized. Call FN_set_window_pos() to
save the window position in this format.
Syntax
#include <appinfo.i>
Parameters
app_name PSTR input. The preferences file name.
show_style_p WORD * output. Pointer to the show style. Can be one of the
following:
SW_SHOWNORMAL
SW_SHOWMINIMIZED
SW_SHOWMAXIMIZED
FN_index_form()
FN_index_form() collects and validates indexing information for a document to
be created by displaying an indexing form window.
parent_h is the parent window of the indexing form. title is the text to appear in
the caption bar of the indexing form window.
Syntax
#include <indxform.i>
#include <bes.def>
Parameters
parent_h HWND input. Window handle for the parent of the indexing
form.
title PSTR input. The text that appears in the caption bar of the
indexing form window (the form name).
num_indices_p
WORD * output. Number of indices in index_values_h_p.
index_values_h_p
HANDLE * output. Pointer to a handle for the indices values
(structure of type BES_ixval_desc_typ).
Note The information from RDD about indices for the document class is assumed
to be consistent with the slightly more recent information obtained from the
batch header. This could be a problem if the database were to change while
the PC is logged on.
Errors Returned
INDXFORM_Bad_Dclass
Document class is not specified (or does not exist).
INDXFORM_lock_err
Unable to lock memory block (low memory?)
INDXFORM_no_memory
Not enough memory.
INDXFORM_no_indices
Document class has no user indices.
INDXFORM_user_cancel
User cancelled.
See Also
“BATCHLIB_BatchEntry()” on page 604
FN_index_form_exit()
FN_index_form_exit() frees all the resources allocated to the index form. The
handle is invalid on return from this.
Syntax
#include <indxform.i>
Parameters
error_typ CALLBACK FN_index_form_exit(form_h);
Errors Returned
INDXFORM_lock_err
Unable to lock memory block (low memory?)
See Also
“FN_index_form_init()” on page 798
FN_index_form_init()
Allocates and initializes data for the index form. parent_h is the window
handle for the parent window. The returned form handle is used by:
FN_clear_index_form()
FN_custom_index_form()
FN_index_form_exit()
FN_index_verify()
FN_show_index_form()
Syntax
#include <indxform.i>
Parameters
error_typ CALLBACK FN_index_form_init(parent_h, ims_p, form_h_p);
form_h_p PHANDLE output. Pointer to the form handle for the index
form.
Errors Returned
INDXFORM_no_memory
Not enough memory.
INDXFORM_lock_err
Unable to lock memory block (low memory?)
See Also
“FN_clear_index_form()” on page 788
FN_index_handle_to_text()
Converts form handle returned from FN_show_index_form() or FN_custom_
index_form() to a text-formatted string of index descriptions. This function
makes it possible to call index form from external programs such as Microsoft
Word for Windows.
Syntax
#include <indxform.i>
#include <bes.def>
Parameters
form_h HANDLE input. The form handle returned by FN_index_
form_init().
index_values_h
HANDLE input. Handle for an array of values of type BES_
ixval_desc_typ.
Note The information from RDD about indices for the document class is assumed
to be consistent with the slightly more recent information obtained from the
batch header. This could be a problem if the database were to change while
the PC is logged on.
Errors Returned
INDXFORM_bad_client_handle
Invalid client handle.
INDXFORM_no_memory
Not enough memory.
INDXFORM_lock_err
Unable to lock memory block (low memory?)
INDXFORM_no_indices
Document class has no user indices.
INDXFORM_bad_index_data
Invalid index data.
See Also
“FN_custom_index_form()” on page 790
FN_index_text_to_handle()
Converts a text-formatted string of index descriptions into a form suitable for
input to FN_show_index_form() or FN_custom_index_form(). This function
makes it possible to call index form from external programs such as Microsoft
Word for Windows.
Syntax
#include <indxform.i>
#include <bes.def>
Parameters
form_h HANDLE input. The form handle returned by FN_index_
form_init().
index_values_h_p
PHANDLE output. Pointer to handle to an array of values of
type BES_ixval_desc_typ.
Note The information from RDD about indices for the document class is assumed
to be consistent with the slightly more recent information obtained from the
batch header. This could be a problem if the database changes while the PC
is logged on.
Errors Returned
INDXFORM_bad_client_handle
Invalid client handle.
INDXFORM_no_memory
Not enough memory.
INDXFORM_lock_err
Unable to lock memory block (low memory?)
INDXFORM_no_indices
Document class has no user indices.
INDXFORM_bad_index_data
Invalid index data.
See Also
“FN_custom_index_form()” on page 790
FN_index_verify()
FN_index_verify() displays a form that enables the user to compare the
original index values to those just entered in index verification. The form
shows values from index_values1_p and index_values2_p, and returns the
user’s final choices in index_values3_h_p.
Syntax
#include <indxform.i>
#include <bes.def>
Parameters
form_h HANDLE input. The form handle returned by FN_index_
form_init().
index_values1_p
BES_ixval_desc_typ * input. Pointer to an array of initial
values of type BES_ixval_desc_typ.
index_values2_p
BES_ixval_desc_typ * input. Pointer to an array of second-try
values of type BES_ixval_desc_typ.
num_indices_p
WORD * output. Number of items in index_values3_h_p.
index_values3_h_p
PHANDLE output. Handle for an array of values of type BES_
ixval_desc_typ.
Errors Returned
INDXFORM_Bad_Dclass
Document class is not specified (or does not exist).
INDXFORM_lock_err
Unable to lock memory block (low memory?)
INDXFORM_no_memory
Not enough memory.
INDXFORM_no_indices
Document class has no user indices.
See Also
“FN_index_form_init()” on page 798
FN_save_index_form()
FN_save_index_form() saves an index form. If hFormSess is NULL, the
created form is saved to the file specified by file_name. When a valid form_
session_h is provided, the form is generated using this handle. It is also saved
to a file if a file name is provided. If ObjectName is NULL, class_name is used
as the object name.
Syntax
#include <indxform.i>
Parameters
form_session_h
HANDLE input. The FORMLIB session handle. Can be
obtained from FORM_init(). If NULL, FORM_init() is called to
get the session handle.
form_name PSTR input. Name of the index form. If NULL, the class_
name name is used as the form name.
Note The information from RDD about indices for the document class is assumed
to be consistent with the slightly more recent information obtained from the
batch header. This could be a problem were the database to change while the
PC is logged on.
Errors Returned
INDXFORM_Bad_Dclass
Document class is not specified (or does not exist).
INDXFORM_lock_err
Unable to lock memory block (low memory?)
INDXFORM_no_memory
Not enough memory.
INDXFORM_no_indices
Document class has no user indices.
See Also
“FORM_init()” on page 892
FN_set_app_file()
FN_set_app_file() sets the appinfo file name, allowing alternate files to be
used. A file_name of NULL sets the file name back to the default
(LOGON.CFG, specified in WIN.INI).
Syntax
#include <appinfo.i>
Parameters
file_name PSTR input. The full path name of the PCWS preferences
file.
Errors Returned
APPINFO_no_logon_cfg
Log on configuration file not found.
FN_set_app_info()
FN_set_app_info() copies a string into the PCWS preferences file specified in
WIN.INI. It searches for the value of key_name under the application heading
specified by app_name. When there is no match, it adds a new string entry to
the user profile. If there is a matching key, the function replaces that key’s
value with key_value.
Syntax
#include <appinfo.i>
Parameters
app_name PSTR input. The name of PCWS preferences file. If NULL,
the default file specified in WIN.INI is used.
FN_set_window_pos()
FN_set_window_pos() saves the position and style of the window to the
PCWS preferences file specified in WIN.INI. The position and style are saved
only if wnd_h is a handle for a valid window.
Syntax
#include <appinfo.i>
Parameters
app_name PSTR input. The preferences file name.
FN_show_index_form()
Collects and validates indexing information for a document to be created.
Syntax
#include <indxform.i>
Parameters
form_h HANDLE input. The form handle returned by FN_index_
form_init().
index_values_p
void * input. Pointer to an array of initial index values of type
BES_ixval_desc_typ.
show_indices1
FN_BOOL input. TRUE to show initial values. FALSE to save
them for “Last Value” softkey processing.
num_indices2_p
WORD * output. Pointer to a number of items in index_
values2_h_p.
index_values2_h_p
HANDLE * output. Pointer to a handle for an array of index
values of type BES_ixval_desc_typ.
Note The information from RDD about indices for the document class is assumed to
be consistent with the slightly more recent information obtained from the
batch header. This could be a problem were the database to change while the
PC is logged on.
Errors Returned
INDXFORM_Bad_Dclass
Document class is not specified (or does not exist).
INDXFORM_lock_err
Unable to lock memory block (low memory?)
INDXFORM_no_memory
Not enough memory.
INDXFORM_no_indices
Document class has no user indices.
See Also
“FN_index_form_init()” on page 798
FN_show_new_values_in_form()
FN_show_new_values_in_form() dynamically updates the index values with
the new values in the executing indexing form. You must call FN_show_index_
form() or FN_custom_index_form() to display the form prior to calling this
function.
This function is usually used to display the index values for variouis
documents without closing and reopening the same index form. For each new
document, get the new index value descriptor and pass it to FN_show_new_
values_in_form(). The new values will be shown in the previously shown form.
Syntax
#include <indxform.i>
Parameters
form_h HANDLE input. The form handle returned by FN_index_
form_init().
Errors Returned
INDXFORM_lock_err
Unable to lock memory block (low memory?).
See Also
“FN_custom_index_form()” on page 790
FNP_exit()
FNP_exit() frees all resources requested by FNPRINT. Call it once before the
client application terminates.
Syntax
#include <fnprint.i>
Parameters
print_data_h HANDLE input. Data handle obtained from FNP_init().
Error Returned
FNP_BAD_HANDLE
FNP error: Invalid data handle.
See Also
“FNP_init()” on page 816
FNP_init()
FNP_init() allocates enough memory for an FNP_data data structure and fills
it with the corresponding information. Call it once for each client application.
Syntax
#include <fnprint.i>
Parameters
client_h HWND input. Window handle of the client application.
See Also
“FNP_data” on page 265
FNP_print()
FNP_print() prints a list of documents.
Syntax
#include <fnprint.i>
Parameters
doc_list_p FNP_request_typ * input. Pointer to the array of FNP_
request_typ data structures.
Errors Returned
FNP_BAD_HANDLE
FNP error: Invalid date handle.
FNP_LOCK
FNP error: Unable to lock memory.
See Also
“FNP_init()” on page 816
FNP_print_form_page()
FNP_print_form_page() prints a form page.
Syntax
#include <fnprint.i>
Parameters
form_h HANDLE input. Handle to the form.
Errors Returned
FNP_BAD_FORM
FNP error: Invalid form handle.
FNP_CANNOT_START_DOC
FNP error: Unable to print document.
FNP_LOCK
FNP error: Unable to lock memory.
See Also
“FNP_init()” on page 816
FNP_print_from_file()
FNP_print_from_file() prints a FileNet formatted image by specifying the DOS
file name. This function is designed to be interactive; therefore, it is
implemented only in synchronous mode.
Syntax
#include <fnprint.i>
Parameters
file_name PSTR input. File name of a FileNet formatted image.
Errors Returned
FNP_OPEN_FILE
FNP error: Unable to open file.
FNP_CANNOT_START_DOC
FNP error: Unable to print document.
FNP_LOCK
FNP error: Unable to lock memory.
See Also
“FNP_init()” on page 816
FORM_add_named_rule()
FORM_add_named_rule() adds a rule to a form. The rule is associated with
the field field_name. If field_name is NULL, the rule is associated with the
form.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
Errors Returned
FORM_errCannotLockMem
Cannot lock memory handle.
FORM_errObjNotFound
Object not found.
FORM_errBadObject
Invalid object.
FORM_errFieldNotFound
Field not found.
FORM_errBadAttrForFieldType
Invalid attribute for field type.
FORM_errInvalidFieldType
Invalid field type.
FORM_errNoMemory
Not enough memory.
See Also
“FORM_add_rule()” on page 823
FORM_add_rule()
FORM_add_rule() adds a rule to a form. The rule is associated with the field
field_name. If field_name is NULL, the rule is associated with the form.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
Errors Returned
FORM_errCannotLockMem
Cannot lock memory handle.
FORM_errObjNotFound
Object not found.
FORM_errBadObject
Invalid object.
FORM_errFieldNotFound
Field not found.
FORM_errBadAttrForFieldType
Invalid attribute for field type.
FORM_errInvalidFieldType
Invalid field type.
FORM_errNoMemory
Not enough memory.
See Also
“FORM_add_named_rule()” on page 821
FORM_append_item()
FORM_append_item() appends a NULL-terminated string to a list. This call is
used to accumulate list items; you must use FORM_install_list() to associate
the item list with the created listbox or combobox.
The first time this call is made for a given list, num_item_p, next_offset_p, and
max_line_p should all point to zero and items_h_p and itemlist_h should point
to NULL. The return values of these parameters should be passed in on
subsequent calls.
Syntax
#include <formlib.i>
Parameters
item PSTR input. A null-terminated string containing the value of
the item.
index WORD input. The position of the item to insert, zero being
first. If 0xFFFF, item is added to the end.
ignore_case BOOL input. If TRUE, the sort order of upper case and lower
case letters is treated equally.
new_index_p WORD * output. The index to the new item in the box. Can be
NULL if the caller does not need the new index number.
See Also
“FORM_install_list()” on page 893
FORM_bind_val_func()
FORM_bind_val_func() binds a function to a validation function name for the
form associated with form_h. This is necessary only if the address of the
function was not bound previously by another method. FORMLIB uses the last
binding made.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
parameter DWORD input. The extra parameter that you want to pass to
the validation function.
Errors Returned
FORM_errNullPointer
Null pointer.
FORM_errFuncNameRequired
Function name required.
FORM_errCannotLockMem
Cannot lock memory handle.
FORM_errBadObject
Invalid object.
FORM_errInvalidFieldType
Invalid field type.
See Also
“FORM_create_object()” on page 853
FORM_box_add_item()
FORM_box_add_item() adds an item to a listbox or combobox field. If the box
is sorted, index is ignored and the item is added to the box in sort order. If the
box is not sorted, index is the position at which to insert the item, zero being
first. index of 0xFFFF adds the item to the end of an unsorted box.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
index WORD input. The position of the item to insert, zero being
first. If 0xFFFF, item is added to the end.
new_index WORD * output. Returns the index to the new item in the box.
Can be NULL if the caller doesn’t need the new index.
See Also
“FORM_create_object()” on page 853
FORM_box_delete()
FORM_box_delete() deletes an item (or all items) from a listbox or combobox
field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
index WORD input. The position of the item to delete, zero being
first. If 0xFFFF, delete all items.
See Also
“FORM_create_object()” on page 853
FORM_box_directory()
FORM_box_directory() adds a list of files from the current directory to a
listbox or combobox field. Only files with attributes specified by file_attr and
matching file_spec are added.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
num_items_p WORD * output. Returns the count of items in the list. Can be
NULL if the caller doesn’t need the count.
See Also
“FORM_create_object()” on page 853
FORM_box_find_item()
FORM_box_find_item() finds the first item that matches the specified string.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
index WORD * output. If found, returns the index of the item. If not
found, returns 0xFFFF.
See Also
“FORM_create_object()” on page 853
FORM_box_get_count()
FORM_box_get_count() returns the count of items in a listbox or combobox
field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_box_get_sel()
FORM_box_get_sel() returns the current selection in a single-selection listbox
or combobox field. It returns the selection state of an item in a multiple-
selection listbox.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_box_get_sel_count()
FORM_box_get_sel_count() returns the number of selected items in a listbox
or combobox field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_box_get_text()
FORM_box_get_text() returns in text the NULL-terminated string data for the
item specified by index in a listbox or combobox field. text must point to a
buffer big enough to hold the string and the NULL-terminator.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_box_get_text_len()
FORM_box_get_text_len() returns in length_p a pointer to the length of the
NULL-terminated string data for the item specified by index in a listbox or
combobox field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
length_p WORD * output. Pointer to the length of the string value of the
item (does not include the NULL-terminator).
See Also
“FORM_create_object()” on page 853
FORM_box_match_item()
FORM_box_match_item() finds the first item that matches the supplied prefix
string.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
index WORD * output. If found, returns the index of the item. If not
found, returns 0xFFFF.
See Also
“FORM_box_find_item()” on page 832
FORM_box_select_list()
FORM_box_select_list() sets or clears a list of items in a multi-selection
listbox.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
select WORD input. Input non-zero to select the items. Input zero to
deselect the items.
See Also
“FORM_create_object()” on page 853
FORM_box_set_default()
FORM_box_set_default() adds an item (or all items) to or removes an item (or
all items) from the default value of a multiple-selection listbox.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_box_set_sel()
FORM_box_set_sel() sets the current selection in a single-selection listbox or
combobox field. It sets the selection state of an item (or all items) in a
multiple-selection listbox. If the box is a single-selection listbox or combobox,
index specifies the item to be selected, or 0xFFFF if the box is to have no
selection. If the box is a multiple-selection listbox, index specifies the item to
have its selection state changed, or 0xFFFF if all items are to be changed.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_change_menu_item()
FORM_change_menu_item() changes an existing item in a menu. The menu
handle and code identify the item to change. desc and style are set to the new
values. code is the character that is returned when the menu item has been
selected. It cannot be changed with this function.
desc is the text that is displayed in the menu when the form is executed. If
NULL, desc is left unchanged. Both desc and code must be unique within a
menu.
Syntax
#include <formlib.i>
Parameters
menu_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_check_syntax()
FORM_check_syntax() checks syntax for a rule expression. It returns the data
type of the expression’s value if it has valid syntax.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_clear()
FORM_clear() clears the rectangular area specified on the character map for
the form associated with form_h. If to_x or to_y exceeds the number of
columns or rows respectively, it is assumed to be that number. All row and
column values are in 1/100ths of a unit. For example, to clear from row 3,
column 4 through row 9, column 10, use from_x = 400, from_y = 300, to_x =
1000, to_y = 900.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_clear_field_value()
FORM_clear_field_value() resets a field to the appropriate undefined state. If
ignore_style is TRUE, the field style is ignored; otherwise, the field is cleared
only if input is allowed.
allow_ui only applies to signature fields. If allow_ui is TRUE and the field to be
cleared is a signature field, the user (through the UI) can clear the field.
Otherwise, the user cannot clear the field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_clear_form_values()
FORM_clear_form_values() resets all input fields in the form to their
appropriate undefined state. If ignore_style is TRUE, all fields are cleared;
otherwise, only fields that can accept input are cleared.
allow_ui applies only to signature fields. If allow_ui is TRUE and the field to be
cleared is a signature field, the user (through the UI) can clear the field.
Otherwise, the user cannot clear the field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
allow_ui FN_BOOL input. If TRUE, user can clear through the user
interface.
See Also
“FORM_create_object()” on page 853
FORM_clone_form()
FORM_clone_form() adds an exact copy of a form to the same session as the
original. The clone form is flagged and will not be found by name. The original
is unchanged. The clone form does not appear in the object list returned by
FORM_get_object_list().
Syntax
#include <formlib.i>
Parameters
original_h HANDLE input. The original form handle.
See Also
“FORM_get_object_list()” on page 887
FORM_close_object()
FORM_close_object() frees the resources associated with an object of type
form, menu, menu bar, or validation table. For object type form, it recursively
frees the resources associated with its fields.
Syntax
#include <formlib.i>
Parameters
object_h HANDLE input. Handle for the object obtained from FORM_
create_object() or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_close_volatile_objects()
FORM_close_volatile_objects() closes all objects in the session that are
marked as volatile. A volatile object is defined as one that has been loaded
internally.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_create_field()
FORM_create_field() adds a field with type specified by the type parameter to
the form accessed through form_h.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
struct_p void * input. A pointer to the field structure that contains all
the attributes necessary to create the field. The actual
structure to which it points is determined by the value of type.
There is a field structure for each field type.
See Also
“FORM_create_object()” on page 853
FORM_create_object()
FORM_create_object() creates an object of the type specified by the type
parameter and returns a handle for the object. The object is identified by its
name and type. session_h is a handle obtained from FORM_init(). The object
handle returned is required by other FORMLIB functions.
When the object is created, it is has all default attributes. Use FORM_set_
object_attr() to change the attributes.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_default_field_value()
FORM_default_field_value() sets the value of the specified input field in the
form accessed through form_h to its default value. For date and time fields, if
the default value is the undefined value, this function sets the value to the
current date or time, respectively.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
ignore_style FN_BOOL input. If FALSE, only those fields that can accept
input are changed to the appropriate default values.
See Also
“FORM_create_object()” on page 853
FORM_default_form_values()
FORM_default_form_values() sets the value of all input fields in the form
accessed through form_h to their default values. If ignore_style is FALSE,
only those fields that can accept input are changed to the default value;
otherwise, all fields, regardless of style, are changed to the default. For date
and time fields, if the default value is the undefined value, this function sets
the value to the current date or time, respectively.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
ignore_style FN_BOOL input. If TRUE, all fields are set to default values. If
FALSE, only those fields that can accept input are set to
default values.
See Also
“FORM_create_object()” on page 853
FORM_delete_field()
FORM_delete_field() deletes a field from a form. field_name identifies the
field to be deleted. When the field is deleted, the ordinals of the other fields in
the form are adjusted to close the gap.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_do_form()
FORM_do_form() executes the form associated with form_h, displaying all the
visible features in a window, accepting user input in the input fields, and
calling any validation functions as appropriate. If the form is hidden, it is made
visible before execution.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
next_field PSTR input. The current field at the start of the execution. If
NULL or empty, the first field in the form is used.
terminator_field
PSTR input. The name of the terminator field.
See Also
“FORM_create_object()” on page 853
FORM_enable_fields()
FORM_enable_fields() enables or disables input fields.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_enable_form_window()
FORM_enable_form_window() enables or disables the form window. If the
form window does not exist, it has no effect.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_escape_form()
FORM_escape_form() escapes form execution. It is the same as a user
pressing the escape key. If the form window does not exist or if the form is not
being executed, it has no effect.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_evaluate()
FORM_evaluate() evaluates a rule expression. It returns the data type of the
expression’s value, as well as the value itself. The following table shows the
possible values for the data type parameter and the corresponding data type
of the returned value.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_execute_form()
FORM_execute_form() executes the form associated with form_h, displays all
the visible features in a window, accepts user input in the input fields, and
calls validation functions, as appropriate. If the form is hidden, it is made
visible before execution.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_exit()
FORM_exit() frees all the resources allocated to the session. session_h is
invalid on return from FORM_exit().
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_find_file()
FORM_find_file() finds the specified file using the path specified in
LOGON.CFG. If the file is not found, it returns the error FORM_
errFileNotFound.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
def_module_dir
PSTR input. The first place to look for the file.
where_found PSTR output. Full path name of the file if it was found.
is_server_file_p
FN_BOOL * output. Pointer to TRUE if the file is on the
server, FALSE otherwise.
See Also
“FORM_init()” on page 892
FORM_find_file_in_path()
FORM_find_file_in_path() finds the specified file using the path specified in
the path parameter. If the file is not found, it returns the error FORM_
errFileNotFound.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
def_module_dir
PSTR input. The first place to look for file.
where_found PSTR output. Full path name of the file if it was found.
is_server_file_p
FN_BOOL * output. Pointer to TRUE if the file is on the server
file; FALSE otherwise.
See Also
“FORM_init()” on page 892
FORM_find_file_in_path2()
FORM_find_file_in_path2() finds the specified file using the path specified in
the path parameter and saves it in the location specified by where_save. If the
file is not found, it returns the error FORM_errFileNotFound defined in
FORMLIB.I.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
def_module_dir
PSTR input. The first place to look for file.
is_server_file_p
FN_BOOL * output. Pointer to TRUE if it is a server file;
FALSE if it isn’t a server file.
Errors Returned
FORM_errFileNotFound
File not found.
See Also
“FORM_find_file()” on page 865
FORM_generate_fill_in_page()
FORM_generate_fill_in_page() writes to file_name a FileNet FORM page
representation of the form (presumably filled in by a call to FORM_execute_
form()). This representation is in the format suitable for committing as a
FORM type document.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
file_name PSTR input. Name of the file that contains the form ready for
committal.
See Also
“FORM_create_object()” on page 853
FORM_generate_form_file()
FORM_generate_form_file() writes to new_file_name the Forms Language
specification of all objects in the session which belong to file_name. This file
can be saved via FORM_server_save_file() to centralized storage for general
use.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
new_file_name
PSTR input. Name of the file to be written (saved as).
Values bool input. If TRUE, all end user input values are saved to the
file.
Error Returned
FORM_errLoadLibrary
Load library failed.
See Also
“FORM_init()” on page 892
FORM_generate_image_page()
FORM_generate_image_page() writes to file_name a FileNet IMAGE page
representation of the form (presumably filled in by a call to FORM_execute_
form()). This representation is in the compressed, banded image format
suitable for committing as an IMAGE type document.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_generate_one_form_file()
FORM_generate_one_form_file() writes the Forms Language specification of
all objects in the session that belong to file_name and form_name to new_
file_name.
For performance reasons, we recommend that you store one form per form
file. You can use FORM_generate_one_form_file() to generate one form file
per form instead of using FORM_generate_form_file() to generate one form
file for all the forms in the session.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
new_file_name
PSTR input. Name of the file to write.
Values FN_BOOL input. If TRUE, all end user input values are saved
to the file.
See Also
“FORM_generate_form_file()” on page 870
FORM_generate_pcode_file()
FORM_generate_pcode_file() writes to file_name a FileNet P-code stream,
including an IMAGE page representation of the form (presumably filled-in by a
call to FORM_execute_form()). This representation is in the compressed,
banded image format suitable for printing with IAFLIB_print_files(). It has a P-
code page header.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_bitmap_handle()
FORM_get_bitmap_handle() gets a handle for the bitmap when a bitmap field
is created or modified.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_get_field_attr()
FORM_get_field_attr() returns in attr_p the field attribute specified by index,
for the field named field_name.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
FORM_FA_ROUNDNESS
FORM_FA_RULELIST
FORM_FA_SECURITY
FORM_FA_SIZE
FORM_FA_STRETCHMODE
FORM_FA_STYLE
FORM_FA_TABLE
FORM_FA_TERMCODE
FORM_FA_TEXT
FORM_FA_TEXTFORMAT
FORM_FA_TYPE
FORM_FA_USER
FORM_FA_VALFUNC
FORM_FA_VALUE
See Also
“FORM_create_object()” on page 853
FORM_get_field_attr_using_ord()
FORM_get_field_attr_using_ord() returns in attr_p the field attribute specified
by index, for the field whose ordinal value is ordinal. This function should be
used with caution because ordinal values change when fields are deleted and
re-ordered.
In addition, when a form is executed, radio button ordinal values are made
contiguous for radio buttons that belong to the same group. Use FORM_get_
field_attr() if in doubt about the ordinal value of a field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_field_count()
FORM_get_field_count() returns the count of input fields, display fields, and
form fields in the specified form.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
display_fields_p
WORD * output. Pointer to the number of display fields.
See Also
“FORM_create_object()” on page 853
FORM_get_field_info()
FORM_get_field_info() returns information about the field named field_name
in the structure pointed to by field_struct. Each field type has an associated
structure.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_field_name()
FORM_get_field_name() returns the name of the field specified by the ordinal
that is of the type specified by the type parameter. field_name must point to a
buffer of at least FORM_LEN_FIELD_NAME + 1 bytes.
If type is FORM_FT_NULL, this function can be used to loop through all fields
in the form. Use FORM_get_field_count() to get the number of fields in the
form.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_file_list()
FORM_get_file_list() returns the number of files opened and a handle for the
list of file names. The client frees this memory when it is no longer needed.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_get_file_service()
FORM_get_file_service() returns the current file service name that is
associated with the session. FORMLIB uses the File Service name specified
by file_service_p to locate form files.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_get_last_field()
FORM_get_last_field() returns the name of the last field (if any) visited on the
most recent execution of the form accessed through form_h. The return value
can be an empty string if the form has not been executed.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
last_field PSTR output. The name of the last field visited. It returns an
empty string, if the form has not been executed. Else, it
returns a string of length FORM_LEN_FIELD_NAME + 1.
See Also
“FORM_create_object()” on page 853
FORM_get_menu_items()
FORM_get_menu_items() returns the number of menu items in the menu and
a handle for the list of menu items. The client is to free this memory when it is
no longer needed.
Syntax
#include <formlib.i>
Parameters
menu_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_menubar_items()
FORM_get_menubar_items() returns the number of menubar items in the
menubar and a handle for the list of menubar items. The client should free this
memory when it is no longer needed. The menubar items array referenced by
items_h_p is an array of *count structures of type FORM_Softkey_typ.
Syntax
#include <formlib.i>
Parameters
menubar_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_object_attr()
FORM_get_object_attr() returns in attr_p the form attribute specified by index.
Syntax
#include <formlib.i>
Parameters
object_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_object_list()
FORM_get_object_list() searches for all objects of the type specified by the
type parameter found in the file file_name. FORM_get_object_list() returns
the number of objects found and a handle for a list of object names. The client
is to free this memory when it is no longer needed.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
file_name PSTR input. Name of file. If NULL, all objects associated with
session_h are searched
See Also
“FORM_init()” on page 892
FORM_get_one_valtable_item()
FORM_get_one_valtable_item() returns a pointer to a single item in a
validation table. Use this entry point to get items in tables of more than 404
items, that is, if count is greater than 404. (This means that the table size
exceeds the 64KB segment boundary.)
If you want more than a single item, iterate this function. Index should be
greater than or equal to zero and less than the number of items in the
validation table. If count is less than or equal to 404, FORM_get_valtable_
items() is more convenient, because it returns a pointer to the whole table and
needs no iteration.
Syntax
#include <formlib.i>
Parameters
valtable_p FORM_ValItem_typ * input. Pointer to validation table.
See Also
“FORM_get_valtable_items()” on page 891
FORM_get_row_text()
FORM_get_row_text() copies the specified row (div 100) into row_string. If
length is zero, the entire row is copied and it is the caller’s responsibility to
ensure that row_string is large enough to hold the entire row plus a NULL
terminator. If length is non-zero, no more than (length div 100) bytes are
copied.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_terminator()
FORM_get_terminator() returns the terminator (if any) from the most recent
execution of the form accessed through form_h. The return value can be
FORM_errNoExecution, FORM_errInProgress, or FORM_errTimeOut,
indicating, respectively, that the form has not been executed, the form is
currently executing, or the form timed out without a terminator key having
been struck. In the first and last of these cases, the value returned in
terminator_p is undefined.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_get_valtable_items()
FORM_get_valtable_items() returns the number of table items in the
validation table and a handle for an array of structures of type FORM_
ValItem_typ, representing the items. The client is to free this memory when it
is no longer needed.
Syntax
#include <formlib.i>
Parameters
table_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_init()
FORM_init() allocates and initializes data for the session and returns the
session handle. This must be the first FORMLIB function called. file service p
indicates which File Service to use to find form files. If file_service_p is NULL,
the default File Service for the current domain is used.
Syntax
#include <formlib.i>
Parameters
session_h PHANDLE output. The FORMLIB session handle.
See Also
“ASE_service_name_typ” on page 178
FORM_install_list()
FORM_install_list() associates a list of items with a newly-created field. You
usually call this function right after calling FORM_append_item().
Be careful that this function does not delete any pre-existing handles in the
internal data structure. It does not update the field window since it assumes
the window does not yet exist.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
itemlist_h HANDLE input. Array of DWORD type offsets of the item list.
max_line WORD input. Maximum number of lines in one item of the list.
See Also
“FORM_append_item()” on page 825
FORM_load_file()
FORM_load_file() loads the file specified by file_name into the session by
parsing its contents and storing the data in the session. Any object associated
with the file already in the session is closed prior to loading the file.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_load_form_from_page()
FORM_load_form_from_page() reads the FORM language from file_name,
parses it, and returns a form handle. file_name can be generated by FORM_
generate_fill_in_page().
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_generate_fill_in_page()” on page 869
FORM_load_object()
FORM_load_object() loads an object defined in a file and returns a handle for
the object. The object is identified by its name (object_name), the file in which
it resides (file_name), and its type. The object handle returned is required by
other FORMLIB functions. If the object is already present in the session, a
handle for it is returned without the file being read. To create new objects, use
FORM_create_object().
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
file_name PSTR input. Name of the file that contains the object.
See Also
“FORM_create_object()” on page 853
FORM_make_groups_contiguous()
FORM_make_groups_contiguous() reorders the fields such that all radio
buttons within a group are contiguous.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_paint_in_DC()
FORM_paint_in_DC() paints a form in the display context. It uses text metrics
from the current font. Scroll coordinates are in whole characters of the
character map.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
dc_h HDC input. Handle for display context. Can be obtained from
GetDC (Windows SDK function).
See Also
“FORM_create_object()” on page 853
FORM_server_copy_file()
FORM_server_copy_file() copies the specified file on centralized storage. If
file_service_p is NULL, the default file service for the current domain is used.
Syntax
#include <formlib.i>
Parameters
file_service_p ASE_service_name_typ * input. Can be NULL for default File
Service.
new_file_name
PSTR input. Name of the destination file.
new_version_p
DWORD *. Not used.
See Also
“ASE_service_name_typ” on page 178
FORM_server_delete_file()
FORM_server_delete_file() deletes the specified file from the centralized
storage where it resides. If file_service_p is NULL, the default file service for
the current domain is used.
Syntax
#include <formlib.i>
Parameters
file_service_p ASE_service_name_typ * input. Can be NULL for default.
See Also
“ASE_service_name_typ” on page 178
FORM_server_rename_file()
FORM_server_rename_file() renames the file on centralized storage. If file_
service_p is NULL, the default file service for the current domain is used.
Syntax
#include <formlib.i>
Parameters
file_service_p ASE_service_name_typ * input. Can be NULL for default.
new_file_name
PSTR input. Name of the destination file.
new_version_p
DWORD *. Not used.
See Also
“ASE_service_name_typ” on page 178
FORM_server_retrieve_file()
FORM_server_retrieve_file() retrieves the file from centralized storage into a
file named by local_file. If the local file exists and overwrite is TRUE; the local
file is overwritten, otherwise an error is returned. If file_service_p is NULL, the
default file service for the current domain is used.
Syntax
#include <formlib.i>
Parameters
file_service_p ASE_service_name_typ * input. Can be NULL for default.
overwrite BOOL input. If TRUE, it overwrites the existing file with name
specified by local_file.
See Also
“ASE_service_name_typ” on page 178
FORM_server_save_file()
FORM_server_save_file() saves the file on centralized storage. If the file
already exists and overwrite is TRUE, the file is overwritten. Otherwise, an
error is returned. If file_service_p is NULL, the default file service for the
current domain is used.
Syntax
#include <formlib.i>
Parameters
file_service_p ASE_service_name_typ * input. Pointer to the name of the
File Service. If NULL, the default service is used.
See Also
“ASE_service_name_typ” on page 178
FORM_set_field_attr()
FORM_set_field_attr() sets the field attribute specified by index for the field
named field_name. See “FORM_get_field_attr()” on page 875 for the possible
values of index and the data structures to which attr_p points for each one.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_set_field_attr_using_ord()
FORM_set_field_attr_using_ord() sets the field attribute specified by index for
the field whose ordinal value is ordinal. Use this function with caution because
ordinal values change when fields are deleted and re-ordered. In addition,
when a form is executed, radio button ordinal values are made contiguous for
radio buttons that belong to the same group. Use FORM_set_field_attr() if in
doubt about the ordinal value of a field.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
FORM_FA_RASTEROP
FORM_FA_RESOURCE
FORM_FA_ROUNDNESS
FORM_FA_RULELIST
FORM_FA_SECURITY
FORM_FA_SIZE
FORM_FA_STRETCHMODE
FORM_FA_STYLE
FORM_FA_TABLE
FORM_FA_TERMCODE
FORM_FA_TEXT
FORM_FA_TEXTFORMAT
FORM_FA_TYPE
FORM_FA_USER
FORM_FA_VALFUNC
FORM_FA_VALUE
See Also
“FORM_create_object()” on page 853
FORM_set_field_focus()
FORM_set_field_focus() sets the focus to the field specified by field_name. If
you already had focused fields, they retain valid instance handles, although
not exceeding the number of open instances that can be set.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Form handle obtained from FORM_create_
object() or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_set_file_service()
FORM_set_file_service() sets the current file service name. FORMLIB uses
the File Service specified by file_service_p to locate form files.
Syntax
#include <formlib.i>
Parameters
session_h HANDLE input. The FORMLIB session handle obtained from
FORM_init().
See Also
“FORM_init()” on page 892
FORM_set_menu_items()
FORM_set_menu_items() replaces the contents of the specified menu. The
menu items specified by items_p replace any prior contents of the menu
referenced by menu_h.
Syntax
#include <formlib.i>
Parameters
menu_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_set_menubar_items()
FORM_set_menubar_items() replaces the contents of the specified menubar.
The menubar items specified by items_p replace any prior contents of the
menubar referenced by menubar_h.
Syntax
#include <formlib.i>
Parameters
menubar_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_set_object_attr()
FORM_set_object_attr() sets the form attribute specified by index. See
FORM_get_object_attr() for the possible values of index and the data
structures to which attr_p points for each.
Syntax
#include <formlib.i>
Parameters
object_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
FORM_FA_STYLE
FORM_FA_TABLE
FORM_FA_TERMCODE
FORM_FA_TEXT
FORM_FA_TEXTFORMAT
FORM_FA_TYPE
FORM_FA_USER
FORM_FA_VALFUNC
FORM_FA_VALUE
See Also
“FORM_create_object()” on page 853
FORM_set_one_valtable_item()
FORM_set_one_valtable_item() sets a single item in the validation table. Use
this entry point to set items in tables with more than 404 items, that is, if count
is greater than 404. If the number of table items exceeds 404, the table size
exceeds 65536L, the Intel 64KB segment boundary.
If you want more than a single item, iterate this procedure. Index should be
greater than or equal to zero and less than the number of items in the
validation table. If count is less than or equal to 404, FORM_set_valtable_
items() might be more convenient, because it uses a pointer to the whole table
and needs no iteration.
Syntax
#include <formlib.i>
Parameters
valtable_p FORM_ValItem_typ * input. Pointer to validation table.
See Also
“FORM_get_valtable_items()” on page 891
FORM_set_valtable_items()
FORM_set_valtable_items() replaces the contents of a validation table. The
validation table items specified by items_p replace any prior contents of the
table referenced by table_h.
Syntax
#include <formlib.i>
Parameters
table_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_show_form()
FORM_show_form() displays or updates a form without executing it. FORM_
execute_form() does this implicitly.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
show_style int input. Window show style. Can be one of the following:
SW_HIDE
SW_MINIMIZE
SW_RESTORE
SW_SHOW
SW_SHOWMAXIMIZED
SW_SHOWMINIMIZED
SW_SHOWMINNOACTIVATE
SW_SHOWNA
SW_SHOWNOACTIVATE
SW_SHOWNORMAL
See Also
“FORM_create_object()” on page 853
FORM_step_form()
FORM_step_form() executes the form associated with form_h, displays all the
visible features in a window, accepts user input in the input field specified by
next_field, and calls any validation functions, as appropriate. If the form is
hidden, it is made visible before execution.
next_field specifies the name of the field in which to allow input. If next_field is
empty, the first input field is used, according to the internal ordering of the
fields (see “FORM_FA_ORDINAL” on page 292). next_field must point to a
buffer at least FORM_LEN_FIELD_NAME + 1 bytes in size.
If any user action changes the current field (e.g., hitting the TAB key), the
execution ends successfully, next_field names the field that would become the
current field in a normal execution, and terminator_p is undefined.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
next_field PSTR input. Name of the next field that would become the
current field.
See Also
“FORM_create_object()” on page 853
FORM_text_out()
FORM_text_out() displays the data in text on the character map at (x div 100,
y div 100). Characters that would go off the character map are clipped and
lost.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FORM_validate_form()
FORM_validate_form() performs field and form validation given the handle for
a form that has values.
Syntax
#include <formlib.i>
Parameters
form_h HANDLE input. Handle obtained from FORM_create_object()
or FORM_load_form_from_page().
See Also
“FORM_create_object()” on page 853
FP_abs()
FP_abs() returns the absolute value of y in x.
Syntax
#include <FP.i>
Parameters
x FP_number output. The absolute value of y.
See Also
“FP_number” on page 349
FP_add()
FP_add() returns the sum of a and b in c.
Syntax
#include <FP.i>
Parameters
c FP_number output. The sum of a and b.
See Also
“FP_number” on page 349
FP_assign()
FP_assign() assigns the value of y to x (x := y).
Syntax
#include <FP.i>
Parameters
x FP_number output. The variable receiving the value of y.
See Also
“FP_number” on page 349
FP_dbl2num()
FP_dbl2num() converts a double precision number to which dblnum_p points
to a single precision (floating point) number.
Syntax
#include <FP.i>
Parameters
num FP_number output. The single precision number created
from the number pointed to by dblnum_p.
See Also
“FP_number” on page 349
FP_divide()
FP_divide() divides a by b and returns the result in c.
Syntax
#include <FP.i>
Parameters
c FP_number output. The quotient.
See Also
“FP_number” on page 349
FP_eql()
FP_eql() returns TRUE if x is equal to y, FALSE otherwise.
Syntax
#include <FP.i>
Parameters
x FP_number input. The first operand.
See Also
“FP_number” on page 349
FP_geq()
FP_geq() returns TRUE if x is greater than or equal to y, FALSE otherwise.
Syntax
#include <FP.i>
Parameters
x FP_number input. The first operand.
See Also
“FP_number” on page 349
FP_getmode()
FP_getmode() returns the value of the European mode flag. Returns TRUE if
European mode is turned on (with comma separating whole number and
fraction). Returns FALSE if a decimal point (period) is the separator.
Syntax
#include <FP.i>
FP_gtr()
FP_gtr() returns TRUE if x is greater than y, FALSE otherwise.
Syntax
#include <FP.i>
Parameters
x FP_number input. The first operand.
See Also
“FP_number” on page 349
FP_isundef()
FP_isundef() returns TRUE if x is undefined.
Syntax
#include <FP.i>
Parameters
x FP_number input. The variable to check.
See Also
“FP_number” on page 349
FP_leq()
FP_leq() returns TRUE if x is less than or equal to y, FALSE otherwise.
Syntax
#include <FP.i>
Parameters
x FP_number input. The first operand.
See Also
“FP_number” on page 349
FP_long2num()
FP_long2num() converts an unsigned long (y) to a single precision (floating
point) number (x).
Syntax
#include <FP.i>
Parameters
x FP_number output. The variable assigned the value of y.
See Also
“FP_number” on page 349
FP_lss()
FP_lss() returns TRUE if x is less than y, FALSE otherwise.
Syntax
#include <FP.i>
Parameters
x FP_number input. The first operand.
See Also
“FP_number” on page 349
FP_multiply()
FP_multiply() multiplies a by b and returns the result in c.
Syntax
#include <FP.i>
Parameters
c FP_number output. The product.
See Also
“FP_number” on page 349
FP_neg()
FP_neg() sets x to the additive inverse of y.
Syntax
#include <FP.i>
Parameters
x FP_number output. The variable assigned -y.
See Also
“FP_number” on page 349
FP_neq()
FP_neq() returns TRUE if x is not equal to y, FALSE otherwise.
Syntax
#include <FP.i>
Parameters
x FP_number input. The first operand.
See Also
“FP_number” on page 349
FP_num2dbl()
FP_num2dbl() converts the single precision number num to a double
precision number to which dblnum_p points.
Syntax
#include <FP.i>
Parameters
dblnum_p double * output. Pointer to the converted number.
See Also
“FP_number” on page 349
FP_num2long()
FP_num2long() converts a single precision (floating point) number (y) to a
long (x).
Syntax
#include <FP.i>
Parameters
x_p long * output. Pointer to the converted number.
See Also
“FP_number” on page 349
FP_num2mask()
FP_num2mask() formats the number in num into result using mask.
Syntax
#include <FP.i>
Parameters
result PSTR output. The formatted number string. result must be
large enough to hold the output.
Examples
FP_number ssn_num;
FP_long2num(ssn_num, 123456789);
Numeric Mask
When converting an FP_number type number to a string, format the number
by calling the function FP_num2mask() using numeric masking.
Component Meaning
+ (plus) When the first or last character in the mask, displays the
sign of the number. NOTE: + can also be used as a
separator between other mask characters.
– (minus) When the first or last character in the mask, displays a
negative sign if the number is negative or displays a
space if the number is positive. NOTE: – can also be
used as a separator.
Component Meaning
# (number sign) Displays a digit if it is significant; when you use more #s
than there are significant digits, the right-most #s receive
digits first. Excess #s are filled with blanks.
0 (zero) Displays a digit whether it is significant or not. This can
result in leading and trailing zeros.
. (decimal) Determines where the decimal point goes. If not used,
the decimal point is assumed to be at the right end of the
mask. The number is rounded off to fit into the mask. Only
one decimal point is allowed in a mask.
Note If the mask is too small for the number, an error occurs. The mask is too small
if there are too few #s or 0s to the left of the decimal point. For example, 300
cannot fit into ##.
The following table shows the resulting output string when FP_num2mask()
converts the following numbers: 0, +29, –3344, and 77.88369. (This assumes
that the current cursor starts at the left side of each table entry.)
See Also
“FP_num2mask()” on page 939
FP_num2ora()
FP_num2ora() formats the number in num in Oracle format.
Syntax
#include <FP.i>
Parameters
ora FP_number output. The Oracle-formatted number.
See Also
“FP_number” on page 349
FP_num2sci()
FP_num2sci() formats the number in num into scientific notation.
Syntax
#include <FP.i>
Parameters
sci PSTR output. Scientific notation of the number.
See Also
“FP_number” on page 349
FP_num2str()
FP_num2str() formats the number in num into an ASCII string returned in
result.
Syntax
#include <FP.i>
Parameters
result PSTR output. ASCII string containing num. result must be
large enough to hold the output.
See Also
“FP_number” on page 349
FP_num2unslong()
FP_num2unslong() converts a single precision (floating point) number (y) to
an unsigned long (x).
Syntax
#include <FP.i>
Parameters
x_p unsigned long * output. Pointer to the variable assigned value
of y.
See Also
“FP_number” on page 349
FP_ora2num()
FP_ora2num() converts the number (in Oracle format) specified by ora into a
number.
Syntax
#include <FP.i>
Parameters
num FP_number output. Pointer to the number to be converted.
See Also
“FP_number” on page 349
FP_retsign()
FP_retsign() returns 1, 0, or -1, indicating whether x is positive, zero, or
negative, respectively.
Syntax
#include <FP.i>
Parameters
x FP_number input. The variable whose sign is returned.
See Also
“FP_number” on page 349
FP_round()
FP_round() sets x to the rounded value of y. N is the power of ten to which y is
to be rounded.
Syntax
#include <FP.i>
Parameters
x FP_number output. The rounded number.
Example
If y == 12,345,678.8765:
n == -2 gives x = 12,345,678.88
n == -1 gives x = 12,345,678.9
n == 0 gives x = 12,345,679
n == 1 gives x = 12,345,680
n == 2 gives x = 12,345,700
n == 3 gives x = 12,346,000
n == 4 gives x = 12,350,000
See Also
“FP_number” on page 349
FP_rounddisp()
FP_rounddisp() rounds an internal number to coincide with its displayable
representation. It is primarily used with scientific notation. Because floating
point numbers are stored in base 10,000 instead of base 10, the number as
displayed by FP_num2sci() might differ slightly from its internal
representation. (It might vary by 0 to 3 of the least significant digits in the
mantissa. If it is important to your calculations that the displayed number and
the internal number be identical, use FP_rounddisp() to round the internal
number to coincide with its displayable representation.
Syntax
#include <FP.i>
Parameters
x FP_number output. The rounded number.
See Also
“FP_number” on page 349
FP_setmode()
FP_setmode() sets or clears European mode, according to the value of m.
When set, commas in masks separate the whole part of a number from the
fractional part. When clear, a period is the decimal point.
Syntax
#include <FP.i>
Parameters
m BOOL input. When TRUE, comma separates whole number
and fraction. When FALSE, decimal point separates whole
number and fraction.
FP_setundef()
FP_setundef() sets x to the undefined value.
Syntax
#include <FP.i>
Parameters
x FP_number input. The variable to receive undefined value.
See Also
“FP_number” on page 349
FP_str2num()
FP_str2num() converts a string to a number.
Syntax
#include <FP.i>
Parameters
num FP_number output. The number converted from the string.
See Also
The sample application in the directory C:\FILENET\SAMPLE\FP\.
See Also
“FP_number” on page 349
FP_subtract()
FP_subtract() subtracts b from a and returns the result in c.
Syntax
#include <FP.i>
Parameters
c FP_number output. The difference.
See Also
“FP_number” on page 349
FP_trunc()
FP_trunc() sets x to the whole part of y.
Syntax
#include <FP.i>
Parameters
x FP_number output. The truncated number.
Examples
For y == 12,345,678.9012, x is 12,345,678.
See Also
“FP_number” on page 349
FP_unslong2num()
FP_unslong2num() converts an unsigned long (y) to an FP_number (x). The
function returns VOID, rather than error_typ.
Syntax
#include <FP.i>
Parameters
x FP_number output. The variable receiving value of y.
See Also
“FP_number” on page 349
IAFLIB_add_notation()
IAFLIB_add_notation() adds a notation to a document list that is to be printed.
The notation is created as another document and added to the print cache. It
is printed as an overlay on the existing document(s). When the function
returns, it increments the number of short print options and the number of
documents by 1.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name
structure for the desired Print Service. If NULL, the default
Print Service specified in IAFLIB_logon_user() is used.
print_options_p
void * input/output. Pointer to an array of PS_options_rec_
type print options. When the function returns success, the
number of short options is increased by 1.
units unsigned short input. Specifies the unit of measure for the x
and y coordinates. Valid values are INCH and
CENTIMENTER. The default is INCH.
See Also
“IAFLIB_add_notation1()” on page 957
IAFLIB_add_notation1()
IAFLIB_add_notation1() adds a notation to a document list that is to be
printed. The notation is created as another document and added to the print
cache. It is printed as an overlay on the existing document(s). When the
function returns, it increments the number of short print options and the
number of documents by 1.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name
structure for the desired Print Service. If NULL, the default
Print Service specified in IAFLIB_logon_user() is used.
print_options_p
PRI_print_option_typ2 * input/output. Pointer to an array of
print options. When the function returns success, the number
of short options is increased by 1.
units unsigned short input. Specifies the unit of measure for the x
and y coordinates. Valid values are INCH and
CENTIMENTER. The default is INCH.
See Also
“IAFLIB_add_notation()” on page 955
IAFLIB_cancel_print()
IAFLIB_cancel_print() cancels print requests. It checks the security of the
print request (specified at the time the request was initiated) against the
credentials of the user requesting the cancellation. (All users can cancel their
own print requests, but cannot cancel another user’s print request without
SysAdmin privileges.) Print requests with any status other than unknown,
cancelled, or complete are cancelled.
Syntax
#include <pri.def>
#include <iaflib.i>
Parameters
client_h HANDLE input. Obtained from IAFLIB_get_client_handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name
structure for desired Print Service. If NULL, the default Print
Service specified in IAFLIB_logon_user() is used.
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
PRI_err_no_permission
The client does not have valid access for the document or request.
PRI_err_no_such_request
The specified request ID could not be found.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_check_membership()
IAFLIB_check_membership() returns a boolean that indicates whether the
current user is a member of the specified group. It returns TRUE if the user is
a member and FALSE otherwise.
Syntax
#include <iaflib.i>
Parameters
group_p ASE_service_name_typ * input. Pointer to the NCH name
structure for the group.
See Also
“ASE_service_name_typ” on page 178
IAFLIB_check_password()
IAFLIB_check_password() indicates whether the password is correct. It
returns TRUE if the password is correct and FALSE otherwise.
Syntax
#include <iaflib.i>
Parameters
passwd PSTR input. NULL terminated string containing the
password.
IAFLIB_continue_query()
IAFLIB_continue_query() continues a query started with IAFLIB_query_db()
and gets more matches.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
num_matches_p
WORD * output. Pointer to the number of matches being
returned in dir_h_p.
Error Returned
INX_err_no_query
The INX connection was terminated before it is done.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_create_cache_object()
IAFLIB_create_cache_object() creates a cache object with the specified
attributes.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * (NCH_ObjectName) input. Pointer
to the NCH name structure for the desired Cache Service.
object_desc_p
CSM_object_desc_typ * output. Pointer to a CSM_object_
desc_typ structure, which uniquely identifies an instance of
an object in a cache.
Errors Returned
CSM_invalid_session_handle
CSM was given an invalid session handle; the session probably timed
out.
CSM_already_exists
An attempt was made to create a CSM object that already exists. This
error is returned if the object already exists and the cache does not
support reference counts.
CSM_no_resources
CSM_create: Lack of disk or data base space for the desired
operation.
CSM_refcnt_incremented
The reference count was incremented due to an attempt to create a
duplicate. If the cache supports reference counts, the ref count
incremented error is returned, and the object’s reference count is
incremented as a side effect.
CSM_no_ageable_docs
An attempt was made to put an ageable document into a cache, but
this cache is not configured to allow ageable documents.
CSM_other_error
CSM error: Catchall for other errors encountered inside CSM.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_create_folder()
IAFLIB_create_folder() creates a new folder.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
folder_desc_p
INX_folder_desc_typ * input. Pointer to a linked list of type
INX_folder_desc_typ, which describes the folder to be
created.
This function does not use the following fields: next_p, leaf,
non_leaf, and closed.
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_folder
The specified folder does not exist.
INX_err_no_permission
Permission denied.
INX_err_other
The real error tuple is a parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_delete_annotation()
IAFLIB_delete_annotation() deletes an annotation. The deletion fails if
another client has the annotation locked for update. The client must have both
write and append/execute permission on the document to delete any of its
annotations.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_document_not_found
The document was not found by DOC.
DOC_err_annotation_not_found
The annotation was not found by DOC.
DOC_err_annotation_busy
The DOC annotation is busy; another client is updating it.
DOC_err_no_permission
No permission to perform the specified DOC function.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_delete_cache_object()
IAFLIB_delete_cache_object() deletes an object from the cache. The object
must not be opened by any other client. This function requires delete
permission on the cache and write permission on the object.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Cache Service.
Errors Returned
CSM_invalid_session_handle
CSM was given an invalid session handle; the session probably timed
out.
CSM_no_such_object
CSM error: The specified object does not exist in the current cache.
CSM_object_busy
CSM error: The operation specified cannot get necessary access.
CSM_no_permission
The client does not have permission for the requested operation.
CSM_other_error
CSM error: Catchall for other errors encountered inside CSM.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_delete_docs()
IAFLIB_delete_docs() deletes each document in the array to which doc_ids_p
points from both the Index Service database (if it is present there) and the
Document Service database of the logged on IMS. The Index Service is
updated first, so all entries in its database refer to valid entries in the
Document Service database. All annotations for the documents are deleted
as well. The client must have both write and append/execute permission on
the document to delete it.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
num_deleted_p
WORD * output. Pointer to the count of successful deletions.
Errors Returned
From Document Service: If the document is not found and there is no
permission error, the error is on at least one document. If any document in the
list cannot be deleted, no documents are deleted.
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_document_not_found
The document was not found by DOC.
DOC_err_no_permission
No permission to perform the specified DOC function.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
INX_err_invalid_handle
Invalid session handle.
INX_err_no_record
The requested record was not found.
INX_err_record_busy
The record was already locked. The record is locked for update by
another client, in which case you cannot delete the index record.
INX_err_doc_is_filed
You cannot delete the document; it is filed in one or more folders. This
error is returned if unfile is FALSE and the document is filed.
INX_err_no_permission
Permission denied.
INX_err_other
The real error tuple is a parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_delete_folders()
IAFLIB_delete_folders() removes folders from the database.
When specifying folder_spec, use wildcards to specify more than one folder.
For example, suppose you have the following folders:
/acct713
/acct713/charges
/acct713/payments
/acct45
/acct45/charges
A slash at the end of folder_spec indicates that all matching folders and their
subtrees are to be deleted. For example, to delete all of the above folders,
use “/acct*/”.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_folder
The specified folder does not exist.
INX_err_no_permission
Permission denied.
INX_err_other
The real error tuple is a parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_file_doc()
IAFLIB_file_doc() files a document into or unfiles (removes) a document from
a folder, depending on file_flag. If folder_id is zero, folder_name is used. Note
that unfiling a document does not delete the document index record itself; it
only deletes the reference to it in the specified folder.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
For either filing or unfiling a document:
INX_err_invalid_handle
Invalid session handle.
INX_err_no_folder
The specified folder does not exist.
INX_err_no_record
The requested record was not found.
INX_err_other
The real error tuple is a parameter to this protocol error.
INX_err_already_in_folder
The document is already filed in the specified folder.
INX_err_not_in_folder
The document is not filed in the specified folder.
See Also
“IAFLIB_file_doc_after()” on page 980
IAFLIB_file_doc_after()
IAFLIB_file_doc_after() files an array of documents into a folder following a
specified document ID. IAFLIB_file_doc_after() enables you to insert the
documents in a folder in a specific order. IAFLIB_file_doc() only allows you to
file documents at the end of the folder.
If you have FileNet system software release FDOS 2.6e or Series 6000 3.0 or
later, we recommend that you use IAFLIB_file_doc_after() instead of IAFLIB_
file_doc().
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Note This function requires the Series 6000 software version 3.0 or FDOS 2.6e or
later.
Errors Returned
Note that this function does not return the error
INX_err_already_in_folder
if you try to file a duplicate document into a folder already containing that
document. The call is ignored and no duplicate is filed.
INX_err_invalid_handle
Invalid session handle.
INX_err_no_folder
The specified folder does not exist.
INX_err_other
The real error tuple is a parameter to this protocol error.
INX_err_not_in_folder
The document is not filed in the specified folder.
See Also
“IAFLIB_file_doc()” on page 978
IAFLIB_find_folders()
IAFLIB_find_folders() returns folder descriptors for folders that match folder_
spec. It has two variations: original and continuation. On the original call,
continuation is FALSE. Folder descriptions are returned until last_folder is
TRUE. Index Service reserves the right to return fewer than max_folders,
even if more are in the subtree.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
num_folders_p
short * output. Pointer to the number of descriptors returned
in folder_h_p.
folders_h_p HANDLE * output. Pointer to the handle for the array of INX_
folder_desc_typ structures.
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_folder
The specified folder does not exist.
INX_err_other
The real error tuple is a parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_find_index_in_DIR()
Given a Document Index Record (DIR) pointer and an index ID, IAFLIB_find_
index_in_DIR() returns a pointer to the value of the index in the DIR if the
index is present. If dir_val_p is NULL on return, the index is not in the DIR.
This function allows you to interpret the DIR.
Syntax
#include <iaflib.i>
Parameters
dir_p INX_dir_typ * input. Pointer to an INX_dir_typ structure.
See Also
“INX_dir_typ” on page 362
IAFLIB_find_system_defaults()
IAFLIB_find_system_defaults() returns a SEC_system_desc_typ structure
that contains security configuration settings for IMS 3.1 security services. The
general calling order is IAFLIB_logon_user(), IAFLIB_get_server_version() to
check for IMS 3.1, and IAFLIB_find_system_defaults(). See the example code
in “Appendix A–IMS Security Services and WAL” on page 1251.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
service_name_p
ASE_service_name_typ * input. Pointer to the NCH name for
the IMS service. If NULL, the default IMS specified in IAFLIB_
logon_user() is used.
system_defaults
SEC_system_desc_typ * output. Password and account
activity data.
See Also
“Appendix A–IMS Security Services and WAL” on page 1251
IAFLIB_FreeAttr2Memory()
IAFLIB_FreeAttr2Memory() unlocks and frees the memory used by the PRI_
printer_attr_typ2 structure.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_free_client_handle()
IAFLIB_free_client_handle() logs off all service sessions established for the
client and frees all resources allocated for the client. On return, the client
handle is no longer valid.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_FreeRequest2Memory()
IAFLIB_FreeRequest2Memory() unlocks and frees the memory used by the
PRI_request_desc_typ2 structure.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
hPrinterRequests
HANDLE * input/output. Pointer to the handle of the structure
to be freed.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_FreeStatusMemory()
IAFLIB_FreeStatusMemory() unlocks and frees the memory used by the PRI_
printer_status_typ structure. IAFLIB_FreeStatusMemory() can be called once
for each call to IAFLIB_get_print_service_info1().
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_annotations()
IAFLIB_get_annotations() returns in annot_h a handle for all the annotations
for the specified page of a document. If any annotation on the page is in
modify state, the most recently saved copy of that annotation is returned. Only
annotations for which the caller has read access are returned by this call.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
annot_h_p HANDLE * output. Pointer to the handle for the array of DOC_
annotation_desc_typ.
Errors Returned
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_document_not_found
The document was not found by DOC.
DOC_err_annotation_not_found
The annotation was not found by DOC.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
DOC_err_no_permission
No permission to perform the specified DOC function.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_cache_object_attrs()
IAFLIB_get_cache_object_attrs() retrieves the object attributes from the
Cache Service named by cache_service_p and returns a pointer to them in
attr_p. The object cannot be opened for write access by any other client. Read
permission is required on the cache and the object.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Cache Service.
Errors Returned
CSM_invalid_session_handle
CSM was given an invalid session handle; the session probably timed
out.
CSM_no_such_object
CSM error: The specified object does not exist in the current cache.
CSM_object_busy
CSM error: The operation specified cannot get necessary access.
CSM_other_error
CSM error: Catchall for other errors encountered inside CSM.
CSM_no_permission
The client does not have permission for the requested operation.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_client_handle()
IAFLIB_get_client_handle() allocates resources on behalf of a client, and
returns a handle. This handle must be passed to most IAFLIB functions.
Syntax
#include <iaflib.i>
Parameters
client_h_p HANDLE * output. Pointer to the handle for the IAFLIB client
data structure.
See Also
The sample applications in most of the samples
IAFLIB_get_current_IMS()
IAFLIB_get_current_IMS() returns the name of the current IMS.
Syntax
#include <iaflib.i>
Parameters
ims_p ASE_service_name_typ * output. Pointer to the NCH name
for the currently logged-on IMS.
See Also
“ASE_service_name_typ” on page 178
IAFLIB_get_default_restrictions()
IAFLIB_get_default_restrictions() returns default access restrictions for
creation of a new FileNet object such as folder note, WorkFlo queue, and so
on. Call this function when you create the new object to set the default access
restrictions for the object.
If you’re looking for quick compatibility with WorkForce Desktop apps, this
entry point assigns those default access restrictions.
IMS versions before 3.1 assign default access restrictions based on the user’s
id (user_id). IMS versions 3.1 and later assign restrictions based on the user’s
primary groups (user_group). If both user_group_p and user_id_p are NULL,
this call gets default restrictions from the currently logged-on user’s id.
The default attributes are identical to the WorkForce Desktop native mode
defaults and are listed below.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
service_name_p
ASE_service_name_typ * input. Pointer to the NCH name for
the IMS containing the object. If NULL, the default IMS
specified in IAFLIB_logon_user() is used.
user_group_p
ASE_service_name_typ * input. Pointer to the default user
name. For 3.1 or later systems, this is the user’s primary
group. This value is used only if user_id_p is NULL or zero.
replace_bad_id
BOOL. Not used.
replacement_id
SEC_id_typ. Not used.
access_restricts
SCT_access_restrictions * output. Pointer to a structure
containing document access restrictions.
Default FileNet object security attributes are shown in the following table.
These attributes are identical to the WorkForce Desktop native mode defaults.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_doc_attr()
IAFLIB_get_doc_attr() returns a handle for a structure containing data about
the specified document.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_no_matches
No matches found when attempting to find information from DOC.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_docs_in_folder()
IAFLIB_get_docs_in_folder() returns a handle to an array of document IDs
that are filed in a specified folder. If the return value of last_match_p is
FALSE, continue by calling IAFLIB_get_docs_in_folder() again with start set
to the last record returned in docs_h.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
num_returned_p
unsigned short * output. Pointer to the actual number of
returned records.
Note This function requires the Series 6000 software version 3.0 or FDOS 2.6e or
later.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_file_text()
IAFLIB_get_file_text() extracts text from a TEXT- or FORM-type page. At
most, one line of text is returned, but no more than size bytes. The returned
text is always NULL-terminated.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
row WORD input. Along with col, position of text to extract; row
zero, col zero is the first position.
free_buf FN_BOOL input. TRUE to free internal text buffer after this
call. FALSE to keep it. If extracting more than one row from
the same page, set free_buf to FALSE on all calls except the
last.
text PSTR output. The extracted text. Must be at least size bytes
large.
Note The file named must contain a FileNet format page (TEXT- or FORM-type)
containing a PCODES stream. Usually, the file name is one returned by a call
to IAFLIB_get_object(), and the file resides in the cache managed by CAM.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_folder_attrs()
IAFLIB_get_folder_attrs() retrieves the attributes of a folder. It returns folder_
desc for folder_id (if folder_id is non-zero) or folder_name.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_folder
The specified folder does not exist.
INX_err_other
The real error tuple is a parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_membership_list()
IAFLIB_get_membership_list() returns the names of all the groups to which a
user/group belongs and returns a handle for the caller. An error code is
returned if the user/group does not exist.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
security_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
a Security Service. If NULL, the default service is used.
incl_h_p HANDLE * output. Pointer to the handle for the inclusion list.
excl_h_p HANDLE * output. Pointer to the handle for the exclusion list.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_object()
IAFLIB_get_object() retrieves a specified page in a committed document and
places it in a file in the PC’s local cache. It returns the name of the file
containing the object in file_name.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
offset DWORD input. Offset and size control the portion of the
object returned. If both are set to zero, the whole object is
returned.
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the desired Cache or Document Service. Use NULL for
default.
pages_in_doc_p
ASE_page_number_typ * output. Pointer to the number of
pages in the whole document, only if style is ILIB_USE_
DEFAULT_IMS or ILIB_USE_DOC_SERVICE.
file_name PSTR output. The name of the file that contains the object.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_object_text()
IAFLIB_get_object_text() extracts text from a TEXT- or FORM-type page. At
most, one line of text is returned, but no more than size bytes. The returned
text is always NULL-terminated.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
row WORD input. Along with col, position of text to extract; row
zero, column zero is the first position.
free_buf FN_BOOL input. TRUE to free the internal text buffer after
this call, FALSE to keep it. If extracting more than one row
from the same page, you should set free_buf to FALSE on all
calls except the last.
text PSTR output. The extracted text. Must be at least size bytes
large.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_print_queues()
IAFLIB_get_print_queues() retrieves information about one or more print
requests presently known to the Print Service. The number of print requests
the client wants returned at one time, along with the request ID of the first
request to be included in this list, are passed as input parameters. The
function returns the last request ID retrieved, the number of requests that
were placed in the list, a handle for the list itself, and an indicator as to
whether all known requests have been returned.
Note that only requests to which the caller has read access are returned.
Syntax
#include <pri.def>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
num_q_entries_p
WORD * output. Pointer to the number returned in psq_
entry_h_p.
psq_entry_h_p
HANDLE * output. Pointer to the handle for the memory
containing the array of structures of type PRI_request_desc_
typ. These structures describe the publicly-visible attributes
of a print request.
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_print_queues2()
IAFLIB_get_print_queues2() retrieves information about one or more print
requests presently known to the Print Service. Note that this call can only be
used with IMS 3.3.1 or later.
The number of print requests the client wants returned at one time, along with
the request ID of the first request to be included in this list, are passed as
input parameters. The function returns the last request ID retrieved, the
number of requests that were placed in the list, a handle for the list itself, and
an indicator as to whether all known requests have been returned.
Note that only requests for which the caller has read access are returned.
Syntax
#include <pri.def>
#include <iaflib.i>
Parameters
client_h HANDLE input. The handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
num_q_entries_p
WORD * output. Pointer to the number returned in psq_
entry_h_p.
psq_entry_h_p
HANDLE * output. Pointer to the handle for the memory
containing the array of structures of type PRI_request_desc_
typ2. These structures describe the publicly-visible attributes
of a print request.
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
See Also
“IAFLIB_FreeRequest2Memory()” on page 988
IAFLIB_get_print_service_info()
IAFLIB_get_print_service_info() returns information about the status of a Print
Service along with information about the status of the individual printers and
fax machines this Print Service is controlling.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
num_printers_p
WORD * output. Pointer to the number of printers and fax
machines known to be controlled by this Print Service (the
number of structures in printer_h_p).
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_print_service_info1()
IAFLIB_get_print_service_info1() returns information about the status of a
Print Service along with information about the status of the individual printers
and fax machines this Print Service is controlling.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
num_printers_p
WORD * output. Pointer to the number of printers and fax
machines known to be controlled by this Print Service (the
number of structures in printer_h_p).
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
See Also
“IAFLIB_FreeStatusMemory()” on page 989
IAFLIB_get_printer_info()
IAFLIB_get_printer_info() gets a list of printers for the specified Print Service,
and retrieves attribute information about these printers. The attributes
describe the capabilities of each printer under the service’s control.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
num_printers_p
WORD * output. Pointer to the number returned in printer_h_
p.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_printer_info2()
IAFLIB_get_printer_info2() gets a list of printers for the specified Print Service
and retrieves attribute information about these printers. These attributes
describe the capabilities of each printer under the service’s control.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
num_printers_p
WORD * output. Pointer to the number of structures returned
in printer_h_p.
See Also
“IAFLIB_FreeAttr2Memory()” on page 986
IAFLIB_get_security_info()
IAFLIB_get_security_info() retrieves information about a user or group and
returns it to the caller. The information returned includes the user/group name
and ID, primary group, language, and login flag. If the user/group does not
exist in the security database, SCT_undefined is returned.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
security_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the desired Security Service. NULL for default.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_server_version()
IAFLIB_get_server_version() returns the release version of the server
software.
For server software releases 3.1 or later, this call RPCs to the server to get
the server software release number and returns it in the FN_server_version_
typ structure.
Syntax
#include <iaflib.i>
Parameters
fn_version FN_server_version_typ * output. Pointer to a structure
containing the version information.
See Also
“FN_server_version_typ” on page 263
IAFLIB_get_single_DIR()
IAFLIB_get_single_DIR() performs a high-performance, non-interruptible
query. It returns a single document index record, retrieving it by its ID number.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_record
The requested record was not found.
INX_err_no_permission
Permission denied.
INX_err_record_busy
The record is already locked
INX_err_other
The real error tuple is a parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_user_name()
IAFLIB_get_user_name() returns the NCH name for the logged user name.
Syntax
#include <iaflib.i>
Parameters
user PSTR output. NCH name for the user. If “:” is returned, it
means you have not logged on to the FileNet system.
See Also
The sample applications in the directories C:\FILENET\SAMPLE\GEN\,
C:\FILENET\SAMPLE\COMMIT\, C:\FILENET\SAMPLE\LPRINT\,
C:\FILENET\SAMPLE\SECURITY\, and C:\FILENET\SAMPLE\TTYLIB\
IAFLIB_get_user_stats()
IAFLIB_get_user_stats() retrieves IMS 3.1 user group, password status, and
account activity information for security management and creation and
change of passwords.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
user_p PSTR input. Pointer to the default user name. Null specifies
the logged-on user.
service_name_p
ASE_service_name_typ * input. Pointer to the NCH name for
the IMS storing the document. If NULL, the default IMS
specified in IAFLIB_logon_user() is used.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_get_version()
IAFLIB_get_version() returns the version of the WAL for Windows SDK
installed on a particular workstation. For example, for WAL for Windows
release 3.1.0, it returns:
version[0] = 0;
version[1] = 3;
version[2] = 1;
version[3] = 0;
Syntax
#include <iaflib.i>
Parameters
version PSTR output. Pointer to an array of four bytes. Upon return,
the array is filled with the following information:
IAFLIB_initialize_RDD()
IAFLIB_initialize_RDD() remains only to emit an error message in case it is
called by a client. It was replaced with RDD_init().
Syntax
#include <iaflib.i>
See Also
“RDD_init()” on page 1113
IAFLIB_is_annotated()
IAFLIB_is_annotated() returns a pointer to a flag that indicates whether there
are annotations on any page of the specified document.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_document_not_found
The document was not found by DOC.
DOC_err_no_permission
No permission to perform the specified DOC function.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_logon_user()
IAFLIB_logon_user() validates the name and password before logging onto or
off of the Index Service associated with IMS.
Syntax
#include <iaflib.i>
Parameters
user PSTR input. The user name. Can be a three-part NCH name
or just the object part. If the latter, IAFLIB supplies the
organization and domain from the ims_p parameter.
print_service_p
ASE_service_name_typ * optional input. Pointer to the NCH
name of the default Print Service selected by the user. No
validation of print_service_p is done. print_service_p is
simply stored in IAFLIB’s global data as the default Print
Service, for use with subsequent printing calls. If NULL,
IAFLIB uses the default Print Service for the IMS.
See Also
“ASE_service_name_typ” on page 178
IAFLIB_migrate_from_optical_disk()
IAFLIB_migrate_from_optical_disk() retrieves a document from the optical
disk and places it in the server cache. Specific CSM calls must be made to
retrieve the server cache object from the IMS and place it in the local PC
cache.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Cache or Document Service. Use NULL for default.
pages_in_doc_p
ASE_page_number_typ * output. If style is ILIB_USE_
DEFAULT_IMS or ILIB_USE_DOC_SERVICE, pointer to the
number of pages in the whole document.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_migrate_to_optical_disk()
IAFLIB_migrate_to_optical_disk() migrates a committed document from a
cache to optical disk. The entire document must be in the specified cache.
The migration is asynchronous with the call. The document must not be
previously migrated and is written to the family and/or cluster dictated by the
DOC_committal_desc_typ provided when the document was committed.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the desired Cache Service (where the document is located);
if it is NULL, this function uses the cache from which the
document was originally committed.
Errors Returned
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_document_not_found
The document was not found by DOC.
DOC_err_invalid_cache
An invalid cache name was given to DOC.
DOC_err_document_already_migrated
The document that was to be migrated has already been migrated.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_modify_print()
IAFLIB_modify_print() modifies print options of a print request. The print
options specified in prt_options_p replace the original request’s print options
(i.e., any print option you specify overwrites the original print option, but the
remainding original print options do not change.) The caller must have write
access to the request.
You may modify print requests that have the status of queued, failed, waiting,
or suspended. Attempting to modify a request with a complete status results
in an error.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
PRI_err_no_permission
The client does not have valid access for the document or request.
PRI_err_no_such_request
The specified request ID could not be found.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_modify_print2()
IAFLIB_modify_print2() modifies print options of a print request. This function
provides similar functionality to IAFLIB_modify_print(), but uses the PRI_
print_option_typ2 structure instead of PS_options_rec_type.
The print options specified in prt_options_p replace the original request’s print
options (i.e., any print option you specify overwrites the original print option,
but the remaining original print options do not change). The caller must have
write access to the request.
You can modify print requests with a status of queued, failed, waiting, or
suspended. Attempting to modify a request with a complete status results in
an error.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the desired Print Service. If NULL, the default Print Service
specified in IAFLIB_logon_user() is used.
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
PRI_err_no_permission
The client does not have valid access for the document or request.
PRI_err_no_such_request
The specified request ID could not be found.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_move_cache_object()
IAFLIB_move_cache_object() copies or moves a cache object to the specified
cache, to an object identified by object_desc. If source_cache_service_p and
dest_cache_service_p point to the same cache name and delete_source is
TRUE, this is a move operation.
For a copy operation, the client must have write permission on the target
cache and read permission on the current cache and the object. For a move
operation, the client must have read and delete permission on the current
cache and object and write permission on the target cache.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
source_cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
source Cache Service.
dest_cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the destination Cache Service. This might be the same as the
source Cache Service.
object_desc_p
CSM_object_desc_typ * output. Pointer to a structure
containing CSM object description.
Notes
If object_desc->id is set to ASE_INVALID_DOC_ID, the service generates a
temporary object descriptor for the object, which is returned in object_desc_p.
If doc_id and page refer to a temporary object, object_desc_p must not refer
to the same object.
If the new object already exists and reference counts are enabled, the
reference count in the destination object is incremented, and no error is
returned.
Errors Returned
For copy operation:
CSM_no_such_cache
CSM_logon, CSM_copy, CSM_move: Unknown cache_id.
CSM_invalid_session_handle
CSM was given an invalid session handle; the session probably timed
out.
CSM_no_such_object
CSM error: The specified object does not exist in the current cache.
CSM_no_resources
CSM_create: Lack of disk or data base space for the desired
operation.
CSM_IO_error
CSM_read, CSM_write: An IO error was encountered.
CSM_already_exists
CSM: Attempt to create a CSM object that already exists.
CSM_no_permission
The client does not have permission for the requested operation.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_move_folder()
IAFLIB_move_folder() moves or copies the specified folder or subtree of
folders. Specify more than one folder with wildcards.
How you specify source determines which folders you get and what part of
their pathname remains in the new folder name.
/acct713
/acct713/charges
/acct713/payments
/acct45
/acct45/charges
With a wildcard in a level of the folder pathname, any matching folder that
appears to be at the same level is specified. (Remember these are pseudo-
levels indicated by slashes in the folder name since all folders are really at the
same level. The pathname is really the folder name.)
For example, with source set to “/acct*,” the function moves or copies
/acct713 and /acct45 – BUT NOT /acct713/charges, /acct713/payments, and
/acct45/charges which are at another level.
The name of the new folder(s) starts with the prefix specified by dest. What
follows the prefix comes from the source. It is the part of the pathname that
includes the asterisk wildcard and any parts that follow it. For example, if dest
were “/loans”, the new folder or pathnames would be /loans/acct713 and
/loans/acct45.
If you are not using wildcards, specify only one folder. In this case, the new
folder name contains dest and the last piece of the pathname in source. For
example, if source is “/acct45/charges” and dest is “/loans,” the new name for
the folder is “/loans/charges.”
You must have read permission to copy the folder and write permission to
move the folder.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_bad_folder_name
Invalid folder name.
INX_err_too_deep
An attempt was made to create too many folder levels.
INX_err_descendent_dest
You cannot move/copy a folder to its own descendent.
INX_err_other
The real error tuple is a parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_prefetch()
IAFLIB_prefetch() initiates the prefetch of a list of documents from optical disk
to the specified cache. This function is called if the client anticipates requiring
the documents in the near future.
If you set the migrate_flag to TRUE, the migration of the specified documents
is given a higher priority. We do not recommend this as it can interfere with the
migration of documents needed currently.
Prefetching a document does not replace the need for calling IAFLIB_get_
object(). However, it takes less time for IAFLIB_get_object() to find a
prefetched document if the document is already in the cache.
One prefetch call with a large list is better than several prefetch calls with
small lists, as it allows the optical disk selection algorithm to better minimize
the total amount of disk swapping. If an error occurs while prefetching an
individual document, that document is not prefetched, but subsequent
documents are still attempted.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the Cache Service controlling the cache where the document
will reside. If it is a retrieval cache, the pages might not
remain in the cache; if this name is null, then a default cache
is used for each page range. The default cache used for each
page range is indicated in the corresponding dest_cache
field (see result_h_p below).
Errors Returned
The error returned by IAFLIB_prefetch() reflects an overall error that caused
the prefetch of all the page ranges to be aborted. The individual errors
indicated in the range_error field of the result_h_p reflect errors obtained
solely on prefetching the corresponding page ranges. Page ranges that did
not have errors are prefetched, even if other page ranges had errors.
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_document_not_found
The document was not found by DOC.
DOC_err_invalid_cache
An invalid cache name was given to DOC.
DOC_err_page_out_of_range
Page number out of the range of pages in a document given to DOC.
DOC_err_bad_cache_to_use
The specified cache is invalid to use with the given DOC function.
DOC_err_too_many_prefetches
The number of prefetches specified to DOC is beyond the limit.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_print_docs()
IAFLIB_print_docs() submits a request to print documents or uncommitted
images.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the Print Service to which this request is sent. If NULL, the
default Print Service specified in the most recent IAFLIB_
logon_user() call is used.
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
PRI_err_no_permission
The client does not have valid access for the document or request.
PRI_err_invalid_option
The Print Service cannot satisfy some of the specified options.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_print_docs1()
IAFLIB_print_docs1() submits a request to print documents or uncommitted
images. IAFLIB_print_docs1() provides similar functionality to IAFLIB_print_
docs(), but uses the PRI_print_option_typ2 structure instead of PS_options_
rec_type.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the Print Service to which this request is sent. If NULL, the
default Print Service specified in the most recent IAFLIB_
logon_user() call is used.
Errors Returned
PRI_err_invalid_session_handle
PRI was given an invalid session handle; the session might have
timed out.
PRI_err_no_permission
The client does not have valid access for the document or request.
PRI_err_invalid_option
The Print Service cannot satisfy some of the specified options.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_print_files()
IAFLIB_print_files() prints the contents of a DOS file containing standard
ASCII text (for example, a source program listing). It can print only one file per
call.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the Print Service to which this request is sent. If NULL, the
default Print Service specified in the most recent IAFLIB_
logon_user() call is used.
num_files WORD input. Number of files to print. Currently, only one file
can be printed per call.
file_names PSTR input. Array of file names. Currently, only one file name
can be specified. The directory path is not required. If no path
is specified, it checks the current directory. If the file is not in
the current directory, it searches the whole path.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_print_files1()
IAFLIB_print_files1() prints the contents of a DOS file containing standard
ASCII text (for example, a source program listing). It can print only one file per
call.
Syntax
#include <prilib.h>
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
print_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the Print Service to which this request is sent. If NULL, the
default Print Service specified in the most recent IAFLIB_
logon_user() call is used.
num_files WORD input. Number of files to print. Currently, only one file
can be printed per call.
file_list PSTR input. Array of file names. Currently, only one file name
can be specified. The directory path is not required. If no path
is specified, it checks the current directory. If the file is not in
the current directory, it searches the whole path.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_put_annotation()
IAFLIB_put_annotation() creates or modifies an annotation.
Creating an Annotation
Creating an annotation means associating a new annotation with a page of an
existing document. Append/execute permission on the document is required
in order to annotate it.
Modifying an Annotation
If style is not set to ILIB_ANO_CREATE, IAFLIB_put_annotation() modifies
the annotation. Modifying an annotation replaces an existing annotation with a
new one.
When modifying, the following styles are available. These styles can also be
combined using the bitwise OR operator:
ILIB_ANO_OVERRIDE
If set, IAFLIB_put_annotation() uses override, if needed, to get and
lock the annotation. An existing lock on the annotation is released and
the lock is granted to the current caller. Applications should set this bit
only with confirmation by the user.
ILIB_ANO_REPORT_CHANGE
If set, this bit tells IAFLIB_put_annotation() to compare the current
annotation with the original and return IAFLIB_annotation_changed if
they differ. It compares the current annotation’s annot_len and annot
fields to the original annotation’s fields and updates them with the
current value of the annotation. (Virtually all applications should use
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
For create annotation:
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_document_not_found
Document not found by DOC.
DOC_err_page_out_of_range
Page number out of the range of pages in a document given to DOC.
DOC_err_annotation_too_large
The annotation given to DOC is too large.
DOC_err_no_permission
No permission to perform specified DOC function.
DOC_err_invalid_security
Invalid security given to DOC.
DOC_err_other_error
An error other than the standard DOC error reported in the protocol
occurred (a bug in DOC).
DOC_err_invalid_session_handle
DOC was given an invalid session handle; the session probably timed
out.
DOC_err_annotation_not_found
Annotation not found by DOC.
DOC_err_annotation_busy
DOC annotation is busy being updated by another client.
DOC_err_no_permission
No permission to perform specified DOC function.
DOC_err_annotation_not_busy
Annotation not busy when override was requested of DOC. If the
annotation is not currently locked and OVERRIDE is set, this error is
returned.
DOC_err_document_not_found
Document not found by DOC.
DOC_err_annotation_too_large
Annotation given to DOC is too large.
DOC_err_no_capability
No capability for updating the given item through DOC.
DOC_err_invalid_security
Invalid security given to DOC.
See Also
“IAFLIB_get_annotations()” on page 990
IAFLIB_put_object()
IAFLIB writes the data to the cache object, which must already exist, or
updates the object’s attributes, or both. The client must have write permission
on the object and the cache.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
desired Cache Service.
Errors Returned
For write:
CSM_invalid_session_handle
CSM given invalid session handle; session probably timed out.
CSM_no_such_object
CSM error: The specified object does not exist in the current cache.
CSM_invalid_object_handle
FATAL CSM ERROR: An invalid object handle has been encountered.
CSM_object_busy
CSM error: The operation specified cannot get necessary access.
CSM_no_permission
The client does not have permission for the requested operation.
CSM_out_of_range
CSM_write, CSM_read: Attempt to read/write beyond end of object.
If the client attempts to write off the end of the allocated space for an
object, this error is returned, and no write takes place.
CSM_IO_error
CSM_read, CSM_write: An IO error was encountered.
CSM_other_error
CSM error: Catchall for other errors encountered inside CSM.
CSM_other_error
CSM error: Catchall for other errors encountered inside CSM.
CSM_invalid_session_handle
CSM given invalid session handle; session probably timed out.
CSM_no_such_object
CSM error: The specified object does not exist in the current cache.
CSM_object_busy
CSM error: The operation specified cannot get necessary access.
CSM_no_permission
The client does not have permission for the requested operation.
CSM_no_ageable_docs
An attempt was made to put an ageable document into a cache, but
this cache is not configured to allow ageable documents.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_query_db()
IAFLIB_query_db() performs an Index Database Query.
You can specify a maximum number of matched records per call. If the query
returns less than the maximum number of records, the query is complete and
automatically terminates.
If the query returns the maximum number of records, the function sets the
more_p parameter to TRUE, indicating that there are more records. In this
case, use IAFLIB_continue_query() to retrieve further matches from the
previous query specification.
Unlike other IAF functions, when the query is not yet complete (more_p
parameter returns TRUE), the call maintains a continuous network connection
to the server. This holds a limited resource on FileNet servers.
Also, until the query is completed, the connection remains open and the client
handle (client_h) used to start up the connection remains in use. Continue the
query using IAFLIB_continue_query().
Note that the Index Service searches in a forward (increasing key values)
direction.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
folder_spec PSTR input. The folder in which the document index record
was filed. Can include wildcards to search multiple folders.
num_matches_p
WORD * output. Pointer to the number of matches being
returned.
dirs_h_p HANDLE * output. Pointer to the handle for the array of INX_
query_match_typ structures.
You can specify the following system indexing fields in the filter conditions:
F_DOCNUMBER
F_DOCCLASSNUMBER
F_DOCCLASSNAME
F_ARCHIVEDATE
F_DELETEDATE
F_ENTRYDATE
F_RETENTOFFSET
F_PAGES
F_DOCTYPE
F_RETENTBASE
F_RETENTDISP
F_ACCESSRIGHTS
F_CLOSED
Document indices can also be classified as retrieval keys (key indexing fields)
and non-retrieval keys (filter indexing fields). Retrieval keys are a subset of
non-retrieval keys. All key indexing fields can be used as filter indexing fields.
Retrieval key indexes are stored separately in a B-tree so that you can filter
the whole database quickly.
Call RDD_get_valid_ixs() to get all the valid filter indexing fields and call
RDD_get_valid_keyixs() to get all the valid key indexing fields.
Key and filter conditions can be entered without spaces or can be surrounded
by any number of spaces for easier reading. Key and filter values are not
casesensitive. They can be entered in lower, upper, or mixed case.
or
where
<key value>, <lower bound>, and <upper bound> are constant strings or
numbers.
2) Retrieve documents that have a deletion date before or equal to August 15,
1992 (assuming that ‘mm/dd/yyyy’ is the system default mask).
3) Retrieve documents that have IDs that are greater or equal to 200000 and
less than 200500.
During the string pattern matching, the asterisk (*) matches one or more
characters, and the question mark (?) matches one character.
OR inclusive or
AND conjunction
NOT logical negation (unary operator)
1) OR
2) AND
3) NOT
4) <, <=, =, !=, <>, >=, >, LIKE, NOT LIKE
2) Retrieve documents that have a title field with the word romance. The word
romance can be at the beginning, at the middle, or at the end (assuming that
Title is user- defined indexing field).
3) Retrieve documents that have a state field with a value of neither New York
nor California (assuming that State is user- defined indexing field).
"F_DOCCLASSNAME = 'general'"
"F_DOCTYPE = IMAGE"
TEXT
FORM
MIXED
OTHER
See Also
“IAFLIB_continue_query()” on page 963
IAFLIB_reorder_folder()
IAFLIB_reorder_folder() reorders documents in a specified folder by putting
the doclist after the document specified by after_doc.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Note This function requires Series 6000 software version 3.0 or later.
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_folder
The specified folder does not exist.
INX_err_not_in_folder
The document is not filed in the specified folder.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_resize_cache_object()
IAFLIB_resize_cache_object() enables the client to modify the max_length
attribute of an object. The object must be closed and the client must have
write permission on the object. new_size cannot be less than the object’s
current length; however the client can explicitly set the current length lower
using IAFLIB_put_object().
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
cache_service_p
ASE_service_name_typ * input. Pointer to the NCH name for
the desired Cache Service.
new_size DWORD input. The new size of the cache object (number of
bytes).
Errors Returned
CSM_invalid_session_handle
CSM was given an invalid session handle; the session probably timed
out.
CSM_no_such_object
CSM error: The specified object does not exist in the current cache.
CSM_no_permission
The client does not have permission for the requested operation.
CSM_object_busy
CSM error: The operation specified cannot get necessary access.
CSM_no_resources
CSM_create: Lack of disk or data base space for the desired
operation.
CSM_other_error
CSM error: Catchall for other errors encountered inside CSM.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_terminate_query()
IAFLIB_terminate_query() interrupts a query or continuation that is in
progress. If an incomplete query has been made for the client, IAFLIB_
terminate_query() terminates it, which frees resources on the Index server.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_query
No query in progress.
INX_err_other
Real error tuple is parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_unfile_docs()
IAFLIB_unfile_docs() unfiles a list of documents from a specified folder. If
folder_id is zero, folder_name is used. Note that unfiling a document does not
delete the document index record itself; it deletes only the reference to it in the
specified folder.
If you have Series 6000 3.0 or later, we recommend that you use IAFLIB_
unfile_docs() instead of IAFLIB_file_doc() with file_flag set to FALSE.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Note This function requires Series 6000 software version 3.0 or later.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_update_db()
IAFLIB_update_db() closes a document or changes the index values of an
existing document index record, or both. The record is identified by doc_id.
If dir_p is not NULL, dir_p points to the new version of the document index
record. Indices present in the record are set to the values given. Missing
indices are not changed. Indices can be set to null by giving a value type of
null. dir_p can be NULL if only the close operation is desired.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_capability
No capability (lock) obtained for operation.
INX_err_no_record
The requested record was not found.
INX_err_no_permission
Permission denied.
INX_err_other
Real error tuple is parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_update_folder()
IAFLIB_update_folder() changes the attributes of a folder or closes a folder, or
both. It updates folder_desc for the folder specified by the id field in folder_
desc.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
folder_desc_p
INX_folder_desc_typ * input. Pointer to a data structure that
contains the new attributes of the folder.
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_capability
No capability (lock) obtained for operation.
INX_err_no_record
The requested record was not found.
INX_err_no_permission
Permission denied.
INX_err_other
Real error tuple is parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IAFLIB_where_filed()
IAFLIB_where_filed() returns an array of FN_folnum_typ folder IDs (in
folders_h_p) that contain the given document (doc_id).
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. Handle obtained from IAFLIB_get_client_
handle().
num_folders_p
WORD * output. Pointer to the number of folders returned in
folder_h_p.
Errors Returned
INX_err_invalid_handle
Invalid session handle.
INX_err_no_record
The requested record was not found.
INX_err_other
Real error tuple is parameter to this protocol error.
See Also
“IAFLIB_get_client_handle()” on page 994
IMGFMT_cmp_tiff()
IMGFMT_cmp_tiff() compresses the TIFF image data in the source file. This
function is usually used within a loop to compress the image one band at a
time.
Syntax
#include <imgfmt.i>
Parameters
source PSTR input. Name of source file.
IMGFMT_compress()
IMGFMT_compress() compresses num_lines lines of image data into FileNet
format.
Syntax
#include <imgfmt.i>
Parameters
num_lines WORD input. Number of scan lines to compress.
mode int input. Mode is first band flag. If mode is non-zero, an extra
EOL is added at the beginning of the compressed data.
IMGFMT_convert_image()
IMGFMT_convert_image() converts an image file from source format to dest
format. Formats are defined in IMGFMT.I. See Chapter 5, “Image Formats,”
on page 135 for more information about FileNet image formats.
The resolution of the destination will be the same as that of the source. If the
information about the resolution of the source is missing from the header of
the source file (bitmaps, JPEGs), the resolution is assumed to be 100 dpi.
When converting to TIFF group 3 FAX images, your result might be an A-size
image.
Note We’ve tested the conversions listed in the tables below for A-size images.
Many larger images work, but some do not. JPEG conversions are a function
of IMGFMT_convert_image_custom().
Syntax
#include <imgfmt.i>
Parameters
source_p IMGFMT_desc_typ * input. Pointer to structure containing
information about the source image.
destination_p
IMGFMT_desc_typ * input. Pointer to a structure containing
information about what to convert the source image to.
The following three tables explain the image formats and conversion
possibilities.
In the following table of possible image conversions, the column on the left
lists the source formats and the top row lists the destination formats.
Constant 3 4 5 6 7 8 9 16 17 20 11 13 14 21
IMGFMT_FILENET 1
IMGFMT_FILENET_RAW 3 Y 101 Y Y Y Y Y Y Y Y Y Y Y
IMGFMT_FILENET_G3 4 Y 101 Y Y Y Y Y Y Y Y Y Y Y
IMGFMT_FILENET_G4 5 Y Y Y Y Y Y Y Y Y Y Y Y Y
IMGFMT_TIFF2
IMGFMT_TIFF_1 or 6 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_TIFF_RAW
IMGFMT_TIFF_2_G3 or 7 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_TIFF_G3_CMP2
IMGFMT_TIFF_2_G4 or 8 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_TIFF_G4
IMGFMT_TIFF_3_G3 or 9 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_TIFF_G3_FAX
IMGFMT_TIFF_3C_G3 or 16 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_TIFF_G3_FAX_COARSE
IMGFMT_TIFF_G3_CMP3* 17 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMG_FMT_DIB 20 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_PCX 11 101 Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_MSP 13 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_BMP 14 Y Y 101 Y Y Y Y Y Y Y Y Y Y
IMGFMT_JPEG* 21 Y Y 101 Y Y Y Y Y Y Y Y Y Y
Table Legend
* means for WAL 4.0 only. JPEG useable only with IMGFMT_convert_
image().
Y means Yes.
100 means return error <201, 0, 100> Conversion not supported, or for WAL
3.1, no error is returned. The result of the conversion is a FileNet group 3
image rather than a FileNet group 4 image.
See Also
“IMGFMT_convert_image_custom()” on page 1092
IMGFMT_convert_image_custom()
IMGFMT_convert_image_custom() converts an image file from the source
format to the destination format. This function handles JPEG and any other
conversion and can be used instead of IMGFMT_convert_image(), which
does not handle JPEG conversions. IMGFMT.I defines formats.
See Chapter 5, “Image Formats,” on page 135 for more information about
FileNet image formats.
When converting to TIFF group 3 FAX images, your result might be an A-size
image.
Syntax
#include <imgfmt.i>
Parameters
source_p IMGFMT_desc_typ * input. Pointer to structure containing
information about the source image.
destination_p
IMGFMT_desc_typ * input. Pointer to a structure containing
information about what to convert the source image to.
custom_params
IMGFMT_custom_typ * input. Pointer to a structure
containing any custom parameters needed. For example,
JPEG luminance can be set for conversion to JPEG format.
Note We’ve tested the conversions listed in the tables for A-size images. Many
larger images work, but some do not.
See Also
“IMGFMT_convert_image()” on page 1087
QMR_build_doc_list()
QMR_build_doc_list() allocates and fills a structure that contains a list of the
selected documents for printing or displaying. The list is allocated as
shareable and non-bankable, so it is suitable for use in DDE.
Syntax
#include <qmr.i>
Parameters
wnd_h HWND input. QMR window handle.
QMR_create_match_window()
QMR_create_match_window() invokes the Query Match Report interface,
which shows the results of a query against the Index Database. This function
creates an asynchronous window and requires subclassing to trap
terminators. The function QMR_select_match() is recommended.
From the user interface, the user can print the match report on a local printer,
continue the query, file and unfile documents, delete documents, perform
folder management, and modify user indices.
Syntax
#include <qmr.i>
Parameters
client_h HANDLE input. IAFLIB client handle from IAFLIB_get_client_
handle().
more BOOL input. If FALSE, there are no more entries. This value
is usually obtained from IAFLIB_query_db().
dirs_h HANDLE input. Handle for the list of document index records
(typically obtained from IAFLIB_query_db()). This handle is
freed by QMR_create_match_window() and should not be
freed or used by the caller on return from QMR_create_
match_window().
title PSTR input. The text that appears in the caption bar of the
QMR window.
max_select int input. Maximum number of QMR entries the user can
select. If max_select is -1, the number of selections is
unlimited.
free_dirs BOOL input. Free the memory allocated to the DIRs after
formatting the report.
See Also
“IAFLIB_get_client_handle()” on page 994
QMR_format_report()
QMR_format_report() formats the index data from document index records
into an ASCII text file suitable for displaying or printing.
Syntax
#include <qmr.i>
Parameters
client_h HANDLE input. IAFLIB client handle returned from IAFLIB_
get_client_handle().
See Also
“IAFLIB_continue_query()” on page 963
QMR_query()
QMR_query() is an all-in-one-call function that performs a query, optionally
displays QMR, and returns a list of selected document IDs.
Syntax
#include <qmr.i>
Parameters
ims PSTR input. NCH name of the IMS to use. Can be NULL for
default.
folder_spec PSTR input. Can specify one or more folders. See “IAFLIB_
delete_folders()” on page 976 for a description of how to use
wildcards with folder_spec.
show FN_BOOL input. TRUE to show QMR and let user select;
FALSE to just return the first matches up to the limit of max_
select.
See Also
“INX_closed_typ” on page 357
QMR_select_match()
QMR_select_match() invokes the Query Match Report window, which
displays the results of a query against the Index Database and enables the
user to select one or more of the documents. select_h_p points to an array of
the selected document IDs.
This function is recommended for querying the end user or a select list
resulting from a call to IAFLIB_query_db(). From the user interface, the user
can print the match report on a local printer or continue the query until it is
complete.
Syntax
#include <iaflib.i>
Parameters
client_h HANDLE input. IAFLIB client handle obtained from IAFLIB_
get_client_handle().
title PSTR input. Specifies the text that is to appear in the caption
bar of the window.
max_select int input. Maximum number of entries the user can select. If
max_select is -1, the number of selections is unlimited.
See Also
“IAFLIB_get_client_handle()” on page 994
RDD_exit()
RDD_exit() frees the handle rdd_h.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for client data structure containing
handles to RDD lists and other data. Obtained from RDD_
init().
See Also
“RDD_init()” on page 1113
RDD_get_dclass_info()
RDD_get_dclass_info() returns a handle for the document class descriptor for
the document class specified by class_id or class_name.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
class_desc_h_p
HANDLE * output. Pointer to the handle for a document class
descriptor (RDD_DCLASS_DESC).
Note This function returns a handle for a variable size structure. It is the
application’s responsibility to free the handle to which class_desc_h_p points
when use of the data is complete.
See Also
“RDD_init()” on page 1113
RDD_get_dclasses()
RDD_get_dclasses() returns a count of document classes and a handle for an
array of document class names. Each name is a string of length FN_MAX_
DCNAMESIZE + 1 (which is 19). Count is the number of names in the array.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
See Also
“RDD_init()” on page 1113
RDD_get_handle()
RDD_get_handle() returns the requested handle. The handle must have been
previously registered with RDD_set_handle(). See “RDD_set_handle()” on
page 1116 for more information. It returns NULL if the handle is not found.
Syntax
#include <rdd.i>
Parameters
name PSTR output. Name of handle set by RDD_set_handle(). Its
maximum length is 8 characters. Returns NULL if the handle
is not found.
See Also
“RDD_set_handle()” on page 1116
RDD_get_ix_info()
RDD_get_ix_info() returns an index descriptor for the index specified by
index_id or index_name. This can be used with any index.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
index_name PSTR input. Name of the index. Used to specify the index if
index_id is RDD_INVALID_INDEX_ID.
See Also
“RDD_init()” on page 1113
RDD_get_key_info()
RDD_get_key_info() returns a key descriptor for the key index specified by
index_id or index_name. This can be used only with key indices.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
index_name PSTR input. Name of the index. Used to specify the index if
index_id is RDD_INVALID_INDEX_ID.
index_desc_p
RDD_KEY_IXFIELD_DESC * output. Pointer to an index
descriptor.
See Also
“RDD_init()” on page 1113
RDD_get_menuitem_info()
RDD_get_menuitem_info() returns a menu item descriptor for the menu item
specified by item_id or item_name, in the menu specified by menu_name.
A user-defined index can be of type menu. If it is, the name of a menu (built in
Forms Build on the UNIX workstation) is part of the index’s definition. Each
menu has a series of items or options.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
item_name PSTR input. Name of the menu item. Used to specify the
menu item if item_id is FN_UNDEF_SELECTION.
See Also
“RDD_init()” on page 1113
RDD_get_menuitems()
RDD_get_menuitems() returns a pointer to a handle for an array of menu item
strings and the number of menu items
A user-defined index can be of type menu. If it is, the name of a menu (built in
Forms Build on the UNIX workstation) is part of the index’s definition. Each
menu has a series of items or options. Each string is null-terminated.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
See Also
“RDD_init()” on page 1113
RDD_get_valid_ixs()
RDD_get_valid_ixs() returns a pointer to a handle for an array of the index
names for the specified document classes. It also returns a pointer to the
number of indices returned. If num_classes is zero, class_names is ignored
and all document classes are used; that is, all the indices defined for the
system are returned.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
See Also
“RDD_init()” on page 1113
RDD_get_valid_keyixs()
RDD_get_valid_keyixs() returns a pointer to a handle for an array of key index
names for the specified classes. It also returns a pointer to the number of
indices returned. If num_classes is zero, class_names is ignored, all
document classes are used, and all the key indices defined for the system are
returned.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
See Also
“RDD_init()” on page 1113
RDD_init()
RDD_init() initializes RDD, the retrieval data dictionary, with index database
dictionary information from the specified IMS.
Syntax
#include <rdd.i>
Parameters
ims_p ASE_service_name_typ * input. Pointer to the NCH name for
desired IMS. If NULL, the default IMS specified in IAFLIB_
logon_user() is used.
See Also
“IAFLIB_logon_user()” on page 1033
RDD_is_field_valid()
RDD_is_field_valid() returns a pointer to the index field descriptor for the
index_name if index_name is a valid index for one or more of the specified
document classes. If num_classes is zero, class_names is ignored and the
pointer to the index field descriptor is returned if index_name is a valid index
for any document class.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init().
See Also
“RDD_init()” on page 1113
RDD_is_key_valid()
RDD_is_key_valid() returns a pointer to the index field descriptor for the
index_name if index_name is a valid key index for one or more of the specified
document classes. If num_classes is zero, class_names is ignored and a
pointer to the index field descriptor is returned if index_name is a valid key
index for any document class.
Syntax
#include <rdd.i>
Parameters
rdd_h HANDLE input. Handle for RDD. Obtained from RDD_init.
See Also
“RDD_init()” on page 1113
RDD_set_handle()
RDD_set_handle() registers any handle with RDD (the Retrieval Data
Dictionary) and provides a name for that handle. Use the name in a variety of
related modules that use RDD_get_handle() to retrieve the current handle to
make passing the handle from module to module more efficient.
Syntax
#include <rdd.i>
Parameters
name PSTR input. NULL terminated string name of the handle (8
characters maximum).
a_handle HANDLE input. Handle for RDD. HWND or task handle for be
registered.
See Also
“RDD_get_handle()” on page 1106
REST_CloseArchive()
REST_CloseArchive() frees resources associated with a restore operation.
arch_h is invalid on return from this call. This routine is suitable for calling from
external programs such as Microsoft Word for Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
Errors Returned
RESTLIB_lock_failed
RESTLIB: Global lock failed (not enough memory?).
See Also
“REST_OpenArchive()” on page 1123
REST_GetArchTime()
REST_GetArchTime() returns the time an archive was made. This routine is
suitable for calling from external programs such as Microsoft Word for
Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
Errors Returned
RESTLIB_lock_failed
RESTLIB: Global lock failed (not enough memory?).
See Also
“REST_OpenArchive()” on page 1123
REST_GetDirEntry()
REST_GetDirEntry() returns the dir entry of a file in the archive specified by
the which parameter. Files are numbered starting at 1. This routine is suitable
for calling from external programs such as Microsoft Word for Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
dir_entry dir_entry_typ * output. The dir entry for the specified file.
Errors Returned
RESTLIB_Lock_Failed
RESTLIB: Global lock failed (not enough memory?).
RESTLIB_OutOfRange
RESTLIB: File index out of range for this archive.
See Also
“REST_OpenArchive()” on page 1123
REST_GetFileName()
REST_GetFileName() returns the name of a file in the archive specified by the
which parameter. Files are numbered starting at 1. This routine is suitable for
calling from external programs such as Microsoft Word for Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
file_name PSTR output. DOS file name. The caller must allocate
sufficient memory to contain the file name.
Errors Returned
RESTLIB_Lock_Failed
RESTLIB: Global lock failed (not enough memory?).
RESTLIB_OutOfRange
RESTLIB: File index out of range for this archive.
See Also
“REST_OpenArchive()” on page 1123
REST_GetFileNames()
REST_GetFileNames() returns a list of the files in the archive. This routine is
suitable for calling from external programs such as Microsoft Word for
Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
Errors Returned
RESTLIB_Lock_Failed
RESTLIB: Global lock failed (not enough memory?).
See Also
“REST_OpenArchive()” on page 1123
REST_GetVolName()
REST_GetVolName() returns the name of the volume from which an archive
was made. This routine is suitable for calling from external programs such as
Microsoft Word for Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
vol_name PSTR output. DOS volume name. The caller must allocate
sufficient memory to contain the volume name.
Errors Returned
RESTLIB_Lock_Failed
RESTLIB: Global lock failed (not enough memory?).
See Also
“REST_OpenArchive()” on page 1123
REST_OpenArchive()
REST_OpenArchive() provides a high-level interface with which to restore
Archive documents. It obtains an archive handle, which is used to do the
actual restore operation. Optionally, it returns a list of the files in the archive.
This routine is suitable for calling from external programs such as Microsoft
Word for Windows.
Syntax
#include <restlib.i>
Parameters
ims_name PSTR input. NCH name of the IMS. Can be NULL to use the
default IMS.
show_progress
FN_BOOL input. TRUE to create a modeless dialog box in
which to display status messages, FALSE to not show status.
file_count WORD * output. Number of files in the list; can be NULL if the
list is not needed.
Errors Returned
RESTLIB_No_Mem
RESTLIB: Not enough memory.
RESTLIB_Lock_Failed
RESTLIB: Global lock failed (not enough memory?).
RESTLIB_File_Read
RESTLIB: Cannot read file.
RESTLIB_Not_Archive
RESTLIB: Not an archive document.
See Also
“ARCH_DocEntry()” on page 600
REST_RestoreDoc()
The REST_RestoreDoc() function is a high-level interface with which to
restore Archive documents. It restores all files in the archive, optionally
showing status messages or prompting the user to skip or rename files. This
routine is suitable for calling from external programs such as Microsoft Word
for Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
show_progress
FN_BOOL input. TRUE to create a modeless dialog box in
which to display status messages, FALSE to not show status.
warn FN_BOOL input. TRUE to warn the user if a file with the
same name exists, FALSE to overwrite without warning.
file_count WORD * output. Number of files in the list; can be NULL if the
list of file names is not needed.
Errors Returned
RESTLIB_Lock_Failed
RESTLIB: Global lock failed (not enough memory?).
RESTLIB_File_Read
RESTLIB: Cannot read file.
RESTLIB_Cannot_Prompt
RESTLIB: Attempt to prompt user failed.
RESTLIB_User_Cancel
RESTLIB: User Canceled.
See Also
“REST_OpenArchive()” on page 1123
REST_RestoreFile()
REST_RestoreFile() provides a high-level interface with which to restore
Archive documents. It restores specific files in the archive, optionally showing
status messages or prompting the user to skip or rename files. This routine is
suitable for calling from external programs such as Microsoft Word for
Windows.
Syntax
#include <restlib.i>
Parameters
arch_h HANDLE input. Archive handle from REST_OpenArchive().
show_progress
FN_BOOL input. TRUE to create a modeless dialog box in
which to display status messages, FALSE to not show status.
warn FN_BOOL input. TRUE to warn user if a file with the same
name exists, FALSE to overwrite without warning.
rest_name PSTR input. Destination DOS file name. If present, this is the
name to which to restore the file. It can be NULL if renaming
is not desired or if prompt is TRUE. If it is non-blank and
prompt is TRUE, this sets the default for the “Restore As”
user dialog. If present, the name of the file actually restored is
returned here. Use a blank to let the source name be the
default destination name and get the actual destination name
back.
Errors Returned
RESTLIB_Lock_Failed
RESTLIB: Global lock failed (not enough memory?).
RESTLIB_File_Read
RESTLIB: Cannot read file.
RESTLIB_Cannot_Prompt
RESTLIB: Attempt to prompt user failed.
RESTLIB_User_Cancel
RESTLIB: User Canceled.
See Also
“REST_OpenArchive()” on page 1123
SCT_serialize()
SCT_serialize() has been considered a “No operation” function since
release 3.1. Its functionality is internal now.
Prior to release 3.1, you had to call SCT_serialize() before calling SEC_
logon(), SEC_renew(), WQS_logon(), WQS_qlogon(), and BES_logon().
Since release 3.1, the credential parameter of these logon functions becomes
an unused parameter. No change is required to upgrade 3.0 WAL for
Windows applications.
Syntax
#include <iaflib.i>
#include <SCT.def>
Parameters
credential PSTR input. Not used.
SEC_add_info()
SEC_add_info() enables a logged-on user to add information to the security
database for users, workstations, functions, and their members. The type of
information to be added is contained in the sec_info_p structure. The logged-
on user must have the appropriate access to the functions GroupAdmin,
SiteAdmin, or FunctionAdmin to execute this function.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session handle that
identifies the user/group that is adding information to the
security database. The user must have appropriate access to
add information to the database.
Errors Returned
SEC_err_invalid_session_handle
SEC was given an invalid session handle; the session might have
timed out.
SEC_err_access_denied
You are not authorized to execute the requested command.
SEC_err_name_already_exists
The name being defined already exists in the database.
SEC_err_invalid_name
The name specified has an invalid format.
SEC_err_max_members_exceeded
The maximum number of members has been exceeded.
See Also
“ASE_session_number_typ” on page 179
SEC_check_access()
SEC_check_access() verifies approval of a user’s access, based on the set of
access restrictions passed to this function and the type of access required.
The call is successful if the access is approved.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session number
returned as a result of a prior successful logon. See
“SECMAN_get_sec_handle()” on page 1156 or “SEC_
logon()” on page 1148.
See Also
“SEC_logon()” on page 1148
SEC_check_functions()
SEC_check_functions() verifies whether a user has access to the functions
indicated. A set of function names is passed to SEC_check_functions() which
checks each function name individually and passes back a set of flags
indicating whether or not the corresponding function has been approved.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session number
returned as a result of a prior successful logon. See
“SECMAN_get_sec_handle()” on page 1156 or “SEC_
logon()” on page 1148.
func_names_p
SEC_func_name_typ * input. Pointer to a list of function
names that are to be approved for access by the user
identified by session_num.
See Also
“SEC_logon()” on page 1148
SEC_check_membership()
SEC_check_membership() checks whether a user or group is a member of
the specified group. If the user is a member of the group, the function returns
success; otherwise, an error is returned.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session number
returned as a result of a prior successful logon. See
“SECMAN_get_sec_handle()” on page 1156 or “SEC_
logon()” on page 1148.
See Also
“SEC_logon()” on page 1148
SEC_delete_info()
SEC_delete_info() enables the logged-on user to delete information from the
security database for users, workstations, functions, and their members. It
first verifies that the logged-on user has the appropriate access to the
functions GroupAdmin, SiteAdmin, or FunctionAdmin.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session handle that
identifies the user/group that is deleting information from the
security database. The user must have appropriate access to
delete information from the database.
Errors Returned
SEC_err_invalid_session_handle
SEC was given an invalid session handle; the session might have
timed out.
SEC_err_invalid_info_type
The info_type given to SEC was invalid.
SEC_err_access_denied
You are not authorized to execute the requested command.
SEC_err_predefined_group
You are attempting to delete a system defined group.
SEC_err_record_not_found
The specified database record was not found.
See Also
“ASE_session_number_typ” on page 179
SEC_find_info()
SEC_find_info() retrieves information from the security database about users,
workstations, functions, and their members.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session handle that
identifies the user/group that is finding information in the
security database. The user must have appropriate access to
find information in the database.
Errors Returned
SEC_err_invalid_session_handle
SEC was given an invalid session handle; the session might have
timed out.
SEC_err_access_denied
You are not authorized to execute the requested command.
SEC_err_invalid_info_type
The info_type given to SEC was invalid.
See Also
“ASE_session_number_typ” on page 179
SEC_get_membership_list()
SEC_get_membership_list() retrieves the names of all the groups to which a
user/group belongs. An error code is returned if the user/group does not exist.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session number
returned as a result of a prior successful logon. Identifies the
user that the membership list is to be retrieved for (unless id
is specified). See “SECMAN_get_sec_handle()” on
page 1156 or “SEC_logon()” on page 1148.
See Also
“SEC_logon()” on page 1148
SEC_get_security_info()
SEC_get_security_info() retrieves information about a user or group. The
information returned includes the user/group name and ID, primary group,
language, and login flag. If the user/group does not exist in the security
database, SCT_undefined is returned.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session number
returned as a result of a prior successful logon that identifies
the user for which security information is to be retrieved.
See Also
“SEC_logon()” on page 1148
SEC_get_system_info()
SEC_get_system_info() retrieves system information from the security
database or from the operating system. The information retrieved is either the
security defaults information (preferences) or the system date/time.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session handle. This
identifies the user/group that is getting information from the
security database. The user must have appropriate access to
get system information from the database.
Errors Returned
SEC_err_invalid_session_handle
SEC was given an invalid session handle; the session might have
timed out.
SEC_err_invalid_info_type
The info_type given to SEC was invalid.
SEC_err_access_denied
You are not authorized to execute the requested command.
See Also
“ASE_session_number_typ” on page 179
SEC_logoff()
SEC_logoff() terminates a service logon with a security service. Use this
function only when you use SEC_logon() to log on to a security service. For
more information, see “SEC_logon()” on page 1148 and “SECMAN_get_sec_
handle()” on page 1156.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input/output. The session
number returned as a result of a prior successful logon with
SEC_logon().
See Also
“SEC_logon()” on page 1148
SEC_logon()
SEC_logon() establishes a service logon with the security services.
Syntax
#include <seclib.i>
Parameters
security_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the Security Service to log on to.
session_num_p
ASE_session_number_typ * output. Pointer to the session
number returned as the result of the logon.
See Also
“SECMAN_get_sec_handle()” on page 1156
SEC_rename_info()
SEC_rename_info() changes the name of a user or group in the security
database.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session handle that
identifies the user/group that is renaming information in the
security database. The user must have appropriate access to
rename information in the database.
Errors Returned
SEC_err_invalid_session_handle
SEC was given an invalid session handle; the session might have
timed out.
SEC_err_invalid_info_type
The info_type given to SEC was invalid.
SEC_err_access_denied
You are not authorized to execute the requested command.
SEC_err_record_not_found
The specified database record was not found.
See Also
“ASE_service_name_typ” on page 178
SEC_renew()
SEC_renew() re-establishes a session with the security services. Use this
function only when you use SEC_logon() to log on to the security services.
For more information, see “SEC_logon()” on page 1148 and “SECMAN_get_
sec_handle()” on page 1156.
Syntax
#include <seclib.i>
Parameters
security_service_p
ASE_service_name_typ * input. Pointer to the NCH name of
the Security Service to log on to.
Error Returned
SEC_other_error
See Also
“SEC_logon()” on page 1148
SEC_set_system_info()
SEC_set_system_info() enables the logged-on user to set either system
information in the security database or the system date/time.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session handle that
identifies the user/group that is setting information in the
security database. The user must have appropriate access to
set system information in the database.
Errors Returned
SEC_err_invalid_session_handle
SEC was given an invalid session handle; the session might have
timed out.
SEC_err_invalid_info_type
The info_type given to SEC was invalid.
SEC_err_access_denied
You are not authorized to execute the requested command.
See Also
“ASE_session_number_typ” on page 179
SEC_update_info()
SEC_update_info() enables the logged-on user to update information in the
security database for a user, group, or service process.The logged-on user
must have the appropriate access to the functions GroupAdmin, SiteAdmin, or
FunctionAdmin.
Syntax
#include <seclib.i>
Parameters
session_num ASE_session_number_typ input. The session handle that
identifies the user/group that is updating information in the
security database. The user must have appropriate access to
update information in the database.
Errors Returned
SEC_err_invalid_session_handle
SEC was given an invalid session handle; the session might have
timed out.
SEC_err_invalid_info_type
The info_type given to SEC was invalid.
SEC_err_access_denied
You are not authorized to execute the requested command.
SEC_err_record_not_found
The specified database record was not found.
See Also
“ASE_session_number_typ” on page 179
SECMAN_free_sec_handle()
SECMAN_free_sec_handle() terminates a service logon with the security
services.
Syntax
#include <secman.i>
Parameters
session_num ASE_session_number_typ input. The session handle.
Obtained from SECMAN_get_sec_handle().
See Also
“SECMAN_get_sec_handle()” on page 1156
SECMAN_get_sec_handle()
SECMAN_get_sec_handle() establishes a service logon with the security
services.
Syntax
#include <secman.i>
Parameters
ims_p ASE_service_name_typ * input. Pointer to the IMS structure.
If NULL, the currently logged on IMS is used.
See Also
“SEC_logon()” on page 1148
SECMAN_renew_sec_handle()
SECMAN_renew_sec_handle() re-establishes a service session with the
security services.
Syntax
#include <secman.i>
Parameters
ims_p ASE_service_name_typ * input. Pointer to the IMS structure.
If NULL, the currently logged on IMS is used.
See Also
“SECMAN_get_sec_handle()” on page 1156
ServiceNameCacheDefaults()
ServiceNameCacheDefaults() retrieves a Clearinghouse Default Cache
Descriptor record from the domain specified by domain. If domain in NULL,
the default domain is used.
Syntax
#include <servname.i>
Parameters
domain NCH_DomainName * input. Can be NULL for default domain.
See Also
“NCH_DefCacheDescValue” on page 386
ServiceNameDefaults()
ServiceNameDefaults() retrieves a Clearinghouse Default Service Descriptor
record from the domain specified by domain. If domain is NULL, the default
domain is used.
Syntax
#include <servname.i>
Parameters
domain NCH_DomainName * input. Can be NULL for default domain.
See Also
“NCH_DefServiceDescValue” on page 388
ServiceNameOptions()
ServiceNameOptions() provides a user interface with which to select a
Clearinghouse object by browsing through existing organizations and
domains.
Syntax
#include <servname.i>
Parameters
parent_h HWND input. Window handle to be used as the parent of the
dialog box.
See Also
“NCH_Property” on page 397
SLACLIB_GetAttr()
SLACLIB_GetAttr() retrieves an attribute from SLACLIB.
Syntax
#include <slaclib.i>
Parameters
attr VOID *. A pointer to a structure where the attribute will be
stored.
hWnd HWND. The window for which to get the attribute. Can be
NULL if not needed (i.e., if you are getting an SLACLIB
attribute instead of a window attribute).
Errors Returned
SLACLIB_invalid_attribute
Invalid attribute specified.
SLACLIB_key_not_found
Key not found.
SLACLIB_hwnd_required
HWND required.
See Also
“SLACLIB_SetAttr()” on page 1167
SLACLIB_GetTimeStamp()
SLACLIB_GetTimeStamp() returns the latest timestamp, chosen from one of
the following:
• COURIER timestamp
• IAFLIB timestamp
Syntax
#include <slaclib.i>
Parameters
dwTickCount DWORD *. The timestamp.
SLACLIB_RegisterWindow()
SLACLIB_RegisterWindow() registers a window with SLACLIB. Windows that
are registered with SLACLIB can be shut down when a user has been idle for
a specified time.
[AutoLogoff]
Timeout=0
LogoffLevel=0
Timeout is specified in minutes and indicates the period over which a user can
be idle; the default is zero. LogoffLevel can have the following values:
Syntax
#include <slaclib.i>
Parameters
hWnd The window being registered for SLAC key shut down.
Errors Returned
SLACLIB_key_exists
Key already exists.
SLACLIB_key_table_full
Key table full.
See Also
“SLACLIB_UnRegisterWindow()” on page 1169
SLACLIB_ResetTimer()
SLACLIB_ResetTimer() resets the SLACLIB internal timer. You can call this
function when a user does not want to be logged off.
Syntax
#include <slaclib.i>
Parameters
None.
SLACLIB_SetAttr()
SLACLIB_SetAttr() sets an attribute in SLACLIB.
Syntax
#include <slaclib.i>
Parameters
attr VOID *. A pointer to the new attribute value.
wType WORD. The type of attribute being set. The type of attribute
being requested. Can be one of the following:
SLACLIB_ATTR_LOGOFF_LEVEL
SLACLIB_ATTR_KILL_WORKFLO
SLACLIB_ATTR_TIMEOUT
SLACLIB_ATTR_ENABLED
SLACLIB_ATTR_SHUTDOWN
SLACLIB_ATTR_UNSAVED_DATA
SLACLIB_ATTR_WORKFLO_HWND
hWnd The window to assign the attribute to. Can be NULL if not
needed (i.e. if you are setting a SLACLIB attributes).
Errors Returned
SLACLIB_invalid_attribute
Invalid attribute specified.
SLACLIB_key_not_found
Key not found.
SLACLIB_hwnd_required
HWND required.
See Also
“SLACLIB_GetAttr()” on page 1162
SLACLIB_Shutdown()
SLACLIB_Shutdown() performs a SLAC key shutdown of all registered
windows, in reverse order (i.e., newest window first).
Syntax
#include <slaclib.i>
Parameters
None.
Errors Returned
SLACLIB_disabled
SLACLIB is disabled.
See Also
“SLACLIB_RegisterWindow()” on page 1164
SLACLIB_UnRegisterWindow()
SLACLIB_UnRegisterWindow() unregisters a window with SLACLIB. Call this
function before destroying a window that has been registered with SLACLIB.
Syntax
#include <slaclib.i>
Parameters
hWnd HWND. A handle for the window to unregister.
Errors Returned
SLACLIB_key_not_found
Key not found.
See Also
“SLACLIB_RegisterWindow()” on page 1164
SVN_get_Attr_desc()
SVN_get_Attr_desc() retrieves attributes from a specified domain. IMS
software release 3.1 and later support this function.
Syntax
#include <servname.i>
Parameters
domain_p NCH_DomainName * input. The NCH name for the desired
domain. If NULL, the currently logged on domain is used.
See Also
“NCH_AttributesDescValue” on page 380
SVN_get_BES_desc()
SVN_get_BES_desc() retrieves a Clearinghouse BES Descriptor record for
the BES name given in service_p.
Syntax
#include <servname.i>
Parameters
service_p NCH_ObjectName * input. The NCH name for the desired
BES.
See Also
“NCH_BatchDescValue” on page 383
SVN_get_CSM_desc()
SVN_get_CSM_desc() retrieves a Clearinghouse CSM Descriptor record for
either the CSM or BES name specified in service_p.
Syntax
#include <servname.i>
Parameters
service_p NCH_ObjectName * input. The NCH name for the desired
CSM or BES.
See Also
“NCH_CacheDescValue” on page 384
SVN_get_DefDevice_desc()
SVN_get_DefDevice_desc() gets the NCH_DefDeviceDescValue structure for
the specified domain. This structure contains the NCH object names for the
default printer and default tape drive.
Syntax
#include <servname.i>
Parameters
domain NCH_DomainName * input. The NCH name for the desired
domain. Can be NULL for default domain.
See Also
“NCH_DefDeviceDescValue” on page 387
SVN_get_DefServ1_desc()
SVN_get_DefServ1_desc() retrieves a Clearinghouse DefServ1 Descriptor
record for the specified domain.
Syntax
#include <servname.i>
Parameters
domain NCH_DomainName * input. The NCH domain name.
See Also
“NCH_DefService1DescValue” on page 389
SVN_get_IMS_desc()
SVN_get_IMS_desc() retrieves a Clearinghouse IMS Descriptor record for
either the IMS name or BES name specified in service_p, as determined by
service_type, which must be either SVN_IMS or SVN_BES.
Syntax
#include <servname.i>
Parameters
service_p NCH_ObjectName * input. The NCH name for either the
desired IMS (if service_type is SVN_IMS) or BES (if service_
type is SVN_BES).
See Also
“NCH_IMSDescValue” on page 393
SVN_GetLocalAddr()
SVN_GetLocalAddr() retrieves the local area network (e.g., Ethernet) address
of the caller.
Syntax
#include <servname.i>
Parameters
net_address_p
NCH_NetAddr_typ *. Pointer to the local area network
address of the caller.
See Also
“NCH_NetAddr_typ” on page 394
SVN_get_PS_desc()
SVN_get_PS_desc() retrieves a Network Clearinghouse Print Service
Descriptor record for the specified Print Service.
Syntax
#include <servname.i>
Parameters
service_p NCH_ObjectName * input. The NCH name for the Print
Service. If NULL, the default Print Service is used.
See Also
“NCH_ObjectName” on page 395
SVN_IMSToStr()
SVN_IMSToStr() converts an ASE_service_name_typ structure to an NCH
name. This function returns 1 (TRUE) if name_len is greater then zero. It
returns zero (FALSE) if name_len is zero.
Syntax
#include <servname.i>
Parameters
service_p ASE_service_name_typ * input. Pointer to the three-part
ASE_service_name_typ structure.
service_name PSTR output. NCH name. You must allocate enough memory
for the return value. It can be a maximum of 82 characters in
length.
name_len int input. Size of service_name. You can use sizeof (service_
name).
See Also
“ASE_service_name_typ” on page 178
SVN_parse_service_name()
SVN_parse_service_name() takes a three-part NCH name and converts it to
an ASE_service_name_typ.
Syntax
#include <servname.i>
Parameters
service_name PSTR input. NULL terminated string in NCH format.
See Also
“NCH_ObjectName” on page 395
TTY_clear()
TTY_clear() clears the rectangular area specified.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_init()” on page 1194
TTY_clear_input()
TTY_clear_input() clears the input buffer.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Error Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
See Also
“TTY_init()” on page 1194
TTY_clear_msg()
TTY_clear_msg() clears the message window associated with tty_h.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_display_msg()” on page 1188
TTY_clear_softkeys()
TTY_clear_softkeys() clears the softkey labels from the menu bar and resets
the acceptable terminator list to contain just <Esc> and <Enter>.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Error Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
See Also
“TTY_init()” on page 1194
TTY_create_window()
TTY_create_window() creates and displays a TTY window with the specified
number of rows and columns and the specified title.
Rows and cols refer to the underlying character map, rather than the actual
display size of the window. The display size is under control of the user, rather
than the client of TTYLIB.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. A handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_init()” on page 1194
TTY_display()
TTY_display() displays the data, to which data points at the current caret
position, and advances the caret. Characters that would go off the end of a
row in the character map are wrapped onto the next row. If characters would
go off the bottom, the window scrolls, the top line disappears, and a blank line
appears at the bottom to accommodate the characters.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_init()” on page 1194
TTY_display_msg()
TTY_display_msg() replaces the contents of the message window with the
string to which data points. Since the message window is one row only, the
display is clipped to the size of the display window. (No characters are lost up
to the width of the character map. If the display window is widened, more of
the message is visible.)
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_clear_msg()” on page 1182
TTY_display_popup()
TTY_display_popup() displays the data in string in a popup window. Since this
function creates a new window for each call, the input data must be an
already-formatted, null-terminated ASCII string. It automatically formats the
text with left-justification and word wrapping.
The popup window is a dialog box. If wait has the value TTY_FORUSER, the
popup contains a Continue button that must be pressed by the user in order to
continue. (TTY_FORUSER is defined to be 10000 seconds. After 10000
seconds, the window disappears and the application continues.)
Only one popup window is displayed for a given tty_h at a time. If TTY_
display_popup() is called in a re-entrant manner (while a popup is visible), the
old popup is removed before the new one is created.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_no_timer
TTYLIB error: The wait parameter is not set.
See Also
“TTY_init()” on page 1194
TTY_exit()
TTY_exit() destroys the TTY window associated with tty_h and frees all
resources allocated on its behalf.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
See Also
“TTY_init()” on page 1194
TTY_get_pos()
TTY_get_pos() returns the current cursor position within the TTY window.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Error Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
See Also
“TTY_init()” on page 1194
TTY_init()
TTY_init() returns a handle for client-relative data needed by the F3TTYLIB
DLL to perform its other functions. This function should be called exactly once
by each client application for each TTY window it wants to display. The handle
returned is required input for the other TTY functions.
def_title is the default title to be used for the window, unless overridden by
TTY_create_window().
Syntax
#include <ttylib.i>
Parameters
def_rows unsigned short input. Number of rows.
See Also
“TTY_create_window()” on page 1184
TTY_make_current()
TTY_make_current() performs the action(s) specified in style, which can be a
combination of:
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_init()” on page 1194
TTY_read_input()
TTY_read_input() displays characters from the keyboard buffer at the current
caret position and advances the caret. Unlike TTY_display(), rather than wrap
or scroll echoed characters in the TTY window, this function superimposes an
edit control in the correct position and enables input, with full editing
functionality, in the control. When a terminator is encountered, or the wait
expires, the contents of the control are returned in input_string and echoed to
the TTY window, clipped to the current row.
User input in the edit control is limited to size characters. No more than size
characters are echoed or returned. If non-terminator keys are pressed after
size characters have been entered, a beep sounds to alert the user. These
characters are thrown away.
If wait has the value TTY_FORUSER, TTY_read_input() waits for the user to
press a terminator in order to return the data. Otherwise, wait is taken to be
the number of seconds to wait for input. The call returns after wait seconds or
immediately, if the user presses the Enter, Space, or Esc key.
The code for the actual terminator pressed is returned in terminator_p. If size
is zero, only the terminator is returned.
Because the return data is always null-terminated, the actual size of the buffer
to which data points must be at least one greater than size.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_display()” on page 1186
TTY_scroll()
TTY_scroll() scrolls the rectangular area specified. If from_row or from_col is
less than 1, it is assumed to be 1. If to_row or to_col exceeds the number of
rows or columns respectively, it is assumed to be that number. If direction is
TTY_UP, the top row in the area is discarded, all rows between the top and
bottom rows move up one row, and the bottom row is blank-filled. If direction is
TTY_DOWN, the bottom row is discarded, all rows move down one row, and
the top row is blank-filled.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_init()” on page 1194
TTY_set_app_info_key()
TTY_set_app_info_key() sets the key (80-character maximum) under which
window size and position are saved in the LOGON.CFG file. If the key is
empty when the window is closed, the information is not saved. If the key is
empty when the window is created (or the key is not found in the
LOGON.CFG file), the position and size are determined by default.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Error Returned
TTY_bad_tty_handle
TTYLIB error: Bad handle.
See Also
“TTY_init()” on page 1194
TTY_set_pos()
TTY_set_pos() sets the cursor position within the TTY window. If the point
specified by row and col is not in the character map, the cursor position does
not move and an error is returned.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_bad_position
TTYLIB error: Either row or column is out of the display area.
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_init()” on page 1194
TTY_set_softkeys()
TTY_set_softkeys() puts the softkey labels into the menu bar and the
corresponding keys into the acceptable terminator list. You can set up to eight
softkeys (VK_F1 to VK_F8).
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
Errors Returned
TTY_softkey_not_available
TTYLIB error: Trying to set softkeys other than VK_F1 to VK_F8.
TTY_bad_tty_handle
TTYLIB error: Bad handle.
TTY_win_open
TTYLIB error: Specified window already exists.
TTY_map_too_big
TTYLIB error: Bad position (rows*columns is greater than 0xFFFFL).
TTY_no_memory
TTYLIB error: Not enough memory to do GlobalAlloc.
TTY_no_window
TTYLIB error: CreateWindow failed.
See Also
“TTY_init()” on page 1194
TTY_update_window()
TTY_update_window() causes the display window to show the results of
display commands immediately. Otherwise, the display is repainted only when
there is relatively little else for any application to do.
Syntax
#include <ttylib.i>
Parameters
tty_h HANDLE input. Handle obtained from TTY_init().
See Also
“TTY_init()” on page 1194
WQS_close_queue()
WQS_close_queue() closes a queue. It frees the resources allocated to
maintain the queue in the opened state. The client should call this function
when no further operation on the queue will be performed.
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle. Obtained from WQS_
open_queue().
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
See Also
“WQS_open_queue()” on page 1230
WQS_continue()
WQS_continue() extends the duration of the service logon. It alerts Queue
Services to keep the service logon alive. The service logon remains alive for
at least timeout_p more seconds.
WQS_continue has been obsolete since the 3.0 release. The task that this
function performs has been taken care of internally.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
See Also
“WQS_logon()” on page 1228
WQS_count_entries()
WQS_count_entries() returns the number of queue entries in a queue that
satisfies a specified set of filter conditions.
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle. Obtained from WQS_
open_queue().
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_invalid_find_field
The filter condition contains an undefined user_field.
See Also
“WQS_open_queue()” on page 1230
WQS_create_queue()
WQS_create_queue() sets up a new queue by allocating the appropriate
storage, creating the data base table, and entering the name of the queue into
the Clearinghouse.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
WQS_err_invalid_workspace
The specified workspace does not exist.
If you try to create a queue that’s already created, the error message returned
depends on the server software version.
WQS_err_queue_already_defined
The specified queue already exists, for IMS v3.0.1 or later.
NCH_NoChange_error
The specified queue already exists, for IMS v2.6.
See Also
“WQS_logon()” on page 1228
WQS_create_workspace()
WQS_create_workspace() creates a workspace by setting up the necessary
directories and Clearinghouse entry. The function is successful if the
workspace already exists.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
Errors Returned
WQS_err_no_resources
Insufficient resources.
WQS_err_bad_workspace_name
Syntax error (illegal characters) in the workspace name. The
workspace name must begin with a letter.
WQS_err_workspace_not_created
Failed to create workspace.
See Also
“WQS_logon()” on page 1228
WQS_delete_entry()
WQS_delete_entry() deletes one or more entries from a queue. None of the
entries are deleted if an error is encountered.
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle. Obtained from WQS_
open_queue().
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_invalid_entry_id
The specified entry ID does not exist.
WQS_err_security_violation
Operator does not have write access.
See Also
“WQS_open_queue()” on page 1230
WQS_delete_queue()
WQS_delete_queue() deletes a queue from the workspace. The queue to be
deleted must not be open by a client. The database table for the queue is
dropped and the object name of the queue is removed from the
Clearinghouse when the deletion is completed.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
WQS_err_invalid_workspace
The specified workspace does not exist.
WQS_err_queue_not_defined
The specified queue does not exist.
WQS_err_queue_in_use
The specified queue is set to busy (might be in use by others).
WQS_err_queue_not_empty
Queue is not empty and the parameter even_if_full is set to FALSE.
WQS_err_security_violation
Operator does not have write access.
See Also
“WQS_logon()” on page 1228
WQS_delete_workspace()
WQS_delete_workspace() deletes a workspace by removing the directories
and Clearinghouse entry associated with the workspace. To be successfully
deleted, the workspace must contain neither queues nor procedures.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
Errors Returned
WQS_err_invalid_workspace
The specified workspace does not exist.
WQS_err_workspace_not_deleted
Workspace not deleted, possibly not empty.
WQS_err_security_violation
You don’t have write access.
See Also
“WQS_logon()” on page 1228
WQS_end_dump()
WQS_end_dump() terminates a dump. On return, dump_h is invalid for
further dump operations. The resources allocated to maintain the dump are
freed.
Syntax
#include <wqslib.i>
Parameters
dump_h HANDLE input. The dump handle. Obtained from WQS_
start_dump().
Errors Returned
WQS_err_invalid_dump_handle
Invalid dump handle.
See Also
“WQS_start_dump()” on page 1243
WQS_get_default_service()
WQS_get_default_service() returns the NCH object name of the default
Queue Services on the FileNet system.
Syntax
#include <wqslib.i>
Parameters
queue_service_p
ASE_service_name_typ * output. The NCH object name of
the default Queue Service.
See Also
“ASE_service_name_typ” on page 178
WQS_get_queue_desc()
WQS_get_queue_desc() returns the definition of an existing queue.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle.
queue_desc_h_p
HANDLE * output. Pointer to the returned handle to the
definition of the queue. It is of type WQSLIB_queue_desc_
typ.
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
WQS_err_invalid_workspace
The specified workspace does not exist.
WQS_err_queue_not_defined
The specified queue does not exist.
WQS_err_security_violation
Operator does not have write access.
See Also
“WQS_queue_name_typ” on page 538
WQS_get_queue_names()
WQS_get_queue_names() returns the number of queues in a given
workspace and a list of queue names.
Syntax
#include <wqslib.i>
Parameters
domain_p NCH_DomainName * input. Pointer to the domain to search;
NULL for default domain.
num_returned_p
unsigned short * output. Pointer to the number of queue
names returned in queuelist_h_p.
queuelist_h_p HANDLE * output. Pointer to the handle for a list of the queue
names found; list of WQS_queue_name_typ.
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
WQS_err_invalid_workspace
The specified workspace does not exist.
See Also
“NCH_DomainName” on page 391
WQS_get_server_name()
WQS_get_server_name() returns the NCH object name of the WorkFlo
Queue Server responsible for servicing the named queue.
Syntax
#include <wqslib.i>
Parameters
domain_p NCH_DomainName * input. Pointer to the NCH name of the
domain to search.
queue_service_p
ASE_service_name_typ * output. Pointer to the name of the
WorkFlo Queue Server responsible for servicing the queue
returned.
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
WQS_err_invalid_workspace
The specified workspace does not exist.
WQS_err_queue_not_defined
The specified queue does not exist.
See Also
“ASE_service_name_typ” on page 178
WQS_get_workspace_info()
WQS_get_workspace_info() returns the security information and the text
description of the workspace for a specified workspace name. This function is
for Series 6000 systems only.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
Errors Returned
WQS_err_invalid_session_handle
Specified session handle does not match the current active session.
WQS_err_invalid_workspace
Specified workspace does not exist.
WQS_err_bad_workspace_name
Workspace name must begin with a letter.
See Also
“SCT_access_restrictions” on page 481
WQS_get_workspace_names()
WQS_get_workspace_names() returns the names of the workspaces defined
in the specified domain.
Syntax
#include <wqslib.i>
Parameters
domain_p NCH_DomainName * input. NCH name of the domain to
search; NULL for the default domain.
num_returned_p
unsigned short * output. Pointer to the number of workspace
names returned.
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
See Also
“NCH_DomainName” on page 391
WQS_insert_entry()
WQS_insert_entry() inserts one or more entries into a queue. The insert
operation is a single operation even if more than one entry is to be inserted. If
an error occurs, none of the entries are successfully inserted.
When inserting a new entry into an ordinary queue, all the fields declared as
“required” must be assigned data.
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle. Obtained from WQS_
open_queue().
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_rendez_field_missing
The rendezvous field is missing.
WQS_err_required_field_missing
A required field is missing.
WQS_err_illegal_write_field
Illegal write field; should check status.
WQS_err_invalid_user_field
The specified user-defined field does not exist.
WQS_err_invalid_field_value
Invalid field value detected on insertion.
WQS_err_invalid_sys_field
The specified system field does not exist.
WQS_err_invalid_sys_field_data
The data type is not comparable with the system defined queue field.
WQS_err_field_specified_twice
The queue field is specified more than once.
WQS_err_security_violation
Operator does not have write access.
WQS_err_dup_unique_val
The entry already exists with the same value for a unique field.
See Also
“WQS_open_queue()” on page 1230
WQS_is_WQS()
WQS_is_WQS() checks to see whether the currently logged on IMS is using
the WQS or WQM server service. Server software prior to release 2.6 uses
the WQM service. Server software release 3.0 and later use the WQS
service. This function does not require WQS_logon().
For example, you might have an application that runs against two versions of
the server software (2.6 and 3.0). Your application could then include both 2.6
and 3.0 functionality. To learn, at runtime, which WorkFlo queue
library (WQS2WQM or WQSLIB) is being used, call WQS_is_WQS(). Then,
change your application’s functionality accordingly.
Syntax
#include <wqslib.i>
Parameters
is_wqs BOOL * output. Returns TRUE if currently logged on to IMS
software release 3.0 or later. Returns FALSE if currently
logged on to IMS software release 2.6 or earlier.
WQS_logoff()
WQS_logoff() terminates a service logon with a Queue Service. The client
should use this function to log off from a Queue Service if no further
processing will be done. All the resources allocated to maintain the service
logon are freed. Any attempt to use the same session handle after a
successful logoff results in an invalid service handle error.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle.
See Also
“WQS_logon()” on page 1228
WQS_logon()
WQS_logon() establishes a service logon with a WorkFlo Queue Service.
Every client must first log on to a Queue Service before attempting any other
function. The returned session handle should be used for WQS_open_
queue() calls.
Syntax
#include <wqslib.i>
Parameters
credential PSTR input. Unused parameter since release 3.1.
queue_service_p
ASE_service_name_typ * input. Name of the Queue Service
to log on to. This can be NULL to log on to the default Queue
Service.
Errors Returned
WQS_err_no_resources
Insufficient resources.
WQS_err_service_not_available
The specified service is undefined.
WQS_err_bad_version
Running on a incompatible version of WQS services.
See Also
“WQS_open_queue()” on page 1230
WQS_open_queue()
WQS_open_queue() opens a queue for processing and returns a queue
handle that must be passed to function calls that use this queue. After a
queue is opened, new entries can be inserted and entries can be retrieved or
deleted.
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
queue_desc_h_p
HANDLE * output. Pointer to the handle for the queue
description of type WQSLIB_queue_desc_typ.
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
WQS_err_invalid_workspace
The specified workspace does not exist.
WQS_err_queue_not_defined
The specified queue does not exist.
WQS_err_no_resources
Insufficient resources.
See Also
“WQS_logon()” on page 1228
WQS_qlogon()
WQS_qlogon() establishes a service logon with the WorkFlo Queue Service
responsible for servicing the specified queue. WQS_qlogon() can be called
instead of WQS_logon() if the workspace and the name of the queue to be
accessed are known.
Syntax
#include <wqslib.i>
Parameters
domain_p NCH_DomainName * input. The domain and organization
where the queue is defined.
Errors Returned
WQS_err_invalid_service_handle
Invalid service handle.
WQS_err_invalid_workspace
The specified workspace does not exist.
WQS_err_queue_not_defined
The specified queue does not exist.
WQS_err_no_resources
Insufficient resources.
See Also
“WQS_logon()” on page 1228
WQS_read_dump()
WQS_read_dump() retrieves the next one or more entries that satisfy a set of
filter conditions from a dumped queue. The client can call WQS_read_dump()
repeatedly to get the next block of entries until all the entries have been
processed.
NOTES
1 For performance reasons, the num_entries parameter should not be too large
or too small. The recommended number is 16. The example on page 1235
shows code that uses WQS_read_dump() in a loop.
2 Before freeing the entry_out_h_p handle, you must free all the handles within
the WQSLIB_queue_entry_out_typ structure for every num_read_p returned.
For more information, see the example on page 1235.
Syntax
#include <wqslib.i>
Parameters
dump_h HANDLE input. The dump handle of the desired dump.
Obtained from WQS_start_dump().
entry_out_h_p
HANDLE * output. Pointer to a handle to the entries read, an
array of num_read WQSLIB_queue_entry_out_typ. You are
responsible for freeing this handle. For more information
about how to free this handle, see the notes on page 1234
and the code example on page 1235.
Errors Returned
WQS_err_invalid_dump_handle
Invalid dump handle.
See Also
“WQS_read_queue()” on page 1240
Example
#include <wqslib.i>
ASE_service_name_typ wqs;
WQS_workspace_name_typ ws_name;
WQS_queue_name_typ q_name;
WQSLIB_queue_entry_out_typ *qout_p = NULL;
WQSLIB_user_field_value_typ *ufv_p = NULL;
unsigned short max_read = 16, num_read = 0;
HANDLE wqs_h = 0, que_h = 0, dum_h = 0, qout_h = 0;
WORD q_timeout = 0;
BOOL done = FALSE;
err = WQS_open_queue
(wqs_h, ws_name, q_name, FALSE, &que_h, NULL);
if (err) goto Exit;
err = WQS_start_dump
(que_h, (WQSLIB_fetch_spec_typ *)NULL, &dum_h);
if (err) goto Exit;
if (ufv_p == NULL)
// code here to handle error of no resources
if (ufv_p)
GlobalUnlock(qout_p->user_field_val_h);
if (qout_p) {
GlobalUnlock(qout_h);
GlobalFree(qout_h);
}
} // end while (WQS_read_dump is not done)
Exit:
if (dum_h) WQS_end_dump(dum_h);
if (que_h) WQS_close_queue(que_h);
if (wqs_h) WQS_logoff(wqs_h);
return (err); // error handling from the caller.
} // Read_Dump
WQS_read_entry()
WQS_read_entry() retrieves a specific entry, the identification of which is
already known.
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle of the desired queue.
entry_out_h_p
HANDLE * output. Pointer to a handle to the retrieved entry,
WQSLIB_queue_entry_out_typ.
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_invalid_entry_id
The specified entry id does not exist.
WQS_err_no_entry_selected
No entry is currently selected.
WQS_err_security_violation
Operator does not have read access.
See Also
“WQS_read_queue()” on page 1240
WQS_read_queue()
WQS_read_queue() retrieves one or more queue entries that satisfy a set of
filter conditions.
For performance reasons, make the max_to_read parameter neither too large
nor too small. (The recommended number is 16.)
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle of the desired queue.
from the queue (if more than one entry was previously
retrieved, only the last entry previously retrieved is deleted).
entry_out_h_p
HANDLE * output. Pointer to a handle to the retrieved entries,
an array of num_read WQSLIB_queue_entry_out_typ.
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_invalid_find_field
The delete condition contains an undefined user_field.
WQS_err_no_entry_selected
No entry is currently selected.
WQS_err_security_violation
Operator does not have read access.
See Also
“WQS_delete_typ” on page 530
WQS_renew()
WQS_renew() re-establishes a service logon with a WorkFlo Queue Service.
WQS_renew() has been obsolete since the 3.0 release. This function
reestablishes a session that was dropped due to a timeout. However, this has
been taken care of internally.
Syntax
#include <wqslib.i>
Parameters
user_id PSTR input. Identification of the user, for security purpose.
queue_service_p
ASE_service_name_typ * input. Name of the Queue Service.
Errors Returned
WQS_err_no_resources
Insufficient resources.
WQS_err_service_not_available
The specified service is undefined.
WQS_err_bad_version
Running on a incompatible version of WQS services.
See Also
“ASE_service_name_typ” on page 178
WQS_start_dump()
WQS_start_dump() signals the beginning of a queue dump. The queue dump
operations, WQS_start_dump(), WQS_read_dump(), and WQS_end_dump(),
provide a way for a client to browse through a queue without setting the queue
busy.
A number of entries satisfying a filter condition are readied and returned when
the WQS_read_dump() function is called. A dump handle (dump_h) is
returned upon a successful WQS_start_dump(); this dump_handle should be
used on subsequent calls to WQS_read_dump() and WQS_end_dump().
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle. Obtained from WQS_
open_queue().
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_invalid_find_field
The filter condition contains an undefined user_field.
WQS_err_no_entry_selected
No entry is currently selected.
WQS_err_security_violation
Operator does not have read access.
See Also
“WQS_end_dump()” on page 1215
WQS_update_entry()
WQS_update_entry() modifies a specific queue entry. For an ordinary queue,
the entry to be updated is denoted by the entry_id parameter. For a
rendezvous queue, the entry to be updated is denoted by the content of the
rendezvous field; if no entry exists with the same rendezvous field value, an
entry is inserted.
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle. Obtained from WQS_
open_queue().
inserted_new_p
FN_BOOL * input/output. As an input parameter, specifies
whether the STATUS field can be explicitly updated. As an
output parameter, specifies whether a new entry had been
inserted into the queue.
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_invalid_entry_id
The specified entry ID does not exist.
WQS_err_illegal_write_field
Illegal write field; should check status.
WQS_err_rendez_field_missing
Missing a rendezvous field.
WQS_err_required_field_missing
Missing a required field.
WQS_err_invalid_user_field
The specified user-defined field does not exist.
WQS_err_invalid_field_value
Invalid field value detected on insertion.
WQS_err_invalid_sys_field
The specified system field does not exist.
WQS_err_invalid_sys_field_data
The data type is not comparable with the system defined queue field.
WQS_err_security_violation
Operator does not have write access.
WQS_err_dup_unique_val
The entry already exists with the same value for a unique field.
See Also
“WQS_open_queue()” on page 1230
WQS_update_queue()
WQS_update_queue() enables a client to modify the definition of a queue.
The allowed modifications include:
• Changing the name of the workspace (moving the queue from one
workspace to another)
Syntax
#include <wqslib.i>
Parameters
queue_h HANDLE input. The queue handle returned by Queue
Services when the queue was opened. Obtained from WQS_
open_queue().
queue_desc_p
WQSLIB_queue_desc_typ * input. Pointer to the new
definition of the queue. This must be a full description, with
the existing fields specified in the exact order as when the
queue was first defined or last updated, followed by any new
fields to be added.
Errors Returned
WQS_err_invalid_queue_handle
Invalid queue handle.
WQS_err_illegal_field_desc_change
Illegal field definition change.
WQS_err_queue_in_use
The specified queue is set to busy (might be in use by others).
WQS_err_security_violation
Operator does not have read access.
See Also
“WQS_open_queue()” on page 1230
WQS_update_workspace()
WQS_update_workspace() allows you to modify a workspace. The allowed
modifications include:
• Changing the name of the queue (in essence moving the queue from one
workspace to another)
Syntax
#include <wqslib.i>
Parameters
session_h HANDLE input. The session handle. Obtained from WQS_
logon().
new_workspace
WQS_workspace_name_typ input. Name of the workspace
to be updated. Specify NULL for no change.
Errors Returned
WQS_err_invalid_session_handle
Specified session handle does not match the current active session.
WQS_err_invalid_workspace
Specified workspace does not exist.
WQS_err_security_violation
Operator does not have read access.
WQS_err_bad_workspace_name
Workspace name must begin with a letter.
See Also
“WQS_logon()” on page 1228
• IMS allows only one active session for any single PC workstation. A
second SEC_logon() call will kill an earlier session. If multiple applications
are running and one application calls SEC_logon() directly, the previous
session closes and errors are returned.
While most IMS operations remain compatible with earlier IMS versions,
some differences exist. This affects how you use some IAFLIB and SECMAN
functions in WAL and involves some new definitions and structures.
IMS Security Services allow only one active session from any single
workstation in any single domain. However, you can log onto multiple domains
from the same client workstation.
Upon logon, the service saves the network address of the client with the
session handle. If another logon comes from the client in the same domain,
the previous session is terminated.
For multiple applications using IMS 3.1 (or later) this causes problems if one
or more of the applications calls SEC_logon() directly; the other applications
lose their security sessions and return errors.
The for_login field should be used in 3.1 (and later) IMS with the definitions
SEC_FLAGS_FORLOGIN and SEC_FLAGS_GROUP in secdefs.h.
Note that for_login is of type BOOLEAN, but you can evaluate it numerically
for user information.
Only the user SysAdmin can create or update users or groups from a PC
client. On IMS there are:
You can configure IMS 3. 1 (and later) password expiration features so that a
user’s password expires if the user does not change the password during the
first logon to an IMS, or within the configured expiration time.
You can write code that reminds a user to change passwords and that warns
of impending password expiration. Your code should check password
expiration status, check whether a logon instance is the first time the account
has been used, or whether the password grace period has begun.
if (SystemDefaults.pwd_renewal_days) {
// Check if this is the users first time logging on
if ((UserStats.pwd_expires_time == 0) ||
(UserStats.nbr_logons == 0))
.
.
.
MessageBox(NULL,
"You must change your password before logging off!",
"Warning", MB_ICONEXCLAMATION);
else if ((UserStats.pwd_expires_time) &&
(UserStats.pwd_grace_period))
MessageBox(NULL, "Password has entered grace period.",
"Warning", MB_ICONEXCLAMATION);
}
}
}
You might follow this with password changing code using SEC_update_info()
(see “SEC_update_info()” on page 1154).
ANT
Alpha-numeric terminal. A terminal used for operator and system
administrator functions on IMS servers, print servers, and other
application servers. ANTs cannot display images.
Autoform
FileNet’s application for developing electronic forms.
batch
A group of images before committal. Each batch has its own definition
including a name and document class into which pages are scanned.
Batches are stored in cache. After document committal the batch name is
discarded.
BES
Batch Entry Server/Services. An application server on a large FileNet
system that provides basic services, as well as Object Entry, and OSAR
Management services.
cache
An area on magnetic disk where documents are stored after retrieval from
optical disk. A partition or logical volume in the IMS file structure (on
magnetic disk) used as a temporary holding area for images.
committal
The process of storing index information permanently and writing an image
to optical disk. In its more general usage, committal refers to the process
of cataloging a document, moving it from batch entry cache to retrieval
cache, and writing it to optical disk. In its more technical usage, it refers
strictly to moving a document to retrieval cache from batch entry cache.
See also migration.
document class
A means of defining a set of documents. A category under which
documents are committed to the system. The document class of a
document determines the index fields which may be used for cataloging
DPI
Dots per inch. A unit of measure for image resolution for scanners and
printers.
IMS
Image Management Services or Image Management System. The name
of the core components of a FileNet system, encompassing both the
hardware making up the main servers and their software. The IMS
provides access to the main services of the FileNet system (such as Index
and Document Services).
index
A means of identifying document types.
In most cases, you specify the RAM drive for local cache. If not set, the
current directory is used for local cache. The following is a sample setting:
[PCWS]
Primary Cache=d:\ ;D drive is the RAM drive.
Cache Delete on Exit=1 ;If 1, files will be deleted on exit of application.
query
The process of using a set of criteria to search the Index_DB database for
particular documents.
The RDD functions are used to manage the retrieval data in the RDD
cache memory.
SSN
System serial number.
A ASE_surface_id_typ 183
abstracts ASE_surface_offset_typ 184
FileNet system software 3 ASE_time_typ 185
adding documents to the system 13
annotation B
creating 1061 banded image format 137
modifying 1061 image.h 140
APPINFO functions overview 571 memory format 138
appinfo.i error messages 75 page layout 137
Application Information Batch Entry Services
error messages 75 error messages 76
Application server 9 BATCHLIB data flow diagram 27
Batch Entry Services 10 BATCHLIB functions overview 560
Cache Services 11 batchlib.i error messages 76
WorkFlo Queue Services 10 BATCHLIB_BatchAbort() 605
ARCH_DocEntry() 602 BATCHLIB_BatchEntry() 606
Archive BATCHLIB_BatchEntryStatus 186
error messages 75 BATCHLIB_BatchStatus 187
archive data flow diagram 26 BATCHLIB_commit_file_list() 612
archive functions overview 559 BATCHLIB_commit_files() 609
archlib.i error messages 75 BATCHLIB_DocDesc 188
ASE_capability_typ 165 BATCHLIB_enqueue_batch() 614
ASE_doc_id_typ 166 BATCHLIB_find_batch_docs() 615
ASE_document_status_typ 167 BATCHLIB_find_batch_images() 618
ASE_folder_id_typ 168 BATCHLIB_find_batches() 620
ASE_image_id_typ 169 BATCHLIB_get_batch_object() 622
ASE_migrate_status_typ 170 BATCHLIB_page_hdr_typ 189
ASE_nch_name_type_typ 171 BATCHLIB_update_batch() 624
ASE_net_addr_typ 172 BATCHLIB_update_batch_doc() 626
ASE_notify_option_typ 173 BES 682
ASE_osar_id_typ 174 BES functions overview 561
ASE_page_number_typ 175 BES I data flow diagram 28
ASE_page_range_typ 176 BES II data flow diagram 31
ASE_relational_op_typ 177 BES III data flow diagram 32
ASE_request_id_typ 178 bes.def error messages 76
ASE_server_id_typ 179 BES_abort_image() 628
ASE_service_name_typ 180 BES_alloc_batch_name() 629
ASE_session_number_typ 181 BES_alloc_ids() 630
ASE_ssn_typ 182 BES_batch_cap_typ 190
retrieving 12 dtm.def 91
routing 13 fillin.i 93
DS_LIST 251 fnprint.i 94
DS_LIST_ENTRY 252 formlib.i 95
DTM functions overview 568 fp.def 99
DTM masks 253 iaflib.i 100
dtm.def error messages 91 imgfmt.i 102
DTM_addtime() 749 imglib.i 102
DTM_asctime() 750 indxform.i 105
DTM_ctime() 751 inx_err.h 105
DTM_date() 753 nchedefs.h 109
DTM_ftime() 754 pri.def 111
DTM_getdate() 755 qmr.i 115
DTM_getmask() 756 rdd.i 117
DTM_getmasklength() 757 sct.def 119
DTM_gmtime() 758 secdefs.h 120
DTM_gp() 759 secman.i 130
DTM_gtime() 760 servname.i 130
DTM_localtime() 761 slaclib.i 131
DTM_stime() 762 ttylib.i 131
DTM_subdate() 763 wqsdef.h 132
DTM_subtime() 764 error_typ 257
DTM_time() 765 executing a form 48
DTM_tm 256
DTM_verifymask() 766 F
DTMdate_typ 255 fieldd validation checking 50
FileNet system architecture 1
E FileNet system hardware 1
ERM constants 258 FileNet system software 2
ERM functions overview 569 abstracts 3
ERM_display_error() 767 processes 2
ERM_get_error() 768 RPC 4
ERM_log_error() 769 FILLIN data flow diagram 38
ERM_log_event() 770 FILLIN functions overview 570
error message display program 73 fillin.i error messages 93
error messages 118 FILLIN_bkg_commit() 772
appinfo.i 75 FILLIN_bkg_commit_image() 774
archlib.i 75 FILLIN_bkgrequest_rec_typ 259
batchlib.i 76 FILLIN_commit() 776
bes.def 76 FILLIN_commit_image() 778
cam.i 80 FILLIN_do_form() 781
csm.def 81 FILLIN_get_doc_class() 782
displib.i 84 FILLIN_get_form_name() 784
doc.def 88 FILLIN_index() 786
I IAFLIB_get_object_text() 1011
IAFLIB cache management data flow IAFLIB_get_print_queues() 1013
diagram 54 IAFLIB_get_print_queues2() 1015
IAFLIB document retrieval data flow diagram 55 IAFLIB_get_print_service_info() 1017
IAFLIB folder data flow diagram 57 IAFLIB_get_print_service_info1() 1019
IAFLIB functions overview 583 IAFLIB_get_printer_info() 1021
IAFLIB logon data flow diagram 59 IAFLIB_get_printer_info2() 1023
IAFLIB print (remote printing) data flow IAFLIB_get_security_info() 1025
diagram 61 IAFLIB_get_server_version() 1026
iaflib.i error messages 100 IAFLIB_get_single_DIR() 1027
IAFLIB.I management 51 IAFLIB_get_user_name() 1029
IAFLIB_add_notation() 957 IAFLIB_get_user_stats() 1030
IAFLIB_add_notation1() 959 IAFLIB_get_version() 1031
IAFLIB_cancel_print() 961 IAFLIB_image_object_typ 352
IAFLIB_check_membership() 963 IAFLIB_initialize_RDD() 1032
IAFLIB_check_password() 964 IAFLIB_is_annotated() 1033
IAFLIB_continue_query() 965 IAFLIB_logon_user() 1035
IAFLIB_create_cache_object() 967 IAFLIB_migrate_from_optical_disk() 1036
IAFLIB_create_folder() 969 IAFLIB_migrate_to_optical_disk() 1038
IAFLIB_delete_annotation() 971 IAFLIB_modify_print() 1040
IAFLIB_delete_cache_object() 973 IAFLIB_modify_print2() 1042
IAFLIB_delete_docs() 975 IAFLIB_move_cache_object() 1044
IAFLIB_delete_folders() 978 IAFLIB_move_folder() 1048
IAFLIB_file_doc() 980 IAFLIB_prefetch() 1050
IAFLIB_file_doc_after() 982 IAFLIB_prefetch_result 353
IAFLIB_find_folders() 984 IAFLIB_print_doc1() 1055
IAFLIB_find_index_in_DIR() 986 IAFLIB_print_docs() 1053
IAFLIB_find_system_defaults() 987 IAFLIB_print_files() 1057
IAFLIB_free_client_handle() 989 IAFLIB_print_files1() 1059
IAFLIB_FreeAttr2Memory() 988 IAFLIB_put_annotation() 1062
IAFLIB_FreeRequest2Memory() 990 IAFLIB_put_object() 1065
IAFLIB_FreeStatusMemory() 991 IAFLIB_query_db() 1068
IAFLIB_get_annotations() 992 IAFLIB_reorder_folder() 1074
IAFLIB_get_cache_object_attrs() 994 IAFLIB_resize_cache_object() 1076
IAFLIB_get_client_handle() 996 IAFLIB_terminate_query() 1078
IAFLIB_get_current_IMS() 997 IAFLIB_unfile_docs() 1079
IAFLIB_get_default_restrictions() 998 IAFLIB_update_db() 1081
IAFLIB_get_doc_attr() 1000 IAFLIB_update_folder() 1083
IAFLIB_get_docs_in_folder() 1002 IAFLIB_where_filed() 1085
IAFLIB_get_file_text() 1004 ILIB constants 354
IAFLIB_get_folder_attrs() 1006 ILIB_DOC_annotation_id_typ 355
IAFLIB_get_membership_list() 1008 image format management error messages 102
IAFLIB_get_object() 1009 image sample application 19