1. LoadRunner 函数大全之中文解释
  2.  
  3. // sapgui_table_set_column_selected 模拟用户
  4.  
  5. // 单击表中的列标题。
  6.  
  7. int sapgui_table_set_column_selected(const char *description, const char *tableID, const char
  8.  
  9. *column, const char *isSelected, [args,] LAST );
  10.  
  11. // sapgui_table_set_column_width 模拟用户
  12.  
  13. // 拖动表中列标题的边缘。
  14.  
  15. int sapgui_table_set_column_width ( const char *description, const char *tableID, const char
  16.  
  17. *column, const char *width, [args,] LAST );
  18.  
  19. // sapgui_table_set_focus 模拟用户在由
  20.  
  21. // row 和 column 指定的表单元格中单击。
  22.  
  23. int sapgui_table_set_focus (const char *description, const char *tableID, const char *row, const
  24.  
  25. char *column, const char *newValue, [args,] LAST );
  26.  
  27. // sapgui_table_set_password 在表单元格密码字段中
  28.  
  29. // 设置密码。
  30.  
  31. int sapgui_table_set_password(const char *description, const char *tableID, const char *row,
  32.  
  33. const char *column, const char *password, [args,] LAST );
  34.  
  35. // sapgui_table_set_row_selected 设置表中行的
  36.  
  37. // 选中状态。如果 isSelected 为“True”,
  38.  
  39. // 则行号为 row 的行处于选中状态。如果 isSelected
  40.  
  41. // 为“False”,则该行处于未选中状态。
  42.  
  43. int sapgui_table_set_row_selected(const char *tableID, const char *row, const char *isSelected,
  44.  
  45. [args,] LAST );
  46.  
  47. // sapgui_table_set_text 在由 row 和 column 指定的
  48.  
  49. // 单元格中输入字符串文本。
  50.  
  51. int sapgui_table_set_text(const char *description, const char *tableID, const char *row, const char
  52.  
  53. *column, const char *text, [args,] LAST );
  54.  
  55. // sapgui_text_edit_scroll_to_line 模拟用户滚动,
  56.  
  57. // 直到指定行可见。但不选中该行。
  58.  
  59. int sapgui_text_edit_scroll_to_line( const char *description, const char *textEditID, const char
  60.  
  61. *lineNumber, [args,] LAST );
  62.  
  63. // sapgui_text_edit_set_selection_indexes 设置
  64.  
  65. // 选择的可视文本范围。参数 start 和 end 都是基于
  66.  
  67. // 零的字符索引。参数 start 对应
  68.  
  69. // 所选内容的开始位置,而参数 end 是
  70.  
  71. // 所选内容之后第一个字符的位置。
  72.  
  73. int sapgui_text_edit_set_selection_indexes( const char *description, const char *textEditID, const
  74.  
  75. char *startNumber, const char *endNumber, [args,] LAST );
  76.  
  77. // sapgui_text_edit_set_unprotected_text_part
  78.  
  79. // 通过基于零的索引将 text 的内容分配给未受保护的
  80.  
  81. // 文本部分,即 part。
  82.  
  83. int sapgui_text_edit_set_unprotected_text_part( const char *description, const char *textEditID,
  84.  
  85. const char *part, const char *text, [args,] LAST );
  86.  
  87. // sapgui_text_edit_get_first_visible_line 将在控件
  88.  
  89. // 顶部边框可见的第一行的编号
  90.  
  91. // 分配给 outParamName。行从 1 开始编号。
  92.  
  93. int sapgui_text_edit_get_first_visible_line( const char *description, const char *textEditID, const
  94.  
  95. char *outParamName, [args,] LAST );
  96.  
  97. // sapgui_text_edit_get_selection_index_start 将
  98.  
  99. // 选定范围开始位置的基于零的字符索引
  100.  
  101. // 分配给参数 outParamName。
  102.  
  103. int sapgui_text_edit_get_selection_index_start( const char *description, const char *textEditID,
  104.  
  105. const char *outParamName, [args,] LAST );
  106.  
  107. // sapgui_text_edit_get_selection_index_end 将
  108.  
  109. // 选定范围结束位置的基于零的字符索引
  110.  
  111. // 分配给参数 outParamName。这是所选内容之后第一个字符的
  112.  
  113. // 位置。
  114.  
  115. int sapgui_text_edit_get_selection_index_end( const char *description, const char *textEditID,
  116.  
  117. const char *outParamName, [args,] LAST );
  118.  
  119. // sapgui_text_edit_get_number_of_unprotected_text_parts 将
  120.  
  121. // 未受保护文本部分的编号分配给 outParamName。
  122.  
  123. int sapgui_text_edit_get_number_of_unprotected_text_parts( const char *description, const char
  124.  
  125. *textEditID, const char *outParamName, [args,] LAST );
  126.  
  127. // sapgui_text_edit_double_click 模拟鼠标双击。
  128.  
  129. // 要设置所选内容,请在 sapgui_text_edit_double_click 之前
  130.  
  131. // 调用 sapgui_text_edit_set_selection_indexes。
  132.  
  133. int sapgui_text_edit_double_click( const char *description, const char *textEditID, [args,]
  134.  
  135. LAST );
  136.  
  137. // sapgui_text_edit_single_file_dropped 模拟
  138.  
  139. // 将 fileName 拖放到文本编辑控件中。
  140.  
  141. int sapgui_text_edit_single_file_dropped( const char *description, const char *textEditID, const
  142.  
  143. char * fileName, [args,] LAST );
  144.  
  145. // sapgui_text_edit_multiple_files_dropped 模拟
  146.  
  147. // 将 listOfFiles 中的文件
  148.  
  149. // 拖放到文本编辑控件中。
  150.  
  151. int sapgui_text_edit_multiple_files_dropped( const char *description, const char *textEditID,
  152.  
  153. listOfFiles, [args,] LAST );
  154.  
  155. // sapgui_text_edit_press_F1 调用
  156.  
  157. // 在应用程序中针对文本编辑控件定义的
  158.  
  159. // 上下文相关帮助。如果未定义帮助,
  160.  
  161. // 则 sapgui_text_edit_press_F1 不起作用。
  162.  
  163. int sapgui_text_edit_press_F1( const char *description, const char *textEditID, [args,] LAST );
  164.  
  165. // sapgui_text_edit_press_F4 调用
  166.  
  167. // 应用程序中针对文本编辑控件定义的选项列表。如果未
  168.  
  169. // 定义选项,则 sapgui_text_edit_press_F4 不起作用。
  170.  
  171. int sapgui_text_edit_press_F4( const char *description, const char *textEditID, [args,] LAST );
  172.  
  173. // sapgui_text_edit_open_context_menu 打开
  174.  
  175. // 应用程序中针对文本编辑控件定义的
  176.  
  177. // 快捷菜单。如果未定义菜单,则 sapgui_text_edit_open_context_menu
  178.  
  179. // 不起作用。
  180.  
  181. int sapgui_text_edit_open_context_menu( const char *description, const char *textEditID, [args,]
  182.  
  183. LAST );
  184.  
  185. // sapgui_text_edit_select_context_menu 选中
  186.  
  187. // 由 menuId 指定的快捷菜单项。
  188.  
  189. // menuId 是项目的函数代码。
  190.  
  191. int sapgui_text_edit_select_context_menu( const char *description, const char *textEditID, const
  192.  
  193. char *menuId, [args,] LAST );
  194.  
  195. // sapgui_text_edit_modified_status_changed 设置
  196.  
  197. // 文本编辑控件的已修改状态。
  198.  
  199. // 其值可以是“True”,也可以是“False”。
  200.  
  201. int sapgui_text_edit_modified_status_changed( const char *description, const char *textEditID,
  202.  
  203. const char *value, [args,] LAST );
  204.  
  205. // sapgui_toolbar_press_button 模拟在工具栏按钮上进行单击操作。
  206.  
  207. int sapgui_toolbar_press_button( const char * description, const char * toolbarID, const char *
  208.  
  209. buttonID, [args,] LAST );
  210.  
  211. // sapgui_toolbar_press_context_button 模拟
  212.  
  213. // 用户按工具栏上下文按钮。
  214.  
  215. int sapgui_toolbar_press_context_button(const char * description, const char * toolbarID, const
  216.  
  217. char * buttonID, [args,] LAST );
  218.  
  219. // sapgui_toolbar_select_menu_item 模拟
  220.  
  221. // 用户选择工具栏菜单项。
  222.  
  223. int sapgui_toolbar_select_menu_item( const char * description, const char * toolbarID, const char
  224.  
  225. * menuID, [args,] LAST );
  226.  
  227. // sapgui_toolbar_select_menu_item_by_text 模拟
  228.  
  229. // 用户选择工具栏菜单项。
  230.  
  231. int sapgui_toolbar_select_menu_item_by_text( const char * description, const char * toolbarID,
  232.  
  233. const char * menuItem, [args,] LAST );
  234.  
  235. // sapgui_toolbar_select_context_menu_item 模拟
  236.  
  237. // 用户选择上下文菜单项。
  238.  
  239. int sapgui_toolbar_select_context_menu_item( const char * description, const char * toolbarID,
  240.  
  241. const char * menuID, [args,] LAST );
  242.  
  243. // sapgui_toolbar_select_context_menu_item_by_text
  244.  
  245. // 模拟用户选择上下文菜单项。
  246.  
  247. int sapgui_toolbar_select_context_menu_item_by_text( const char * description, const char *
  248.  
  249. toolbarID, const char * menuItem, [args,] LAST );
  250.  
  251. // sapgui_tree_click_link 模拟用户单击树中的链接。
  252.  
  253. int sapgui_tree_click_link(const char *description, const char *treeID, const char *nodeKey, const
  254.  
  255. char *itemName, [args,] LAST ) ;
  256.  
  257. // sapgui_tree_collapse_node 模拟用户单击
  258.  
  259. // “-”符号以折叠节点。调用 sapgui_tree_collapse_node 之后,
  260.  
  261. // “-”符号将替换为“+”符号,
  262.  
  263. // 而且子节点不可见。
  264.  
  265. int sapgui_tree_collapse_node(const char *description, const char *treeID, const char *nodeKey,
  266.  
  267. [args,] LAST ) ;
  268.  
  269. // sapgui_tree_double_click_item 模拟用户
  270.  
  271. // 双击树中的某一项。如果该项是一个链接,
  272.  
  273. // 则打开其目标;如果是命令,则执行该命令。
  274.  
  275. int sapgui_tree_double_click_item(const char *description, const char *treeID, const char
  276.  
  277. *nodeKey, const char *itemName, [args,] LAST ) ;
  278.  
  279. // sapgui_tree_double_click_node 模拟
  280.  
  281. // 用户双击树中的某个节点。
  282.  
  283. int sapgui_tree_double_click_node(const char *description, const char *treeID, const char
  284.  
  285. *nodeKey, [args,] LAST );
  286.  
  287. // sapgui_tree_expand_node 模拟用户通过单击“+”符号
  288.  
  289. // 展开一个节点。调用 sapgui_tree_expand_node 之后,
  290.  
  291. // “+”符号将替换为“-”符号,
  292.  
  293. // 而且子节点可见。
  294.  
  295. int sapgui_tree_expand_node(const char *description, const char *treeID, const char *nodeKey,
  296.  
  297. [args,] LAST ) ;
  298.  
  299. // sapgui_tree_get_item_text 数据检索函数
  300.  
  301. // 将树中某一项的文本属性放到 outParamName 中。
  302.  
  303. int sapgui_tree_get_item_text(const char *description, const char *treeID, const char *nodeKey,
  304.  
  305. const char *itemName, const char *outParamName, [args,] LAST ) ;
  306.  
  307. // sapgui_tree_get_node_text 数据检索函数
  308.  
  309. // 将节点文本放到 outParamName 中。
  310.  
  311. int sapgui_tree_get_node_text(const char *description, const char *treeID, const char *nodeKey,
  312.  
  313. const char *outParamName, [args,] LAST ) ;
  314.  
  315. // sapgui_tree_is_checkbox_selected 验证函数
  316.  
  317. // 适用于树控件中的复选框。如果复选框处于选中状态,
  318.  
  319. // 则返回 True,如果复选框处于清除状态,则返回 False。
  320.  
  321. int sapgui_tree_is_checkbox_selected(const char *description, const char *treeID, const char
  322.  
  323. *nodeKey, const char *itemName, [args,] LAST ) ;
  324.  
  325. // sapgui_tree_open_default_context_menu 打开
  326.  
  327. // 树的默认上下文相关菜单。
  328.  
  329. int sapgui_tree_open_default_context_menu(const char *description, const char *treeID, [args,]
  330.  
  331. LAST ) ;
  332.  
  333. // sapgui_tree_open_header_context_menu 模拟用户
  334.  
  335. // 右键单击树标题以打开上下文相关菜单。
  336.  
  337. int sapgui_tree_open_header_context_menu(const char *description, const char *treeID, const
  338.  
  339. char *headerName, [args,] LAST ) ;
  340.  
  341. // sapgui_tree_open_item_context_menu 模拟用户
  342.  
  343. // 右键单击树项以打开上下文相关菜单。
  344.  
  345. int sapgui_tree_open_item_context_menu(const char *description, const char *treeID, const char
  346.  
  347. *nodeKey, const char *itemName, [args,] LAST ) ;
  348.  
  349. // sapgui_tree_open_node_context_menu 模拟用户
  350.  
  351. // 右键单击树节点以打开上下文相关菜单。
  352.  
  353. int sapgui_tree_open_node_context_menu(const char *description, const char *treeID, const char
  354.  
  355. *nodeKey, [args,] LAST ) ;
  356.  
  357. // sapgui_tree_press_button 模拟用户单击树中的按钮。
  358.  
  359. int sapgui_tree_press_button(const char *description, const char *treeID, const char *nodeKey,
  360.  
  361. const char *itemName, [args,] LAST );
  362.  
  363. // sapgui_tree_press_header 模拟用户
  364.  
  365. // 单击树中的列标题。
  366.  
  367. int sapgui_tree_press_header(const char *description, const char *treeID, const char *headerName,
  368.  
  369. [args,] LAST ) ;
  370.  
  371. // sapgui_tree_press_key 模拟用户在
  372.  
  373. // 树具有焦点时按键盘。
  374.  
  375. int sapgui_tree_press_key(const char *description, const char *treeID, const char *key, [args,]
  376.  
  377. LAST );
  378.  
  379. // sapgui_tree_scroll_to_item 与
  380.  
  381. // sapgui_tree_select_item 自动录制为一对。它模拟
  382.  
  383. // 使用滚动条,以便 itemName 可见。
  384.  
  385. int sapgui_tree_scroll_to_item(const char *description, const char *treeID, const char *nodeKey,
  386.  
  387. const char *itemName, [args,] LAST ) ;
  388.  
  389. // sapgui_tree_scroll_to_node 滚动树,以便
  390.  
  391. // topNode 成为窗格顶端
  392.  
  393. // 的第一个可见节点。但不选中该节点。
  394.  
  395. int sapgui_tree_scroll_to_node(const char *description, const char *treeID, const char *topNode,
  396.  
  397. [args,] LAST );
  398.  
  399. // sapgui_tree_select_column 模拟用户
  400.  
  401. // 使用鼠标选择树列。
  402.  
  403. int sapgui_tree_select_column(const char *description, const char *treeID, const char
  404.  
  405. *columnName, [args,] LAST ) ;
  406.  
  407. // sapgui_tree_select_context_menu 从树控件的
  408.  
  409. // 快捷菜单中选择一项。
  410.  
  411. int sapgui_tree_select_context_menu ( const char *description, const char *treeID, const char
  412.  
  413. *value, [args,] LAST );
  414.  
  415. // sapgui_tree_select_item 适用于树控件中
  416.  
  417. // 任何可选项。它模拟用户单击
  418.  
  419. // itemName 项以便选中该项。如果在调用 sapgui_tree_select_item 时
  420.  
  421. // 该项在树窗格中不可见,
  422.  
  423. // 则滚动树以使该项可见。
  424.  
  425. int sapgui_tree_select_item(const char *description, const char *treeID, const char *nodeKey,
  426.  
  427. const char *itemName, [args,] LAST ) ;
  428.  
  429. // sapgui_tree_select_node 模拟用户单击
  430.  
  431. // MultipleNodeSelection 树中的节点。调用
  432.  
  433. // sapgui_tree_select_node 会将节点 nodeKey
  434.  
  435. // 添加到选定节点的集合。
  436.  
  437. int sapgui_tree_select_node(const char *description, const char *treeID, const char *nodeKey,
  438.  
  439. [args,] LAST ) ;
  440.  
  441. // sapgui_tree_set_checkbox 适用于树控件中的
  442.  
  443. // 复选框。如果该值为“True”,则选中复选框;
  444.  
  445. // 如果该值为“False”,则清除复选框。
  446.  
  447. int sapgui_tree_set_checkbox(const char *description, const char *treeID, const char *nodeKey,
  448.  
  449. const char *itemName, const char *value, [args,] LAST );
  450.  
  451. // sapgui_tree_set_column_order 设置树中
  452.  
  453. // 列的顺序。新顺序由列在列列表中
  454.  
  455. // 的位置来确定。
  456.  
  457. int sapgui_tree_set_column_order(const char *description, const char *treeID, const char
  458.  
  459. *columns, [args,] LAST ) ;
  460.  
  461. // sapgui_tree_set_column_width 将 columnName 的宽度设置为 width。
  462.  
  463. int sapgui_tree_set_column_width(const char *description, const char *treeID, const char
  464.  
  465. *columnName, const char *width, [args,] LAST ) ;
  466.  
  467. // sapgui_tree_set_hierarchy_header_width 将
  468.  
  469. // 树视图中标题的宽度更改为 width。
  470.  
  471. int sapgui_tree_set_hierarchy_header_width(const char *description, const char *treeID, const
  472.  
  473. char *width, [args,] LAST );
  474.  
  475. // sapgui_tree_set_selected_node 模拟用户单击
  476.  
  477. // SingleNodeSelection 树中的节点。调用
  478.  
  479. // sapgui_tree_set_selected_node 将取消选中
  480.  
  481. // 先前选中的节点,并选中节点 nodeKey。
  482.  
  483. int sapgui_tree_set_selected_node(const char *description, const char *treeID, const char
  484.  
  485. *nodeKey, [args,] LAST );
  486.  
  487. // sapgui_tree_unselect_all 取消选中树中
  488.  
  489. // 所有选中的项,而不选中其他项。
  490.  
  491. int sapgui_tree_unselect_all(const char *description, const char *treeID, [args,] LAST) ;
  492.  
  493. // sapgui_tree_unselect_column 取消选中树列。
  494.  
  495. int sapgui_tree_unselect_column(const char *description, const char *treeID, const char
  496.  
  497. *columnName, [args,] LAST ) ;
  498.  
  499. // sapgui_tree_unselect_node 取消选中树节点。
  500.  
  501. int sapgui_tree_unselect_node(const char *description, const char *treeID, const char *nodeKey,
  502.  
  503. [args,] LAST ) ;
  504.  
  505. // sapgui_window_close 关闭 SAP GUI 应用程序。
  506.  
  507. int sapgui_window_close( LAST);
  508.  
  509. // sapgui_window_maximize 将窗口设置为全屏大小。
  510.  
  511. int sapgui_window_maximize( LAST);
  512.  
  513. // sapgui_window_resize 将活动窗口调整为 width 和 height 大小。
  514.  
  515. int sapgui_window_resize( const char *width, const char *height, [args,] LAST );
  516.  
  517. // sapgui_window_restore 将窗口还原为非最大化状态。
  518.  
  519. int sapgui_window_restore( LAST);
  520.  
  521. // sapgui_window_scroll_to_row 滚动到某一窗口行,但
  522.  
  523. // 不在该行上设置焦点,也不针对该行执行任何操作
  524.  
  525. int sapgui_window_scroll_to_row( const char * newPosition, [args,] LAST );
  526.  
  527. // sapgui_apogrid_clear_selection 取消选中
  528.  
  529. // APO 网格中当前选中的区域。
  530.  
  531. int sapgui_apogrid_clear_selection ( const char *description, const char *gridID, [args,] LAST ) ;
  532.  
  533. // sapgui_apogrid_deselect_cell 取消选中 APO 网格中
  534.  
  535. // 由“row”和“column”指定的单元格。
  536.  
  537. int sapgui_apogrid_deselect_cell ( const char *description, const char *gridID, const char *row,
  538.  
  539. const char *column, [args,] LAST ) ;
  540.  
  541. // sapgui_apogrid_deselect_column 取消选中 APO 网格中的
  542.  
  543. // 指定列。
  544.  
  545. int sapgui_apogrid_deselect_column ( const char *description, const char *gridID, const char
  546.  
  547. *column, [args], LAST ) ;
  548.  
  549. // sapgui_apogrid_deselect_row 取消选中 APO 网格中的指定行。
  550.  
  551. int sapgui_apogrid_deselect_row ( const char *description, const char *gridID, const char *row,
  552.  
  553. [args,] LAST ) ;
  554.  
  555. // sapgui_apogrid_double_click 模拟用户
  556.  
  557. // 双击 APO 网格中的单元格。
  558.  
  559. int sapgui_apogrid_double_click ( const char *description, const char *gridID, const char *row,
  560.  
  561. const char *column, [args,] LAST ) ;
  562.  
  563. // sapgui_apogrid_get_cell_data 将 APO 网格中
  564.  
  565. // 某单元格的数据分配给参数 outParamName。
  566.  
  567. // 数据始终以字符串形式保存。
  568.  
  569. int sapgui_apogrid_get_cell_data ( const char *description, const char *gridID, const char *row,
  570.  
  571. const char *column, const char *outParamName, [args,] LAST ) ;
  572.  
  573. // sapgui_apogrid_get_cell_format 将 APO 网格中
  574.  
  575. // 某单元格的格式描述分配给参数 outParamName。
  576.  
  577. int sapgui_apogrid_get_cell_format ( const char *description, const char *gridID, const char *row,
  578.  
  579. const char *column, const char *outParamName, [args,] LAST ) ;
  580.  
  581. // sapgui_apogrid_get_cell_tooltip 将 APO 网格中
  582.  
  583. // 某单元格的工具提示分配给参数 outParamName。
  584.  
  585. int sapgui_apogrid_get_cell_tooltip ( const char *description, const char *gridID, const char *row,
  586.  
  587. const char *column, const char *outParamName, [args,] LAST ) ;
  588.  
  589. // sapgui_apogrid_is_cell_changeable 返回一个值,指明
  590.  
  591. // 用户是否可以修改 APO 网格中某单元格的值。
  592.  
  593. int sapgui_apogrid_is_cell_changeable ( const char *description, const char *gridID, const char
  594.  
  595. *row, const char *column, [args,] LAST ) ;
  596.  
  597. // sapgui_apogrid_open_cell_context_menu 打开 APO 网格中
  598.  
  599. // 某单元格的上下文菜单。
  600.  
  601. int sapgui_apogrid_open_cell_context_menu ( const char *description, const char *gridID, const
  602.  
  603. char *row, const char *column, [args,] LAST ) ;
  604.  
  605. // sapgui_apogrid_press_ENTER 模拟用户在 APO 网格中按 Enter 键。
  606.  
  607. int sapgui_apogrid_press_ENTER ( const char *description, const char *gridID, [args,] LAST ) ;
  608.  
  609. // sapgui_apogrid_scroll_to_column 模拟
  610.  
  611. // 用户滚动到 APO 网格中的某列。
  612.  
  613. // 该函数不选中该列。
  614.  
  615. int sapgui_apogrid_scroll_to_column ( const char *description, const char *gridID, const char
  616.  
  617. *column, [args,] LAST ) ;
  618.  
  619. // sapgui_apogrid_scroll_to_row 模拟用户
  620.  
  621. // 滚动到 APO 网格中的某行。该函数不选中该行。
  622.  
  623. int sapgui_apogrid_scroll_to_row ( const char *description, const char *gridID, const char *row,
  624.  
  625. [args,] LAST ) ;
  626.  
  627. // sapgui_apogrid_select_all 全选 APO 网格中的单元格。
  628.  
  629. int sapgui_apogrid_select_all ( const char *description, const char *gridID, [args,] LAST ) ;
  630.  
  631. // sapgui_apogrid_select_cell 选中 APO 网格中的一个单元格。
  632.  
  633. int sapgui_apogrid_select_cell ( const char *description, const char *gridID, const char *row,
  634.  
  635. const char *column, [args,] LAST ) ;
  636.  
  637. // sapgui_apogrid_select_column 选中 APO 网格中的一列。
  638.  
  639. int sapgui_apogrid_select_column ( const char *description, const char *gridID, const char
  640.  
  641. *column, [args,] LAST) ;
  642.  
  643. // sapgui_apogrid_select_context_menu_item 选中 APO 网格的
  644.  
  645. // 上下文菜单中的一项。
  646.  
  647. int sapgui_apogrid_select_context_menu_item ( const char *description, const char *gridID, const
  648.  
  649. char *value, [args,] LAST ) ;
  650.  
  651. // sapgui_apogrid_select_row 选中 APO 网格中的一行。
  652.  
  653. int sapgui_apogrid_select_row ( const char *description, const char *gridID, const char *row,
  654.  
  655. [args,] LAST ) ;
  656.  
  657. // sapgui_apogrid_set_cell_data 将 newValue
  658.  
  659. // 分配给 APO 网格中某单元格的内容。
  660.  
  661. int sapgui_apogrid_set_cell_data ( const char *description, const char *gridID, const char *row,
  662.  
  663. const char *column, const char *newValue, [args,] LAST ) ;
  664.  
  665. // smtp_abort_mail 取消当前的邮件事务。
  666.  
  667. // 废弃所有已存储的发件人、收件人和邮件数据。
  668.  
  669. // 清除所有缓冲区和状态表。
  670.  
  671. int smtp_abort_mail( );
  672.  
  673. // smtp_abort_mail_ex 针对特定会话取消
  674.  
  675. // 当前邮件事务。废弃所有
  676.  
  677. // 已存储的发件人、收件人和邮件数据。
  678.  
  679. // 清除所有缓冲区和状态表。
  680.  
  681. int smtp_abort_mail_ex( SMTP *ppsmtp);
  682.  
  683. // smtp_free 函数释放 SMTP 服务器
  684.  
  685. // 并取消所有挂起命令。
  686.  
  687. void smtp_free( );
  688.  
  689. // smtp_free_ex 函数释放 SMTP 服务器
  690.  
  691. // 并取消所有挂起命令。
  692.  
  693. void smtp_free_ex (SMTP *ppsmtp);
  694.  
  695. // smtp_logon 函数登录到 SMTP 服务器。
  696.  
  697. // 它使用 FTP 协议所用的格式。
  698.  
  699. int smtp_logon (char *transaction, char *url, [ char *CommonName, char *LogonUser, char
  700.  
  701. *LogonPass,] LAST);
  702.  
  703. // smtp_logon_ex 函数针对特定会话
  704.  
  705. // 登录到 SMTP 服务器。
  706.  
  707. int smtp_logon_ex ( SMTP *ppsmtp, char *transaction, char *url, [ char *CommonName, char
  708.  
  709. *LogonUser, char *LogonPass,] LAST );
  710.  
  711. // smtp_logout 函数从 SMTP 服务器注销。
  712.  
  713. int smtp_logout( );
  714.  
  715. // smtp_logout_ex 函数针对特定会话
  716.  
  717. // 从 SMTP 服务器注销。
  718.  
  719. int smtp_logout_ex (SMTP *ppsmtp);
  720.  
  721. // smtp_send_mail 函数使用 SMTP 服务器发送一封邮件。
  722.  
  723. int smtp_send_mail (char *transaction, char *RecipientTo, [char *RecipientCC,] [char
  724.  
  725. *RecipientBCC,] char *Subject, [char *From,][char * ContentType, <char * charset,>] char
  726.  
  727. *MAILOPTIONS, char *MAILDATA, LAST);
  728.  
  729. // smtp_send_mail_ex 函数针对指定会话
  730.  
  731. // 使用 SMTP 服务器发送一封邮件。
  732.  
  733. int smtp_send_mail_ex (SMTP *ppsmtp, char *transaction, char *RecipientTo, [char
  734.  
  735. *RecipientCC,] [char *RecipientBCC,] char *Subject,[char *From,] [char * ContentType, < char *
  736.  
  737. charset,>] char *MAILOPTIONS, char *MAILDATA, LAST);
  738.  
  739. // smtp_translate 函数为 SMTP 服务器
  740.  
  741. // 转换消息。应指定源文件和目标文件、
  742.  
  743. // 内容标题和编码类型。
  744.  
  745. int smtp_translate (char *filename, char *content_header, ENCODING_TYPE encoding, char
  746.  
  747. *output_filename);
  748.  
  749. // smtp_translate_ex 函数为 SMTP 服务器
  750.  
  751. // 转换消息。应指定源文件和目标文件、
  752.  
  753. // 内容标题和编码类型。
  754.  
  755. int smtp_translate_ex (SMTP *ppsmtp, char *filename, char *content_header,
  756.  
  757. ENCODING_TYPE encoding, char *output_filename);
  758.  
  759. // lrt_abort_on_error 函数
  760.  
  761. // 在上一个 Tuxedo 函数产生错误时
  762.  
  763. // 中止当前事务。这意味着事务异常
  764.  
  765. // 结束。将撤消事务执行过程中
  766.  
  767. // 对资源所做的所有更改。
  768.  
  769. void lrt_abort_on_error ( );
  770.  
  771. // lrt_ClarifyCorrelate 在使用 Clarify CRM 应用程序时
  772.  
  773. // 由 Vugen 自动生成,
  774.  
  775. // 并将返回的数据
  776.  
  777. // 保存在对数据库的 DB_OBJNUM 或 DB_OBJIDS 调用
  778.  
  779. // 的回复缓冲区中。该数据用于关联。
  780.  
  781. void lrt_ClarifyCorrelate (void *buf, int occurrence, char *param);
  782.  
  783. // lrt_display_buffer 函数将有关缓冲区的
  784.  
  785. // 信息存储到输出文件 section_name.out 中。
  786.  
  787. // 该文件包含每个
  788.  
  789. // 发送缓冲区和回复缓冲区的缓冲区描述。该信息
  790.  
  791. // 以以下格式显示:
  792.  
  793. int lrt_display_buffer (const char* bufferName, const char* bufferPtr, long actualLen,
  794.  
  795. long expectedLen );
  796.  
  797. // lrt_Fadd[32]_fld 函数将新字段
  798.  
  799. // 添加到 FML 缓冲区。必须将 FML 字段的名称或其字段 ID
  800.  
  801. // 指定为第二个参数。
  802.  
  803. // 必须在第三个参数中指定新
  804.  
  805. // FML fielFML 缓冲区的值。字段长度是可选的。
  806.  
  807. // 只需将 FML 字段的类型指定为
  808.  
  809. // CARRAY(二进制数据)。其他字段的长度
  810.  
  811. // 由字段类型和值来确定。
  812.  
  813. int lrt_Fadd[]_fld ( FBFR[] *fbfr, "name=fldname" | "id=idval", "value=fldvalue" [, "len=8"],
  814.  
  815. LRT_END_OF_PARAMS );
  816.  
  817. // lrt_Finitialize[32] 函数初始化
  818.  
  819. // 某个现有的 FML 缓冲区。该函数替代
  820.  
  821. // Tuxedo 函数 Finit 和 Fsizeof 的使用。
  822.  
  823. int lrt_Finitialize[] ( FBFR[] *fbfr );
  824.  
  825. // lrt_Fname[32] 函数提供从字段标识符
  826.  
  827. // 到其字段名的运行时转换。
  828.  
  829. char * lrt_Fname[] ( FLDID[] fieldid );
  830.  
  831. // lrt_Fstrerror[32] 函数检索
  832.  
  833. // 与 FML 错误代码对应的错误消息字符串。
  834.  
  835. char *lrt_Fstrerror[] ( int err );
  836.  
  837. // lrt_getFerror[32] 函数检索上次失败的
  838.  
  839. // FML 操作的错误代码。在多任务
  840.  
  841. // 环境中,该函数用于为每个任务
  842.  
  843. // 提供一个独立的错误状态,而不
  844.  
  845. // 依赖于全局错误变量 (Ferrno)。
  846.  
  847. int lrt_getFerror[] ( void );
  848.  
  849. // lrt_gettperrno 函数检索
  850.  
  851. // 上次失败事务的错误代码。在多任务
  852.  
  853. // 环境中,该函数用于为每个任务
  854.  
  855. // 提供一个独立的错误状态,而不
  856.  
  857. // 依赖于全局错误变量 (tperrno)。
  858.  
  859. int lrt_gettperrno ( void );
  860.  
  861. // lrt_gettpurcode 函数检索最后
  862.  
  863. // 一次调用 lrt_tpgetrply、lrt_tpcall、
  864.  
  865. // lrt_tprecv 或 lrt_tpdequeue 时设置的
  866.  
  867. // 全局应用程序返回代码变量 (tpurcode)。如果指定,
  868.  
  869. // tpurcode 还将包含使用 lrt_tpenqueue
  870.  
  871. // 发送的“user-return code”的值。
  872.  
  873. long lrt_gettpurcode ( void );
  874.  
  875. // lrt_InterateIDCals 在使用 Clarify CRM 应用程序时
  876.  
  877. // 由 Vugen 自动生成,并将返回的数据保存在
  878.  
  879. // 对数据库的 AS_EXESVC 调用
  880.  
  881. // 的回复缓冲区中。该数据用于关联。
  882.  
  883. void lrt_InterateIDCals (void *buf, int occurrence, char *param);
  884.  
  885. // lrt_memcpy 函数将指定的字节数
  886.  
  887. // 从源复制到目标。在复制到目标
  888.  
  889. // 之前,源保存在一个参数中
  890.  
  891. // 。该函数与
  892.  
  893. // C 函数 (memcpy) 功能相同。如果在用户计算机上
  894.  
  895. // 找不到 C 函数 (memcpy),
  896.  
  897. // 则提供 lrt_memcpy 函数。由于我们使用 C 解释器,
  898.  
  899. // 因此不能假定在每台用户计算机上
  900.  
  901. // 都可以找到标准 C 库。
  902.  
  903. void lrt_memcpy ( void *dest, const void *source, unsigned long count );
  904.  
  905. // lrt_save_fld_val 函数将 FML 缓冲区的
  906.  
  907. // 当前值保存到 paramName 指定的参数中。
  908.  
  909. // 该函数用于关联脚本中的
  910.  
  911. // 查询。并不使用查询期间实际获取的
  912.  
  913. // 结果,而是用一个参数来代替
  914.  
  915. // 该常量值。之后,同一个脚本中的其他数据库语句
  916.  
  917. // 可以使用该参数。
  918.  
  919. int lrt_save_fld_val ( FBFR *fbfr, char *name, FLDOCC occ, char *paramName );
  920.  
  921. // lrt_save32_fld_val 函数将 FML32 缓冲区的
  922.  
  923. // 当前值保存到 paramName 指定的参数中。
  924.  
  925. // 该函数用于关联脚本中的
  926.  
  927. // 查询。并不使用查询期间实际获取的
  928.  
  929. // 结果,而是用一个参数来代替
  930.  
  931. // 该常量值。之后,同一个脚本中的其他数据库语句
  932.  
  933. // 可以使用该参数。
  934.  
  935. int lrt_save32_fld_val ( FBFR32 *fbfr, char *name, FLDOCC32 occ, char *paramName );
  936.  
  937. // lrt_save_parm 函数将字符数组的一部分
  938.  
  939. // 保存到 parm_name 指定的参数中。该函数
  940.  
  941. // 保存 parm_len 指定的字符数,
  942.  
  943. // 从 offset 指定的偏移量开始。
  944.  
  945. int lrt_save_parm ( char *buffer, int offset, int parm_len, char *parm_name );
  946.  
  947. // lrt_set_carray_error_list 函数设置
  948.  
  949. // 可用于 CARRAY 回复缓冲区的错误消息
  950.  
  951. // 列表。使用该函数之前,应在 CARRAY_ERROR_INFO 结构中
  952.  
  953. // 定义错误消息。
  954.  
  955. void lrt_set_carray_error_list (CARRAY_ERROR_INFO *newcarrayErrors);
  956.  
  957. // lrt_set_env_list 函数设置之后可以由 lrt_tuxputenv 设置
  958.  
  959. // 的变量列表。在调用 lrt_set_env_list
  960.  
  961. // 之后,可以设置 allowedEnv 列表
  962.  
  963. // 中的环境变量。
  964.  
  965. void lrt_set_env_list ( char **allowedEnv );
  966.  
  967. // lrt_strcpy 函数将指定的字符串从
  968.  
  969. // 源复制到目标。在复制到
  970.  
  971. // 目标之前,源保存在一个参数中。该
  972.  
  973. // 函数与 C 函数 (strcpy) 功能相同。
  974.  
  975. void lrt_strcpy ( char *destString, const char *sourceString );
  976.  
  977. // lrt_tpabort 函数中止当前的 Tuxedo
  978.  
  979. // 或 System/T 事务。这意味着事务的
  980.  
  981. // 异常结束。将撤消事务执行过程中
  982.  
  983. // 对资源所做的所有更改。lrt_tpabort
  984.  
  985. // 只能由事务的发起者调用。
  986.  
  987. int lrt_tpabort ( long flags );
  988.  
  989. // lrt_tpacall 函数将请求消息发送给
  990.  
  991. // 指定的服务。这是可以以简要模式打印调试信息的
  992.  
  993. // 少数几个函数之一。
  994.  
  995. int lrt_tpacall ( char *svc, char *data, long len, long flags );
  996.  
  997. // lrt_tpalloc 函数分配新缓冲区,并
  998.  
  999. // 返回一个指向指定类型缓冲区的指针。由于
  1000.  
  1001. // 一些缓冲区类型在使用前
  1002.  
  1003. // 需要初始化,因此 lrt_tpalloc 会在分配之后,返回之前
  1004.  
  1005. // 初始化缓冲区。
  1006.  
  1007. char *lrt_tpalloc ( char *type, char *subtype, long size );
  1008.  
  1009. // lrt_tpbegin 函数开始一个 System/T 事务。
  1010.  
  1011. // System/T 中的事务是没有完全成功或根本没有生效的
  1012.  
  1013. // 工作的一个逻辑单元。
  1014.  
  1015. // 此类事务允许由多个进程执行工作,
  1016.  
  1017. // 而在不同的站点这些进程可能被视为
  1018.  
  1019. // 单一的工作单元。事务的发起者可以
  1020.  
  1021. // 可以使用 lrt_tpabort 或 lrt_tpcommit
  1022.  
  1023. // 结束事务。
  1024.  
  1025. int lrt_tpbegin(unsigned long timeout, long flags);
  1026.  
  1027. // lrt_tpbroadcast 函数允许客户端或服务器
  1028.  
  1029. // 将未经请求的消息发送到系统中已注册的客户端。
  1030.  
  1031. int lrt_tpbroadcast ( char *lmid, char *username, char *cltname, char * data, long len, long flags );
  1032.  
  1033. // lrt_tpcall 函数发送服务请求并等待其回复。
  1034.  
  1035. int lrt_tpcall ( char *svc, char *idata, long ilen, char **odata, long *olen, long flags );
  1036.  
  1037. // lrt_tpcancel 函数取消调用描述符。
  1038.  
  1039. // 在 lrt_tpcancel 之后,调用描述符 cd 不再
  1040.  
  1041. // 有效,并将忽略对 cd 的任何回复。任何
  1042.  
  1043. // 取消与事务关联的调用描述符的尝试
  1044.  
  1045. // 都会产生错误。
  1046.  
  1047. int lrt_tpcancel ( int cd );
  1048.  
  1049. // lrt_tpchkauth 函数检查应用程序配置
  1050.  
  1051. // 是否要求身份验证。这通常由应用程序客户端
  1052.  
  1053. // 在调用 lrt_tpinitialize 之前使用,
  1054.  
  1055. // 以确定是否要求输入密码。
  1056.  
  1057. int lrt_tpchkauth ( );
  1058.  
  1059. // lrt_tpchkunsol 函数通过检查来确定
  1060.  
  1061. // Tuxedo 客户端是否接收到任何未经请求的消息。
  1062.  
  1063. int lrt_tpchkunsol ( void );
  1064.  
  1065. // lrt_tpcommit 函数提交当前的 System/T 事务。
  1066.  
  1067. int lrt_tpcommit ( long flags );
  1068.  
  1069. // lrt_tpconnect 函数建立一个半双工
  1070.  
  1071. // 会话式服务连接。
  1072.  
  1073. int lrt_tpconnect ( char *svc, char *data, long len, long flags );
  1074.  
  1075. // lrt_tpdequeue 函数获取用于处理的消息,
  1076.  
  1077. // 并将其从队列中删除。默认情况下,获取的是队列
  1078.  
  1079. // 顶端的消息。要请求一条特定的
  1080.  
  1081. // 消息,请在 ctl 中指定消息标识符。
  1082.  
  1083. int lrt_tpdequeue ( char *qspace, char *qname, TPQCTL *ctl, char **data, long *len, long flags );
  1084.  
  1085. // lrt_tpdiscon 函数断开会话式
  1086.  
  1087. // 服务连接。该函数只能由
  1088.  
  1089. // 会话的发起者调用。调用
  1090.  
  1091. // 该函数之后,您将再也无法在
  1092.  
  1093. // 该连接上进行发送或接收。
  1094.  
  1095. int lrt_tpdiscon ( int cd );
  1096.  
  1097. // lrt_tpenqueue 函数存储要在 qname 指定的队列上
  1098.  
  1099. // 处理的消息。
  1100.  
  1101. int lrt_tpenqueue ( char *qspace, char *qname, TPQCTL *ctl, char *data, long len, long flags );
  1102.  
  1103. // lrt_tpfree 函数释放先前由
  1104.  
  1105. // lrt_tpalloc 或 lrt_tprealloc 获取的缓冲区。
  1106.  
  1107. void lrt_tpfree ( char *ptr );
  1108.  
  1109. // lrt_tpgetlev 函数检查事务是否正在执行。
  1110.  
  1111. int lrt_tpgetlev ( ) ;
  1112.  
  1113. // lrt_tpgetrply 函数返回上次所发送请求的回复。
  1114.  
  1115. int lrt_tpgetrply ( int *cd, char **data, long *len, long flags );
  1116.  
  1117. // lrt_tpgprio 函数返回上次发送或接收
  1118.  
  1119. // 的请求的优先级。优先级范围
  1120.  
  1121. // 从 1 到 100,最高优先级为 100。
  1122.  
  1123. int lrt_tpgprio ( );
  1124.  
  1125. // lrt_tpinitialize 函数使客户端可以加入 System/T
  1126.  
  1127. // 应用程序。该函数将替换 TVG_tpinit 函数。
  1128.  
  1129. int lrt_tpinitialize (["usrname=value",] ["cltname=value", ] ["passwd=value", ] [grpname=value,]
  1130.  
  1131. [flags= value, ] [datalen=value, ] [data=value, ] LRT_END_OF_PARAMS );
  1132.  
  1133. // lrt_tprealloc 函数更改类型化缓冲区的大小。
  1134.  
  1135. char * lrt_tprealloc ( char *ptr, long size );
  1136.  
  1137. // lrt_tprecv 函数通过打开的连接接收
  1138.  
  1139. // 发自另一个程序的数据。它
  1140.  
  1141. // 与 lrt_tpsend 结合使用,
  1142.  
  1143. // 且只能由对该连接没有控制权的
  1144.  
  1145. // 程序发出。该函数可以以简要
  1146.  
  1147. // 模式打印调试信息。
  1148.  
  1149. int lrt_tprecv ( int cd, char **data, long *len, long flags, long *revent );
  1150.  
  1151. // lrt_tpresume 函数继续执行全局事务。它
  1152.  
  1153. // 与 lrt_tpsuspend 语句结合使用。
  1154.  
  1155. int lrt_tpresume ( TPTRANID *tranid, long flags );
  1156.  
  1157. // lrt_tpscmt 函数与 lrt_tpcommit 结合使用,
  1158.  
  1159. // 设置 lrt_tpcommit 应在何时返回。
  1160.  
  1161. int lrt_tpscmt ( long flags );
  1162.  
  1163. // lrt_tpsend 函数通过打开的连接
  1164.  
  1165. // 将消息发送到另一个程序。调用方
  1166.  
  1167. // 必须拥有连接控制权。它与
  1168.  
  1169. // lrt_tprecv 结合使用。该函数可以以
  1170.  
  1171. // 简要模式打印调试信息。
  1172.  
  1173. int lrt_tpsend ( int cd, char *data, long len, long flags, long *revent );
  1174.  
  1175. // lrt_tpsetunsol 函数
  1176.  
  1177. // 设置在接收到未经请求的消息时调用的回调过程。
  1178.  
  1179. // 回调过程必须在外部 DLL 中定义,
  1180.  
  1181. // 并具有以下原型:
  1182.  
  1183. void *lrt_tpsetunsol ( void *func );
  1184.  
  1185. // lrt_tpsprio 函数设置下一个
  1186.  
  1187. // 发送或转发请求的优先级。
  1188.  
  1189. int lrt_tpsprio ( int prio, long flags );
  1190.  
  1191. // lrt_tpstrerror 函数检索 System/T 错误
  1192.  
  1193. // 的错误消息字符串。
  1194.  
  1195. char *lrt_tpstrerror ( int err );
  1196.  
  1197. // lrt_tpsuspend 函数挂起全局事务。
  1198.  
  1199. // 它与 lrt_tpresume 语句结合使用。
  1200.  
  1201. int lrt_tpsuspend ( TPTRANID *tranid, long flags );
  1202.  
  1203. // lrt_tpterm 函数从 System/T 应用程序中
  1204.  
  1205. // 删除客户端。如果客户端处于事务
  1206.  
  1207. // 模式,则回滚该事务。
  1208.  
  1209. int lrt_tpterm ( );
  1210.  
  1211. // lrt_tptypes 函数确定有关类型化缓冲区的信息。
  1212.  
  1213. long lrt_tptypes ( char *ptr, char *type, char *subtype );
  1214.  
  1215. // lrt_tuxgetenv 函数在环境列表中搜索与环境名称
  1216.  
  1217. // 相对应的值
  1218.  
  1219. // 。在通常没有环境变量的平台上,
  1220.  
  1221. // 该函数对不同平台间环境值的
  1222.  
  1223. // 可移植性非常有用。
  1224.  
  1225. char *lrt_tuxgetenv ( char *name );
  1226.  
  1227. // lrt_tuxputenv 函数更改现有
  1228.  
  1229. // 环境变量的值,或者新建一个变量。
  1230.  
  1231. // 使用 lrt_set_env_list 确定
  1232.  
  1233. // 可以设置的变量。在通常没有环境变量的平台上,
  1234.  
  1235. // 该函数对不同平台间环境值的
  1236.  
  1237. // 可移植性非常有用。默认
  1238.  
  1239. // 情况下,lrt_tuxputenv 只允许更改 WSNADDR,
  1240.  
  1241. // 使用 lrt_set_env_list 时除外。
  1242.  
  1243. int lrt_tuxputenv (char *string);
  1244.  
  1245. // lrt_tuxreadenv 函数读取包含
  1246.  
  1247. // 环境变量的文件,并将其添加到环境中。
  1248.  
  1249. // 在通常没有环境变量的平台上,
  1250.  
  1251. // 该函数对不同平台间环境值的
  1252.  
  1253. // 可移植性非常有用。
  1254.  
  1255. int lrt_tuxreadenv ( char *file, char *label );
  1256.  
  1257. // lrt_tx_begin 函数开始一个全局事务。
  1258.  
  1259. int lrt_tx_begin ( );
  1260.  
  1261. // lrt_tx_close 函数关闭一组资源管理器。
  1262.  
  1263. // 该函数与 lrt_tx_open 结合使用。
  1264.  
  1265. int lrt_tx_close ( );
  1266.  
  1267. // lrt_tx_commit 函数提交一个全局事务。
  1268.  
  1269. int lrt_tx_commit ( );
  1270.  
  1271. // lrt_tx_info 函数返回全局事务信息。
  1272.  
  1273. int lrt_tx_info ( TXINFO *info );
  1274.  
  1275. // lrt_tx_open 函数打开一组资源管理器。
  1276.  
  1277. // 该函数与 lrt_tx_close 结合使用。
  1278.  
  1279. int lrt_tx_open ( );
  1280.  
  1281. // lrt_tx_rollback 函数回滚一个全局事务。
  1282.  
  1283. int lrt_tx_rollback ( );
  1284.  
  1285. // lrt_tx_set_commit_return 函数将 commit_return
  1286.  
  1287. // 特征设置为 when_return 中指定的值。
  1288.  
  1289. int lrt_tx_set_commit_return ( COMMIT_RETURN when_return );
  1290.  
  1291. // lrt_tx_set_transaction_control 函数将 transaction_control
  1292.  
  1293. // 特征设置为 control 中指定的值。
  1294.  
  1295. int lrt_tx_set_transaction_control ( TRANSACTION_CONTROL control );
  1296.  
  1297. // lrt_tx_set_transaction_timeout 函数将 transaction_timeout
  1298.  
  1299. // 特征设置为 timeout 中指定的值。
  1300.  
  1301. int lrt_tx_set_transaction_timeout ( TRANSACTION_TIMEOUT timeout );
  1302.  
  1303. // lr_advance_param 函数使脚本使用
  1304.  
  1305. // 参数的下一个可用值。如果要
  1306.  
  1307. // 运行多次循环,可以在
  1308.  
  1309. // 参数属性中指定自动前进到
  1310.  
  1311. // 每次循环的下一个值。在某次循环中使用该函数
  1312.  
  1313. // 可前进到下一个值。
  1314.  
  1315. int lr_advance_param ( const char * param);
  1316.  
  1317. // lr_abort 函数中止脚本
  1318.  
  1319. // 的执行。它停止 Actions 部分的执行,
  1320.  
  1321. // 执行 vuser_end 部分,然后
  1322.  
  1323. // 结束该执行。当因特定的错误情况
  1324.  
  1325. // 需要手动中止运行时,
  1326.  
  1327. // 该函数非常有用。使用该函数
  1328.  
  1329. // 结束运行时,状态为“停止”。
  1330.  
  1331. void lr_abort( );
  1332.  
  1333. // lr_continue_on_error 函数指定如何
  1334.  
  1335. // 处理错误。如果发生错误,可以选择
  1336.  
  1337. // 继续运行,或者中止运行执行。
  1338.  
  1339. void lr_continue_on_error ( int value );
  1340.  
  1341. // lr_convert_string_encoding 在下列编码
  1342.  
  1343. // 之间转换字符串编码:系统区域设置、Unicode 和 UTF-8。
  1344.  
  1345. // 该函数将结果字符串(包括其终止
  1346.  
  1347. // 结果字符串 NULL)保存在参数 paramName 中。
  1348.  
  1349. int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char
  1350.  
  1351. *toEncoding, const char *paramName);
  1352.  
  1353. // lr_debug_message 函数在指定的消息级别
  1354.  
  1355. // 处于活动状态时发送一条调试消息。如果指定的
  1356.  
  1357. // 消息级别未处于活动状态,则不发出消息。
  1358.  
  1359. // 您可以从用户界面
  1360.  
  1361. // 或者使用 lr_set_debug_message,将处于活动状态的消息级别
  1362.  
  1363. // 设置为 MSG_CLASS_BRIEF_LOG 或 MSG_CLASS_EXTENDED_LOG。要确定当前级
  1364.  
  1365. 别,
  1366.  
  1367. // 请使用 lr_get_debug_message。
  1368.  
  1369. int lr_debug_message (unsigned int message_level, const char * format, ... );
  1370.  
  1371. // lr_decrypt 函数对已编码的字符串进行解密。
  1372.  
  1373. // 该函数在录制过程中生成,以便
  1374.  
  1375. // 对密码进行编码。VuGen 录制实际的密码,
  1376.  
  1377. // 但在 lr_decrypt function 函数中
  1378.  
  1379. // 显示密码的编码版本。
  1380.  
  1381. char * lr_decrypt (const char *EncodedString);
  1382.  
  1383. // lr_disable_ip_spoofing 在脚本运行过程中禁用 IP 欺骗。
  1384.  
  1385. int lr_disable_ip_spoofing ( );
  1386.  
  1387. // lr_enable_ip_spoofing 在脚本运行过程中启用 IP 欺骗。
  1388.  
  1389. int lr_enable_ip_spoofing ( );
  1390.  
  1391. // lr_end_sub_transaction 函数标记
  1392.  
  1393. // 子事务的结束。要标记子事务的
  1394.  
  1395. // 开始,请使用 lr_start_sub_transaction
  1396.  
  1397. // 函数。应紧接子事务步骤前后
  1398.  
  1399. // 插入这些函数。
  1400.  
  1401. int lr_end_sub_transaction (const char * sub_transaction, int status );
  1402.  
  1403. // lr_end_transaction 函数标记事务的
  1404.  
  1405. // 结束,并录制执行事务
  1406.  
  1407. // 所用的时间量。要指明希望分析的事务,
  1408.  
  1409. // 请在事务之前放置 lr_start_transaction
  1410.  
  1411. // 函数,并在事务之后
  1412.  
  1413. // 放置 lr_end_transaction 函数。
  1414.  
  1415. int lr_end_transaction (const char * transaction_name, int status ) ;
  1416.  
  1417. // lr_end_transaction_instance 函数标记
  1418.  
  1419. // 事务实例的结束,并录制
  1420.  
  1421. // 执行事务所用的时间量。要指明
  1422.  
  1423. // 希望分析的事务实例,请在
  1424.  
  1425. // 事务之前放置 lr_start_transaction_instance 函数,
  1426.  
  1427. // 并在事务之后
  1428.  
  1429. // 放置 lr_end_transaction_instance 函数。
  1430.  
  1431. int lr_end_transaction_instance (long parent_handle, int status );
  1432.  
  1433. // lr_end_timer 停止在调用 lr_start_timer 时开始计时的
  1434.  
  1435. // 计时器。它以秒为单位返回已用时间。
  1436.  
  1437. // 分辨率取决于运行时环境。
  1438.  
  1439. // 最大分辨率为一微秒。
  1440.  
  1441. double lr_end_timer (merc_timer_handle_t timer);
  1442.  
  1443. // lr_eval_string 函数在评估任何嵌入的参数之后
  1444.  
  1445. // 返回输入字符串。如果字符串
  1446.  
  1447. // 实参 (argument) 只包含一个形参 (parameter),该函数
  1448.  
  1449. // 返回形参的当前值。
  1450.  
  1451. char * lr_eval_string (const char * instring );
  1452.  
  1453. // lr_eval_string_ext 函数通过将参数替换为
  1454.  
  1455. // 字符串值来评估 in_str。
  1456.  
  1457. // 它创建包含扩展字符串的缓冲区,
  1458.  
  1459. // 并将 out_str 设置为指向该缓冲区。它还
  1460.  
  1461. // 将缓冲区的长度分配给 out_len。
  1462.  
  1463. int lr_eval_string_ext (const char * in_string, unsigned long const in_len, char ** const out_str,
  1464.  
  1465. unsigned long * const out_len, unsigned long const options, const char *file, long const line );
  1466.  
  1467. // lr_eval_string_ext_free 函数释放
  1468.  
  1469. // lr_eval_string_ext 分配的内存。
  1470.  
  1471. void lr_eval_string_ext_free (const char **param);
  1472.  
  1473. // lr_error_message 函数将错误消息发送到
  1474.  
  1475. // 输出窗口和 Vuser 日志文件。要发送
  1476.  
  1477. // 不是特定错误消息的特殊通知,
  1478.  
  1479. // 请使用 lr_output_message。
  1480.  
  1481. int lr_error_message (const char * format, exp1, exp2,...expn. );
  1482.  
  1483. // 使用 lr_exit 函数可在执行过程中
  1484.  
  1485. // 退出脚本运行。
  1486.  
  1487. void lr_exit (int continuation_option, int exit_status);
  1488.  
  1489. // lr_fail_trans_with_error 函数使用
  1490.  
  1491. // lr_end_transaction 语句中的 LR_AUTO,将所有
  1492.  
  1493. // 打开事务的默认退出状态设置为 LR_FAIL,
  1494.  
  1495. // 并发送错误消息。
  1496.  
  1497. int lr_fail_trans_with_error (const char * format, exp1, exp2,...expn.);
  1498.  
  1499. // lr_get_attrib_double 函数返回
  1500.  
  1501. // 命令行参数的值,其类型为
  1502.  
  1503. // 双精度浮点型。应将命令行参数的名称
  1504.  
  1505. // 放置在函数的实参 (argument) 字段,lr_get_attrib_double 将返回
  1506.  
  1507. // 该参数的值。
  1508.  
  1509. double lr_get_attrib_double (const char * parameter);
  1510.  
  1511. // lr_get_attrib_long 函数返回
  1512.  
  1513. // 命令行参数的值,其类型为长整型。
  1514.  
  1515. // 应将命令行参数名称放置在
  1516.  
  1517. // 函数的实参 (argument) 字段,lr_get_attrib_long
  1518.  
  1519. // 将返回该参数的值。
  1520.  
  1521. long lr_get_attrib_long (const char * parameter);
  1522.  
  1523. // lr_get_attrib_string 函数返回命令行
  1524.  
  1525. // 参数字符串。应将参数名称放置在函数的
  1526.  
  1527. // argument 字段,lr_get_attrib_string 将返回
  1528.  
  1529. // 与该参数关联的字符串值。
  1530.  
  1531. char * lr_get_attrib_string (const char * argument);
  1532.  
  1533. // lr_get_debug_message 函数返回当前的
  1534.  
  1535. // 日志运行时设置。该设置确定
  1536.  
  1537. // 发送到输出端的信息。日志设置是
  1538.  
  1539. // 使用运行时设置对话框或通过使用
  1540.  
  1541. // lr_set_debug_message 函数指定的。
  1542.  
  1543. unsigned int lr_get_debug_message ( );
  1544.  
  1545. // lr_get_host_name 函数返回
  1546.  
  1547. // 执行脚本的计算机的名称。
  1548.  
  1549. char * lr_get_host_name ( );
  1550.  
  1551. // lr_get_vuser_ip 函数返回 Vuser 的
  1552.  
  1553. // IP 地址。执行 IP 欺骗时,每个 Vuser 都
  1554.  
  1555. // 可以使用不同的地址。使用该函数可以确定
  1556.  
  1557. // 当前 Vuser 的 IP 地址。
  1558.  
  1559. char * lr_get_vuser_ip( );
  1560.  
  1561. // lr_get_master_host_name 函数返回运行
  1562.  
  1563. // 控制器或优化模块控制台的计算机的名称。
  1564.  
  1565. char * lr_get_master_host_name ( );
  1566.  
  1567. // lr_get_transaction_duration 函数返回
  1568.  
  1569. // 到该点为止指定事务的持续时间(秒)
  1570.  
  1571. // 。使用该函数可确定
  1572.  
  1573. // 事务结束前的总
  1574.  
  1575. // 事务时间。lr_get_transaction_duration 只针对打开事务返回
  1576.  
  1577. // 大于零的值。
  1578.  
  1579. double lr_get_transaction_duration (const char * transaction);
  1580.  
  1581. // lr_get_transaction_status 返回事务的
  1582.  
  1583. // 当前状态。不能在 lr_end_transaction 之后
  1584.  
  1585. // 调用 lr_get_transaction_status。由于 lr_get_transaction_status
  1586.  
  1587. // 只能返回打开事务的状态,因此
  1588.  
  1589. // 无法报告最终的事务状态。
  1590.  
  1591. int lr_get_transaction_status ( const char *transaction_name ) ;
  1592.  
  1593. // lr_get_trans_instance_status 返回事务实例的
  1594.  
  1595. // 当前状态。不能在 lr_end_transaction_instance 之后
  1596.  
  1597. // 调用 lr_get_trans_instance_status。它
  1598.  
  1599. // 无法报告最终的事务实例状态。
  1600.  
  1601. int lr_get_trans_instance_status ( long transaction_handle ) ;
  1602.  
  1603. // lr_get_trans_instance_duration 函数返回
  1604.  
  1605. // 到该点为止打开事务实例的持续
  1606.  
  1607. // 时间(秒)。使用该函数可确定事务结束前
  1608.  
  1609. // 的总事务时间。
  1610.  
  1611. double lr_get_trans_instance_duration (long trans_handle);
  1612.  
  1613. // lr_get_transaction_think_time 函数返回
  1614.  
  1615. // 到该点为止指定事务的
  1616.  
  1617. // 思考时间。它只针对打开事务返回
  1618.  
  1619. // 大于零的值。
  1620.  
  1621. double lr_get_transaction_think_time (const char * transaction);
  1622.  
  1623. // lr_get_trans_instance_think_time 函数返回
  1624.  
  1625. // 到该点为止指定事务的思考时间。
  1626.  
  1627. double lr_get_trans_instance_think_time (long trans_handle);
  1628.  
  1629. // lr_get_transaction_wasted_time 函数返回
  1630.  
  1631. // 到该点为止指定事务的浪费时间(秒)。
  1632.  
  1633. double lr_get_transaction_wasted_time (const char * transaction);
  1634.  
  1635. // lr_get_trans_instance_wasted_time 函数返回
  1636.  
  1637. // 到该点为止指定事务的浪费时间。
  1638.  
  1639. double lr_get_trans_instance_wasted_time (long trans_handle);
  1640.  
  1641. // lr_load_dll 函数加载 DLL (Windows)
  1642.  
  1643. // 或共享对象 (UNIX),使您可以在
  1644.  
  1645. // 使用 C 解释器回放时调用外部函数。加载
  1646.  
  1647. // DLL 之后,您就可以调用 DLL 中定义的
  1648.  
  1649. // 任何函数,而不必声明。
  1650.  
  1651. int lr_load_dll (const char *library_name );
  1652.  
  1653. // lr_log_message 函数将消息发送到
  1654.  
  1655. // Vuser 或代理日志文件(取决于应用程序),
  1656.  
  1657. // 而不是发送到输出窗口。通过向日志文件发送错误消息或
  1658.  
  1659. // 其他信息性消息,可以将
  1660.  
  1661. // 该函数用于调试。
  1662.  
  1663. int lr_log_message (const char * format, exp1, exp2,...expn.);
  1664.  
  1665. // lr_message 函数将消息发送到日志文件和
  1666.  
  1667. // 输出窗口。在 VuGen 中运行时,输出文件为 output.txt。
  1668.  
  1669. int lr_message (const char * format, exp1, exp2,...expn.);
  1670.  
  1671. // lr_output_message 函数将带有脚本部分和行号的消息
  1672.  
  1673. // 发送到输出窗口和日志文件。
  1674.  
  1675. int lr_output_message (const char * format, exp1, exp2,...expn.);
  1676.  
  1677. // lr_next_row 函数获取指定文件中参数的
  1678.  
  1679. // 下一个可用行的值。如果
  1680.  
  1681. // 要运行多次循环,可以在参数
  1682.  
  1683. // 属性中指定前进到每次循环
  1684.  
  1685. // 的下一行。在特定循环中使用
  1686.  
  1687. // 该函数,可以前进到下一组值。
  1688.  
  1689. int lr_next_row ( const char * dat_file );
  1690.  
  1691. // lr_param_increment 函数检索
  1692.  
  1693. // source_param 的值,并以 1 为单位递增其值,
  1694.  
  1695. // 然后将递增后的值作为 null 终止字符串
  1696.  
  1697. // 存储在 destination_param 中。
  1698.  
  1699. int lr_param_increment (const char * destination_param, const char * source_param);
  1700.  
  1701. // lr_peek_events 函数用于在脚本执行期间
  1702.  
  1703. // 的特定时刻接收事件。应将该函数
  1704.  
  1705. // 插入到 Vuser 程序中希望 Vuser 暂停的
  1706.  
  1707. // 位置。如果脚本中不
  1708.  
  1709. // 包含 lr_peek_events 函数,您将无法
  1710.  
  1711. // 暂停 Vuser。
  1712.  
  1713. void lr_peek_events ( );
  1714.  
  1715. // lr_rendezvous_ex 函数在 Vuser 脚本中创建
  1716.  
  1717. // 一个集合点。执行该语句时,
  1718.  
  1719. // Vuser 程序会停止并等待 LoadRunner 赋予
  1720.  
  1721. // 权限以便继续。
  1722.  
  1723. int lr_rendezvous_ex (const char * rendezvous_name);
  1724.  
  1725. // lr_rendezvous 函数在 Vuser 脚本中
  1726.  
  1727. // 创建一个集合点。执行该语句时,
  1728.  
  1729. // Vuser 程序会停止并等待 LoadRunner 赋予
  1730.  
  1731. // 权限以便继续。
  1732.  
  1733. int lr_rendezvous (const char * rendezvous_name);
  1734.  
  1735. // lr_resume_transaction 函数继续执行
  1736.  
  1737. // 被 lr_stop_transaction 挂起的脚本中
  1738.  
  1739. // 事务数据的报告。调用 lr_stop_transaction 之后,
  1740.  
  1741. // “get”事务函数返回的统计信息
  1742.  
  1743. // 只反映该调用之前的数据,
  1744.  
  1745. // 直到调用此函数。
  1746.  
  1747. void lr_resume_transaction (const char * transaction_name);
  1748.  
  1749. // lr_resume_transaction_instance 函数可以继续报告由
  1750.  
  1751. // lr_stop_transaction_instance 挂起的脚本中的
  1752.  
  1753. // 事务数据。
  1754.  
  1755. // 调用 lr_stop_transaction_instance 后,
  1756.  
  1757. // “get”事务函数返回的统计信息
  1758.  
  1759. // 只反映该调用之前的数据,直到调用
  1760.  
  1761. // 此函数。
  1762.  
  1763. void lr_resume_transaction_instance ( long trans_handle );
  1764.  
  1765. // lr_save_datetime 函数将当前日期
  1766.  
  1767. // 和时间,或具有指定偏移的日期和时间
  1768.  
  1769. // 保存在参数中。如果达到 MAX_DATETIME_LEN 个字符,
  1770.  
  1771. // 结果字符串将截断。
  1772.  
  1773. void lr_save_datetime(const char *format, int offset, const char *name);
  1774.  
  1775. // lr_save_searched_string 函数在字符串
  1776.  
  1777. // 或字符数组缓冲区中搜索字符串 search_string,
  1778.  
  1779. // 并找到 search_string 第 n 次出现的位置,其中
  1780.  
  1781. // n 为 occurrence 加 1。要保存的子字符串
  1782.  
  1783. // 从 search_string 第 n 次出现位置的末尾偏移 offset 处开始,
  1784.  
  1785. // 长度为 string_len。
  1786.  
  1787. int lr_save_searched_string (const char *buffer, long buf_size, unsigned int occurrence, const char
  1788.  
  1789. *search_string, int offset, unsigned int string_len, const char *parm_name );
  1790.  
  1791. // lr_save_string 函数将指定的以 null 终止的
  1792.  
  1793. // 字符串赋给参数。该函数可用于关联
  1794.  
  1795. // 查询。要确定参数值,请使用
  1796.  
  1797. // 函数 lr_eval_string。
  1798.  
  1799. int lr_save_string (const char *param_value, const char *param_name);
  1800.  
  1801. // lr_save_var function 函数将指定的变长
  1802.  
  1803. // 字符串赋给参数。该函数可用于
  1804.  
  1805. // 关联查询。要确定参数值,
  1806.  
  1807. // 请使用函数 lr_eval_string。
  1808.  
  1809. int lr_save_var (const char * param_value, unsigned long const value_len, unsigned long const
  1810.  
  1811. options, const char * param_name);
  1812.  
  1813. // lr_set_debug_message 函数设置脚本
  1814.  
  1815. // 执行的调试消息级别 message_lvl。通过设置
  1816.  
  1817. // 消息级别,可以确定发送哪些
  1818.  
  1819. // 信息。启用设置的方法是将 LR_SWITCH_ON 作为 on_off 传递,
  1820.  
  1821. // 禁用设置的方法是传递 LR_SWITCH_OFF。
  1822.  
  1823. int lr_set_debug_message (unsigned int message_level, unsigned int on_off);
  1824.  
  1825. // lr_set_transaction 函数用于在一次调用中
  1826.  
  1827. // 创建事务、其持续时间及
  1828.  
  1829. // 状态。如果要在事务中捕获的
  1830.  
  1831. // 业务流程不由顺序步骤组成,
  1832.  
  1833. // 或者是否要创建事务视
  1834.  
  1835. // 只有在测试过程中才可知的条件而定,
  1836.  
  1837. // 请使用该函数。
  1838.  
  1839. int lr_set_transaction(const char *name, double duration, int status);
  1840.  
  1841. // lr_set_transaction_instance_status 函数使用
  1842.  
  1843. // 事务句柄为 trans_handle 设置打开事务的
  1844.  
  1845. // 状态。该句柄由
  1846.  
  1847. // lr_start_transaction_instance 返回。
  1848.  
  1849. int lr_set_transaction_instance_status (int status, long trans_handle);
  1850.  
  1851. // lr_set_transaction_status 函数设置
  1852.  
  1853. // 那些在其 lr_end_transaction 语句中包含 LR_AUTO 的
  1854.  
  1855. // 当前打开事务的状态。
  1856.  
  1857. int lr_set_transaction_status (int status);
  1858.  
  1859. // lr_set_transaction_status_by_name 函数使用
  1860.  
  1861. // 名称 trans_name 设置打开事务的
  1862.  
  1863. // 默认状态。该事务的 lr_end_transaction
  1864.  
  1865. // 语句必须使用自动状态分配,方法是
  1866.  
  1867. // 将 LR_AUTO 作为其 status 参数传递。
  1868.  
  1869. int lr_set_transaction_status_by_name (int status, const char *trans_name);
  1870.  
  1871. // lr_start_transaction 函数标记
  1872.  
  1873. // 事务的开始。要指明要分析的
  1874.  
  1875. // 事务,请使用函数 lr_start_transaction 和
  1876.  
  1877. // lr_end_transaction。应紧接事务前后
  1878.  
  1879. // 插入这些函数。
  1880.  
  1881. int lr_start_transaction ( const char * transaction_name );
  1882.  
  1883. // lr_start_transaction_instance 函数标记
  1884.  
  1885. // 事务实例的开始。事务
  1886.  
  1887. // 实例是名为 transaction_name 的事务的一次
  1888.  
  1889. // 发生。实例由它们的句柄
  1890.  
  1891. // 标识,句柄使它们区别于
  1892.  
  1893. // 同一事务的其他实例。
  1894.  
  1895. long lr_start_transaction_instance ( const char * transaction_name, long handle);
  1896.  
  1897. // lr_start_sub_transaction 函数标记
  1898.  
  1899. // 子事务的开始。要标记子事务
  1900.  
  1901. // 的结束,请使用 lr_end_sub_transaction。
  1902.  
  1903. // 请紧接子事务操作前后
  1904.  
  1905. // 插入这些函数。
  1906.  
  1907. int lr_start_sub_transaction (const char * sub_transaction, const char * parent_transaction);
  1908.  
  1909. // 调用 lr_stop_transaction 后,
  1910.  
  1911. // “get”事务函数返回的统计信息只反映
  1912.  
  1913. // 该调用之前的数据,直到调用 lr_resume_transaction
  1914.  
  1915. // 。指定的事务必须已
  1916.  
  1917. // 使用 lr_start_transaction 打开。
  1918.  
  1919. double lr_stop_transaction (const char * transaction_name);
  1920.  
  1921. // 调用 lr_stop_transaction_instance 后,
  1922.  
  1923. // “get”事务函数返回的统计信息
  1924.  
  1925. // 只反映该调用之前的数据,直到调用 lr_resume_transaction_instance
  1926.  
  1927. // 。指定的事务实例
  1928.  
  1929. // 必须已使用 lr_start_transaction_instance 打开。
  1930.  
  1931. double lr_stop_transaction_instance (long parent_handle);
  1932.  
  1933. // 通过 lr_think_time 可以在运行期间暂停测试
  1934.  
  1935. // 执行。这对于模拟思考时间非常有用,
  1936.  
  1937. // 思考时间是真实用户在操作之间停下来思考的时间。
  1938.  
  1939. void lr_think_time (double time);
  1940.  
  1941. // 通过函数 lr_user_data_point,可以记录
  1942.  
  1943. // 自己的数据以进行分析。每次要记录一个点
  1944.  
  1945. // 时,请使用该函数记录采样名称和
  1946.  
  1947. // 值。将自动记录采样的时间。
  1948.  
  1949. // 执行后,可以使用用户定义的数据
  1950.  
  1951. // 点图形来分析结果。
  1952.  
  1953. int lr_user_data_point (const char * sample_name, double value);
  1954.  
  1955. // 除附加参数 log_flag 之外,函数 lr_user_data_point_ex
  1956.  
  1957. // 与 lr_user_data_point 相同。
  1958.  
  1959. int lr_user_data_point_ex ( const char *sample_name, double value, int log_flag);
  1960.  
  1961. // 除参数 transaction_handle(通过该参数可以
  1962.  
  1963. // 将数据点与某个特定事务实例关联起来)之外,
  1964.  
  1965. // 函数 lr_user_data_point_instance
  1966.  
  1967. // 与 lr_user_data_point 相似。
  1968.  
  1969. long lr_user_data_point_instance (const char * sample_name, double value, long
  1970.  
  1971. transaction_handle);
  1972.  
  1973. // 除附加参数函数 log_flag 之外,函数
  1974.  
  1975. // lr_user_data_point_instance_ex 与
  1976.  
  1977. // lr_user_data_point_instance 相同。
  1978.  
  1979. long lr_user_data_point_instance_ex (const char*sample_name, double value, long
  1980.  
  1981. transaction_handle, int log_flag);
  1982.  
  1983. // lr_vuser_status_message 函数向控制器
  1984.  
  1985. // 或优化模块控制台的 Vuser 窗口的“状态”区域
  1986.  
  1987. // 发送字符串。它还将该字符串
  1988.  
  1989. // 发送到 Vuser 日志。从 VuGen 运行时,
  1990.  
  1991. // 消息被发送到 output.txt。
  1992.  
  1993. int lr_vuser_status_message (const char * format);
  1994.  
  1995. // 通过 lr_wasted_time 可以从所有打开事务中
  1996.  
  1997. // 减去在偶然或次要的操作上浪费的时间。
  1998.  
  1999. void lr_wasted_time (long time);
  2000.  
  2001. // lr_whoami 函数获取关于 Vuser 的信息。
  2002.  
  2003. void lr_whoami (int *vuser_id, char **sgroup, int *scid);
  2004.  
  2005. // radius_account 模拟 RAS 或 NAS 服务器,该服务器
  2006.  
  2007. // 向 RADIUS 服务器发送记帐信息。
  2008.  
  2009. // 请将其插入在 radius_authenticate 调用之后、
  2010.  
  2011. // WAP 会话之前或过程中。
  2012.  
  2013. int radius_account(const char *AccountName, const char *Action, <List of Arguments>, LAST);
  2014.  
  2015. // radius_authenticate 模拟 RAS 或 NAS 服务器,该服务器
  2016.  
  2017. // 在允许用户访问 WAP 网关之前,
  2018.  
  2019. // 向 RADIUS 服务器发送用户的身份验证信息。
  2020.  
  2021. // 请将其插入在调用 wap_connect 之前。
  2022.  
  2023. int radius_authenticate(<List of Arguments>, LAST);
  2024.  
  2025. // radius_get_last_error 返回最近的 RADIUS
  2026.  
  2027. // 函数调用的错误代码。
  2028.  
  2029. int radius_get_last_error ();
  2030.  
  2031. // radius_set_timeout 为函数 radius_authenticate
  2032.  
  2033. // 和 radius_account functions 设置连接超时值。它
  2034.  
  2035. // 会覆盖 RADIUS 运行时设置中的超时值
  2036.  
  2037. // 设置。参数 Timeout 是以秒为单位的超时值
  2038.  
  2039. // 的字符串表示。例如“5”。
  2040.  
  2041. int radius_set_timeout (const char *Timeout);
  2042.  
  2043. // wap_add_const_header 函数向常量头列表中
  2044.  
  2045. // 添加一个头。当建立 CO 类型的连接时,这些头
  2046.  
  2047. // 被传送至网关。
  2048.  
  2049. int wap_add_const_header ( const char *mpszHeader, const char *mpszValue );
  2050.  
  2051. // wap_bearer_down 可以断开与承载网络的连接。
  2052.  
  2053. // 载体是 WAP 网络的最底层服务。
  2054.  
  2055. // 有关详细信息,请参阅 wap_bearer_up。
  2056.  
  2057. int wap_bearer_down();
  2058.  
  2059. // wap_bearer_up 可以连接到承载网络。承
  2060.  
  2061. // 载体是 WAP 网络的最底层服务。
  2062.  
  2063. // 当测试只包括 SMS 消息时该函数非常有用,
  2064.  
  2065. // 使您不必使用 wap_connect 连接至
  2066.  
  2067. // WAP 网关。
  2068.  
  2069. int wap_bearer_up();
  2070.  
  2071. // wap_connect 函数可以连接至 WAP 网关,网关的
  2072.  
  2073. // IP 地址和端口在运行时设置中指定。
  2074.  
  2075. int wap_connect ( );
  2076.  
  2077. // wap_disconnect 函数可以断开与 WAP 网关的连接。
  2078.  
  2079. // 连接是通过调用 wap_connect 或 web_url 打开的。
  2080.  
  2081. int wap_disconnect ( );
  2082.  
  2083. // wap_format_si_msg 函数可以格式化 SI 类型的消息。
  2084.  
  2085. int wap_format_si_msg (const char * mpszURL, const char * Slid, const char * mpszCreated,
  2086.  
  2087. const char * mpszExpires, const char * mpszAction, const char * mpszUserMsg, char *
  2088.  
  2089. mpsfOutputMsg, unsigned int miOutputMsglen );
  2090.  
  2091. // wap_format_sl_msg 函数可以格式化 SL 类型的消息。
  2092.  
  2093. int wap_format_sl_msg (const char * mpszURL, const char * mpszAction, char *
  2094.  
  2095. mpsfOutputMsg, unsigned int miOutputMsglen );
  2096.  
  2097. // wap_mms_msg_decode 函数可以将字符串转换为
  2098.  
  2099. // MMS 消息对象。通常,该字符串
  2100.  
  2101. // 是接收到的 HTTP 消息的正文。
  2102.  
  2103. int wap_mms_msg_decode(void **MMSObject, const char *ParamName);
  2104.  
  2105. // wap_mms_msg_encode 函数可以将
  2106.  
  2107. // wap_mms_msg_create 创建的 MMS 消息对象 (MMSObject)
  2108.  
  2109. // 转换为字符串,该字符串随后可用于 Web 操作函数。
  2110.  
  2111. // 该方法不同于使用 wap_mms_msg_submit
  2112.  
  2113. // 或 as_wap.h 头文件中的其他宏,后者
  2114.  
  2115. // 直接接受 MMS 消息对象。
  2116.  
  2117. int wap_mms_msg_encode(void *MMSObject, const char *ParamName);
  2118.  
  2119. // wap_mms_msg_get_field 从 MMSObject 中
  2120.  
  2121. // 检索指定字段 FieldName 的值,
  2122.  
  2123. // 并将其存储在参数 ParamName 中。
  2124.  
  2125. int wap_mms_msg_get_field(void *MMSObject, const char *FieldName, const char
  2126.  
  2127. *ParamName);
  2128.  
  2129. // wap_mms_msg_get_multipart_entry 从 MMSObject
  2130.  
  2131. // 中的多部分项 EntryNumber 中
  2132.  
  2133. // 检索指定字段 FieldName 的值,
  2134.  
  2135. // 并将其存储在参数 ParamName 中。
  2136.  
  2137. int wap_mms_msg_get_multipart_entry(void *MMSObject, unsigned int EntryNumber, const
  2138.  
  2139. char *FieldName, const char *ParamName);
  2140.  
  2141. // wap_mms_msg_number_multipart_entries 可以检索
  2142.  
  2143. // MMSObject 中多部分项的数目。
  2144.  
  2145. int wap_mms_msg_number_multipart_entries(void *MMSObject, unsigned int
  2146.  
  2147. *NumberOfEntries);
  2148.  
  2149. // wap_pi_push_submit 函数可以向 PPG 提交一个“推”消息。
  2150.  
  2151. int wap_pi_push_submit(const char * mpszName, const char * mpszURL, const char *
  2152.  
  2153. mpszPushID, const char * mpszClientAddress, const char * mpszDeliverBefore, const char *
  2154.  
  2155. mpszDeliverAfter, const char * mpszMsgSource, const char * mpszMsgType, const char *
  2156.  
  2157. mpszMsgContent);
  2158.  
  2159. // wap_pi_push_submit_ex 函数可以向 PPG 提交一个“推”消息。
  2160.  
  2161. int wap_pi_push_submit_ex(const char * mpszName, const char * mpszURL, const char *
  2162.  
  2163. mpszPushID, const char * mpszClientAddress, const char * mpszDeliverBefore, const char *
  2164.  
  2165. mpszDeliverAfter, const char * mpszMsgSource, const char * mpszMsgType, const char *
  2166.  
  2167. mpszMsgContent [, CustomAttributes]);
  2168.  
  2169. // wap_pi_push_cancel 函数可以取消一个发送到 PPG 的消息。
  2170.  
  2171. int wap_pi_push_cancel(const char * mpszName, const char * mpszURL, const char *
  2172.  
  2173. mpszPushID, const char * mpszClientAddress);
  2174.  
  2175. // wap_radius_connection 已过时。请使用
  2176.  
  2177. // radius_authenticate 和 radius_account。
  2178.  
  2179. int wap_radius_connection (const char * mpszAction, <List of Arguments>, LAST);
  2180.  
  2181. // wap_set_bearer 函数可以设置用于重放
  2182.  
  2183. // UDP 或 CIMD2 (SMS) 的载体类型。脚本使用该
  2184.  
  2185. // 载体类型,直到脚本结束或
  2186.  
  2187. // 再一次调用函数 wap_set_bearer 进行设置。
  2188.  
  2189. int wap_set_bearer ( const char *mpszBearer );
  2190.  
  2191. // wap_set_capability 函数可以设置网关连接的
  2192.  
  2193. // 客户端容量。建立网关连接时,
  2194.  
  2195. // 将对这些容量进行协商。
  2196.  
  2197. int wap_set_capability ( const char *mpszCap );
  2198.  
  2199. // wap_set_connection_mode 函数可以设置会话的连接
  2200.  
  2201. // 模式和安全级别。需要指明
  2202.  
  2203. // 连接的连接模式类型
  2204.  
  2205. // 和安全级别。该函数只对以后的
  2206.  
  2207. // 连接有效。如果连接已经建立,
  2208.  
  2209. // 则忽略该函数。
  2210.  
  2211. int wap_set_connection_mode( const char * ConnectionMode,
  2212.  
  2213. const char * SecurityLevel);
  2214.  
  2215. // wap_set_connection_options 可以设置:IP 地址和端口
  2216.  
  2217. // (通过它们与网关通信)、连接
  2218.  
  2219. // 模式、安全级别和载体类型
  2220.  
  2221. int wap_set_connection_options( const char *argument_list, ..., LAST);
  2222.  
  2223. // wap_set_gateway 函数可以设置 IP 地址和
  2224.  
  2225. // 端口,通过它们可以与网关通信。
  2226.  
  2227. int wap_set_gateway( const char * GateWayIP, const char * GateWayPort );
  2228.  
  2229. // wap_set_sms_user 可以设置 SMS 载体
  2230.  
  2231. // 的登录信息。可以在“运行时设置”的
  2232.  
  2233. // “网关”选项卡中设置载体的端口和
  2234.  
  2235. // 登录信息。该函数必须位于 wap_connect
  2236.  
  2237. // 或第一个 web_url 函数之前。
  2238.  
  2239. int wap_set_sms_user (const char *argument_list, ..., LAST);
  2240.  
  2241. // wap_wait_for_push 函数等待一个“推”消息
  2242.  
  2243. // 到达。如果超时前有消息到达,
  2244.  
  2245. // 则解析该消息,以确定其类型和
  2246.  
  2247. // 消息属性的值。如果解析成功,
  2248.  
  2249. // 客户端会发出一个“拉”消息,以检索
  2250.  
  2251. // 相关数据。通过配置运行时设置,可以禁用“拉”事件,
  2252.  
  2253. // 指明不检索消息
  2254.  
  2255. // 数据。在文件 default.cfg 中找到
  2256.  
  2257. // WAP 部分。将标志 PushRetrieveMsg 设置为
  2258.  
  2259. // 1 可以检索消息(默认),设置为 0 可以
  2260.  
  2261. // 禁止消息。
  2262.  
  2263. int wap_wait_for_push ( );
  2264.  
  2265. // wap_mms_msg_destroy 函数可以销毁
  2266.  
  2267. // 使用 wap_mms_msg_create 或 wap_mms_msg_decode 创建的消息。
  2268.  
  2269. // 请在已确认消息后将该函数放置在
  2270.  
  2271. // 脚本末尾。如果会话结束时
  2272.  
  2273. // 不销毁 MMS 消息,它将使用额外
  2274.  
  2275. // 资源并影响性能。
  2276.  
  2277. int wap_mms_msg_destroy (void * MMSObject );
  2278.  
  2279. // wap_mms_msg_create 函数可以创建消息。
  2280.  
  2281. // 请在建立与服务器的连接后
  2282.  
  2283. // 将该函数放置在脚本开头。
  2284.  
  2285. // 在会话结束时,请使用函数 wap_mms_msg_destroy
  2286.  
  2287. // 销毁该消息。
  2288.  
  2289. int wap_mms_msg_create (void **MMSObject );
  2290.  
  2291. // wap_mms_msg_add_field 函数可以向 MMS 消息添加消息字段,
  2292.  
  2293. // 添加的内容包括字段名和值。可以
  2294.  
  2295. // 在脚本中多次使用该函数。
  2296.  
  2297. int wap_mms_msg_add_field (void * MMSObject, const char * FieldName,
  2298.  
  2299. const char * FieldValue );
  2300.  
  2301. // wap_mms_msg_add_multipart_entry 函数可以向 MMS 消息
  2302.  
  2303. // 添加多部分项。项
  2304.  
  2305. // 可以是字符串(在最后一个参数中指定),
  2306.  
  2307. // 也可以是外部文件。可以在脚本中
  2308.  
  2309. // 多次使用该函数。
  2310.  
  2311. int wap_mms_msg_add_multipart_entry (void ** MMSObject,
  2312.  
  2313. const char *DataSource, const
  2314.  
  2315. char * ContentType,
  2316.  
  2317. const char *Headers, const char * Data );
  2318.  
  2319. // wap_mms_msg_retrieve 函数可以向 MMS 中心
  2320.  
  2321. // 发送请求,以获得 URL 处的消息。MMS
  2322.  
  2323. // 中心将消息写入 Message。它作为
  2324.  
  2325. // 文件 as_wap.h 中的一个宏实现。
  2326.  
  2327. void wap_mms_msg_retrieve (Name, URL, Message);
  2328.  
  2329. // wap_mms_msg_retrieve_by_push 函数等待
  2330.  
  2331. // “推”消息到达。收到
  2332.  
  2333. // 该消息后,客户端将发出一个“拉”消息,
  2334.  
  2335. // 以检索相关数据。
  2336.  
  2337. void wap_mms_msg_retrieve_by_push (Message);
  2338.  
  2339. // wap_mms_msg_submit 函数可以向 MMS 服务器
  2340.  
  2341. // 发送消息 MMSMessage。它作为
  2342.  
  2343. // 文件 as_wap.h 中的一个宏实现。
  2344.  
  2345. void wap_mms_msg_submit (Name, URL, Message);
  2346.  
  2347. // wap_mms_msg_submit 函数使用指定的内容类型
  2348.  
  2349. // 向 MMS 服务器发送消息 MMSMessage。它作为
  2350.  
  2351. // 文件 as_wap.h 中的一个宏实现。
  2352.  
  2353. void wap_mms_msg_submit_enc (Name, URL, Message, EncodingType );
  2354.  
  2355. // wap_mms_msg_submit_and_receive_enc 函数使用指定的
  2356.  
  2357. // 内容类型向 MMS 服务器发送消息 Message,
  2358.  
  2359. // 并在返回前同步接收响应
  2360.  
  2361. // ReceivedMMS。它作为
  2362.  
  2363. // 文件 as_wap.h 中的一个宏实现。
  2364.  
  2365. void wap_mms_msg_submit_and_receive_enc (Name, URL, Message, ReceivedMMS,
  2366.  
  2367. EncodingType );
  2368.  
  2369. // wap_mms_msg_submit_and_receive 函数向 MMS 服务器
  2370.  
  2371. // 发送消息 Message,并在返回前
  2372.  
  2373. // 同步接收响应 ReceivedMMS。
  2374.  
  2375. // 它作为文件 as_wap.h 中的一个宏实现。
  2376.  
  2377. void wap_mms_msg_submit_and_receive(Name, URL, Message, ReceivedMMS);
  2378.  
  2379. // wap_push_msg_get_field 从最近收到的
  2380.  
  2381. // “推”消息中检索字段 FieldName 的值。
  2382.  
  2383. // 检索到的值存储在参数 ParamName 中。
  2384.  
  2385. int wap_push_msg_get_field(const char *FieldName, const char *ParamName);
  2386.  
  2387. // wap_send_sms 函数向指定地址发送一个 SMS
  2388.  
  2389. // 类型的消息。
  2390.  
  2391. int wap_send_sms (const char * List of Arguments, LAST);
  2392.  
  2393. // web_add_auto_header 函数是一个服务函数,
  2394.  
  2395. // 它向所有后续 HTTP 请求添加头。
  2396.  
  2397. int web_add_auto_header (const char *Header, const char *Content );
  2398.  
  2399. // web_add_cookie 函数可以添加新的 Cookie。如果
  2400.  
  2401. // 名称和路径与现有 Cookie 匹配,则现有
  2402.  
  2403. // Cookie 被新 Cookie 覆盖。如果已过“过期”
  2404.  
  2405. // 日期,则删除该 Cookie。
  2406.  
  2407. int web_add_cookie (const char *Cookie);
  2408.  
  2409. // web_add_filter 指定下载下一个操作函数中的内容时
  2410.  
  2411. // 要使用的筛选器。
  2412.  
  2413. // 筛选器将包含或排除含有匹配条件的 URL,
  2414.  
  2415. // 视传递到该函数的 Action 属性
  2416.  
  2417. // 而定。默认
  2418.  
  2419. // 操作为“Action=Exclude”。
  2420.  
  2421. int web_add_filter ( [Action,]< List of Attributes >, LAST ) ;
  2422.  
  2423. // web_add_auto_filter 指定下载随后发生的操作函数的内容
  2424.  
  2425. // 时要使用的筛选器。
  2426.  
  2427. // 调用 web_remove_auto_filter 后,将禁用
  2428.  
  2429. // 该筛选器。筛选器将包含或排除含有匹配条件的 URL,
  2430.  
  2431. // 视传递到该函数的 Action 属性
  2432.  
  2433. // 而定。默认
  2434.  
  2435. // 操作为“Action=Exclude”。
  2436.  
  2437. int web_add_auto_filter ( [Action,]< List of Attributes >, LAST);
  2438.  
  2439. // web_remove_auto_filter 函数可以禁用
  2440.  
  2441. // 上次调用 web_add_auto_filter 时的筛选器设置。
  2442.  
  2443. int web_remove_auto_filter ( char *Id, LAST );
  2444.  
  2445. // web_add_header 函数是一个服务函数,
  2446.  
  2447. // 它向下一个 HTTP 请求添加用户定义的头。
  2448.  
  2449. int web_add_header (const char *Header, const char *Content );
  2450.  
  2451. // web_cache_cleanup 函数是一个服务函数,
  2452.  
  2453. // 它清除缓存模拟程序中的内容。
  2454.  
  2455. // 如果在“浏览器模拟”选项卡上启用运行时
  2456.  
  2457. // 设置选项“每次循环时模拟一个新用户”,
  2458.  
  2459. // 则该函数会在每次循环开始时
  2460.  
  2461. // 自动调用。
  2462.  
  2463. int web_cache_cleanup();
  2464.  
  2465. // web_cleanup_auto_headers 函数是一个
  2466.  
  2467. // 服务函数,它会禁止向后续 HTTP 请求
  2468.  
  2469. // 添加用户定义的头。
  2470.  
  2471. int web_cleanup_auto_headers ( );
  2472.  
  2473. // web_cleanup_cookies 函数删除脚本使用的
  2474.  
  2475. // 所有当前存储的 Cookie。
  2476.  
  2477. int web_cleanup_cookies ( );
  2478.  
  2479. // web_concurrent_end 函数可以标记
  2480.  
  2481. // 并发组的结束,并开始并发执行所有注册
  2482.  
  2483. // 为并发的函数(位于函数
  2484.  
  2485. // web_concurrent_start 和
  2486.  
  2487. // web_concurrent_end 之间的函数)。
  2488.  
  2489. // 单击“并发函数”,以查看并发组中可能
  2490.  
  2491. // 包含的函数的列表。
  2492.  
  2493. int web_concurrent_end ( reserved );
  2494.  
  2495. // web_concurrent_start 函数可以
  2496.  
  2497. // 标记并发组的开始。组中的所有函数
  2498.  
  2499. // 均并发执行。组的结束由函数
  2500.  
  2501. // web_concurrent_end 标记。在并发组
  2502.  
  2503. // 中可以包含操作函数和几个服务函数。
  2504.  
  2505. // 单击“并发函数”,以查看并发组中可能
  2506.  
  2507. // 包含的函数的列表。
  2508.  
  2509. //
  2510.  
  2511. int web_concurrent_start ( [char * ConcurrentGroupName,] NULL );
  2512.  
  2513. // web_convert_param 函数将 HTML 文本
  2514.  
  2515. // 转换为纯文本或 URL,或将纯文本转换为 URL。
  2516.  
  2517. int web_convert_param (const char *ParamName, [char *SourceString] char *SourceEncoding,
  2518.  
  2519. char *TargetEncoding, LAST);
  2520.  
  2521. // web_create_html_param 函数是一个服务
  2522.  
  2523. // 函数,用于在 Web 脚本中关联 HTML 语句。
  2524.  
  2525. // 函数 web_create_html_param
  2526.  
  2527. // 检索重放期间生成的动态信息,然后将
  2528.  
  2529. // 第一次出现的动态信息保存在某个
  2530.  
  2531. // 参数中。
  2532.  
  2533. int web_create_html_param (const char *ParamName, const char *LeftBoundary, const char
  2534.  
  2535. *RightBoundary );
  2536.  
  2537. // web_create_html_param_ex 函数是一个服务
  2538.  
  2539. // 函数,用于在 Web 脚本中关联 HTML 语句。
  2540.  
  2541. // 函数 web_create_html_param_ex 检索重放
  2542.  
  2543. // 期间生成的动态信息,然后将该动态信息保存在
  2544.  
  2545. // 某个参数中。
  2546.  
  2547. int web_create_html_param_ex (const char *ParamName, const char *LeftBoundary, const char
  2548.  
  2549. *RightBoundary, const char *Instance );
  2550.  
  2551. // web_custom_request 函数是一个操作函数,
  2552.  
  2553. // 通过它可以使用任意方法创建自定义 HTTP 请求
  2554.  
  2555. // 或创建正文。默认情况下,VuGen 只为无法
  2556.  
  2557. // 用其他 Web 函数解释的请求生成该函数。
  2558.  
  2559. //
  2560.  
  2561. int web_custom_request (const char *RequestName, <List of Attributes>, [EXTRARES, <List of
  2562.  
  2563. Resource Attributes>,] LAST );
  2564.  
  2565. // web_disable_keep_alive 函数是一个服务
  2566.  
  2567. // 函数,它禁用 Keep–Alive HTTP 连接。
  2568.  
  2569. // 默认情况下,KeepAlive 设置处于启用状态。
  2570.  
  2571. int web_disable_keep_alive ( );
  2572.  
  2573. // web_dump_cache 保存浏览器缓存。它与
  2574.  
  2575. // web_load_cache 一起使用,以实现 Vuser
  2576.  
  2577. // 持续缓存。脚本始终使用相同的初始缓存运行。
  2578.  
  2579. int web_dump_cache ( const char *Name, const char * fileName, [ const char * Replace], LAST );
  2580.  
  2581. // web_enable_keep_alive 函数是一个服务
  2582.  
  2583. // 函数,它启用 Keep–Alive HTTP 连接。
  2584.  
  2585. int web_enable_keep_alive ( );
  2586.  
  2587. // web_find 函数在 HTML 页中搜索指定的文本字符串。
  2588.  
  2589. int web_find (const char *StepName, <Attributes and Specifications list>, char *searchstring,
  2590.  
  2591. LAST );
  2592.  
  2593. // web_get_int_property 函数返回
  2594.  
  2595. // 关于上一个 HTTP 请求的指定信息。
  2596.  
  2597. int web_get_int_property (const int HttpInfoType);
  2598.  
  2599. // web_global_verification 函数注册
  2600.  
  2601. // 一个请求,以在所有后续操作函数返回的
  2602.  
  2603. // 网页中搜索指定的文本字符串。这与函数
  2604.  
  2605. // web_reg_find 不同,后者只为下一个
  2606.  
  2607. // 操作函数注册请求。可以搜索页面的正文、
  2608.  
  2609. // 头、HTML 代码或全部内容。
  2610.  
  2611. //
  2612.  
  2613. int web_global_verification (<List of Attributes>, LAST );
  2614.  
  2615. // 操作函数 web_image 模拟
  2616.  
  2617. // 鼠标单击由属性定义的图像。
  2618.  
  2619. // 该函数只能在上一个操作
  2620.  
  2621. // 的上下文中执行。
  2622.  
  2623. int web_image (const char *StepName, <List of Attributes>, [EXTRARES, <List of Resource
  2624.  
  2625. Attributes>,] LAST );
  2626.  
  2627. // web_image_check 函数可以验证 HTML 页中
  2628.  
  2629. // 包含指定图像。
  2630.  
  2631. int web_image_check(const char *CheckName, <List of Attributes>, <"Alt=alt"|| "Src=src">,
  2632.  
  2633. LAST );
  2634.  
  2635. // web_link 函数是一个操作函数,
  2636.  
  2637. // 它模拟鼠标单击由属性定义的
  2638.  
  2639. // 链接。web_link 只能在上一个
  2640.  
  2641. // 操作的上下文中执行。
  2642.  
  2643. int web_link (const char *StepName, <List of Attributes>, [EXTRARES, <List of Resource
  2644.  
  2645. Attributes>,] LAST );
  2646.  
  2647. // web_remove_cookie 函数从一个对 Vuser
  2648.  
  2649. // 可用的 Cookie 列表中删除一个 Cookie。该函数
  2650.  
  2651. // 指定要删除的 Cookie 的名称。
  2652.  
  2653. int web_remove_cookie (const char *Cookie);
  2654.  
  2655. // web_load_cache 可以从文件中还原浏览器
  2656.  
  2657. // 缓存。它与 web_dump_cache 一起
  2658.  
  2659. // 使用,以实现 Vuser 持续缓存。脚本
  2660.  
  2661. // 始终使用相同的初始缓存运行。
  2662.  
  2663. int web_load_cache ( const char *Name, const char * fileName, LAST );
  2664.  
  2665. // web_reg_add_cookie 函数注册一个搜索,
  2666.  
  2667. // 在下一个操作函数(如 web_url)检索到的网页上
  2668.  
  2669. // 搜索一个文本字符串。如果
  2670.  
  2671. // 找到了字符串,将添加 Cookie。
  2672.  
  2673. int web_reg_add_cookie(const char * cookie, const char * searchstring, LAST );
  2674.  
  2675. // web_reg_find 函数注册一个请求,以
  2676.  
  2677. // 在下一个操作函数(如 web_url)检索到
  2678.  
  2679. // 的网页上搜索一个文本字符串。
  2680.  
  2681. int web_reg_find (const char *attribute_list, LAST);
  2682.  
  2683. // web_reg_save_param 是一个注册类型
  2684.  
  2685. // 的函数。它注册一个请求,以在检索到的
  2686.  
  2687. // 网页中查找并保存一个文本字符串。只有
  2688.  
  2689. // 在执行了下一个操作函数(如 web_url)后
  2690.  
  2691. // 才会执行该操作。
  2692.  
  2693. int web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);
  2694.  
  2695. // web_remove_auto_header 函数是一个服务
  2696.  
  2697. // 函数,它停止向后续 HTTP 请求添加特定的用户
  2698.  
  2699. // 定义头。该函数将取消由 web_add_auto_header
  2700.  
  2701. // 启动的指定头的自动头生成。
  2702.  
  2703. //
  2704.  
  2705. int web_remove_auto_header (const char *Header, char *Implicit, LAST);
  2706.  
  2707. // web_revert_auto_header 函数是一个服务
  2708.  
  2709. // 函数,它停止向后续 HTTP 请求添加特定的用户
  2710.  
  2711. // 定义头。该函数将取消由 web_add_auto_header
  2712.  
  2713. // 启动的指定头的自动头生成。它不断生成隐性头,
  2714.  
  2715. // 如同不曾调用过函数 web_add_auto_header
  2716.  
  2717. // 或 web_remove_auto_header 一样。
  2718.  
  2719. int web_revert_auto_header (char *Header);
  2720.  
  2721. // web_report_data_point 函数在脚本中
  2722.  
  2723. // 定义要包括在测试结果中的数据点。最常见的
  2724.  
  2725. // 数据点是步骤超时,它表明上一个步骤是否超时。
  2726.  
  2727. //
  2728.  
  2729. int web_report_data_point ( const char * EventType, const char * EventName , const char *
  2730.  
  2731. DataPointName , LAST );
  2732.  
  2733. // web_save_header 函数将所有随后
  2734.  
  2735. // 发生的操作函数的主 URL 的请求和
  2736.  
  2737. // 响应头保存在参数 param 中。每个头由
  2738.  
  2739. // “\r\n”(或仅“\n”)分隔。每个新的
  2740.  
  2741. // 请求头将替换参数的当前值。
  2742.  
  2743. int web_save_header (const char *type, const char *param );
  2744.  
  2745. // web_save_param_length 创建名为
  2746.  
  2747. // “<Param>_Length”的新参数(如果尚无该参数),
  2748.  
  2749. // 并将 Param 的长度保存在参数“<Param>_Length”
  2750.  
  2751. // 中。该长度采用十六进制格式。
  2752.  
  2753. int web_save_param_length( const char *Param, LAST );
  2754.  
  2755. // web_save_timestamp_param 保存当前
  2756.  
  2757. // 时间戳。在某些应用中,VuGen 用一个参数
  2758.  
  2759. // 替换脚本中的所有非空时间戳。为了保存
  2760.  
  2761. // 该参数的值,VuGen 自动生成对
  2762.  
  2763. // web_save_timestamp_param 的调用。
  2764.  
  2765. // 保存的值是自 1970 年 1 月 1 日午夜
  2766.  
  2767. // 开始的毫秒数。
  2768.  
  2769. int web_save_timestamp_param( const char * tmstampParam, LAST );
  2770.  
  2771. // web_set_certificate 指定一个证书在
  2772.  
  2773. // 证书列表中的编号。然后,只要某个安全的
  2774.  
  2775. // Web 服务器需要客户端提供证书,就使用
  2776.  
  2777. // 指定的证书。
  2778.  
  2779. int web_set_certificate (const char *CertificateNumber);
  2780.  
  2781. // web_set_certificate_ex 设置证书
  2782.  
  2783. // 和关键文件属性,如位置、类型和密码。
  2784.  
  2785. // 该信息用于需要证书的 HTTPS 请求。
  2786.  
  2787. // 所有参数都是以 null 终止的字符串。
  2788.  
  2789. // 关键字不区分大小写;但属于关键字
  2790.  
  2791. // 的值是区分大小写的。关键字
  2792.  
  2793. //
  2794.  
  2795. // 值的开头和末尾不允许出现
  2796.  
  2797. // 空格。注意,只有使用 Internet Explorer
  2798.  
  2799. // 时才录制该函数。
  2800.  
  2801. int web_set_certificate_ex (const char *option_list, LAST);
  2802.  
  2803. // web_set_connections_limit 函数是
  2804.  
  2805. // 一个服务函数,它设置脚本执行期间可以行
  2806.  
  2807. // 同时运的最大请求数。
  2808.  
  2809. // 在加载页面资源或加载框架集页面
  2810.  
  2811. // 中的框架等情形下,会发出
  2812.  
  2813. // 多个请求。任何 Vuser 的默认限制为
  2814.  
  2815. // 可以同时发出四个请求。
  2816.  
  2817. int web_set_connections_limit (const char *Limit );
  2818.  
  2819. // web_set_max_html_param_len 函数是
  2820.  
  2821. // 一个服务函数,用于关联 HTML 语句。
  2822.  
  2823. // 仅当启用“在录制过程中关联”时
  2824.  
  2825. // 才录制该函数(请参阅 VuGen 的录制选项)。
  2826.  
  2827. int web_set_max_html_param_len (const char *length );
  2828.  
  2829. // web_set_max_retries 函数设置操作的
  2830.  
  2831. // 最大重试次数。当发生错误时,对于 HTTP
  2832.  
  2833. // 响应消息 500-599 和网络 API 错误
  2834.  
  2835. // (HttpSendRequest 等),会尝试进行
  2836.  
  2837. // 重试。对于超时或函数参数错误,不尝试
  2838.  
  2839. // 进行重试。
  2840.  
  2841. int web_set_max_retries (const char *MaxRetries );
  2842.  
  2843. // web_set_option 函数设置 Web 选项。
  2844.  
  2845. // 它是一个服务函数,影响其后的所有函数,
  2846.  
  2847. // 直到指定了新值。vuser_init 部分
  2848.  
  2849. // 结束运行时,将保存当前选项值。
  2850.  
  2851. // 在每次循环开始之前,这些值将还原为
  2852.  
  2853. // 保存的值。
  2854.  
  2855. int web_set_option (const char *OptionID, const char * OptionValue, LAST );
  2856.  
  2857. // web_set_proxy 函数是一个服务函数,
  2858.  
  2859. // 它指定将所有后续 HTTP 请求定向
  2860.  
  2861. // 到指定的代理服务器。要直接向服务器
  2862.  
  2863. // 提交 HTTP 请求(即不使用代理
  2864.  
  2865. // 服务器),请使用函数 web_set_proxy
  2866.  
  2867. // 传递一个空字符串 ("") 作为参数。
  2868.  
  2869. int web_set_proxy (const char *proxy_host:port );
  2870.  
  2871. // web_set_proxy_bypass 函数是一个服务函数,
  2872.  
  2873. // 它指定要直接访问的 URL 的列表,该访问会避开
  2874.  
  2875. // 代理服务器。可以在避开的 URL 列表中包含 <local>,
  2876.  
  2877. // 以使所有本地主机(如 Intranet 服务器)
  2878.  
  2879. // 都避开代理服务器。
  2880.  
  2881. int web_set_proxy_bypass (const char *bypass1..n );
  2882.  
  2883. // web_set_proxy_bypass_local 函数是
  2884.  
  2885. // 一个服务函数,它指定代理服务器是否应
  2886.  
  2887. // 避开本地 (Intranet) 地址。该函数会覆盖
  2888.  
  2889. // 运行时设置代理选项“对本地 (intranet)
  2890.  
  2891. // 地址不使用代理服务器”。如果代理避开
  2892.  
  2893. // 字符串包含 <local>,则该函数
  2894.  
  2895. // 和 UI 复选框都将没有以下效果:将
  2896.  
  2897. // 始终避开本地地址。
  2898.  
  2899. int web_set_proxy_bypass_local ( const char *no_local );
  2900.  
  2901. // web_set_secure_proxy 函数是一个服务函数,
  2902.  
  2903. // 它指定将所有后续 HTTPS 请求
  2904.  
  2905. // 定向到指定的安全代理服务器。
  2906.  
  2907. int web_set_secure_proxy (const char *secure_proxy_host_port );
  2908.  
  2909. // web_set_sockets_option 函数配置
  2910.  
  2911. // 客户端上的套接字选项。对于启用或禁用
  2912.  
  2913. // 某项功能(如 TRACE_SSL_IO)的选项,
  2914.  
  2915. // 请指定“1”以启用,指定“0”以禁用。
  2916.  
  2917. // 以下列表显示了支持的选项:
  2918.  
  2919. int web_set_sockets_option( const char *option, const char * value );
  2920.  
  2921. // web_set_timeout 函数是一个服务函数,它
  2922.  
  2923. // 指定 CONNECT、RECEIVE 或 STEP 操作完成
  2924.  
  2925. // 之前等待的最长时间。
  2926.  
  2927. int web_set_timeout (const char *Action, const char *TimeOut );
  2928.  
  2929. // web_set_user 函数是一个服务函数,它
  2930.  
  2931. // 指定 Web 服务器或代理服务器的登录字符串
  2932.  
  2933. // 和密码。如果多个代理服务器需要身份验证,
  2934.  
  2935. // 可以多次调用该函数。web_set_user
  2936.  
  2937. // 会覆盖运行时代理身份验证的用户名和密码
  2938.  
  2939. // 设置。
  2940.  
  2941. int web_set_user (const char *username, const char *password, const char *host:port );
  2942.  
  2943. // web_sjis_to_euc_param 函数将一个 SJIS 编码的
  2944.  
  2945. // 以 null 终止的字符串转换为 EUC 编码的字符串,并将它
  2946.  
  2947. // 赋给参数。可以使用函数 lr_eval_string
  2948.  
  2949. // 确定参数的值。
  2950.  
  2951. int web_sjis_to_euc_param (LPCSTR param_name, LPCSTR param_value_in_SJIS);
  2952.  
  2953. // web_submit_data 函数是一个操作函数,
  2954.  
  2955. // 它执行“无条件的”或“无上下文的”表单
  2956.  
  2957. // 提交。通过它可以生成 GET 和 POST
  2958.  
  2959. // 请求,如同由 HTML 表单生成的请求。执行该请求
  2960.  
  2961. // 不需要有表单上下文。
  2962.  
  2963. int web_submit_data ( const char *StepName, <List of Attributes>, ITEMDATA, <List of data>,
  2964.  
  2965. [ EXTRARES, <List of Resource Attributes>,] LAST );
  2966.  
  2967. // web_submit_form 函数是一个操作函数,它
  2968.  
  2969. // 可以提交表单。函数 web_submit_form 只能在上一
  2970.  
  2971. // 操作的上下文中执行。
  2972.  
  2973. int web_submit_form (const char *StepName, <List of Attributes>, <List of Hidden Fields>,
  2974.  
  2975. ITEMDATA, <List of Data Fields>, [ EXTRARES, <List of Resource Attributes>,] LAST );
  2976.  
  2977. // 通过 web_switch_net_layer 函数,可以在
  2978.  
  2979. // 要重放的网络层间切换。通过它可以在同一
  2980.  
  2981. // 脚本中混用直接的 HTTP 和 WSP 调用。目前,
  2982.  
  2983. // 该函数只影响 WAP Vuser。
  2984.  
  2985. int web_switch_net_layer (const char *NetName);
  2986.  
  2987. // web_url 函数是一个操作函数,它可以加载
  2988.  
  2989. // 指定的网页(GET 请求)。函数 web_url
  2990.  
  2991. // 可以加载 URL 属性指定的 URL。函数 web_url
  2992.  
  2993. // 不需要上下文。
  2994.  
  2995. int web_url (const char *Name, const char * url, <List of Attributes>, [EXTRARES, <List of
  2996.  
  2997. Resource Attributes>,] LAST );
  2998.  
  2999. // web_browser 操作函数直接在打开的
  3000.  
  3001. // 浏览器上执行操作。
  3002.  
  3003. int web_browser (const char *stepName, [const char *snapShot,] [DESCRIPTION, const char
  3004.  
  3005. *browser,] ACTION, const char *userAction, LAST );
  3006.  
  3007. // web_button 操作函数模拟用户单击按钮。
  3008.  
  3009. int web_button (const char *stepName, [const char *snapShot,] DESCRIPTION, [const char
  3010.  
  3011. *type,] [const char *tag,] [const char *arg1, const char *argn,] LAST );
  3012.  
  3013. // web_check_box 操作函数选择或清除
  3014.  
  3015. // 复选框。如果 setOnOff 为“Set=ON”,则选中复选框。
  3016.  
  3017. // 如果 setOnOff 为“Set=OFF”,则清除复选框。
  3018.  
  3019. int web_check_box (const char *stepName, [const char *snapShot,] DESCRIPTION, const char
  3020.  
  3021. *arg1, const char *argn, ACTION, const char *setOnOff, LAST );
  3022.  
  3023. // web_edit_field 函数在文本或密码输入元素
  3024.  
  3025. // 中输入 setValue。
  3026.  
  3027. int web_edit_field (const char *stepName, [const char *snapShot,] DESCRIPTION, [const char
  3028.  
  3029. *type,] [const char *arg1, const char *argn,] ACTION, const char *setValue, LAST );
  3030.  
  3031. // 永远不录制 web_eval_java_script。
  3032.  
  3033. // 可以在脚本中添加该函数,以处理没有
  3034.  
  3035. // 标准解决方案的情况。该函数有三种
  3036.  
  3037. // 用法,语法各不相同。请勿混淆不同语法
  3038.  
  3039. // 的参数。请勿在语法 1 或语法 2 中使用
  3040.  
  3041. // PrintProperties,勿在语法 2 或语法 3
  3042.  
  3043. // 中使用 script,以及勿在语法 1 或语法 3 中使用
  3044.  
  3045. // Expression 和 SaveExpressionResult。
  3046.  
  3047. int web_eval_java_script ( const char *stepName, const char *script, [DESCRIPTION, const char
  3048.  
  3049. *arg1, …, const char *argn,] LAST );
  3050.  
  3051. // web_file 在形如 <INPUT TYPE=FILE NAME=”Name”>
  3052.  
  3053. // 的元素中输入文件名 SetPath。
  3054.  
  3055. int web_file ( const char *StepName, DESCRIPTION, [<List of attributes>], ACTION, const char
  3056.  
  3057. * SetPath, LAST );
  3058.  
  3059. // web_image_link 操作函数模拟用户
  3060.  
  3061. // 单击图像(该图像是超文本链接)。
  3062.  
  3063. int web_image_link (const char *stepName, [const char *snapShot,] DESCRIPTION, const char
  3064.  
  3065. *arg1, const char *argn, [ACTION, const char *clickCoordinates,] LAST );
  3066.  
  3067. // web_image_submit 操作函数模拟用户
  3068.  
  3069. // 单击类型为“image”的输入元素。
  3070.  
  3071. int web_image_submit (const char *stepName, [const char *snapShot,] DESCRIPTION, const
  3072.  
  3073. char *arg1, const char *argn, ACTION, const char *clickCoordinates, LAST );
  3074.  
  3075. // web_list 函数模拟用户在列表框
  3076.  
  3077. // 中选择一项。选择项可以通过
  3078.  
  3079. // 选择项的文本或其位置识别。
  3080.  
  3081. // 第一个选项的位置为 1。
  3082.  
  3083. int web_list (const char *stepName, [const char *snapShot,] DESCRIPTION, const char *type,
  3084.  
  3085. [const char *arg1, const char *argn,] ACTION, const char *selectAction, [const char
  3086.  
  3087. *ordinalSelectAction,] LAST );
  3088.  
  3089. // web_map_area 函数可以激活客户端映射的一个
  3090.  
  3091. // 区域。无论该区域如何激活,都将录制该函数。通常,
  3092.  
  3093. // 用户单击一个区域会激活该区域。
  3094.  
  3095. int web_map_area (const char *stepName, [const char *snapShot,] DESCRIPTION, const char
  3096.  
  3097. *mapName, const char *arg1, const char *argn, LAST );
  3098.  
  3099. // web_radio_group 操作函数模拟用户
  3100.  
  3101. // 在单选按钮组中选择一个按钮。
  3102.  
  3103. int web_radio_group (const char *stepName, [const char *snapShot,] DESCRIPTION, const char
  3104.  
  3105. *name, const char *arg1, const char *argn, ACTION, const char *selection, LAST );
  3106.  
  3107. // web_reg_dialog 服务函数可以注册
  3108.  
  3109. // Java 脚本使用的信息。
  3110.  
  3111. int web_reg_dialog (DESCRIPTION, const char *type, [const char *message,][const char
  3112.  
  3113. *browser,] ACTION, const char *userAction, LAST );
  3114.  
  3115. // web_static_image 模拟用户单击图像。
  3116.  
  3117. // 如果 IMG 元素被具有 HREF 属性的 <A> 元素
  3118.  
  3119. // 围起,则它是一个链接,该函数无效。在这种
  3120.  
  3121. // 情况下,请使用 web_image_link。
  3122.  
  3123. int web_static_image ( const char *StepName, DESCRIPTION, <List of attributes>, LAST );
  3124.  
  3125. // web_text_area 操作函数在文本区域中输入 setText。
  3126.  
  3127. int web_text_area (const char *stepName, [const char *snapShot,] DESCRIPTION, const char
  3128.  
  3129. *arg1, const char *argn, ACTION, const char *setText, LAST );
  3130.  
  3131. // web_text_link 操作函数模拟
  3132.  
  3133. // 用户单击超文本链接。
  3134.  
  3135. int web_text_link (const char *stepName, [const char *snapShot,] DESCRIPTION, [const char
  3136.  
  3137. *text, ][const char *arg1, const char *argn,] LAST );
  3138.  
  3139. // lrs_accept_connection 函数从
  3140.  
  3141. // old_socket 上的挂起连接队列中
  3142.  
  3143. // 取出第一个连接,使用相同属性创建
  3144.  
  3145. // 新的套接字。原来的套接字对于其他
  3146.  
  3147. // 连接仍然可用。
  3148.  
  3149. int lrs_accept_connection ( char *old_socket, char *new_socket );
  3150.  
  3151. // lrs_ascii_to_ebcdic 函数可以将二进制
  3152.  
  3153. // 缓冲区数据从 ASCII 格式转换为 EBCDIC 格式。
  3154.  
  3155. // 转换后的缓冲区以 EBCDIC 格式存储在内部缓冲区
  3156.  
  3157. // (用户缓冲区)中。要检索缓冲区的内容,请使用
  3158.  
  3159. // lrs_get_user_buffer。要确定缓冲区大小,
  3160.  
  3161. // 请使用 lrs_get_user_buffer_size。
  3162.  
  3163. char *lrs_ascii_to_ebcdic ( char *s_desc, char *buff, long length );
  3164.  
  3165. // lrs_cleanup 函数终止使用 Windows
  3166.  
  3167. // Sockets DLL(类似于 WSACleanup)
  3168.  
  3169. // 和系统资源,如释放文件描述符。请检查
  3170.  
  3171. // 返回代码,以验证清理成功。
  3172.  
  3173. int lrs_cleanup ( );
  3174.  
  3175. // lrs_close_socket 函数释放指定的
  3176.  
  3177. // 套接字描述符,以关闭套接字。再次引用
  3178.  
  3179. // 该套接字将会导致错误 WSAENOTSOCK。
  3180.  
  3181. // 如果这是对基础套接字的最后一次引用,
  3182.  
  3183. // 将丢弃相关的命名信息和队列数据。
  3184.  
  3185. // 注意,对于 TCP 套接字,函数
  3186.  
  3187. // lrs_close_socket 会将所有尚未发送
  3188.  
  3189. // 的数据发送出去。
  3190.  
  3191. int lrs_close_socket ( char *s_desc );
  3192.  
  3193. // lrs_create_socket 函数初始化一个套接字。
  3194.  
  3195. // 它执行 socket 命令,打开新的套接字。
  3196.  
  3197. // 如果提供了 LocalHost 参数,它会执行
  3198.  
  3199. // bind 命令,以命名该套接字。如果提供了 peer 参数,
  3200.  
  3201. // 它会执行 connect 命令,以建立与对等端的
  3202.  
  3203. // 连接。如果提供了 backlog 参数,它
  3204.  
  3205. // 会执行 listen 命令侦听该套接字。
  3206.  
  3207. int lrs_create_socket ( char *s_desc, char *type, [ char* LocalHost,] [char* peer,] [char *backlog,]
  3208.  
  3209. LrsLastArg );
  3210.  
  3211. // lrs_decimal_to_hex_string 函数可以将整数
  3212.  
  3213. // 转换为十六进制字符串。例如,如果字符串为
  3214.  
  3215. // 4,则该函数将它转换为 \x04。
  3216.  
  3217. char* lrs_decimal_to_hex_string( char* s_desc, char* buf, long length);
  3218.  
  3219. // lrs_disable_socket 函数禁止套接字的一项
  3220.  
  3221. // 操作。可以禁止所有的发送和/或接收操作。
  3222.  
  3223. int lrs_disable_socket ( char *s_desc, int operation );
  3224.  
  3225. // lrs_ebcdic_to_ascii 函数将二进制缓冲区
  3226.  
  3227. // 数据从 EBCDIC 格式转换为 ASCII 格式。转换后
  3228.  
  3229. // 的缓冲区以 ASCII 格式存储在内部缓冲区
  3230.  
  3231. // (用户缓冲区)中。要检索缓冲区的内容,
  3232.  
  3233. // 请使用 lrs_get_user_buffer。要确定缓冲区
  3234.  
  3235. // 的大小,请使用 lrs_get_user_buffer_size。
  3236.  
  3237. char *lrs_ebcdic_to_ascii ( char *s_desc, char *buff, long length );
  3238.  
  3239. // lrs_exclude_socket 函数排除指定
  3240.  
  3241. // 套接字的所有操作。脚本中从该函数开始
  3242.  
  3243. // 向后的所有使用该指定套接字的函数都
  3244.  
  3245. // 将被忽略。建议将该函数放在脚本的
  3246.  
  3247. // vuser_init 部分。排除对脚本所有
  3248.  
  3249. // 部分中的套接字函数都有效。
  3250.  
  3251. //
  3252.  
  3253. int lrs_exclude_socket ( char *s_desc );
  3254.  
  3255. // lrs_free_buffer 函数释放为指定缓冲区分配的
  3256.  
  3257. // 内存。内存是在调用函数 lrs_get_buffer_by_name
  3258.  
  3259. // 或 lrs_get_last_received_buffer 时
  3260.  
  3261. // 分配的。
  3262.  
  3263. int lrs_free_buffer ( char *buffer );
  3264.  
  3265. // 对于指定的缓冲区描述符,函数
  3266.  
  3267. // lrs_get_buffer_by_name 获取
  3268.  
  3269. // 二进制缓冲区以及数据二进制表示的长度。
  3270.  
  3271. // 注意,数据缓冲区不是以 NULL 终止的。
  3272.  
  3273. int lrs_get_buffer_by_name ( char *buf_desc, char **data, int *size );
  3274.  
  3275. // lrs_get_last_received_buffer 函数获取
  3276.  
  3277. // 套接字上最后收到的缓冲区及其大小。注意,该
  3278.  
  3279. // 函数返回数据二进制表示的长度。数据缓冲区
  3280.  
  3281. // 不是以 NULL 终止的。
  3282.  
  3283. int lrs_get_last_received_buffer ( char *s_desc, char **data, int *size );
  3284.  
  3285. // lrs_get_last_received_buffer_size 函数
  3286.  
  3287. // 获取套接字 s_desc 上最后收到的缓冲区的
  3288.  
  3289. // 大小。注意,该函数返回数据二进制表示的
  3290.  
  3291. // 长度。
  3292.  
  3293. int lrs_get_last_received_buffer_size ( char *s_desc );
  3294.  
  3295. // lrs_get_received_buffer 函数检索
  3296.  
  3297. // 最后一次调用 lrs_receive、lrs_receive_ex
  3298.  
  3299. // 或 lrs_length_receive 收到的缓冲区的全部
  3300.  
  3301. // 或其一部分。请指定要检索的数据的
  3302.  
  3303. // 偏移量和长度。
  3304.  
  3305. char *lrs_get_received_buffer ( char *s_desc, int offset, int length, char *encoding );
  3306.  
  3307. // lrs_get_static_buffer 函数检索
  3308.  
  3309. // 来自数据文件的静态缓冲区或其一部分。
  3310.  
  3311. // 请指定缓冲区及要检索的数据的偏移量
  3312.  
  3313. // 和长度。该缓冲区在发生任何参数替换后
  3314.  
  3315. // 返回。
  3316.  
  3317. char *lrs_get_static_buffer ( char *s_desc, char *buffer, int offset, int length, char *encoding );
  3318.  
  3319. // lrs_get_socket_attrib 函数检索
  3320.  
  3321. // 指定的套接字属性。通过它可以获取有关
  3322.  
  3323. // 套接字的信息。只能从绑定或连接到某个
  3324.  
  3325. // 套接字的套接字检索属性。要将一个套接字
  3326.  
  3327. // 绑定到现有套接字,请使用 lrs_create_socket(…LocalPort=…)。
  3328.  
  3329. // 要连接到一个套接字,请使用 lrs_create_socket(…RemoteHost=…)。
  3330.  
  3331. char *lrs_get_socket_attrib ( char *s_desc , int attribute );
  3332.  
  3333. // lrs_get_socket_handler 函数检索指定
  3334.  
  3335. // 套接字的套接字句柄。检索到套接字句柄后,
  3336.  
  3337. // 可以在后续函数中使用。
  3338.  
  3339. int lrs_get_socket_handler ( char *s_desc );
  3340.  
  3341. // lrs_get_user_buffer 函数检索指定套接字的
  3342.  
  3343. // 用户数据缓冲区的内容。
  3344.  
  3345. char *lrs_get_user_buffer ( char *s_desc );
  3346.  
  3347. // lrs_get_user_buffer_size 函数检索指定套接字的
  3348.  
  3349. // 用户数据缓冲区的大小。
  3350.  
  3351. long lrs_get_user_buffer_size ( char *s_desc );
  3352.  
  3353. // lrs_hex_string_to_int 将一个
  3354.  
  3355. // 十六进制字符串转换为整数。请指定
  3356.  
  3357. // 指向包含要转换字符串的缓冲区的指针
  3358.  
  3359. // 及要转换字符串的长度。该函数将转换
  3360.  
  3361. // 字符串并赋值给整型引用。
  3362.  
  3363. int lrs_hex_string_to_int ( char* buff, long length, int* mpiOutput );
  3364.  
  3365. // lrs_length_receive 函数将指定长度的
  3366.  
  3367. // 数据从 sock_descriptor 读入缓冲区。
  3368.  
  3369. // 长度位于接收到的缓冲区自身内部。用户
  3370.  
  3371. // 必须知道该长度值位于缓冲区内何处
  3372.  
  3373. // (除非选择了 RecieveOption_None
  3374.  
  3375. // 选项),其位置通过参数 location_option
  3376.  
  3377. // 和 locators 指定。lrs_length_receive
  3378.  
  3379. // 首先获得长度值(下面称为 length),
  3380.  
  3381. // 再将 length 个字符从 socket_descriptor
  3382.  
  3383. // 读入缓冲区。
  3384.  
  3385. int lrs_length_receive(char *socket_descriptor, char *buffer, int location_option, [char* locators],
  3386.  
  3387. [char* additional_params], LrsLastArg );
  3388.  
  3389. // lrs_length_send 函数将指定
  3390.  
  3391. // 长度的数据从 sock_descriptor 于
  3392.  
  3393. // 写入 buffer。它用发送参数化数据,
  3394.  
  3395. // 每次调用该函数时数据的长度可以
  3396.  
  3397. // 不同。使用 lrs_length_send 可以
  3398.  
  3399. // 不必每次计算长度,因为 Vugen
  3400.  
  3401. // 自动将正确的数据长度写入由参数
  3402.  
  3403. // locator 和 location_option
  3404.  
  3405. // 指定的字段。
  3406.  
  3407. int lrs_length_send(char *socket_descriptor, char *buffer, int location_option, [char* locators],
  3408.  
  3409. [char* additional_params], LrsLastArg );
  3410.  
  3411. // lrs_receive 函数从数据报或流式套接字
  3412.  
  3413. // 读取输入数据。如果套接字上没有输入
  3414.  
  3415. // 数据,lrs_receive 将等待数据到达,
  3416.  
  3417. // 除非套接字是非分块套接字。
  3418.  
  3419. int lrs_receive ( char *s_desc, char *bufindex, [char *flags], LrsLastArg );
  3420.  
  3421. // lrs_receive_ex 函数从数据报或
  3422.  
  3423. // 流式套接字的输入数据中读取指定数目
  3424.  
  3425. // 的字节。除了可以指定要接收字节
  3426.  
  3427. // 数的功能外,它与函数 lrs_receive
  3428.  
  3429. // 等价。
  3430.  
  3431. int lrs_receive_ex ( char *s_desc, char *bufindex, [char *flags,] [char *size,]
  3432.  
  3433. [char
  3434.  
  3435. *terminator,] [char *mismatch,] [char *RecordingSize,]
  3436.  
  3437. LrsLastArg );
  3438.  
  3439. // lrs_save_param 函数将数据从缓冲区保存
  3440.  
  3441. // 到参数中。该函数用于关联或链接脚本中的
  3442.  
  3443. // 语句。
  3444.  
  3445. int lrs_save_param ( char *s_desc,char *buf_desc, char *param_name, int offset, int param_len);
  3446.  
  3447. // lrs_save_param_ex 函数将缓冲区或
  3448.  
  3449. // 缓冲区的一部分保存到参数中。参数 type
  3450.  
  3451. // 指定要保存的缓冲区数据的类型:用户缓冲区、
  3452.  
  3453. // 录制缓冲区或最后接收的缓冲区。该函数
  3454.  
  3455. // 会覆盖用户数据区。
  3456.  
  3457. int lrs_save_param_ex ( char *s_desc, char *type, char *buff, int offset, int length, char *encoding,
  3458.  
  3459. char *param );
  3460.  
  3461. // lrs_save_searched_string 函数将
  3462.  
  3463. // 缓冲区的一部分保存到参数中。该函数用于
  3464.  
  3465. // 关联或链接脚本中的语句。该函数扩展了
  3466.  
  3467. // lrs_save_param 的功能。
  3468.  
  3469. int lrs_save_searched_string (char* s_desc, char* buf_desc, char* param_name, char*
  3470.  
  3471. left_boundary, char* right_boundary, int ordinal, int offset, int param_len );
  3472.  
  3473. // lrs_send 函数将输出数据写到已
  3474.  
  3475. // 连接的数据报或流式套接字。如果不能
  3476.  
  3477. // 成功发送缓冲区中的所有数据,将重复
  3478.  
  3479. // 尝试,直到发送超时。如果无法为数据
  3480.  
  3481. // 找到可写的套接字,该函数将不断查找
  3482.  
  3483. // 套接字,直到发送超时。默认情况下,
  3484.  
  3485. // 发送超时值为 10 秒。可以使用
  3486.  
  3487. // lrs_set_send_timeout 修改超时值。
  3488.  
  3489. // 注意,lrs_send 成功完成并不表示
  3490.  
  3491. // 数据已成功传递。
  3492.  
  3493. int lrs_send ( char *s_desc, char *buf_desc, [char *target], [char *flags,] LrsLastArg );
  3494.  
  3495. // lrs_set_accept_timeout 函数设置
  3496.  
  3497. // 服务器在检测到可读套接字 (select)
  3498.  
  3499. // 并完成关联 (accept) 之前等待的时间。
  3500.  
  3501. // 如果套接字当前正在侦听,并且
  3502.  
  3503. // 收到了传入的连接请求,它将被标记为
  3504.  
  3505. // 可读。一旦套接字被标记为可读,
  3506.  
  3507. // 就可以保证完成 accept,不会阻塞。
  3508.  
  3509. // 可以为超时值指定秒数和毫秒
  3510.  
  3511. // 数。如果套接字在超时时间间隔内
  3512.  
  3513. // 未被接受,则脚本执行将终止。
  3514.  
  3515. // 默认的超时值为 10 秒。如果您发现
  3516.  
  3517. // 默认时间不够,请做相应
  3518.  
  3519. // 修改。
  3520.  
  3521. void lrs_set_accept_timeout ( long seconds, long u_sec );
  3522.  
  3523. // lrs_set_connect_timeout 函数设置连接
  3524.  
  3525. // 到套接字的超时值。请将这个可编程(非录制)
  3526.  
  3527. // 的函数插到连接命令 lrs_create_socket
  3528.  
  3529. // 之前。
  3530.  
  3531. void lrs_set_connect_timeout ( long seconds, long u_sec );
  3532.  
  3533. // lrs_set_receive_option 函数为
  3534.  
  3535. // lrs_receive 设置套接字接收选项。Option
  3536.  
  3537. // 指明在出现不匹配或检测到终止字符串时,
  3538.  
  3539. // 停止接收套接字信息。注意,该选项不会应用
  3540.  
  3541. // 于通过 lrs_receive_ex 进行的任何接收
  3542.  
  3543. // 操作。该函数设置的选项应用于该函数之后
  3544.  
  3545. // 出现的所有 lrs_receive,除非该选项被某个
  3546.  
  3547. // 后续 lrs_set_receive_option 调用重置。
  3548.  
  3549. int lrs_set_receive_option ( int option, int value, [char * terminator] );
  3550.  
  3551. // lrs_set_recv_timeout 函数设置 Vugen 从套接字
  3552.  
  3553. // 接收到期望数据之前等待的时间段。
  3554.  
  3555. void lrs_set_recv_timeout ( long sec, long u_sec );
  3556.  
  3557. // lrs_set_recv_timeout2 函数设置在套接字
  3558.  
  3559. // 上接收数据的超时限制。当 lrs_receive 接收
  3560.  
  3561. // 到数据缓冲区后,它将其大小与期望数据进行
  3562.  
  3563. // 比较。如果缓冲区大小不匹配,它将执行
  3564.  
  3565. // 更多的循环,重新读取输入套接字数据,
  3566.  
  3567. // 直到达到限制值 timeout2。可以在
  3568.  
  3569. // 完整日志跟踪中查看这些循环。
  3570.  
  3571. void lrs_set_recv_timeout2( long sec, long u_sec );
  3572.  
  3573. // lrs_set_send_buffer 函数指定下次调用
  3574.  
  3575. // lrs_send 时要发送的缓冲区。将发送
  3576.  
  3577. // lrs_set_send_buffer 中指定的缓冲区,
  3578.  
  3579. // 而不是函数 lrs_send 中指定的缓冲区。
  3580.  
  3581. int lrs_set_send_buffer ( char *s_desc, char *buffer, int size );
  3582.  
  3583. // lrs_set_send_timeout 函数设置向可写
  3584.  
  3585. // 套接字发送数据的超时值。可以为超时值指定
  3586.  
  3587. // 秒数和毫秒数。
  3588.  
  3589. void lrs_set_send_timeout ( long sec, long u_sec );
  3590.  
  3591. // lrs_set_socket_handler 函数为指定
  3592.  
  3593. // 套接字设置套接字句柄。
  3594.  
  3595. int lrs_set_socket_handler ( char *s_desc, int handler );
  3596.  
  3597. // lrs_set_socket_options 函数为指定
  3598.  
  3599. // 缓冲区设置一个选项。
  3600.  
  3601. int lrs_set_socket_options ( char *s_desc, int option, char *option_value );
  3602.  
  3603. // lrs_startup 函数初始化 Windows
  3604.  
  3605. // Sockets DLL。它指定可用于本应用的最高
  3606.  
  3607. // Windows Sockets 版本。该函数
  3608.  
  3609. // 必须在所有其他 LRS 函数之前执行。
  3610.  
  3611. // 通常,它出现于脚本的 vuser_init
  3612.  
  3613. // 部分。如果该函数失败,执行
  3614.  
  3615. // 将立即终止。
  3616.  
  3617. int lrs_startup ( int version );
  3618.  
  3619. // soap_request 函数执行一个 SOAP
  3620.  
  3621. // 请求。它向指定的 URL 发送 SOAP 包,
  3622.  
  3623. // 并接收服务器响应。
  3624.  
  3625. int soap_request (const char *StepName, URL, <XMLEnvelope>, LAST]);
  3626.  
  3627. // web_service_call 函数调用 Web 服务。
  3628.  
  3629. int web_service_call (const char *StepName, URL, <List of specifications>,
  3630.  
  3631. [BEGIN_ARGUMENTS, Arguments, END_ARGUMENTS,] [BEGIN_RESULT, Results,
  3632.  
  3633. END_RESULT] LAST );
  3634.  
  3635. // lr_xml_get_values 函数在 XML
  3636.  
  3637. // 输入字符串 XML 中查询匹配查询条件的值。
  3638.  
  3639. int lr_xml_get_values ( <List of specifications> [, <List of optional specifications> ] [, LAST]);
  3640.  
  3641. // lr_xml_set_values 函数在 XML
  3642.  
  3643. // 输入字符串 XML 中查询匹配查询条件的值,
  3644.  
  3645. // 并将 Value 或 ValueParam 设置为
  3646.  
  3647. // 查询匹配的元素的值。
  3648.  
  3649. int lr_xml_set_values ( <List of specifications> [, <List of optional specifications> ] [, LAST]);
  3650.  
  3651. // lr_xml_extract 函数查询 XML 输入字符串
  3652.  
  3653. // XML,并提取 XML 树中匹配查询条件
  3654.  
  3655. // 的片段。输出参数 XMLFragmentParam
  3656.  
  3657. // 包含提取的片段。
  3658.  
  3659. int lr_xml_extract ( <List of specifications> [, <List of optional specifications> ] [, LAST]);
  3660.  
  3661. // lr_xml_delete 函数在 XML 输入字符串
  3662.  
  3663. // XML 中进行查询,并删除与查询条件匹配
  3664.  
  3665. // 的 XML 树片段。可以通过在 XML 查询
  3666.  
  3667. // 中指定元素名称或其属性来删除
  3668.  
  3669. // 元素。输出参数 ResultParam 包含
  3670.  
  3671. // 删除后经修改的 XML 字符串(使用
  3672.  
  3673. // 源文档编码)。
  3674.  
  3675. int lr_xml_delete ( <List of specifications> [, <List of optional specifications> ] [, LAST]);
  3676.  
  3677. // lr_xml_replace 函数在 XML 输入字符串
  3678.  
  3679. // XML 中查询与查询条件匹配的值,并
  3680.  
  3681. // 用 XmlFragment 或 XmlFragmentParam
  3682.  
  3683. // 将它们替换为与查询匹配的元素的值。
  3684.  
  3685. // 可以通过在 XML 查询中指定元素名称
  3686.  
  3687. // 或属性来替换元素。结果字符串
  3688.  
  3689. // 放在 ResultParam 中(使用源文档
  3690.  
  3691. // 编码)。
  3692.  
  3693. int lr_xml_replace ( <List of specifications> [, <List of optional specifications> ] [, LAST]);
  3694.  
  3695. // lr_xml_insert 函数在 XML 输入字符串
  3696.  
  3697. // XML 中查询与查询条件匹配的值。然后,它在
  3698.  
  3699. // 查询返回的 XML 字符串中的一个或多个位置
  3700.  
  3701. // 处插入 XmlFragment 或 XmlFragmentParam。
  3702.  
  3703. int lr_xml_insert ( <List of specifications> [, <List of optional specifications> ] [, LAST]);
  3704.  
  3705. // lr_xml_find 函数在 XML 输入字符串 XML 中
  3706.  
  3707. // 查询与条件(Value 或 ValueParam)查询的值,
  3708.  
  3709. // 并返回出现次数。如果 SelectAll 为“no”,
  3710.  
  3711. // 则 lr_xml_find 返回 1 或 0。
  3712.  
  3713. int lr_xml_find ( <List of specifications> [, <List of optional specifications> ] [, LAST]);
  3714.  
  3715. // 函数 lr_xml_transform 使用样式表
  3716.  
  3717. // 中的可扩展样式表语言 (XSL) 规范转换
  3718.  
  3719. // XML 输入字符串 XML,并将作为结果产生
  3720.  
  3721. // 的格式化数据保存在 ResultParam 中
  3722.  
  3723. // (使用源文档编码)。
  3724.  
  3725. int lr_xml_transform ( <List of specifications> ]);
  1. LoadRunner 函数大全之中文解释
  2.  
  3. // button_press 函数激活指定的推按钮。
  4.  
  5. int button_press ( LPCSTR button );
  6.  
  7. // button_set 函数将按钮状态设置为 ON 或 OFF。
  8.  
  9. int button_set ( LPCSTR button, int state );
  10.  
  11. // close_session 函数关闭所有打开的窗口并结束
  12.  
  13. // 当前的 Baan 会话。在 Baan 模板中创建的此函数
  14.  
  15. // 出现在脚本的 vuser_end 部分中。
  16.  
  17. int close_session();
  18.  
  19. // edit_get_text 函数返回在指定 edit 对象中
  20.  
  21. // 找到的所有文本。若要从特定块中读取文本,
  22.  
  23. // 请使用 edit_get_block。
  24.  
  25. int edit_get_text ( LPCSTR edit, char *out_string );
  26.  
  27. // edit_set 函数使用指定的字符串设置 edit 对象的
  28.  
  29. // 内容。该字符串将替换任何现有字符串。
  30.  
  31. int edit_set ( LPCSTR edit, LPCSTR text );
  32.  
  33. // edit_set_insert_pos 函数将光标放置
  34.  
  35. // 在 edit 对象内的指定位置。
  36.  
  37. int edit_set_insert_pos (LPCSTR edit, int row, int column );
  38.  
  39. // edit_set_selection 函数突出显示指定文本。
  40.  
  41. int edit_set_selection ( LPCSTR edit, int start_row, int start_column, int end_row, int
  42.  
  43. end_column );
  44.  
  45. // edit_type 函数将文本字符串输入到 edit
  46.  
  47. // 对象中。该文本字符串不会替换现有字符串;
  48.  
  49. // 它替换的是位于当前光标位置的指定文本。
  50.  
  51. int edit_type ( LPCSTR edit, LPCSTR text );
  52.  
  53. // init_session 函数通过指定登录数据和配置
  54.  
  55. // 信息打开 Baan 连接。此函数向 Baan 服务器
  56.  
  57. // 呈现包含在 Baan Configuration 部分中
  58.  
  59. // 的信息。
  60.  
  61. int init_session ( char * host, char * user, char *password, char *BSE, char *Bshell_name, char
  62.  
  63. * settings );
  64.  
  65. // list_activate_item 函数双击列表中的项目。
  66.  
  67. // 项目可由其逻辑名称指定。
  68.  
  69. int list_activate_item ( LPCSTR list, LPCSTR item );
  70.  
  71. // list_collapse_item 函数隐藏展开的 TreeView
  72.  
  73. // 列表中的子项,例如文件夹中的各个文件。
  74.  
  75. int list_collapse_item (LPCSTR list, LPCSTR item );
  76.  
  77. // list_expand_item 函数显示展开的
  78.  
  79. // TreeView 列表中所隐藏的子项,例如
  80.  
  81. // 文件夹中的各个文件。
  82.  
  83. int list_expand_item (LPCSTR list, LPCSTR item );
  84.  
  85. // list_get_selected 函数返回列表中的选定
  86.  
  87. // 项目。它既查找标准列表,也查找多选项列表。
  88.  
  89. int list_get_selected (LPCSTR list, LPCSTR out_item, LPCSTR out_num );
  90.  
  91. // list_select_item 函数从列表中选择项目
  92.  
  93. // (在项目上执行一次鼠标单击)。项目可由
  94.  
  95. // 其名称或数字索引指定。索引被指定为一个
  96.  
  97. // 字符串,并前置有字符 #。列表中的第一个
  98.  
  99. // 项目编号为 0。例如,列表中的第三个项目
  100.  
  101. // 将表示为 "#2"。
  102.  
  103. int list_select_item ( LPCSTR list, LPCSTR item );
  104.  
  105. // menu_select_item 函数根据菜单
  106.  
  107. // 的逻辑名称和项目名称从菜单中选择
  108.  
  109. // 项目。注意,菜单和项目表示为单个
  110.  
  111. // 字符串,并使用分号分隔。
  112.  
  113. int menu_select_item ( LPCSTR menu_item );
  114.  
  115. // obj_get_info 函数检索指定属性的值,
  116.  
  117. // 并将其存储在 out_value 中。
  118.  
  119. int obj_get_info ( LPCSTR object, LPCSTR property, char *out_value );
  120.  
  121. // obj_get_text 函数从指定的对象
  122.  
  123. // 或对象区域中读取文本。
  124.  
  125. int obj_get_text (LPCSTR object, LPCSTR out_text );
  126.  
  127. // obj_mouse_click 函数在对象内的
  128.  
  129. // 指定坐标处单击鼠标。
  130.  
  131. int obj_mouse_click ( LPCSTR object, int x, int y, [mouse_button] );
  132.  
  133. // obj_mouse_dbl_click 函数在对象内的
  134.  
  135. // 指定坐标处双击鼠标。
  136.  
  137. int obj_mouse_dbl_click ( LPCSTR object, int x, int y, [mouse_button] );
  138.  
  139. // obj_mouse_drag 函数在 GUI
  140.  
  141. // 对象中执行鼠标拖动操作。指定的
  142.  
  143. // 坐标是相对于 GUI 对象(而非
  144.  
  145. // 屏幕)的左上角。
  146.  
  147. int obj_mouse_drag (LPCSTR object, int start_x, int start_y, int end_x, int end_y, [ ButtonT
  148.  
  149. mouse_button] );
  150.  
  151. // obj_type 函数指定将 keyboard_input
  152.  
  153. // 发送到的目标对象。
  154.  
  155. int obj_type ( LPCSTR object, unsigned char keyboard_input, [unsigned char modifier ] );
  156.  
  157. // obj_wait_info 函数等待对象
  158.  
  159. // 属性达到指定值,然后继续
  160.  
  161. // 测试运行。如果未达到指定
  162.  
  163. // 值,则函数将一直等到时间
  164.  
  165. // 到期,然后再继续测试。
  166.  
  167. int obj_wait_info (LPCSTR object, LPCSTR property, LPCSTR value, UINT time );
  168.  
  169. // scroll_drag_from_min 函数将滚动屏
  170.  
  171. // 移动到与最小位置相距指定距离的位置。
  172.  
  173. int scroll_drag_from_min ( LPCSTR object, [int orientation], int position );
  174.  
  175. // scroll_line 函数滚动指定行数。
  176.  
  177. // 此函数可用于滚动栏和滑块对象。
  178.  
  179. int scroll_line ( LPCSTR scroll, [ScrollT orientation], int lines );
  180.  
  181. // scroll_page 函数将滚动屏移动指定页数。
  182.  
  183. int scroll_page ( LPCSTR scroll, [ScrollT orientation], int pages );
  184.  
  185. // set_default_timeout 函数设置回放
  186.  
  187. // 期间 Baan Vuser 函数的超时期间段。
  188.  
  189. // 例如,当脚本执行 set_window 函数
  190.  
  191. // 时,如果窗口在指定超时时间段内没有
  192.  
  193. // 出现,则会生成错误。
  194.  
  195. void set_default_timeout ( long time );
  196.  
  197. // set_exception 函数指定在发生异常时
  198.  
  199. // 应执行的操作。应指定要调用以处理异常
  200.  
  201. // 窗口的函数。
  202.  
  203. void set_exception ( LPCSTR title, long function );
  204.  
  205. // set_think_time 函数指定脚本执行
  206.  
  207. // 期间要使用的思考时间范围。运行脚本
  208.  
  209. // 时,LoadRunner 使用指定范围内的
  210.  
  211. // 随机思考时间,并在每个操作完成后
  212.  
  213. // 暂停该思考时间长度。
  214.  
  215. void set_think_time ( USHORT start_range, USHORT end_range );
  216.  
  217. // set_window 函数将输入定向到
  218.  
  219. // 当前应用程序窗口并在 GUI 图中
  220.  
  221. // 设置对象标识范围。
  222.  
  223. int set_window ( LPCSTR window [, int timeout ] );
  224.  
  225. // start_session 函数在 Baan
  226.  
  227. // 服务器上开始指定的会话。
  228.  
  229. int start_session ( LPCSTR session );
  230.  
  231. // static_get_text 函数返回在指定
  232.  
  233. // 静态 text 对象中找到的所有文本。
  234.  
  235. int static_get_text ( LPCSTR static_obj, LPCSTR out_string );
  236.  
  237. // tab_select_item 函数选择一个选项卡项目。
  238.  
  239. int tab_select_item ( LPCSTR tab, LPCSTR item );
  240.  
  241. // tbl_activate_cell 函数在指定表单元格中
  242.  
  243. // 按 Enter 键。如果指定了列名,LoadRunner
  244.  
  245. // 将直接从数据库中获取该名称。
  246.  
  247. int tbl_activate_cell (LPCSTR table, LPCSTR row, LPCSTR column );
  248.  
  249. // tbl_get_cell_data 函数根据
  250.  
  251. // 单元格包含的数据类型获取表中
  252.  
  253. // 指定单元格的内容。如果指定了
  254.  
  255. // 列名,将从数据库自身(而非应用
  256.  
  257. // 程序)中获取该名称。
  258.  
  259. int tbl_get_cell_data (LPCSTR table, LPCSTR row, LPCSTR column, LPCSTR out_text );
  260.  
  261. // tbl_get_selected_cell 函数
  262.  
  263. // 检索焦点所在的表单元格的行号和
  264.  
  265. // 列名。注意,列名取自数据库自身,
  266.  
  267. // 而非应用程序。
  268.  
  269. int tbl_get_selected_cell (LPCSTR table, char *out_row, char *out_column );
  270.  
  271. // tbl_press_zoom_button 函数
  272.  
  273. // 激活指定表单元格的缩放窗口。
  274.  
  275. int tbl_press_zoom_button ( LPCSTR table, LPCSTR row, LPCSTR column );
  276.  
  277. // tbl_set_cell_data 函数根据单元格
  278.  
  279. // 包含的数据类型使用指定数据设置单元格
  280.  
  281. // 的值。如果指定了列名,LoadRunner
  282.  
  283. // 将直接从数据库中获取该名称。
  284.  
  285. int tbl_set_cell_data (LPCSTR table, LPCSTR row, LPCSTR column, LPCSTR data );
  286.  
  287. // tbl_set_selected_cell 函数将焦点
  288.  
  289. // 设置到表中的指定单元格上。指定列名时,
  290.  
  291. // LoadRunner 将直接从数据库中获取该名称。
  292.  
  293. int tbl_set_selected_cell (LPCSTR table, LPCSTR row, LPCSTR column );
  294.  
  295. // tbl_set_selected_row 函数选择表中的指定行。
  296.  
  297. int tbl_set_selected_row (LPCSTR table, LPCSTR row );
  298.  
  299. // tbl_set_selected_rows 函数选择指定行范围。
  300.  
  301. int tbl_set_selected_rows(LPCSTR table, LPCSTR from_row , LPCSTR to_row );
  302.  
  303. // tbl_wait_selected_cell 函数等待
  304.  
  305. // 表单元格显示后,再继续脚本执行。
  306.  
  307. int tbl_wait_selected_cell (LPCSTR table, char *row, char *column, UINT time );
  308.  
  309. // toolbar_button_press 函数激活工具栏中的按钮。
  310.  
  311. int toolbar_button_press (LPCSTR toolbar, LPCSTR button );
  312.  
  313. // type 函数描述发送给用于测试
  314.  
  315. // 的应用程序的键盘输入。
  316.  
  317. int type (LPCSTR keyboard_input );
  318.  
  319. // win_activate 函数通过向指定窗口
  320.  
  321. // 授予焦点并将其升到显示器最上端,
  322.  
  323. // 使其成为活动窗口(等价于单击窗口
  324.  
  325. // 标题栏)。所有后续输入都将提交给
  326.  
  327. // 此窗口。
  328.  
  329. int win_activate (LPCSTR window );
  330.  
  331. // win_close 函数关闭指定窗口。
  332.  
  333. int win_close ( LPCSTR window );
  334.  
  335. // win_get_info 函数检索指定属性的值
  336.  
  337. // 并将其存储在 out_value 中。
  338.  
  339. int win_get_info ( LPCSTR window, LPCSTR property, char *out_value );
  340.  
  341. // win_get_text 函数从指定窗口或
  342.  
  343. // 窗口区域读取文本。
  344.  
  345. int win_get_text ( LPCSTR window, LPCSTR out_text );
  346.  
  347. // win_max 函数将指定窗口
  348.  
  349. // 最大化以充满整个屏幕。
  350.  
  351. int win_max (LPCSTR window );
  352.  
  353. // win_min 函数将指定窗口最小化为图标。
  354.  
  355. int win_min (LPCSTR window );
  356.  
  357. // win_mouse_click 函数在选中窗口
  358.  
  359. // 的指定坐标处执行鼠标单击操作。
  360.  
  361. int win_mouse_click (LPCSTR window, int x, int y, ButtonT button );
  362.  
  363. // win_mouse_dbl_click 函数在选中窗口
  364.  
  365. // 的指定坐标处执行鼠标双击操作。
  366.  
  367. int win_mouse_dbl_click (LPCSTR window, int x, int y, ButtonT button );
  368.  
  369. // win_mouse_drag 函数在窗口内执行
  370.  
  371. // 鼠标拖动操作。注意,指定的坐标是
  372.  
  373. // 相对于窗口(而非屏幕)的左上角。
  374.  
  375. int win_mouse_drag (LPCSTR window, int start_x, int start_y, int end_x, int end_y, ButtonT
  376.  
  377. button );
  378.  
  379. // win_move 函数将窗口移动到新的绝对位置。
  380.  
  381. int win_move ( LPCSTR window, int x, int y );
  382.  
  383. // win_resize 函数更改窗口的位置。
  384.  
  385. int win_resize ( LPCSTR window, int width, int height );
  386.  
  387. // win_restore 函数将窗口从图标化
  388.  
  389. // 或最大化状态还原为其原始大小。
  390.  
  391. int win_restore (LPCSTR window );
  392.  
  393. // win_wait_info 函数等待窗口
  394.  
  395. // 属性达到指定值,然后继续测试
  396.  
  397. // 运行。如果未达到指定值,则函数
  398.  
  399. // 将一直等到时间到期,然后再继
  400.  
  401. // 续测试。
  402.  
  403. int win_wait_info (LPCSTR window, LPCSTR property, LPCSTR value, UINT time );
  404.  
  405. // win_type 函数指定 keyboard_input
  406.  
  407. // 将发送到的目标窗口。
  408.  
  409. int win_type (LPCSTR window, LPCSTR keyboard_input );
  410.  
  411. // ctrx_<obj>_get_info 函数系列将属性
  412.  
  413. // 的值分配给值缓冲区。ctrx_obj_get_info
  414.  
  415. // 是一般函数,它可以适用于任何由录制器
  416.  
  417. // 所标识为对象的对象。
  418.  
  419. int ctrx_obj_get_info( const char * window_name, long xpos, long ypos, eObjAttribute attribute,
  420.  
  421. char *value, CTRX_LAST );
  422.  
  423. // ctrx_<obj>_get_info 函数系列将属性的值
  424.  
  425. // 分配给值缓冲区。ctrx_button_get_info
  426.  
  427. // 获取命令按钮的信息。
  428.  
  429. int ctrx_button_get_info( const char * window_name, long xpos, long ypos, eObjAttribute
  430.  
  431. attribute, char *value, CTRX_LAST );
  432.  
  433. // ctrx_<obj>_get_info 函数系列将属性的值
  434.  
  435. // 分配给值缓冲区。ctrx_edit_get_info
  436.  
  437. // 获取文本框的信息。
  438.  
  439. int ctrx_edit_get_info( const char * window_name, long xpos, long ypos, eObjAttribute attribute,
  440.  
  441. char *value, CTRX_LAST );
  442.  
  443. // ctrx_<obj>_get_info 函数系列将属性的值
  444.  
  445. // 分配给值缓冲区。ctrx_list_get_info
  446.  
  447. // 获取列表框的信息。
  448.  
  449. int ctrx_list_get_info( const char * window_name, long xpos, long ypos, eObjAttribute attribute,
  450.  
  451. char *value, CTRX_LAST );
  452.  
  453. // ctrx_connect_server 将 Citrix 客户端连接到 Citrix 服务器。
  454.  
  455. int ctrx_connect_server (char * server_name, char * user_name, char * password, char * domain);
  456.  
  457. // ctrx_disconnect_server 断开客户端与 Citrix 服务器的连接。
  458.  
  459. int ctrx_disconnect_server (char * server_name);
  460.  
  461. // ctrx_nfuse_connect 使用 NFUSE 应用
  462.  
  463. // 程序门户建立与 Citrix 服务器的连接。在
  464.  
  465. // 定义 NFUSE 门户的个性化规范的 ICA 文件
  466.  
  467. // 中找到的规范将从服务器上下载,在此之后
  468.  
  469. // 建立连接。
  470.  
  471. int ctrx_nfuse_connect(char * url);
  472.  
  473. // 使用 ctrx_get_bitmap_value
  474.  
  475. // 检索位图的哈希字符串值以用于您
  476.  
  477. // 的自定义同步函数中。位图坐标由
  478.  
  479. // 前四个参数指定。
  480.  
  481. int ctrx_get_bitmap_value (long x_start, long y_start, long width, long height, char * buffer);
  482.  
  483. // ctrx_get_text 将矩形中的文本分配到 text_buffer
  484.  
  485. // 中。随后,文本可被用于关联。
  486.  
  487. int ctrx_get_text( char *window_name, long xpos, long ypos, long width, long height, char *
  488.  
  489. filename, char * text_buffer, CTRX_LAST );
  490.  
  491. // ctrx_get_text_location 在 xpos、
  492.  
  493. // ypos、width 和 height 指定区域中
  494.  
  495. // 搜索指定文本。如果找到字符串,当函数
  496.  
  497. // 返回后,xpos 和 ypos 即为找到文本的
  498.  
  499. // 位置。如果未找到字符串,xpos 和 ypos
  500.  
  501. // 则为零。
  502.  
  503. int ctrx_get_text_location( LPCSTR window_name, long *xpos, long *ypos, long *width, long
  504.  
  505. *height, LPSTR text, long bMatchWholeWordOnly, LPCSTR filename, CTRX_LAST );
  506.  
  507. // ctrx_get_waiting_time 从运行时设置中获取当前等待
  508.  
  509. // 时间,或者通过 ctrx_set_waiting_time 设置的值。
  510.  
  511. int ctrx_get_waiting_time ( long * time );
  512.  
  513. // 使用 ctrx_get_window_name 检索
  514.  
  515. // 当前获得焦点的窗口的名称。
  516.  
  517. int ctrx_get_window_name (LPSTR buffer);
  518.  
  519. // 使用 ctrx_get_window_position
  520.  
  521. // 检索名为 title 变量值的窗口的位置。
  522.  
  523. // 如果 title 为 NULL,则函数将检索
  524.  
  525. // 当前拥有焦点的窗口的位置。
  526.  
  527. int ctrx_get_window_position (LPSTR title, long *xpos, long *ypos, long *width, long *height);
  528.  
  529. // ctrx_list_select_item 函数从列表中选择项目。
  530.  
  531. // 它支持 ListBox 或 ComboBox 类的列表。
  532.  
  533. int ctrx_list_select_item(char * window_name, long xpos, long ypos, char * item, CTRX_LAST );
  534.  
  535. // ctrx_menu_select_item 突出显示
  536.  
  537. // 菜单中的项目,但不激活它。
  538.  
  539. int ctrx_menu_select_item ( char * window_name, char * menu_path, CTRX_LAST) ;
  540.  
  541. // ctrx_mouse_click 等待窗口 window_name
  542.  
  543. // 出现,然后执行鼠标单击操作。
  544.  
  545. int ctrx_mouse_click (long x_pos, long y_pos, long mouse_button, long key_modifier, char *
  546.  
  547. window_name);
  548.  
  549. // ctrx_obj_mouse_click 等待窗口 window_name
  550.  
  551. // 出现,然后执行鼠标单击操作。
  552.  
  553. int ctrx_obj_mouse_click (const char * obj_desc, long x_pos, long y_pos, long mouse_button,
  554.  
  555. long key_modifier, char * window_name);
  556.  
  557. // ctrx_mouse_double_click 等待窗口 window_name
  558.  
  559. // 出现,然后执行鼠标双击操作。
  560.  
  561. int ctrx_mouse_double_click (long x_pos, long y_pos, long mouse_button, long key_modifier,
  562.  
  563. char * window_name);
  564.  
  565. // ctrx_obj_mouse_double_click 等待窗口 window_name
  566.  
  567. // 出现,然后执行鼠标双击操作。
  568.  
  569. int ctrx_obj_mouse_double_click (const char * obj_desc, long x_pos, long y_pos, long
  570.  
  571. mouse_button, long key_modifier, char * window_name);
  572.  
  573. // ctrx_mouse_down 等待窗口 window_name
  574.  
  575. // 出现,然后执行按下鼠标按键操作。
  576.  
  577. int ctrx_mouse_down(long x_pos, long y_pos, long mouse_button, long key_modifier, char *
  578.  
  579. window_name);
  580.  
  581. // ctrx_obj_mouse_down 等待窗口 window_name
  582.  
  583. // 出现,然后执行按下鼠标按键操作。
  584.  
  585. int ctrx_obj_mouse_down(const char * obj_desc, long x_pos, long y_pos, long mouse_button,
  586.  
  587. long key_modifier, char * window_name);
  588.  
  589. // ctrx_mouse_up 等待窗口 window_name
  590.  
  591. // 出现,然后在指定位置执行释放鼠标按键操作。
  592.  
  593. int ctrx_mouse_up(long x_pos, long y_pos, long mouse_button, long key_modifier, char *
  594.  
  595. window_name );
  596.  
  597. // ctrx_obj_mouse_up 等待窗口 window_name
  598.  
  599. // 出现,然后在指定位置执行释放鼠标按键操作。
  600.  
  601. int ctrx_obj_mouse_up(const char * obj_desc, long x_pos, long y_pos, long mouse_button, long
  602.  
  603. key_modifier, char * window_name );
  604.  
  605. // ctrx_set_window 是同步函数,它等待
  606.  
  607. // 窗口出现,然后 Vuser 才在该窗口中模拟
  608.  
  609. // 任何键盘或鼠标活动。
  610.  
  611. int ctrx_set_window (char * window_name);
  612.  
  613. // ctrx_set_window_ex 是同步函数,它至多
  614.  
  615. // 等待 time 秒,若窗口出现,Vuser 将在该
  616.  
  617. // 窗口中模拟任何键盘或鼠标活动。
  618.  
  619. int ctrx_set_window_ex (char * window_name, long time);
  620.  
  621. // ctrx_key 模拟用户在 Citrix 客户端中
  622.  
  623. // 按下非字母数字键。
  624.  
  625. int ctrx_key (char * key, long int key_modifier);
  626.  
  627. // 函数 ctrx_type 模拟用户键入字母数字字符。
  628.  
  629. int ctrx_type (char * data);
  630.  
  631. // ctrx_save_bitmap 将位图保存为文件。
  632.  
  633. // 该文件将保存在 Vuser 结果日志目录中。
  634.  
  635. int ctrx_save_bitmap( long x_start, long y_start, long width, long height, const char * file_name );
  636.  
  637. // ctrx_set_connect_opt 在建立 Citrix 客户端
  638.  
  639. // 与 Citrix 服务器的连接之前设置连接选项,然后
  640.  
  641. // 执行与服务器的连接。
  642.  
  643. int ctrx_set_connect_opt (eConnectionOption option, char * value);
  644.  
  645. // ctrx_set_exception 定义当不规则
  646.  
  647. // 事件发生时要执行的操作。此事件必须
  648.  
  649. // 与名为 window_title 的窗口(通常
  650.  
  651. // 为弹出式对话框)的外观相关联。当窗口
  652.  
  653. // 出现时,将调用 handler 函数。
  654.  
  655. void ctrx_set_exception ( char * window_title, long handler, [void *context]);
  656.  
  657. // ctrx_set_waiting_time 更改
  658.  
  659. // 同步函数默认 60 秒的等待时间。
  660.  
  661. int ctrx_set_waiting_time (long time);
  662.  
  663. // ctrx_sync_on_bitmap 是同步函数,
  664.  
  665. // 它等待指定位图出现,然后再继续执行。
  666.  
  667. int ctrx_sync_on_bitmap (long x_start, long y_start, long width, long height, char * hash);
  668.  
  669. // ctrx_sync_on_bitmap_change 是同步
  670.  
  671. // 函数,它等待指定位图改变,然后再继续执行。
  672.  
  673. // 该函数通常用在窗口改变而窗口名称保持
  674.  
  675. // 不变的情况下。如果窗口名称改变,
  676.  
  677. // 则 ctrx_set_window 将被自动
  678.  
  679. // 生成。
  680.  
  681. int ctrx_sync_on_bitmap_change (long x_start, long y_start, long width, long height, <extra_args>,
  682.  
  683. CTRX_LAST);
  684.  
  685. // ctrx_sync_on_obj_info 被调用时,执行将暂停,
  686.  
  687. // 直到指定对象的属性具有指定的值。
  688.  
  689. int ctrx_sync_on_obj_info ( char * window_name, long xpos, long ypos, eObjAttribute attribute,
  690.  
  691. char * value, <CTRX_LAST> );
  692.  
  693. // ctrx_sync_on_window 是同步函数,
  694.  
  695. // 它等待窗口被创建或变为活动的。
  696.  
  697. int ctrx_sync_on_window (char * window_name, eWindowEvent event, long x_start, long y_start,
  698.  
  699. long width, long height, char * filename, <CTRX_LAST>);
  700.  
  701. // ctrx_unset_window 是同步函数,它等待
  702.  
  703. // 窗口被关闭,然后脚本才继续执行。
  704.  
  705. int ctrx_unset_window (char * window_name);
  706.  
  707. // ctrx_wait_for_event 是同步函数,
  708.  
  709. // 它等待事件发生。
  710.  
  711. int ctrx_wait_for_event (char * event);
  712.  
  713. // 如果窗口存在,ctrx_win_exist 返回 E_OK(零)。
  714.  
  715. // 在 window_name 中可以使用通配符 (*)。
  716.  
  717. int ctrx_win_exist (char * window_name, long waiting_time);
  718.  
  719. // 有关 memchr 的详细信息,请参考 C 语言文档。
  720.  
  721. void *memchr ( const void *s, int c, size_t n );
  722.  
  723. // 有关 memcmp 的详细信息,请参考 C 语言文档。
  724.  
  725. int memcmp ( const void *s1, const void *s2, size_t n );
  726.  
  727. // memcpy 函数从 src 缓冲区中将 n 个
  728.  
  729. // 字符复制到 dest 缓冲区。
  730.  
  731. void *memcpy ( void *dest, const void *src, size_t n );
  732.  
  733. // 函数 memmove(以及所有不返回 integer 类型
  734.  
  735. // 的函数)必须明确在 Vugen 脚本中声明。
  736.  
  737. void *memmove ( void *dest, const void *src, size_t n );
  738.  
  739. // 有关 memset 的详细信息,请参考 C 语言文档。
  740.  
  741. void *memset ( void *buffer, int c, size_t n );
  742.  
  743. // 有关 getenv 的详细信息,请参考 C 语言文档。
  744.  
  745. char *getenv ( const char *varname );
  746.  
  747. // 有关 putenv 的详细信息,请参考 C 语言文档。
  748.  
  749. int putenv ( const char *envstring );
  750.  
  751. // 有关 system 的详细信息,请参考 C 语言文档。
  752.  
  753. int system ( const char *string );
  754.  
  755. // 有关 calloc 的详细信息,请参考 C 语言文档。
  756.  
  757. void *calloc ( size_t num elems, size_t elem_size );
  758.  
  759. // 有关 free 的详细信息,请参考 C 语言文档。
  760.  
  761. void free ( void *mem_address );
  762.  
  763. // 有关 malloc 的详细信息,请参考 C 语言文档。
  764.  
  765. void *malloc ( size_t num_bytes );
  766.  
  767. // 有关 realloc 的详细信息,请参考 C 语言文档。
  768.  
  769. void *realloc ( void *mem_address, size_t size );
  770.  
  771. // 有关 abs 的详细信息,请参考 C 语言文档。
  772.  
  773. int abs ( int n );
  774.  
  775. // 限制:cos 函数在 AIX 平台中无法使用。
  776.  
  777. double cos ( double x );
  778.  
  779. // 函数 floor(以及所有不返回 int 值的函数)
  780.  
  781. // 必须明确在 Vugen 脚本中声明。限制:此
  782.  
  783. // 函数在 AIX 平台中无法使用。
  784.  
  785. double floor ( double x );
  786.  
  787. // 在调用 rand 前,请调用 srand 以
  788.  
  789. // 播种伪随机数生成器
  790.  
  791. int rand ( void );
  792.  
  793. // 限制:sin 函数在 AIX 平台中无法使用。
  794.  
  795. double sin ( double x );
  796.  
  797. // 函数 sqrt(以及所有不返回 int 值的
  798.  
  799. // 函数)必须明确在 Vugen 脚本中声明。
  800.  
  801. // 限制:sqrt 函数在 AIX 平台中
  802.  
  803. // 无法使用。
  804.  
  805. double sqrt ( double x );
  806.  
  807. // 在调用 rand 前,请调用 srand 以
  808.  
  809. // 播种伪随机数生成器
  810.  
  811. int srand ( time );
  812.  
  813. // 有关 fclose 的详细信息,请参考 C 语言文档。
  814.  
  815. int fclose ( FILE *file_pointer );
  816.  
  817. // 请不要在脚本中包括操作系统头文件(例如,stdio.h)。
  818.  
  819. // 但是,这样将导致某些类型(包括 feof 使用的 FILE
  820.  
  821. // 类型)未经定义。这时,请使用 long 替代 FILE
  822.  
  823. // 类型。
  824.  
  825. int feof ( FILE *file_pointer );
  826.  
  827. // 有关 ferror 的详细信息,请参考 C 语言文档。
  828.  
  829. int ferror ( FILE *file_pointer );
  830.  
  831. // 请不要在脚本中包括操作系统头文件(例如,
  832.  
  833. // stdio.h)。但是,这样会导致某些类型
  834.  
  835. // (包括 fgetc 使用的 FILE 类型)未经定义。
  836.  
  837. // 这时,请使用 long 替代 FILE 类型。
  838.  
  839. int fgetc ( FILE *file_pointer );
  840.  
  841. // 请不要在脚本中包括操作系统头文件(例如,
  842.  
  843. // stdio.h)。但是,这样会导致某些类型
  844.  
  845. // (包括 fgets 使用的 FILE 类型)未经定义。
  846.  
  847. // 这时,请使用 long 替代 FILE 类型。
  848.  
  849. char *fgets ( char *string, int maxchar, FILE *file_pointer );
  850.  
  851. // 通过将 t 或 b 字符添加到 fopen 的 access_mode
  852.  
  853. // 参数,此访问模式字符串还将用于指定打开文件的方式
  854.  
  855. // (文本还是二进制)。
  856.  
  857. FILE *fopen ( const char *filename, const char *access_mode );
  858.  
  859. // 有关 fprintf 的详细信息,请参考 C 语言文档。
  860.  
  861. int fprintf ( FILE *file_pointer, const char *format_string [, args ] );
  862.  
  863. // 请不要在脚本中包括操作系统头文件(例如,
  864.  
  865. // stdio.h)。但是,这样会导致某些类型
  866.  
  867. // (包括 fputc 使用的 FILE 类型)未经定义。
  868.  
  869. // 这时,请使用 long 替代 FILE 类型。
  870.  
  871. int fputc ( int c, FILE *file_pointer );
  872.  
  873. // 请不要在脚本中包括操作系统头文件(例如,
  874.  
  875. // stdio.h)。但是,这样会导致某些类型
  876.  
  877. // (包括 fread 使用的 FILE 类型)未经定义。
  878.  
  879. // 这时,请使用 long 替代 FILE 类型。
  880.  
  881. size_t fread ( void *buffer, size_t size, size_t count, FILE *file_pointer );
  882.  
  883. // 有关 fscanf 的详细信息,请参考 C 语言文档。
  884.  
  885. int fscanf ( FILE *file_pointer, const char *format string [, args] );
  886.  
  887. // 有关 fseek 的详细信息,请参考 C 语言文档。
  888.  
  889. int fseek ( FILE *file_pointer, long offset, int origin );
  890.  
  891. // 请不要在脚本中包括操作系统头文件(例如,
  892.  
  893. // stdio.h)。但是,这样会导致某些类型
  894.  
  895. // (包括 fwrite 使用的 FILE 类型)未经定义。
  896.  
  897. // 这时,请使用 long 替代 FILE 类型。
  898.  
  899. size_t fwrite ( const void *buffer, size_t size, size_t count, FILE *file_pointer );
  900.  
  901. // 有关 rewind 的详细信息,请参考 C 语言文档。
  902.  
  903. void rewind ( FILE *file_pointer );
  904.  
  905. // 有关 sprintf 的详细信息,请参考 C 语言文档。
  906.  
  907. int sprintf ( char *string, const char *format_string[, args] );
  908.  
  909. // 有关 sscanf 的详细信息,请参考 C 语言文档。
  910.  
  911. int sscanf ( const char *buffer, const char *format_string, args );
  912.  
  913. // 有关 chdir 的详细信息,请参考 C 语言文档。
  914.  
  915. int chdir ( const char *path );
  916.  
  917. // chdrive 将当前工作驱动器更改为 drive(表示新驱动器
  918.  
  919. // 的 integer 类型值)。例如,1 = A、2 = B,依此类推。
  920.  
  921. int chdrive ( int drive );
  922.  
  923. // 有关 getcwd 的详细信息,请参考 C 语言文档。
  924.  
  925. char *getcwd ( char *path, int numchars );
  926.  
  927. // getdrive 函数返回表示驱动器字母
  928.  
  929. // 的 integer 类型值:1 = A、2 = B,依此类推。
  930.  
  931. int getdrive ( void );
  932.  
  933. // 有关 mkdir 的详细信息,请参考 C 语言文档。
  934.  
  935. int mkdir ( const char *path );
  936.  
  937. // 有关 remove 的详细信息,请参考 C 语言文档。
  938.  
  939. int remove ( const char *path );
  940.  
  941. // 有关 rmdir 的详细信息,请参考 C 语言文档。
  942.  
  943. int rmdir ( const char *path );
  944.  
  945. // 根据系统时钟,time 函数返回从世界标准
  946.  
  947. // 时间 1970 年 1 月 1 日子夜 (00:00:00)
  948.  
  949. // 作为开始所经过的秒数。返回值存储在 timeptr
  950.  
  951. // 所给出的位置。如果 timeptr 为 NULL,则
  952.  
  953. // 该值不会被存储。
  954.  
  955. time_t time ( time_t *timeptr );
  956.  
  957. // 在 Unix 下,ctime 不是线程级安全函数。所以,请使用 ctime_r。
  958.  
  959. // 有关详细信息,请参阅平台相关文档。
  960.  
  961. char *ctime ( const time_t *time );
  962.  
  963. // 有关 ftime 的详细信息,请参考 C 语言文档。
  964.  
  965. void ftime ( struct _timeb *time1 );
  966.  
  967. // 在 Unix 下,localtime 不是线程级安全函数。
  968.  
  969. // 所以,请使用 localtime_r。有关详细信息,请
  970.  
  971. // 参阅平台相关文档。
  972.  
  973. struct tm *localtime ( const time_t *time );
  974.  
  975. // 在 Unix 下,gmtime 不是线程级安全函数。所以,请使用 gmtime_r。
  976.  
  977. // 有关详细信息,请参阅平台相关文档。
  978.  
  979. struct tm *gmtime ( const time_t *time );
  980.  
  981. // 在 Unix 下,asctime 不是线程级安全函数。所以,请使用 asctime_r。
  982.  
  983. // 有关详细信息,请参阅平台相关文档。
  984.  
  985. char *asctime ( const struct tm *time );
  986.  
  987. // 通过停止在第一个非数字字符上,atof 只
  988.  
  989. // 读取字符串的初始位置。函数 atof(以及
  990.  
  991. // 所有不返回 integer 类型值的函数)
  992.  
  993. // 必须明确在 Vugen 脚本中声明。
  994.  
  995. double atof ( const char *string );
  996.  
  997. // 通过停止在第一个非数字字符上,atoi 只
  998.  
  999. // 读取字符串的初始位置。
  1000.  
  1001. int atoi ( const char *string );
  1002.  
  1003. // 通过停止在第一个非数字字符上,atol 只
  1004.  
  1005. // 读取字符串的初始位置。函数 atol(以及
  1006.  
  1007. // 所有不返回 integer 类型值的函数)必须
  1008.  
  1009. // 明确在 Vugen 脚本中声明。
  1010.  
  1011. long atol ( const char *string );
  1012.  
  1013. // itoa 将 value 的数字转换为以 radix 作为
  1014.  
  1015. // 基数的字符串 str。通常,radix 是 10。
  1016.  
  1017. int itoa ( int value, char *str, int radix );
  1018.  
  1019. // 通过停止在第一个非数字字符上,strtol
  1020.  
  1021. // 只扫描字符串的初始位置。所有前置空格
  1022.  
  1023. // 都将被去除。endptr 指向停止扫描的字符。
  1024.  
  1025. // 函数 strtol(以及所有不返回 integer
  1026.  
  1027. // 类型值的函数)必须明确在 Vugen 脚本中
  1028.  
  1029. // 声明。
  1030.  
  1031. long strtol ( const char *string, char **endptr, int radix );
  1032.  
  1033. // 有关 tolower 的详细信息,请参考 C 语言文档。
  1034.  
  1035. int tolower (int c);
  1036.  
  1037. // 有关 toupper 的详细信息,请参考 C 语言文档。
  1038.  
  1039. int toupper ( int c );
  1040.  
  1041. // 有关 isdigit 的详细信息,请参考 C 语言文档。
  1042.  
  1043. int isdigit ( int c );
  1044.  
  1045. // 函数 isalpha 检查 c 的值是否
  1046.  
  1047. // 处于 A - Z 或 a - z 的范围之内。
  1048.  
  1049. int isalpha ( int c );
  1050.  
  1051. // strcat 连接两个字符串。
  1052.  
  1053. char *strcat ( char *to, const char *from );
  1054.  
  1055. // strchr 返回指向字符串中
  1056.  
  1057. // 第一个匹配字符的指针。
  1058.  
  1059. char *strchr ( const char *string, int c );
  1060.  
  1061. // strcmp 比较 string1 和 string2 以确定字母排序的次序。
  1062.  
  1063. int strcmp ( const char *string1, const char *string2 );
  1064.  
  1065. // strcpy 将一个字符串复制给另一个。
  1066.  
  1067. char *strcpy ( char *dest, const char *source );
  1068.  
  1069. // strdup 复制字符串的副本。
  1070.  
  1071. char *strdup ( const char *string );
  1072.  
  1073. // stricmp 对两个字符串进行不区分大小写的比较。
  1074.  
  1075. int stricmp ( const char *string1, const char *string2 );
  1076.  
  1077. // strlen 返回字符串的长度(以字节为单位)。
  1078.  
  1079. size_t strlen ( const char *string );
  1080.  
  1081. // strlwr 将字符串转换为小写。
  1082.  
  1083. char *strlwr ( char *string );
  1084.  
  1085. // strncat 将一个字符串的 n 个字符连接到另一字符串。
  1086.  
  1087. char *strncat ( char *to_string, const char *from_string, size_t n );
  1088.  
  1089. // strncmp 比较两个字符串的前 n 个字符。
  1090.  
  1091. int strncmp ( const char *string1, const char *string2, size_t n );
  1092.  
  1093. // strncpy 将一个字符串的前 n 个字符复制到另一字符串。
  1094.  
  1095. char *strncpy ( char *dest, const char *source, size_t n );
  1096.  
  1097. // strnicmp 对两个字符串的 n 个
  1098.  
  1099. // 字符进行不区分大小写的比较,以
  1100.  
  1101. // 确定其字母排序的次序。
  1102.  
  1103. int strnicmp ( const char *string1, const char *string2, size_t num);
  1104.  
  1105. // strrchr 查找一个字符串中的最后一个匹配字符。
  1106.  
  1107. char *strrchr ( const char *string, int c );
  1108.  
  1109. // strset 使用指定字符填充字符串。
  1110.  
  1111. char *strset( char *string1, int character );
  1112.  
  1113. // strspn 返回指定字符串中包含另一
  1114.  
  1115. // 字符串起始字符的长度。
  1116.  
  1117. size_t *strspn ( const char *string, const char *skipset );
  1118.  
  1119. // strstr 返回一个字符串在另一字符串中第一次发生匹配的指针。
  1120.  
  1121. char *strstr ( const char *string1, const char *string2 );
  1122.  
  1123. // strtok 从由指定的字符分隔的字符串中返回标记。
  1124.  
  1125. // 注意,在 Vugen 文件中,需要明确声明不返回
  1126.  
  1127. // integer 类型值的 C 函数。
  1128.  
  1129. char *strtok ( char *string, const char *delimiters );
  1130.  
  1131. // strupr 将字符串转换为大写。
  1132.  
  1133. char *strupr ( char *string );
  1134.  
  1135. // lrc_CoCreateInstance 函数在本地系统或为特定
  1136.  
  1137. // 对象创建的默认主机中创建该对象的单个未初始化实例
  1138.  
  1139. // 并返回未知接口,该接口可用于获取其他接口。创建
  1140.  
  1141. // 该实例后,VuGen 调用 lrc_CoGetClassObject
  1142.  
  1143. // 以检索接口。如果 COM 对象位于远程计算机中,
  1144.  
  1145. // 将使用 lrc_CreateInstanceEx 取代
  1146.  
  1147. // lrc_CoCreateInstance。
  1148.  
  1149. HRESULT lrc_CoCreateInstance(GUID * pClsid, IUnknown * pUnkOuter, unsigned long
  1150.  
  1151. dwClsContext, GUID * riid, LPVOID * ppv, BOOL __CheckResult);
  1152.  
  1153. // lrc_CreateInstanceEx 函数在指定的
  1154.  
  1155. // 远程计算机上创建未初始化的对象,并且
  1156.  
  1157. // 可以返回任意数量的请求接口。
  1158.  
  1159. HRESULT lrc_CreateInstanceEx(char *clsidStr, Iunknown *pUnk, DWORD dwClsCtx, ...);
  1160.  
  1161. // lrc_CoGetClassObject 函数提取
  1162.  
  1163. // 指定类的类工厂。
  1164.  
  1165. void lrc_CoGetClassObject( REFCLSID rclsid, Long dwClsContext, COSERVERINFO *
  1166.  
  1167. pServerInfo, REFIID riid, LPVOID * ppv);
  1168.  
  1169. // lrc_GUID 函数返回命名对象(例如
  1170.  
  1171. // COM 接口)的 GUID。VuGen 使用它
  1172.  
  1173. // 检索标识符,该标识符用于检索接口
  1174.  
  1175. // 标识符和用于 COM 通信的 COM 对象
  1176.  
  1177. // 的 PROGID。
  1178.  
  1179. GUID lrc_GUID(const char *str);
  1180.  
  1181. // lrc_GUID_by_ref 函数返回指向命名对象
  1182.  
  1183. // (例如 COM 接口)的 GUID 的指针。VuGen
  1184.  
  1185. // 使用它检索标识符,该标识符用于检索接口
  1186.  
  1187. // 标识符和用于 COM 通信的 COM 对象的
  1188.  
  1189. // PROGID。
  1190.  
  1191. GUID* lrc_GUID_by_ref(const char *str);
  1192.  
  1193. // lrc_DispMethod 函数使用 IDispatch:Invoke
  1194.  
  1195. // 方法调用接口的方法。lrc_DispMethod 调用
  1196.  
  1197. // 将 wflags 设置为 DISPATCH_METHOD。
  1198.  
  1199. VARIANT lrc_DispMethod(IDispatch * pDispatch, char *idName, unsigned long locale, ...);
  1200.  
  1201. // lrc_DispMethod1 使用 IDispatch 接口调用
  1202.  
  1203. // (或获取)同名的方法(或属性)。lrc_DispMethod1
  1204.  
  1205. // 调用将 wflags 设置为 DISPATCH_METHOD 和
  1206.  
  1207. // DISPATCH_PROPERTYGET。它可以用在方法与属性
  1208.  
  1209. // 具有同一名称的情况下。
  1210.  
  1211. VARIANT lrc_DispMethod1(IDispatch * pDispatch, char *idName, unsigned long locale, ...);
  1212.  
  1213. // lrc_DispPropertyGet 调用使用 IDispatch 接口
  1214.  
  1215. // 获取属性并将 wflags 设置为 DISPATCH_PROPERTYGET。
  1216.  
  1217. VARIANT lrc_DispPropertyGet(IDispatch * pDispatch, char *idName, unsigned long locale, ...);
  1218.  
  1219. // lrc_DispPropertyPut 使用 IDispatch 接口设置属性。
  1220.  
  1221. // 该调用将设置 DISPATCH_PROPERTYPUT 标志。
  1222.  
  1223. void lrc_DispPropertyPut(IDispatch * pDispatch, char *idName, unsigned long locale, ...);
  1224.  
  1225. // lrc_DispPropertyPutRef 使用 IDispatch 接口根据
  1226.  
  1227. // 引用设置属性,并设置 DISPATCH_PROPERTYPUTREF 标志。
  1228.  
  1229. void lrc_DispPropertyPutRef(IDispatch * pDispatch, char *idName, unsigned long locale, ...);
  1230.  
  1231. // lrc_CreateVBCollection 函数创建填充安全
  1232.  
  1233. // 数组值的 Visual Basic (VB) Collection 对象,
  1234.  
  1235. // 并将集合接口指针返回到 pCollection 中。
  1236.  
  1237. // VB 集合是由 COM 实现为接口的变量
  1238.  
  1239. // SafeArray。
  1240.  
  1241. HRESULT lrc_CreateVBCollection(SAFEARRAY *items, _Collection** pCollection);
  1242.  
  1243. // lrc_CoObject_from_variant 函数从变量中
  1244.  
  1245. // 提取 IUnknown 接口类型指针。
  1246.  
  1247. IUnknown* lrc_CoObject_from_variant(VARIANT var);
  1248.  
  1249. // lrc_DispObject_from_variant 函数从变量中
  1250.  
  1251. // 提取 IDispatch 接口类型指针。
  1252.  
  1253. IDispatch* lrc_DispObject_from_variant(VARIANT var);
  1254.  
  1255. // lrc_CoObject_by_ref_from_variant 函数从指向
  1256.  
  1257. // 变量的指针中提取 IUnknown 接口类型指针。
  1258.  
  1259. IUnknown* lrc_CoObject_by_ref_from_variant(VARIANT var);
  1260.  
  1261. // lrc_DispObject_by_ref_from_variant 函数从指向
  1262.  
  1263. // 变量的指针中提取 IDispatch 接口类型指针。
  1264.  
  1265. IDispatch* lrc_DispObject_by_ref_from_variant(VARIANT var);
  1266.  
  1267. // 输入表示整数的字符串时,lrc_int 函数返回
  1268.  
  1269. // integer 类型值。此参数可以是文字字符串、
  1270.  
  1271. // 变量或参数。
  1272.  
  1273. int lrc_int(const char* str);
  1274.  
  1275. // 输入表示整数的字符串时,lrc_int_by_ref
  1276.  
  1277. // 函数返回指向 integer 类型值的指针。此参数
  1278.  
  1279. // 可以是文字字符串、变量或
  1280.  
  1281. // 参数。
  1282.  
  1283. int* lrc_int_by_ref(const char* str);
  1284.  
  1285. // lrc_save_int 函数将 integer 值
  1286.  
  1287. // 保存在指定变量 name 下的字符串中,以便
  1288.  
  1289. // 您将其用于参数化。VuGen 将此函数生成
  1290.  
  1291. // 为注释掉的调用。如果要将此值用作参数,
  1292.  
  1293. // 可以更改 name 参数并取消调用的
  1294.  
  1295. // 注释。
  1296.  
  1297. int lrc_save_int(const char* name, int val);
  1298.  
  1299. // lrc_save_int_by_ref 函数将 integer 值
  1300.  
  1301. // 保存在字符串中,并将 val 设置为指向该字符串。
  1302.  
  1303. // VuGen 将此函数生成为注释掉的调用。如果要
  1304.  
  1305. // 将此值用作参数,可以更改 name 并取消调用
  1306.  
  1307. // 的注释。
  1308.  
  1309. int lrc_save_int_by_ref(const char* name, int *val);
  1310.  
  1311. // lrc_get_bstr_length 返回 BSTR 类型字符
  1312.  
  1313. // 串的长度。BSTR 字符串可以包括 null。
  1314.  
  1315. int lrc_get_bstr_length(BSTR str);
  1316.  
  1317. // lrc_get_bstr_sub 从输入字符串 str 的开始处
  1318.  
  1319. // 返回 size 个字符的子集。
  1320.  
  1321. BSTR lrc_get_bstr_sub(BSTR str, int size);
  1322.  
  1323. // lrc_print_bstr 将 BSTR 字符串输出到
  1324.  
  1325. // 用于调试目的的标准输出上。
  1326.  
  1327. int lrc_print_bstr(BSTR str);
  1328.  
  1329. // lrc_BSTR1 创建长度为 len 的 BSTR 字符串,它可以包括 null。
  1330.  
  1331. BSTR lrc_BSTR1 (const char* str, long len);
  1332.  
  1333. // lrc_save_BSTR1 函数将 BSTR str 保
  1334.  
  1335. // 存到字符串 name 中。
  1336.  
  1337. int lrc_save_BSTR1 (const char* name, BSTR str);
  1338.  
  1339. // 输入表示无符号整数的字符串时,lrc_uint 函数
  1340.  
  1341. // 返回无符号 integer 类型值。
  1342.  
  1343. unsigned int lrc_uint(const char* str);
  1344.  
  1345. // 输入表示无符号整数的字符串时,lrc_uint_by_ref
  1346.  
  1347. // 函数返回指向无符号 integer 类型值的
  1348.  
  1349. // 指针。
  1350.  
  1351. unsigned int* lrc_uint_by_ref(const char* str);
  1352.  
  1353. // lrc_save_uint 函数将无符号 integer 值
  1354.  
  1355. // 保存在指定变量 name 下的字符串中,以便
  1356.  
  1357. // 您将其用于参数化。VuGen 将此函数生
  1358.  
  1359. // 成为注释掉的调用。如果要将此值用作
  1360.  
  1361. // 参数,可以更改 name 参数并取消调用的
  1362.  
  1363. // 注释。
  1364.  
  1365. int lrc_save_uint(const char* name, unsigned int val);
  1366.  
  1367. // lrc_save_uint_by_ref 函数将
  1368.  
  1369. // 无符号 integer 类型值保存在字符串中,
  1370.  
  1371. // 并将 val 设置为指向该字符串。VuGen 将此
  1372.  
  1373. // 函数生成为注释掉的调用。如果要将此值
  1374.  
  1375. // 用作参数,可以更改 name 并取消调用的注释。
  1376.  
  1377. int lrc_save_uint_by_ref(const char* name, unsigned int *val);
  1378.  
  1379. // 输入表示 long 类型的字符串时,lrc_long 函数
  1380.  
  1381. // 返回长整型值。
  1382.  
  1383. long lrc_long(const char* str);
  1384.  
  1385. // 输入表示 long 类型的字符串时,lrc_long_by_ref 函数
  1386.  
  1387. // 返回指向长整型值的指针。
  1388.  
  1389. long* lrc_long_by_ref(const char* str);
  1390.  
  1391. // lrc_save_long 函数将长整型值
  1392.  
  1393. // 保存在指定变量 name 下的字符串中,
  1394.  
  1395. // 以便您可以将其用于参数化。VuGen
  1396.  
  1397. // 将此函数生成为注释掉的调用。如果
  1398.  
  1399. // 要将此值用作参数,可以更改 name
  1400.  
  1401. // 并取消调用的注释。
  1402.  
  1403. int lrc_save_long(const char* name, long val);
  1404.  
  1405. // lrc_save_long_by_ref 函数将长整型值保存在字符串中,
  1406.  
  1407. // 并将 val 设置为指向该字符串。
  1408.  
  1409. int lrc_save_long_by_ref(const char* name, long *val);
  1410.  
  1411. // 输入表示无符号 long 类型值的字符串时,
  1412.  
  1413. // lrc_ulong 函数返回无符号长整型值。
  1414.  
  1415. unsigned long lrc_ulong(const char* str);
  1416.  
  1417. // 输入表示无符号 long 类型值的字符串时,
  1418.  
  1419. // lrc_ulong_by_ref 函数返回指向无符号长整型值
  1420.  
  1421. // 的指针。
  1422.  
  1423. unsigned long* lrc_ulong_by_ref(const char* str);
  1424.  
  1425. // lrc_save_ulong 函数将无符号
  1426.  
  1427. // 长整型值保存在指定变量 name 下
  1428.  
  1429. // 的字符串中,以便您可以将其用于参数化。
  1430.  
  1431. // VuGen 将此函数生成为注释掉的调用。
  1432.  
  1433. // 如果要将此值用作参数,可以更改 name
  1434.  
  1435. // 并取消调用的注释。
  1436.  
  1437. int lrc_save_ulong(const char* name, unsigned long val);
  1438.  
  1439. // lrc_save_ulong_by_ref 函数将无符号长整型值保存为字符串,
  1440.  
  1441. // 并将 val 设置为指向该字符串。
  1442.  
  1443. int lrc_save_ulong_by_ref(const char* name, unsigned long *val);
  1444.  
  1445. // 输入表示短整型值的字符串时,lrc_short 函数
  1446.  
  1447. // 返回短整型值。
  1448.  
  1449. short lrc_short(const char* str);
  1450.  
  1451. // 输入表示短整型值的字符串时,lrc_short_by_ref 函数
  1452.  
  1453. // 返回指向短整型值的
  1454.  
  1455. // 指针。
  1456.  
  1457. short* lrc_short_by_ref(const char* str);
  1458.  
  1459. // lrc_save_short 函数将短整型值保存
  1460.  
  1461. // 在指定变量 name 下的字符串中,以便
  1462.  
  1463. // 您可以将其用于参数化。VuGen 将此
  1464.  
  1465. // 函数生成为注释掉的调用。如果要将此值
  1466.  
  1467. // 用作参数,可以更改 name 并取消调用的
  1468.  
  1469. // 注释。
  1470.  
  1471. int lrc_save_short(const char* name, short val);
  1472.  
  1473. // lrc_save_short_by_ref 函数将短整型值保存在字符串中,
  1474.  
  1475. // 并将 val 设置为指向该字符串。
  1476.  
  1477. int lrc_save_short_by_ref(const char* name, short *val);
  1478.  
  1479. // 输入表示货币值的字符串时,lrc_currency 函
  1480.  
  1481. // 数返回货币值。
  1482.  
  1483. CY lrc_currency(const char* str);
  1484.  
  1485. // 输入表示货币值的字符串时,
  1486.  
  1487. // lrc_currency_by_ref 函数返回指向
  1488.  
  1489. // 货币结构的指针。
  1490.  
  1491. CY* lrc_currency_by_ref(const char* str);
  1492.  
  1493. // lrc_save_currency 函数将货币 (CY) 值
  1494.  
  1495. // 保存在指定变量 name 下的字符串中,以便您
  1496.  
  1497. // 可以将其用于参数化。VuGen 将此函数
  1498.  
  1499. // 生成为注释掉的调用。如果要将此值
  1500.  
  1501. // 用作参数,可以更改 name 并取消调用的
  1502.  
  1503. // 注释。
  1504.  
  1505. int lrc_save_currency(const char* name, CY val);
  1506.  
  1507. // lrc_save_currency_by_ref 函数将由“val”
  1508.  
  1509. // 指针引用的货币值保存到字符串参数中。
  1510.  
  1511. int lrc_save_currency_by_ref(const char* name, CY *val);
  1512.  
  1513. // 输入表示 date 类型值的字符串时,
  1514.  
  1515. // lrc_date 函数返回 DATE 类型值。
  1516.  
  1517. DATE lrc_date(const char* str);
  1518.  
  1519. // 输入表示 date 类型值的字符串时,lrc_date_by_ref 函数
  1520.  
  1521. // 返回指向 DATE 的指针。
  1522.  
  1523. DATE* lrc_date_by_ref(const char* str);
  1524.  
  1525. // lrc_save_date 函数将 date 类型值保存
  1526.  
  1527. // 为字符串。VuGen 将此函数生成为注释掉的调用。
  1528.  
  1529. // 如果要将此值用作参数,可以更改 name 并取消
  1530.  
  1531. // 调用的注释。
  1532.  
  1533. int lrc_save_date(const char* name, DATE val);
  1534.  
  1535. // lrc_save_date_by_ref 函数将 date 类型值保存为字符串。
  1536.  
  1537. int lrc_save_date_by_ref(const char* name, DATE *val);
  1538.  
  1539. // 输入包含“true”或“false”的字符串时,
  1540.  
  1541. // lrc_bool 函数返回 Boolean 类型值。
  1542.  
  1543. VARIANT_BOOL lrc_bool(const char* str);
  1544.  
  1545. // 输入包含“true”或“false”的字符串时,
  1546.  
  1547. // lrc_bool_by_ref 函数返回指向 Boolean
  1548.  
  1549. // 类型值的指针。
  1550.  
  1551. VARIANT_BOOL* lrc_bool_by_ref(const char* str);
  1552.  
  1553. // lrc_save_bool 函数将 Boolean 类型值
  1554.  
  1555. // 保存为字符串参数。VuGen 将此函数生成为
  1556.  
  1557. // 注释掉的调用。如果要将此值用作参数,可以
  1558.  
  1559. // 更改 name 并取消调用的注释。
  1560.  
  1561. int lrc_save_bool(const char* name, VARIANT_BOOL val);
  1562.  
  1563. // lrc_save_bool_by_ref 函数将 Boolean 类型值
  1564.  
  1565. // 保存到字符串参数中。
  1566.  
  1567. int lrc_save_bool_by_ref(const char* name, VARIANT_BOOL *val);
  1568.  
  1569. // 输入表示无符号短整型值的字符串时,
  1570.  
  1571. // lrc_ushort 函数返回无符号
  1572.  
  1573. // 短整型值。
  1574.  
  1575. unsigned short lrc_ushort(const char* str);
  1576.  
  1577. // 输入表示无符号短整型值的字符串时,
  1578.  
  1579. // lrc_ushort_by_ref 函数返回指向无符号短整型值
  1580.  
  1581. // 的指针。
  1582.  
  1583. unsigned short* lrc_ushort_by_ref(const char* str);
  1584.  
  1585. // lrc_save_ushort 函数将无符号
  1586.  
  1587. // 短整型值保存在参数中。
  1588.  
  1589. int lrc_save_ushort(const char* name, unsigned short val);
  1590.  
  1591. // lrc_save_ushort_by_ref 函数将无符号短整型值
  1592.  
  1593. // 保存到参数中。
  1594.  
  1595. int lrc_save_ushort_by_ref(const char* name, unsigned short *val);
  1596.  
  1597. // 输入包含浮点数的字符串时,
  1598.  
  1599. // lrc_float 函数返回浮点数。
  1600.  
  1601. float lrc_float(const char* str);
  1602.  
  1603. // 输入包含浮点数的字符串时,
  1604.  
  1605. // lrc_float_by_ref 函数返回指向浮点数
  1606.  
  1607. // 的指针。
  1608.  
  1609. float* lrc_float_by_ref(const char* str);
  1610.  
  1611. // lrc_save_float 函数将浮点类型
  1612.  
  1613. // 浮点值保存在字符串参数中。VuGen 将此
  1614.  
  1615. // 函数生成为注释掉的调用。如果要使用
  1616.  
  1617. // 该参数,可以更改 name 并取消调用的
  1618.  
  1619. // 注释。
  1620.  
  1621. int lrc_save_float(const char* name, float val);
  1622.  
  1623. // lrc_save_float_by_ref 函数将浮点
  1624.  
  1625. // 类型浮点值保存在字符串参数中。
  1626.  
  1627. int lrc_save_float_by_ref(const char* name, float *val);
  1628.  
  1629. // 输入包含 double 类型值的字符串时,
  1630.  
  1631. // lrc_double 函数返回 double 类型值。
  1632.  
  1633. double lrc_double(const char* str);
  1634.  
  1635. // 输入包含 double 类型值的字符串时,lrc_double_by_ref
  1636.  
  1637. // 函数返回指向 double 类型值的指针。
  1638.  
  1639. double* lrc_double_by_ref(const char* str);
  1640.  
  1641. // lrc_save_double 函数将双精度浮点
  1642.  
  1643. // 类型值保存在字符串参数中。VuGen 将
  1644.  
  1645. // 此函数生成为注释掉的调用。如果要将
  1646.  
  1647. // 此值用作参数,可以更改 name 并取消
  1648.  
  1649. // 调用的注释。
  1650.  
  1651. int lrc_save_double(const char* name, double val);
  1652.  
  1653. // lrc_save_double_by_ref 函数将双精度浮点
  1654.  
  1655. // 类型值保存在字符串参数中。
  1656.  
  1657. int lrc_save_double_by_ref(const char* name, double *val);
  1658.  
  1659. // 输入包含 dword 类型值的字符串时,lrc_dword 函数
  1660.  
  1661. // 返回双字类型值。
  1662.  
  1663. DWORD lrc_dword(const char* str);
  1664.  
  1665. // lrc_save_dword 函数将双字类型值
  1666.  
  1667. // 保存在字符串参数中。VuGen 将此函数
  1668.  
  1669. // 生成为注释掉的调用。如果要将此值用作
  1670.  
  1671. // 参数,可以更改 name 并取消调用的注释。
  1672.  
  1673. int lrc_save_dword(const char* name, DWORD val);
  1674.  
  1675. // lrc_BSTR 函数将任何字符串转换为 BSTR。
  1676.  
  1677. BSTR lrc_BSTR(const char* str);
  1678.  
  1679. // lrc_save_BSTR 函数将 BSTR 值保存
  1680.  
  1681. // 为字符串参数。VuGen 将此函数生成为
  1682.  
  1683. // 注释掉的调用。如果要将此值用作参数,
  1684.  
  1685. // 可以更改 name 并取消调用的注释。
  1686.  
  1687. int lrc_save_BSTR(const char* name, BSTR val);
  1688.  
  1689. // lrc_ascii_BSTR 函数将字符串
  1690.  
  1691. // 转换为 ascii_BSTR。
  1692.  
  1693. BSTR lrc_ascii_BSTR(const char* str);
  1694.  
  1695. // lrc_ascii_BSTR_by_ref 函数将字符串转换
  1696.  
  1697. // 为 ascii_BSTR,并返回指向该 BSTR 的指针。
  1698.  
  1699. BSTR* lrc_ascii_BSTR_by_ref(const char* str);
  1700.  
  1701. // 当不再使用 COM 对象时,
  1702.  
  1703. // lrc_Release_Object 函数释放该对象。
  1704.  
  1705. // 释放对象后,对象的引用计数将减 1
  1706.  
  1707. // (例如,IUnknown_1 到 IUnknown_0)。
  1708.  
  1709. //
  1710.  
  1711. int lrc_Release_Object(const char* interface);
  1712.  
  1713. // lrc_save_ascii_BSTR 函数将 ascii BSTR 保存
  1714.  
  1715. // 到字符串参数中。VuGen 将此函数生成为注释掉的调用。
  1716.  
  1717. // 如果要将此值用作参数,可以更改 name 并取消调用的
  1718.  
  1719. // 注释。
  1720.  
  1721. int lrc_save_ascii_BSTR(const char* name, BSTR val);
  1722.  
  1723. // lrc_save_ascii_BSTR_by_ref 函数将 ascii BSTR 保
  1724.  
  1725. // 存到字符串参数中。
  1726.  
  1727. int lrc_save_ascii_BSTR_by_ref(const char* name, BSTR *val);
  1728.  
  1729. // lrc_save_VARIANT 函数将任何数据类型的值
  1730.  
  1731. // 保存到字符串参数中。
  1732.  
  1733. int lrc_save_VARIANT(const char* name, VARIANT val);
  1734.  
  1735. // lrc_save_variant_<Type-Name> 函数系列
  1736.  
  1737. // 由 VuGen 生成,用于将指定的 <Type-Name>
  1738.  
  1739. // 变量保存为字符串参数。VuGen 将这些代码行
  1740.  
  1741. // 生成为注释掉的调用。如果要将此值用作参数,
  1742.  
  1743. // 可以更改 name 并取消调用的
  1744.  
  1745. // 注释。
  1746.  
  1747. int lrc_save_variant_<Type-Name>(const char* name, VARIANT val);
  1748.  
  1749. // lrc_save_variant_short 将 short 变量类型值保存到字符串参数中。
  1750.  
  1751. int lrc_save_variant_short(const char* name, VARIANT val);
  1752.  
  1753. // lrc_save_variant_ushort 将 short 变量类型值保存到字符串参数中。
  1754.  
  1755. int lrc_save_variant_ushort(const char* name, VARIANT val);
  1756.  
  1757. // lrc_save_variant_char 将 short 变量类型值保存到字符串参数中。
  1758.  
  1759. int lrc_save_variant_char(const char* name, VARIANT val);
  1760.  
  1761. // lrc_save_variant_int 将 int 变量类型值保存到字符串参数中。
  1762.  
  1763. int lrc_save_variant_int(const char* name, VARIANT val);
  1764.  
  1765. // lrc_save_variant_uint 将无符号 integer 变量
  1766.  
  1767. // 类型值到字符串参数中。
  1768.  
  1769. int lrc_save_variant_uint(const char* name, VARIANT val);
  1770.  
  1771. // lrc_save_variant_ulong 将无符号 long 变量
  1772.  
  1773. // 类型值保存到字符串参数中。
  1774.  
  1775. int lrc_save_variant_ulong(const char* name, VARIANT val);
  1776.  
  1777. // lrc_save_variant_BYTE 将 BYTE 变量类型值保存到字符串参数中。
  1778.  
  1779. int lrc_save_variant_BYTE(const char* name, VARIANT val);
  1780.  
  1781. // lrc_save_variant_long 将 long 变量类型值保存到字符串参数中。
  1782.  
  1783. int lrc_save_variant_long(const char* name, VARIANT val);
  1784.  
  1785. // lrc_save_variant_float 将 float 变量类型值保存到字符串参数中。
  1786.  
  1787. int lrc_save_variant_float(const char* name, VARIANT val);
  1788.  
  1789. // lrc_save_variant_double 将 double 变量
  1790.  
  1791. // 类型值保存到字符串参数中。
  1792.  
  1793. int lrc_save_variant_double(const char* name, VARIANT val);
  1794.  
  1795. // lrc_save_variant_bool 将 boolean 变量类型值保存到字符串参数中。
  1796.  
  1797. int lrc_save_variant_bool(const char* name, VARIANT val);
  1798.  
  1799. // lrc_save_variant_scode 将 scode 变量类型值保存到字符串参数中。
  1800.  
  1801. int lrc_save_variant_scode(const char* name, VARIANT val);
  1802.  
  1803. // lrc_save_variant_currency 将 currency 变量
  1804.  
  1805. // 类型值保存到字符串参数中。
  1806.  
  1807. int lrc_save_variant_currency(const char* name, VARIANT val);
  1808.  
  1809. // lrc_save_variant_date 将 DATE 变量类型值保存到字符串参数中。
  1810.  
  1811. int lrc_save_variant_date(const char* name, VARIANT val);
  1812.  
  1813. // lrc_save_variant_BSTR 将 BSTR 变量类型值保存到字符串参数中。
  1814.  
  1815. int lrc_save_variant_BSTR(const char* name, VARIANT val);
  1816.  
  1817. // lrc_save_variant_<Type-Name>_by_ref 函数
  1818.  
  1819. // 系列由 VuGen 生成,以便将通过变量中的引用方式
  1820.  
  1821. // 存储的、指定了 <Type-Name> 的变量保存为字符串
  1822.  
  1823. // 参数。VuGen 将这些代码行生成为注释掉的调用。
  1824.  
  1825. // 如果要将此值用作参数,可以更改 name 并取消调用的
  1826.  
  1827. // 注释。
  1828.  
  1829. //
  1830.  
  1831. int lrc_save_variant_<Type-Name>_by_ref(const char* name, VARIANT val);
  1832.  
  1833. // lrc_save_variant_short_by_ref 将通过变量中
  1834.  
  1835. // 的引用方式存储的值保存为参数。
  1836.  
  1837. int lrc_save_variant_short_by_ref(const char* name, VARIANT val);
  1838.  
  1839. // lrc_save_variant_ushort_by_ref 将
  1840.  
  1841. // 通过变量中的引用方式存储的值保存为参数。
  1842.  
  1843. int lrc_save_variant_ushort_by_ref(const char* name, VARIANT val);
  1844.  
  1845. // lrc_save_variant_char_by_ref 将通过
  1846.  
  1847. // 变量中的引用方式存储的值保存为参数。
  1848.  
  1849. int lrc_save_variant_char_by_ref(const char* name, VARIANT val);
  1850.  
  1851. // lrc_save_variant_int_by_ref 将通过
  1852.  
  1853. // 变量中的引用方式存储的值保存为参数。
  1854.  
  1855. int lrc_save_variant_int_by_ref(const char* name, VARIANT val);
  1856.  
  1857. // lrc_save_variant_uint_by_ref 将通过
  1858.  
  1859. // 变量中的引用方式存储的值保存为参数。
  1860.  
  1861. int lrc_save_variant_uint_by_ref(const char* name, VARIANT val);
  1862.  
  1863. // lrc_save_variant_ulong_by_ref 将通过
  1864.  
  1865. // 变量中的引用方式存储的值保存为参数。
  1866.  
  1867. int lrc_save_variant_ulong_by_ref(const char* name, VARIANT val);
  1868.  
  1869. // lrc_save_variant_BYTE_by_ref 将通过
  1870.  
  1871. // 变量中的引用方式存储的值保存为参数。
  1872.  
  1873. int lrc_save_variant_BYTE_by_ref(const char* name, VARIANT val);
  1874.  
  1875. // lrc_save_variant_long_by_ref 将
  1876.  
  1877. // 变量中的引用方式存储的值保存为参数。
  1878.  
  1879. int lrc_save_variant_long_by_ref(const char* name, VARIANT val);
  1880.  
  1881. // lrc_save_variant_float_by_ref 将通过
  1882.  
  1883. // 变量中的引用方式存储的值保存为参数。
  1884.  
  1885. int lrc_save_variant_float_by_ref(const char* name, VARIANT val);
  1886.  
  1887. // lrc_save_variant_double_by_ref 将通过
  1888.  
  1889. // 变量中的引用方式存储的值保存为参数。
  1890.  
  1891. int lrc_save_variant_double_by_ref(const char* name, VARIANT val);
  1892.  
  1893. // lrc_save_variant_bool_by_ref 将通过
  1894.  
  1895. // 变量中的引用方式存储的值保存为参数。
  1896.  
  1897. int lrc_save_variant_bool_by_ref(const char* name, VARIANT val);
  1898.  
  1899. // lrc_save_variant_scode_by_ref 将通过
  1900.  
  1901. // 变量中的引用方式存储的值保存为参数。
  1902.  
  1903. int lrc_save_variant_scode_by_ref(const char* name, VARIANT val);
  1904.  
  1905. // lrc_save_variant_currency_by_ref 将通过
  1906.  
  1907. // 变量中的引用方式存储的值保存为参数。
  1908.  
  1909. int lrc_save_variant_currency_by_ref(const char* name, VARIANT val);
  1910.  
  1911. // lrc_save_variant_date_by_ref 将通过
  1912.  
  1913. // 变量中的引用方式存储的值保存为参数。
  1914.  
  1915. int lrc_save_variant_date_by_ref(const char* name, VARIANT val);
  1916.  
  1917. // lrc_save_variant_BSTR_by_ref 将通过
  1918.  
  1919. // 变量中的引用方式存储的值保存为参数。
  1920.  
  1921. int lrc_save_variant_BSTR_by_ref(const char* name, VARIANT val);
  1922.  
  1923. // lrc_BYTE 函数将字符串转换
  1924.  
  1925. // 为无符号字符(字节)数值。
  1926.  
  1927. BYTE lrc_BYTE(const char* str);
  1928.  
  1929. // lrc_BYTE_by_ref 函数将字符串转换
  1930.  
  1931. // 为无符号字符(字节)数值,并返回指向该字节
  1932.  
  1933. // 的指针。
  1934.  
  1935. char * lrc_BYTE_by_ref(const char* str);
  1936.  
  1937. // lrc_save_BYTE 函数将 byte 类型值保存为参数。
  1938.  
  1939. // VuGen 将此函数生成为注释掉的调用。如果要将此值
  1940.  
  1941. // 用作参数,可以更改 param_name 并取消调用的
  1942.  
  1943. // 注释。
  1944.  
  1945. int lrc_save_BYTE(const char* param_name, BYTE val);
  1946.  
  1947. // lrc_save_BYTE_by_ref 函数将 byte
  1948.  
  1949. // 类型值保存为参数。VuGen 将此函数生成为
  1950.  
  1951. // 注释掉的调用。如果要将此值用作参数,可以
  1952.  
  1953. // 更改 param_name 并取消调用的注释。
  1954.  
  1955. int lrc_save_BYTE_by_ref(const char* param_name, BYTE *val);
  1956.  
  1957. // 输入表示超级整型值的字符串时,lrc_hyper 函
  1958.  
  1959. // 数返回超级(64 位)整型值。
  1960.  
  1961. hyper lrc_hyper(const char* str);
  1962.  
  1963. // 输入表示超级整型值的字符串时,
  1964.  
  1965. // lrc_hyper_by_ref 函数返回指向
  1966.  
  1967. // 超级(64 位)整型值的指针。
  1968.  
  1969. hyper* lrc_hyper_by_ref(const char* str);
  1970.  
  1971. // lrc_save_hyper 函数将 64 位超级
  1972.  
  1973. // 整型值保存在字符串参数中。VuGen 将
  1974.  
  1975. // 此函数生成为注释掉的调用。如果要将
  1976.  
  1977. // 此值用作参数,可以更改 name 并取消
  1978.  
  1979. // 调用的注释。
  1980.  
  1981. int lrc_save_hyper(const char* name, hyper val);
  1982.  
  1983. // lrc_save_hyper_by_ref 函数将 64 位
  1984.  
  1985. // 超级整型值保存到字符串参数中。
  1986.  
  1987. int lrc_save_hyper_by_ref(const char* name, hyper *val);
  1988.  
  1989. // 输入表示无符号超级整型值的字符串时,
  1990.  
  1991. // lrc_uhyper 函数返回无符号超级
  1992.  
  1993. // (64 位)整型值。
  1994.  
  1995. uhyper lrc_uhyper(const char* str);
  1996.  
  1997. // 输入表示无符号超级整型值的字符串时,
  1998.  
  1999. // lrc_uhyper_by_ref 函数返回指向
  2000.  
  2001. // 无符号超级(64 位)整型值。
  2002.  
  2003. uhyper* lrc_uhyper_by_ref(const char* str);
  2004.  
  2005. // lrc_save_uhyper 函数将无符号 64 位
  2006.  
  2007. // 超级整型值保存在字符串参数中。VuGen 将
  2008.  
  2009. // 此函数生成为注释掉的调用。如果要将此值
  2010.  
  2011. // 用作参数,可以更改 name 并取消调用的
  2012.  
  2013. // 注释。
  2014.  
  2015. int lrc_save_uhyper(const char* name, uhyper val);
  2016.  
  2017. // lrc_save_uhyper_by_ref 函数将无符号
  2018.  
  2019. // 64 位超级整型值保存到字符串参数中。VuGen
  2020.  
  2021. // 将此函数生成为注释掉的调用。如果要将此值
  2022.  
  2023. // 用作参数,可以更改 name 并取消调用的
  2024.  
  2025. // 注释。
  2026.  
  2027. int lrc_save_uhyper_by_ref(const char* name, uhyper *val);
  2028.  
  2029. // lrc_char 函数将包含 char 类型数值
  2030.  
  2031. // 的字符串转换为 char 变量。
  2032.  
  2033. char lrc_char(const char* str);
  2034.  
  2035. // lrc_char_by_ref 函数将包含 char 类型数值的
  2036.  
  2037. // 字符串转换为 char 变量。
  2038.  
  2039. char* lrc_char_by_ref(const char* str);
  2040.  
  2041. // lrc_save_char 函数将 char 类型
  2042.  
  2043. // (0 - 127) 保存到字符串参数中。
  2044.  
  2045. // VuGen 将此函数生成为注释掉的调用。
  2046.  
  2047. // 如果要将此值用作参数,可以更改 name
  2048.  
  2049. // 并取消调用的注释。
  2050.  
  2051. int lrc_save_char(const char* name, char val);
  2052.  
  2053. // lrc_save_char_by_ref 函数将 char 类型
  2054.  
  2055. // (0 - 127) 保存到字符串参数中。VuGen 将
  2056.  
  2057. // 此函数生成为注释掉的调用。如果要将此值
  2058.  
  2059. // 用作参数,可以更改 name 并取消调用的
  2060.  
  2061. // 注释。
  2062.  
  2063. int lrc_save_char_by_ref(const char* name, char *val);
  2064.  
  2065. // lrc_variant_empty 函数返回空变量。
  2066.  
  2067. VARIANT lrc_variant_empty();
  2068.  
  2069. // lrc_variant_empty_by_variant 返回
  2070.  
  2071. // 包含对空变量引用的变量。
  2072.  
  2073. VARIANT lrc_variant_empty_by_variant();
  2074.  
  2075. // lrc_variant_null 函数返回 null 变量。
  2076.  
  2077. VARIANT lrc_variant_null();
  2078.  
  2079. // lrc_variant_null_by_variant 返回
  2080.  
  2081. // 包含对 null 变量引用的变量。
  2082.  
  2083. VARIANT lrc_variant_null_by_variant();
  2084.  
  2085. // lrc_variant_short 函数将字符串转换为
  2086.  
  2087. // 短整型值,并在变量中将其返回。
  2088.  
  2089. VARIANT lrc_variant_short(const char* str);
  2090.  
  2091. // lrc_variant_short_by_variant 函数将字符串
  2092.  
  2093. // 转换为短整型值,并返回包含对某变量(其中包含
  2094.  
  2095. // 该短整型值)引用的变量。
  2096.  
  2097. VARIANT lrc_variant_short_by_variant(const char* str);
  2098.  
  2099. // lrc_variant_ushort 函数将字符串转换为
  2100.  
  2101. // 无符号短整型值,并在变量中将其返回。
  2102.  
  2103. VARIANT lrc_variant_ushort(const char* str);
  2104.  
  2105. // lrc_variant_char 函数将字符串转换为
  2106.  
  2107. // char 类型值,并在变量中将其返回。
  2108.  
  2109. VARIANT lrc_variant_char(const char* str);
  2110.  
  2111. // lrc_variant_int 函数将字符串转换为整型
  2112.  
  2113. // 值,并在变量中将其返回。
  2114.  
  2115. VARIANT lrc_variant_int(const char* str);
  2116.  
  2117. // lrc_variant_uint 函数将字符串转换为
  2118.  
  2119. // 无符号整型值,并将其存储在变量中返回。
  2120.  
  2121. VARIANT lrc_variant_uint(const char* str);
  2122.  
  2123. // lrc_variant_ulong 函数将字符串转换为
  2124.  
  2125. // 无符号长整型值,并将其存储在变量中返回。
  2126.  
  2127. VARIANT lrc_variant_ulong(const char* str);
  2128.  
  2129. // lrc_variant_BYTE 函数将字符串转换为
  2130.  
  2131. // 无符号 char (byte) 类型值并存储于变量中。
  2132.  
  2133. VARIANT lrc_variant_BYTE(const char* str);
  2134.  
  2135. // lrc_variant_BYTE_by_variant 函数将字符串
  2136.  
  2137. // 转换为无符号 char (byte) 类型值,并返回包含
  2138.  
  2139. // 对某变量(包含该 byte)引用的变量。
  2140.  
  2141. VARIANT lrc_variant_BYTE_by_variant(const char* str);
  2142.  
  2143. // lrc_variant_long 函数将字符串
  2144.  
  2145. // 转换为存储于变量中的长整型值。
  2146.  
  2147. VARIANT lrc_variant_long(const char* str);
  2148.  
  2149. // lrc_variant_long_by_variant 函数将
  2150.  
  2151. // 字符串转换为存储于变量中的长整型值,并且
  2152.  
  2153. // 返回包含对某变量(其中包含该长整型值)
  2154.  
  2155. // 引用的变量。
  2156.  
  2157. VARIANT lrc_variant_long_by_variant(const char* str);
  2158.  
  2159. // lrc_variant_float 函数将字符串转换为
  2160.  
  2161. // 存储于变量中的浮点类型值。
  2162.  
  2163. VARIANT lrc_variant_float(const char* str);
  2164.  
  2165. // lrc_variant_float_by_variant 函数将
  2166.  
  2167. // 字符串转换为浮点类型值,并且返回包含对某
  2168.  
  2169. // 变量(其中包含该值)引用的变量。
  2170.  
  2171. VARIANT lrc_variant_float_by_variant(const char* str);
  2172.  
  2173. // lrc_variant_double 函数将字符串转换为
  2174.  
  2175. // 存储于变量中的双精度型浮点值。
  2176.  
  2177. VARIANT lrc_variant_double(const char* str);
  2178.  
  2179. // lrc_variant_double_by_variant 函数将
  2180.  
  2181. // 字符串转换为双精度型值,并且返回包含对某变量
  2182.  
  2183. // (其中包含该值)引用的变量。
  2184.  
  2185. VARIANT lrc_variant_double_by_variant(const char* str);
  2186.  
  2187. // lrc_variant_bool 函数将包含“true”或“false”
  2188.  
  2189. // 的字符串转换为存储于变量中的 Boolean 类型值。
  2190.  
  2191. VARIANT lrc_variant_bool(const char* str);
  2192.  
  2193. // lrc_variant_bool_by_variant 函数将
  2194.  
  2195. // 包含“true”或“false”的字符串转换为
  2196.  
  2197. // Boolean 值,并且返回包含对某变量(其中
  2198.  
  2199. // 包含该值)引用的变量。
  2200.  
  2201. VARIANT lrc_variant_bool_by_variant(const char* str);
  2202.  
  2203. // lrc_variant_scode 函数将包含系统错误代码值的。
  2204.  
  2205. // 字符串转换为存储于变量中的错误代码
  2206.  
  2207. VARIANT lrc_variant_scode(const char* errcode);
  2208.  
  2209. // lrc_variant_scode_by_variant 函数将
  2210.  
  2211. // 包含系统错误代码值的字符串转换为错误代码,
  2212.  
  2213. // 并且返回包含对某变量(其中包含该值)引用
  2214.  
  2215. // 的变量。
  2216.  
  2217. VARIANT lrc_variant_scode_by_variant(const char* errcode);
  2218.  
  2219. // lrc_variant_currency 函数将包含货币值
  2220.  
  2221. // 的字符串转换为存储于变量中的货币值。
  2222.  
  2223. VARIANT lrc_variant_currency(const char* str);
  2224.  
  2225. // lrc_variant_currency_by_variant 函数
  2226.  
  2227. // 将包含货币值的字符串转换为货币值,并且
  2228.  
  2229. // 返回包含对某变量(其中包含该值)引用的
  2230.  
  2231. // 变量。
  2232.  
  2233. VARIANT lrc_variant_currency_by_variant(const char* str);
  2234.  
  2235. // lrc_variant_date 函数将包含 date 类型值的
  2236.  
  2237. // 字符串转换为存储于变量中的 date 类型值。
  2238.  
  2239. VARIANT lrc_variant_date(const char* str);
  2240.  
  2241. // lrc_variant_date_by_variant 函数将
  2242.  
  2243. // 包含 date 类型值的字符串转换为 date 类型值,
  2244.  
  2245. // 并且返回包含对某变量(其中包含该 date 类型值)
  2246.  
  2247. // 引用的变量。
  2248.  
  2249. VARIANT lrc_variant_date_by_variant(const char* str);
  2250.  
  2251. // lrc_variant_BSTR 函数将字符串转换为
  2252.  
  2253. // 存储于变量中的 BSTR 类型值。
  2254.  
  2255. VARIANT lrc_variant_BSTR(const char* str);
  2256.  
  2257. // lrc_variant_BSTR_by_variant 函数将字符串
  2258.  
  2259. // 转换为 BSTR 值,并且返回包含对某变量(其中
  2260.  
  2261. // 包含该值)引用的变量。
  2262.  
  2263. VARIANT lrc_variant_BSTR_by_variant(const char* str);
  2264.  
  2265. // lrc_variant_ascii_BSTR 函数将字符串分配给
  2266.  
  2267. // 存储于变量中的 ASCII BSTR 值
  2268.  
  2269. VARIANT lrc_variant_ascii_BSTR(const char* str);
  2270.  
  2271. // lrc_variant_CoObject 函数将 IUnknown 接口
  2272.  
  2273. // 指针分配给变量。
  2274.  
  2275. VARIANT lrc_variant_CoObject(IUnknown* pUnknown);
  2276.  
  2277. // lrc_variant_CoObject_by_variant 函数将
  2278.  
  2279. // IUnknown 接口指针分配给变量,并且返回
  2280.  
  2281. // 包含对某变量(其中包含 IUnknown 引用)
  2282.  
  2283. // 引用的变量。
  2284.  
  2285. VARIANT lrc_variant_CoObject_by_variant(IUnknown* pUnknown);
  2286.  
  2287. // lrc_variant_DispObject 函数将
  2288.  
  2289. // IDispatch 接口指针分配给变量。
  2290.  
  2291. VARIANT lrc_variant_DispObject(IDispatch* pDispatch);
  2292.  
  2293. // lrc_variant_DispObject_by_variant 函数
  2294.  
  2295. // 将 IDispatch 接口指针分配给变量,并且返回包含
  2296.  
  2297. // 对某变量(其中包含 IDispatch 引用)引用的
  2298.  
  2299. // 变量。
  2300.  
  2301. VARIANT lrc_variant_DispObject_by_variant(IDispatch* pDispatch);
  2302.  
  2303. // lrc_variant_short_by_ref 函数将字符串
  2304.  
  2305. // 分配给通过变量中的引用方式存储的短整型值。
  2306.  
  2307. VARIANT lrc_variant_short_by_ref(const char* str);
  2308.  
  2309. // lrc_variant_ushort_by_ref 函数将字符串
  2310.  
  2311. // 分配给通过变量中的引用方式存储的无符号短整型值。
  2312.  
  2313. VARIANT lrc_variant_ushort_by_ref(const char* str);
  2314.  
  2315. // lrc_variant_char_by_ref 函数将字符串分配
  2316.  
  2317. // 给通过变量中的引用方式存储的 char 类型值。
  2318.  
  2319. VARIANT lrc_variant_char_by_ref(const char* str);
  2320.  
  2321. // lrc_variant_int_by_ref 函数将字符串分配给
  2322.  
  2323. // 通过变量中的引用方式存储的 integer 类型值。
  2324.  
  2325. VARIANT lrc_variant_int_by_ref(const char* str);
  2326.  
  2327. // lrc_variant_uint_by_ref 函数将字符串分配给
  2328.  
  2329. // 通过变量中的引用方式存储的无符号 integer 类型值。
  2330.  
  2331. VARIANT lrc_variant_uint_by_ref(const char* str);
  2332.  
  2333. // lrc_variant_ulong_by_ref 函数将字符串分配给
  2334.  
  2335. // 通过变量中的引用方式存储的长整型值。
  2336.  
  2337. VARIANT lrc_variant_ulong_by_ref(const char* str);
  2338.  
  2339. // lrc_variant_BYTE_by_ref 函数将字符串分配给
  2340.  
  2341. // 通过变量中的引用方式存储的 char (byte) 类型值。
  2342.  
  2343. VARIANT lrc_variant_BYTE_by_ref(const char* str);
  2344.  
  2345. // lrc_variant_long_by_ref 函数将字符串分配给
  2346.  
  2347. // 通过变量中的引用方式存储的长整型值。
  2348.  
  2349. VARIANT lrc_variant_long_by_ref(const char* str);
  2350.  
  2351. // lrc_variant_float_by_ref 函数将字符串分配给
  2352.  
  2353. // 通过变量中的引用方式存储的浮点型浮点值。
  2354.  
  2355. VARIANT lrc_variant_float_by_ref(const char* str);
  2356.  
  2357. // lrc_variant_double_by_ref 函数将字符串分配给
  2358.  
  2359. // 通过变量中的引用方式存储的双精度型值。
  2360.  
  2361. VARIANT lrc_variant_double_by_ref(const char* str);
  2362.  
  2363. // lrc_variant_bool_by_ref 函数将包含“true”
  2364.  
  2365. // 或“false”的字符串分配给通过变量中的
  2366.  
  2367. // 引用方式存储的 Boolean 类型值。
  2368.  
  2369. VARIANT lrc_variant_bool_by_ref(const char* str);
  2370.  
  2371. // lrc_variant_scode_by_ref 函数将包含
  2372.  
  2373. // 系统错误代码值的字符串分配给通过变量中的
  2374.  
  2375. // 引用方式存储的错误代码中。
  2376.  
  2377. VARIANT lrc_variant_scode_by_ref(const char* str);
  2378.  
  2379. // lrc_variant_currency_by_ref 函数将字符串
  2380.  
  2381. // 分配给通过变量中的引用方式存储的货币类型值。
  2382.  
  2383. VARIANT lrc_variant_currency_by_ref(const char* str);
  2384.  
  2385. // lrc_variant_date_by_ref 函数将字符串
  2386.  
  2387. // 分配给通过变量中的引用方式存储的 date 类型值。
  2388.  
  2389. VARIANT lrc_variant_date_by_ref(const char* str);
  2390.  
  2391. // lrc_variant_BSTR_by_ref 函数将字符串分配给的
  2392.  
  2393. // 通过变量中引用方式存储的 BSTR 值。
  2394.  
  2395. VARIANT lrc_variant_BSTR_by_ref(const char* str);
  2396.  
  2397. // lrc_variant_ascii_BSTR_by_ref 函数将字符串
  2398.  
  2399. // 分配给通过变量中的引用方式存储的 ascii BSTR 值。
  2400.  
  2401. VARIANT lrc_variant_ascii_BSTR_by_ref(const char* str);
  2402.  
  2403. // lrc_variant_CoObject_by_ref 函数将指针
  2404.  
  2405. // 分配给变量中的 IUnknown 接口。
  2406.  
  2407. VARIANT lrc_variant_CoObject_by_ref(IUnknown* pUnknown);
  2408.  
  2409. // lrc_variant_DispObject_by_ref 函数将指针
  2410.  
  2411. // 转换为变量中的 IDispatch 接口。
  2412.  
  2413. VARIANT lrc_variant_DispObject_by_ref(IDispatch* pDispatch);
  2414.  
  2415. // lrc_variant_variant_by_ref 函数创建包含现有
  2416.  
  2417. // 变量的新变量。
  2418.  
  2419. VARIANT lrc_variant_variant_by_ref(VARIANT * pVar);
  2420.  
  2421. // lrc_variant_from_variant_by_ref 函数从
  2422.  
  2423. // 另一个变量引用中获取变量。
  2424.  
  2425. VARIANT lrc_variant_from_variant_by_ref(VARIANT var);
  2426.  
  2427. // Create<n>D<Type-Name>Array 函数系列
  2428.  
  2429. // 创建由 Type-name 指定的类型的 n 维数组。
  2430.  
  2431. // 对于每一维,该调用必须指定 lower_bound
  2432.  
  2433. // 和 upper_bound。
  2434.  
  2435. <Type-Name> Array Create<n>D<Type-Name>Array(int lower_bound,int upper_bound, int
  2436.  
  2437. lower_bound, int upper_bound...);
  2438.  
  2439. // Destroy<Type-Name>Array 函数系列销毁
  2440.  
  2441. // 由 Type-name 指定的类型的数组。对于在
  2442.  
  2443. // 脚本中(而非由 VuGen)创建的数组,可以使用
  2444.  
  2445. // 它们恢复内存。
  2446.  
  2447. void Destroy<Type-Name>Array(<Type-Name>Array Array);
  2448.  
  2449. // DestroyBoolArray 释放由数组占用的内存。
  2450.  
  2451. // 该函数用于恢复由脚本为数组分配的内存。
  2452.  
  2453. void DestroyBoolArray(BoolArray Array);
  2454.  
  2455. // DestroyBstrArray 释放由数组占用的内存。
  2456.  
  2457. // 该函数用于恢复由脚本为数组分配的内存。
  2458.  
  2459. void DestroyBstrArray(BstrArray Array);
  2460.  
  2461. // DestroyByteArray 释放由数组占用的内存。
  2462.  
  2463. // 该函数用于恢复由脚本为数组分配的内存。
  2464.  
  2465. void DestroyByteArray(ByteArray Array);
  2466.  
  2467. // DestroyCharArray 释放由数组占用的内存。
  2468.  
  2469. // 该函数用于恢复由脚本为数组分配的内存。
  2470.  
  2471. void DestroyCharArray(CharArray Array);
  2472.  
  2473. // DestroyCoObjectArray 释放由数组占用的内存。
  2474.  
  2475. // 该函数用于恢复由脚本为数组分配的内存。
  2476.  
  2477. void DestroyCoObjectArray(CoObjectArray Array);
  2478.  
  2479. // DestroyCurrencyArray 释放由数组占用的内存。于
  2480.  
  2481. // 该函数用恢复由脚本为数组分配的内存。
  2482.  
  2483. void DestroyCurrencyArray(CurrencyArray Array);
  2484.  
  2485. // DestroyDateArray 释放由数组占用的内存。
  2486.  
  2487. // 该函数用于恢复由脚本为数组分配的内存。
  2488.  
  2489. void DestroyDateArray(CurrencyArray Array);
  2490.  
  2491. // DestroyDispObjectArray 释放由数组占用的内存。
  2492.  
  2493. // 该函数用于恢复由脚本为数组分配的内存。
  2494.  
  2495. void DestroyDispObjectArray(DispObjectArray Array);
  2496.  
  2497. // DestroyDoubleArray 释放由数组占用的内存。
  2498.  
  2499. // 该函数用于恢复由脚本为数组分配的内存。
  2500.  
  2501. void DestroyDoubleArray(DoubleArray Array);
  2502.  
  2503. // DestroyErrorArray 释放由数组占用的内存。
  2504.  
  2505. // 该函数用于恢复由脚本为数组分配的内存。
  2506.  
  2507. void DestroyErrorArray(ErrorArray Array);
  2508.  
  2509. // DestroyFloatArray 释放由数组占用的内存。
  2510.  
  2511. // 该函数用于恢复由脚本为数组分配的内存。
  2512.  
  2513. void DestroyFloatArray(FloatArray Array);
  2514.  
  2515. // DestroyIntArray 释放由数组占用的内存。
  2516.  
  2517. // 该函数用于恢复由脚本为数组分配的内存。
  2518.  
  2519. void DestroyIntArray(IntArray Array);
  2520.  
  2521. // DestroyLongArray 释放由数组占用的内存。
  2522.  
  2523. // 该函数用于恢复由脚本为数组分配的内存。
  2524.  
  2525. void DestroyLongArray(LongArray Array);
  2526.  
  2527. // DestroyShortArray 释放由数组占用的内存。
  2528.  
  2529. // 该函数用于恢复由脚本为数组分配的内存。
  2530.  
  2531. void DestroyShortArray(ShortArray Array);
  2532.  
  2533. // DestroyUIntArray 释放由数组占用的内存。
  2534.  
  2535. // 该函数用于恢复由脚本为数组分配的内存。
  2536.  
  2537. void DestroyUIntArray(UIntArray Array);
  2538.  
  2539. // DestroyULongArray 释放由数组占用的内存。
  2540.  
  2541. // 该函数用于恢复由脚本为数组分配的内存。
  2542.  
  2543. void DestroyULongArray(ULongArray Array);
  2544.  
  2545. // DestroyUShortArray 释放由数组占用的内存。
  2546.  
  2547. // 该函数用于恢复由脚本为数组分配的内存。
  2548.  
  2549. void DestroyUShortArray(UShortArray Array);
  2550.  
  2551. // DestroyVariantArray 释放由数组占用的内存。
  2552.  
  2553. // 该函数用于恢复由脚本为数组分配的内存。
  2554.  
  2555. void DestroyVariantArray(VariantArray Array);
  2556.  
  2557. // GetBufferFrom<n>DByteArray 函数系列从 n 维
  2558.  
  2559. // byte 类型数组的最后一维中提取缓冲区。此函数
  2560.  
  2561. // 的返回值是一个指向 byte 类型的缓冲区的指针。
  2562.  
  2563. // 缓冲区的大小返回到 *plinesize 所指定的
  2564.  
  2565. // 地址中。
  2566.  
  2567. char * GetBufferFrom<n>DByteArray(ByteArray Array, int ind1...indn-, size_t *pLineSize);
  2568.  
  2569. // Fill<n>DByteArray 函数系列将 n 维 byte 数组
  2570.  
  2571. // 的最后一维中填充缓冲区的内容。
  2572.  
  2573. char * Fill<n>DByteArray(ByteArray Array, int ind1...indn-, const char* buffer, size_t
  2574.  
  2575. buff_size);
  2576.  
  2577. // lrc_variant_<Type-Name>Array 函数系列将在
  2578.  
  2579. // Type-Name 中指定的类型的数组分配给变量。
  2580.  
  2581. VARIANT lrc_variant_<Type-Name>Array(<Type-Name>Array array);
  2582.  
  2583. // lrc_variant_BoolArray 将数组分配给变量。
  2584.  
  2585. VARIANT lrc_variant_BoolArray(BoolArray array);
  2586.  
  2587. // lrc_variant_BstrArray 将数组分配给变量。
  2588.  
  2589. VARIANT lrc_variant_BstrArray(BstrArray array);
  2590.  
  2591. // lrc_variant_ByteArray 将数组分配给变量。
  2592.  
  2593. VARIANT lrc_variant_ByteArray(ByteArray array);
  2594.  
  2595. // lrc_variant_CharArray 将数组分配给变量。
  2596.  
  2597. VARIANT lrc_variant_CharArray(CharArray array);
  2598.  
  2599. // lrc_variant_CoObjectArray 将数组分配给变量。
  2600.  
  2601. VARIANT lrc_variant_CoObjectArray(CoObjectArray array);
  2602.  
  2603. // lrc_variant_CurrencyArray 将数组分配给变量。
  2604.  
  2605. VARIANT lrc_variant_CurrencyArray(CurrencyArray array);
  2606.  
  2607. // lrc_variant_DateArray 将数组分配给变量。
  2608.  
  2609. VARIANT lrc_variant_DateArray(DateArray array);
  2610.  
  2611. // lrc_variant_DispObjectArray 将数组分配给变量。
  2612.  
  2613. VARIANT lrc_variant_DispObjectArray(DispObjectArray array);
  2614.  
  2615. // lrc_variant_DoubleArray 将数组分配给变量。
  2616.  
  2617. VARIANT lrc_variant_DoubleArray(DoubleArray array);
  2618.  
  2619. // lrc_variant_ErrorArray 将数组分配给变量。
  2620.  
  2621. VARIANT lrc_variant_ErrorArray(ErrorArray array);
  2622.  
  2623. // lrc_variant_FloatArray 将数组分配给变量。
  2624.  
  2625. VARIANT lrc_variant_FloatArray(FloatArray array);
  2626.  
  2627. // lrc_variant_IntArray 将数组分配给变量。
  2628.  
  2629. VARIANT lrc_variant_IntArray(IntArray array);
  2630.  
  2631. // lrc_variant_LongArray 将数组分配给变量。
  2632.  
  2633. VARIANT lrc_variant_LongArray(LongArray array);
  2634.  
  2635. // lrc_variant_ShortArray 将数组分配给变量。
  2636.  
  2637. VARIANT lrc_variant_ShortArray(ShortArray array);
  2638.  
  2639. // lrc_variant_UintArray 将数组分配给变量。
  2640.  
  2641. VARIANT lrc_variant_UintArray(UintArray array);
  2642.  
  2643. // lrc_variant_UlongArray 将数组分配给变量。
  2644.  
  2645. VARIANT lrc_variant_UlongArray(UlongArray array);
  2646.  
  2647. // lrc_variant_UshortArray 将数组分配给变量。
  2648.  
  2649. VARIANT lrc_variant_UshortArray(UshortArray array);
  2650.  
  2651. // lrc_variant_VariantArray 将数组分配给变量。
  2652.  
  2653. VARIANT lrc_variant_VariantArray(VariantArray array);
  2654.  
  2655. // lrc_variant_<Type-Name>Array_by_ref 函数系列
  2656.  
  2657. // 返回对由 Type-name 指定的类型的数组的引用。返回类型
  2658.  
  2659. // 为变量。
  2660.  
  2661. VARIANT lrc_variant_<Type-Name>Array_by_ref( <Type-Name>Array array );
  2662.  
  2663. // lrc_variant_BoolArray_by_ref 返回对数组的引用
  2664.  
  2665. VARIANT lrc_variant_BoolArray_by_ref(BoolArray array);
  2666.  
  2667. // lrc_variant_BstrArray_by_ref 返回对数组的引用
  2668.  
  2669. VARIANT lrc_variant_BstrArray_by_ref(BstrArray array);
  2670.  
  2671. // lrc_variant_ByteArray_by_ref 返回对数组的引用
  2672.  
  2673. VARIANT lrc_variant_ByteArray_by_ref(ByteArray array);
  2674.  
  2675. // lrc_variant_CharArray_by_ref 返回对数组的引用
  2676.  
  2677. VARIANT lrc_variant_CharArray_by_ref(CharArray array);
  2678.  
  2679. // lrc_variant_CoObjectArray_by_ref 返回对数组的引用
  2680.  
  2681. VARIANT lrc_variant_CoObjectArray_by_ref(CoObjectArray array);
  2682.  
  2683. // lrc_variant_CurrencyArray_by_ref 返回对数组的引用
  2684.  
  2685. VARIANT lrc_variant_CurrencyArray_by_ref(CurrencyArray array);
  2686.  
  2687. // lrc_variant_DateArray_by_ref 返回对数组的引用
  2688.  
  2689. VARIANT lrc_variant_DateArray_by_ref(DateArray array);
  2690.  
  2691. // lrc_variant_DispObjectArray_by_ref 返回对数组的引用
  2692.  
  2693. VARIANT lrc_variant_DispObjectArray_by_ref(DispObjectArray array);
  2694.  
  2695. // lrc_variant_DoubleArray_by_ref 返回对数组的引用
  2696.  
  2697. VARIANT lrc_variant_DoubleArray_by_ref(DoubleArray array);
  2698.  
  2699. // lrc_variant_ErrorArray_by_ref 返回对数组的引用
  2700.  
  2701. VARIANT lrc_variant_ErrorArray_by_ref(ErrorArray array);
  2702.  
  2703. // lrc_variant_FloatArray_by_ref 返回对数组的引用
  2704.  
  2705. VARIANT lrc_variant_FloatArray_by_ref(FloatArray array);
  2706.  
  2707. // lrc_variant_IntArray_by_ref 返回对数组的引用
  2708.  
  2709. VARIANT lrc_variant_IntArray_by_ref(IntArray array);
  2710.  
  2711. // lrc_variant_LongArray_by_ref 返回对数组的引用
  2712.  
  2713. VARIANT lrc_variant_LongArray_by_ref(LongArray array);
  2714.  
  2715. // lrc_variant_ShortArray_by_ref 返回对数组的引用
  2716.  
  2717. VARIANT lrc_variant_ShortArray_by_ref(ShortArray array);
  2718.  
  2719. // lrc_variant_UintArray_by_ref 返回对数组的引用
  2720.  
  2721. VARIANT lrc_variant_UintArray_by_ref(UintArray array);
  2722.  
  2723. // lrc_variant_UlongArray_by_ref 返回对数组的引用
  2724.  
  2725. VARIANT lrc_variant_UlongArray_by_ref(UlongArray array);
  2726.  
  2727. // lrc_variant_UshortArray_by_ref 返回对数组的引用
  2728.  
  2729. VARIANT lrc_variant_UshortArray_by_ref(UshortArray array);
  2730.  
  2731. // lrc_variant_VariantArray_by_ref 返回对数组的引用
  2732.  
  2733. VARIANT lrc_variant_VariantArray_by_ref(VariantArray array);
  2734.  
  2735. // lrc_Get<Type-Name>ArrayFromVariant 函数系列从变量中
  2736.  
  2737. // 提取由 Type-name 指定的类型的数组。
  2738.  
  2739. <Type-Name> lrc_Get<Type-Name>ArrayFromVariant const VARIANT* var);
  2740.  
  2741. // lrc_GetBoolArrayFromVariant 从变量中提取数组。
  2742.  
  2743. VARIANT lrc_GetBoolArrayFromVariant(const VARIANT* var);
  2744.  
  2745. // lrc_GetBstrArrayFromVariant 从变量中提取数组。
  2746.  
  2747. VARIANT lrc_GetBstrArrayFromVariant(const VARIANT* var);
  2748.  
  2749. // lrc_GetByteArrayFromVariant 从变量中提取数组。
  2750.  
  2751. VARIANT lrc_GetByteArrayFromVariant(const VARIANT* var);
  2752.  
  2753. // lrc_GetCharArrayFromVariant 从变量中提取数组。
  2754.  
  2755. VARIANT lrc_GetCharArrayFromVariant(const VARIANT* var);
  2756.  
  2757. // lrc_GetCoObjectArrayFromVariant 从变量中提取数组。
  2758.  
  2759. VARIANT lrc_GetCoObjectArrayFromVariant(const VARIANT* var);
  2760.  
  2761. // lrc_GetCoInstanceArrayFromVariant 从变量中提取数组。
  2762.  
  2763. VARIANT lrc_GetCoInstanceArrayFromVariant(const VARIANT* var);
  2764.  
  2765. // lrc_GetCurrencyArrayFromVariant 从变量中提取数组。
  2766.  
  2767. VARIANT lrc_GetCurrencyArrayFromVariant(const VARIANT* var);
  2768.  
  2769. // lrc_GetDateArrayFromVariant 从变量中提取数组。
  2770.  
  2771. VARIANT lrc_GetDateArrayFromVariant(const VARIANT* var);
  2772.  
  2773. // lrc_GetDispObjectArrayFromVariant 从变量中提取数组。
  2774.  
  2775. VARIANT lrc_GetDispObjectArrayFromVariant(const VARIANT* var);
  2776.  
  2777. // lrc_GetDoubleArrayFromVariant 从变量中提取数组。
  2778.  
  2779. VARIANT lrc_GetDoubleArrayFromVariant(const VARIANT* var);
  2780.  
  2781. // lrc_GetErrorArrayFromVariant 从变量中提取数组。
  2782.  
  2783. VARIANT lrc_GetErrorArrayFromVariant(const VARIANT* var);
  2784.  
  2785. // lrc_GetFloatArrayFromVariant 从变量中提取数组。
  2786.  
  2787. VARIANT lrc_GetFloatArrayFromVariant(const VARIANT* var);
  2788.  
  2789. // lrc_GetIntArrayFromVariant 从变量中提取数组。
  2790.  
  2791. VARIANT lrc_GetIntArrayFromVariant(const VARIANT* var);
  2792.  
  2793. // lrc_GetLongArrayFromVariant 从变量中提取数组。
  2794.  
  2795. VARIANT lrc_GetLongArrayFromVariant(const VARIANT* var);
  2796.  
  2797. // lrc_GetShortArrayFromVariant 从变量中提取数组。
  2798.  
  2799. VARIANT lrc_GetShortArrayFromVariant(const VARIANT* var);
  2800.  
  2801. // lrc_GetUintArrayFromVariant 从变量中提取数组。
  2802.  
  2803. VARIANT lrc_GetUintArrayFromVariant(const VARIANT* var);
  2804.  
  2805. // lrc_GetUlongArrayFromVariant 从变量中提取数组。
  2806.  
  2807. VARIANT lrc_GetUlongArrayFromVariant(const VARIANT* var);
  2808.  
  2809. // lrc_GetUshortArrayFromVariant 从变量中提取数组。
  2810.  
  2811. VARIANT lrc_GetUshortArrayFromVariant(const VARIANT* var);
  2812.  
  2813. // lrc_GetVariantArrayFromVariant 从变量中提取数组。
  2814.  
  2815. VARIANT lrc_GetVariantArrayFromVariant(const VARIANT* var);
  2816.  
  2817. // lrc_Get<Type-Name>Array_by_refFromVariant
  2818.  
  2819. // 函数系列从变量中的指针引用提取在 Type-Name 中
  2820.  
  2821. // 指定的类型的数组。
  2822.  
  2823. <Type-Name> lrc_Get<Type-Name>Array_by_refFromVariant const VARIANT* var);
  2824.  
  2825. // lrc_GetShortArray_by_refFromVariant 从变量中的
  2826.  
  2827. // 指针引用提取数组。
  2828.  
  2829. VARIANT lrc_GetShortArray_by_refFromVariant(const VARIANT* var);
  2830.  
  2831. // lrc_GetUshortArray_by_refFromVariant 从变量中的
  2832.  
  2833. // 指针引用提取数组。
  2834.  
  2835. VARIANT lrc_GetUshortArray_by_refFromVariant(const VARIANT* var);
  2836.  
  2837. // lrc_GetCharArray_by_refFromVariant 从变量中的
  2838.  
  2839. // 指针引用提取数组。
  2840.  
  2841. VARIANT lrc_GetCharArray_by_refFromVariant(const VARIANT* var);
  2842.  
  2843. // lrc_GetIntArray_by_refFromVariant 从变量中的
  2844.  
  2845. // 指针引用提取数组。
  2846.  
  2847. VARIANT lrc_GetIntArray_by_refFromVariant(const VARIANT* var);
  2848.  
  2849. // lrc_GetUintArray_by_refFromVariant 从变量中的
  2850.  
  2851. // 指针引用提取数组。
  2852.  
  2853. VARIANT lrc_GetUintArray_by_refFromVariant(const VARIANT* var);
  2854.  
  2855. // lrc_GetUlongArray_by_refFromVariant 从变量中的
  2856.  
  2857. // 指针引用提取数组。
  2858.  
  2859. VARIANT lrc_GetUlongArray_by_refFromVariant(const VARIANT* var);
  2860.  
  2861. // lrc_GetByteArray_by_refFromVariant 从变量中的
  2862.  
  2863. // 指针引用提取数组。
  2864.  
  2865. VARIANT lrc_GetByteArray_by_refFromVariant(const VARIANT* var);
  2866.  
  2867. // lrc_GetLongArray_by_refFromVariant 从变量中的
  2868.  
  2869. // 指针引用提取数组。
  2870.  
  2871. VARIANT lrc_GetLongArray_by_refFromVariant(const VARIANT* var);
  2872.  
  2873. // lrc_GetFloatArray_by_refFromVariant 从变量中的
  2874.  
  2875. // 指针引用提取数组。
  2876.  
  2877. VARIANT lrc_GetFloatArray_by_refFromVariant(const VARIANT* var);
  2878.  
  2879. // lrc_GetDoubleArray_by_refFromVariant 从变量中的
  2880.  
  2881. // 指针引用提取数组。
  2882.  
  2883. VARIANT lrc_GetDoubleArray_by_refFromVariant(const VARIANT* var);
  2884.  
  2885. // lrc_GetBoolArray_by_refFromVariant 从变量中的
  2886.  
  2887. // 指针引用提取数组。
  2888.  
  2889. VARIANT lrc_GetBoolArray_by_refFromVariant(const VARIANT* var);
  2890.  
  2891. // lrc_GetScodeArray_by_refFromVariant 从变量中的
  2892.  
  2893. // 指针引用提取数组。
  2894.  
  2895. VARIANT lrc_GetScodeArray_by_refFromVariant(const VARIANT* var);
  2896.  
  2897. // lrc_GetCurrencyArray_by_refFromVariant 从变量中的
  2898.  
  2899. // 指针引用提取数组。
  2900.  
  2901. VARIANT lrc_GetCurrencyArray_by_refFromVariant(const VARIANT* var);
  2902.  
  2903. // lrc_GetDateArray_by_refFromVariant 从变量中的
  2904.  
  2905. // 指针引用提取数组。
  2906.  
  2907. VARIANT lrc_GetDateArray_by_refFromVariant(const VARIANT* var);
  2908.  
  2909. // lrc_GetBstrArray_by_refFromVariant 从变量中的
  2910.  
  2911. // 指针引用提取数组。
  2912.  
  2913. VARIANT lrc_GetBstrArray_by_refFromVariant(const VARIANT* var);
  2914.  
  2915. // lrc_GetCoObjectArray_by_refFromVariant 从变量中的
  2916.  
  2917. // 指针引用提取数组。
  2918.  
  2919. VARIANT lrc_GetCoObjectArray_by_refFromVariant(const VARIANT* var);
  2920.  
  2921. // lrc_GetDispObjectArray_by_refFromVariant 从变量中的
  2922.  
  2923. // 指针引用提取数组。
  2924.  
  2925. VARIANT lrc_GetDispObjectArray_by_refFromVariant(DispObjectArray array);
  2926.  
  2927. // lrc_GetVariantArray_by_refFromVariant 从变量中的
  2928.  
  2929. // 指针引用提取数组。
  2930.  
  2931. VARIANT lrc_GetVariantArray_by_refFromVariant(DispObjectArray array);
  2932.  
  2933. // GetElementFrom<n>D<Type-Name>Array
  2934.  
  2935. // 函数系列从 SafeArray 中检索指定类型的元素。
  2936.  
  2937. // 返回变量的类型是实际语言类型(如无符号长整型),
  2938.  
  2939. // 而非 lrc 类型(例如,ulong 类型)。
  2940.  
  2941. // VuGen 将这些调用生成为注释掉的代码,
  2942.  
  2943. // 您可以使用它们存储参数化变量。若要使用
  2944.  
  2945. // 这些调用,请取消它们的注释并将函数
  2946.  
  2947. // 返回值分配给适当类型的变量。
  2948.  
  2949. <Actual Type-Name> GetElementFrom<n>D<Type-Name>Array(<Type-Name>Array Array, int
  2950.  
  2951. index1,..., indexn);
  2952.  
  2953. // PutElementIn<n>D<Type-Name>Array 函数
  2954.  
  2955. // 系列将给定类型的值存储于在 Type-Name 中
  2956.  
  2957. // 给出的 lrc 类型的数组中。
  2958.  
  2959. void PutElementIn<n>D<Type-Name>Array(<Type-Name>Array array, int index1,...int indexn,
  2960.  
  2961. <Actual Type-Name> Value);
  2962.  
  2963. // lrc_FetchRecordset 函数将指针在记录集中
  2964.  
  2965. // 向前或向后移动到当前记录。
  2966.  
  2967. void lrc_FetchRecordset(recordset15* recordset,
  2968.  
  2969. int steps);
  2970.  
  2971. // lrc_print_recordset 函数输出由 NumberOfRows
  2972.  
  2973. // 指示的行数。如果 NumberOfRows 等于 -1,则
  2974.  
  2975. // 函数将输出所有行。
  2976.  
  2977. void lrc_print_recordset (Recordset15* recordset, long NumberOfRows);
  2978.  
  2979. // lrc_print_variant 函数输出变量。
  2980.  
  2981. // 如果变量包含数组或记录,则只输出
  2982.  
  2983. // 内容的类型。
  2984.  
  2985. void lrc_print_variant (Variant var);
  2986.  
  2987. // lrc_save_rs_param 函数将指定字段
  2988.  
  2989. // 的值保存到 ADO 记录集的记录中。
  2990.  
  2991. void lrc_save_rs_param(Recordset15* recordset, int row, short col, void* reserved,
  2992.  
  2993. char*param_name);
  2994.  
  2995. // lrc_RecordsetWrite 函数更新 ADO
  2996.  
  2997. // 记录集中的字段。首先,它将指针在记录
  2998.  
  2999. // 集中移动指定步数。然后,它将值写入当前
  3000.  
  3001. // 记录中。此函数可以表示用户对网格中项目
  3002.  
  3003. // 的更改。
  3004.  
  3005. void lrc_RecordsetWrite(Recordset15* recordset, VARIANT vIndex, VARIANT vValue, long
  3006.  
  3007. steps);
  3008.  
  3009. // lrc_<type>_by_ref 函数将指针的内存分配给
  3010.  
  3011. // 类型 <type> 的变量,并使用 str 中包含的值
  3012.  
  3013. // 对其进行初始化。
  3014.  
  3015. int * lrc_<type>_by_ref(const char* str);
  3016.  
  3017. // lrc_FetchRecordsetUntilEOF 函数将指针
  3018.  
  3019. // 在记录中移动,直到移动到记录集的末尾。
  3020.  
  3021. void lrc_FetchRecordsetUntilEOF(Recordset15* recordset);
  3022.  
  3023. // lrc_RecordsetAddColumn 函数将新列添加
  3024.  
  3025. // 到记录集中。它类似于 Append ADO 方法。
  3026.  
  3027. void lrc_RecordsetAddColumn(Recordset15* recordset, BSTR name, int type,
  3028.  
  3029. long
  3030.  
  3031. size, int attribute);
  3032.  
  3033. // lrc_RecordsetDeleteColumn 函数从记录集中删除列。
  3034.  
  3035. // 它类似于 Delete ADO 方法。
  3036.  
  3037. void lrc_RecordsetDeleteColumn(Recordset15* recordset, VARIANT index);
  3038.  
  3039. // lrd_alloc_connection 函数分配 LRD_CONNECTION
  3040.  
  3041. // 结构。在 lrd_free_connection 释放该结构之前,它是
  3042.  
  3043. // 有效的。
  3044.  
  3045. LRDRET lrd_alloc_connection ( LRD_CONNECTION **mpptConnection, unsigned int
  3046.  
  3047. muiDBType, LRD_CONTEXT *mptContext, long mliOption, int miDBErrorSeverity );
  3048.  
  3049. // lrd_assign 函数将 null 终止字符串
  3050.  
  3051. // (文字或存储区域)通过其描述符分配给变量。
  3052.  
  3053. // 必要时,字符串将被转换为变量的
  3054.  
  3055. // 数据类型和长度。若要在字符串中包含
  3056.  
  3057. // null 字符 ('\0'),或者如果字符串不是
  3058.  
  3059. // null 终止的,请使用 lrd_assign_ext 或
  3060.  
  3061. // lrd_assign_literal。只能通过
  3062.  
  3063. // 指定 NULL 或 0(不带引号),才能为 lrd_assign
  3064.  
  3065. // 分配 NULL 值。
  3066.  
  3067. LRDRET lrd_assign ( LRD_VAR_DESC *mptVarDesc, char *mpcValStr, char *mpszValStrFmt,
  3068.  
  3069. unsigned long muliIndex, long mliOffset );
  3070.  
  3071. // lrd_assign_ext 将带有显式长度的
  3072.  
  3073. // 存储区域值通过其描述符分配给变量。
  3074.  
  3075. // 必要时,该值将被转换为变量的数据类型
  3076.  
  3077. // 和长度。该值可以包含嵌入的 null 字符
  3078.  
  3079. // ('\0')。也可以通过使用 NULL 或 0(不带引号)
  3080.  
  3081. // 指定 NULL 值。
  3082.  
  3083. LRDRET lrd_assign_ext ( LRD_VAR_DESC *mptVarDesc, char *mpcValStr, long mliValStrLen,
  3084.  
  3085. char *mpszValStrFmt, unsigned long muliIndex, long mliOffset );
  3086.  
  3087. // lrd_assign_literal 函数将由引号
  3088.  
  3089. // 括起的文字字符串值通过其描述符分配给变量
  3090.  
  3091. // (标量或数组)。必要时,该值将被转换为
  3092.  
  3093. // 变量的数据类型和长度。该值可以
  3094.  
  3095. // 包含嵌入的 null 字符 ('\0')。也可以
  3096.  
  3097. // 通过使用 NULL 或 0(不带引号)指定
  3098.  
  3099. // NULL 值。字符串的长度由 (sizeof(string) -1)
  3100.  
  3101. // 确定。
  3102.  
  3103. LRDRET lrd_assign_literal ( LRD_VAR_DESC *mptVarDesc, char *mpcValStr, char
  3104.  
  3105. *mpszValStrFmt, unsigned long muliIndex, long mliOffset );
  3106.  
  3107. // lrd_assign_bind 函数将 null 终止
  3108.  
  3109. // 字符串值分配给标量变量并将变量绑定到
  3110.  
  3111. // 占位符。如果字符串不是 null 终止的,请使用
  3112.  
  3113. // lrd_assign_bind_ext 或 lrd_assign_bind_literal。
  3114.  
  3115. // 此函数将执行 lrd_assign 和 lrd_bind_placeholder
  3116.  
  3117. // 函数,但它被限定为标量型
  3118.  
  3119. // 变量。
  3120.  
  3121. LRDRET lrd_assign_bind ( LRD_CURSOR *mptCursor, char *mpszPlaceholder, char
  3122.  
  3123. *mpcValStr, LRD_VAR_DESC *mptVarDesc, char *mpszValStrFmt, unsigned long muliOption,
  3124.  
  3125. int miDBErrorSeverity );
  3126.  
  3127. // lrd_assign_bind_ext 函数将带有
  3128.  
  3129. // 显式长度的存储区域通过其描述符分配给
  3130.  
  3131. // 标量变量,并将变量绑定到占位符。
  3132.  
  3133. // 必要时,该值将被转换为变量的类型和
  3134.  
  3135. // 长度。该值可以包含嵌入的 null 字符 ('\0')。
  3136.  
  3137. // 也可以通过使用 NULL 或 0(不带引号)
  3138.  
  3139. // 指定 NULL 值。此函数执行 lrd_assign_ext
  3140.  
  3141. // 和 lrd_bind_placeholder
  3142.  
  3143. // 函数,但它被限定为标量型
  3144.  
  3145. // 变量。
  3146.  
  3147. LRDRET lrd_assign_bind_ext ( LRD_CURSOR *mptCursor, char *mpszPlaceholder, char
  3148.  
  3149. *mpcValStr, long mliValStrLen, LRD_VAR_DESC *mptVarDesc, char *mpszValStrFmt,
  3150.  
  3151. unsigned long muliOption, int miDBErrorSeverity );
  3152.  
  3153. // lrd_assign_bind_literal 函数将
  3154.  
  3155. // 由引号括起的文字字符串值通过其描述符
  3156.  
  3157. // 分配给标量变量,然后将变量绑定到 SQL 语句
  3158.  
  3159. // 文本中的占位符。必要时,该值将被转换
  3160.  
  3161. // 为变量的类型和长度。该值可以包含嵌入
  3162.  
  3163. // 的 null 字符 ('\0')。也可以通过
  3164.  
  3165. // 使用 NULL 或 0(不带
  3166.  
  3167. // 引号)指定 NULL
  3168.  
  3169. // 值。
  3170.  
  3171. LRDRET lrd_assign_bind_literal ( LRD_CURSOR *mptCursor, char *mpszPlaceholder, char
  3172.  
  3173. *mpcValStr, LRD_VAR_DESC *mptVarDesc, char *mpszValStrFmt, unsigned long muliOption,
  3174.  
  3175. int miDBErrorSeverity );
  3176.  
  3177. // lrd_attr_set 函数设置 LRDDBI 句柄
  3178.  
  3179. // 的属性。在使用 lrd_handle_alloc 调用此
  3180.  
  3181. // 函数前必须显式分配句柄。只有 Oracle 8.0 和
  3182.  
  3183. // 更高版本才支持此函数。
  3184.  
  3185. LRDRET lrd_attr_set ( void *mpvLRDDBIHandleTarget, long mliAttrType, void *mpvValue,
  3186.  
  3187. long mliValueLen, int miDBErrorSeverity );
  3188.  
  3189. // lrd_attr_set_from_handle 函数设
  3190.  
  3191. // 置 LRDDBI 句柄的属性。在使用 lrd_handle_alloc
  3192.  
  3193. // 调用此函数前必须显式分配句柄。
  3194.  
  3195. // 只有 Oracle 8.0 和更高版本才支持
  3196.  
  3197. // 此函数。
  3198.  
  3199. LRDRET lrd_attr_set_from_handle ( void *mpvLRDDBIHandleTarget, long mliAttrType, void
  3200.  
  3201. *mpvValue, long mliValueLen, int miDBErrorSeverity );
  3202.  
  3203. // lrd_attr_set_literal 函数设置
  3204.  
  3205. // LRDDBI 句柄的属性。此函数使用文字
  3206.  
  3207. // 字符串指定属性,从而允许其包含 NULL 字符。
  3208.  
  3209. LRDRET lrd_attr_set_literal ( void *mpvLRDDBIHandleTarget, long mliAttrType, void
  3210.  
  3211. **mppvValue, int miDBErrorSeverity );
  3212.  
  3213. // lrd_bind_col 函数将主机变量绑定到输出列。
  3214.  
  3215. // VuGen 为结果集中的所有列生成 lrd_bind_col
  3216.  
  3217. // 语句。
  3218.  
  3219. LRDRET lrd_bind_col ( LRD_CURSOR *mptCursor, int muiColNum, LRD_VAR_DESC
  3220.  
  3221. *mptVarDesc, long mliOption, int miDBErrorSeverity );
  3222.  
  3223. // lrd_bind_cols 函数将主机变量绑定
  3224.  
  3225. // 到输出列。VuGen 为结果集中的所有列
  3226.  
  3227. // 生成 lrd_bind_col 语句。
  3228.  
  3229. LRDRET lrd_bind_cols ( LRD_CURSOR *mptCursor, LRD_BIND_COL_INFO
  3230.  
  3231. *mptBindColInfo, int miDBErrorSeverity );
  3232.  
  3233. // lrd_bind_cursor 将光标绑定到
  3234.  
  3235. // SQL 语句文本中的占位符。此函数
  3236.  
  3237. // 要与包含 PL/SQL 命令的语句配合使用。
  3238.  
  3239. LRDRET lrd_bind_cursor( LRD_CURSOR *mptCursor, char *mpszPlaceholder, unsigned long
  3240.  
  3241. muliOption, LRD_CURSOR **mpptBoundCursor, int miDBErrorSeverity );
  3242.  
  3243. // lrd_bind_placeholder 函数将
  3244.  
  3245. // 主机变量或数组绑定到占位符。此函数
  3246.  
  3247. // 要与 lrd_assign 配合使用。
  3248.  
  3249. LRDRET lrd_bind_placeholder ( LRD_CURSOR *mptCursor, char *mpszPlaceholder,
  3250.  
  3251. LRD_VAR_DESC *mptVarDesc, unsigned long muliOption, int miDBErrorSeverity );
  3252.  
  3253. // lrd_cancel 函数取消提交给数据库
  3254.  
  3255. // 服务器的前一语句或信息。在 Oracle
  3256.  
  3257. // 中,lrd_cancel 通知服务器取消查询并
  3258.  
  3259. // 释放与光标相关的所有资源。如果只需要
  3260.  
  3261. // 多行查询的第一行,此函数是非常有用的。
  3262.  
  3263. // 可以在 lrd_fetch 之后调用 lrd_cancel
  3264.  
  3265. // 以通知服务器不需要执行其他提取
  3266.  
  3267. // 操作。
  3268.  
  3269. LRDRET lrd_cancel ( LRD_CONNECTION *mptConnection, LRD_CURSOR *mptCursor, long
  3270.  
  3271. mliOption, int miDBErrorSeverity );
  3272.  
  3273. // lrd_close_all_cursors 函数关闭
  3274.  
  3275. // 用于指定连接的所有打开的光标。
  3276.  
  3277. LRDRET lrd_close_all_cursors ( LRD_CONNECTION *mptConnection );
  3278.  
  3279. // lrd_close_connection 函数
  3280.  
  3281. // 关闭与数据库的指定连接。
  3282.  
  3283. LRDRET lrd_close_connection ( LRD_CONNECTION **mpptConnection, long mliOption, int
  3284.  
  3285. miDBErrorSeverity );
  3286.  
  3287. // lrd_close_context 函数关闭 ctlib 函数的上下文。
  3288.  
  3289. LRDRET lrd_close_context ( LRD_CONTEXT **mpptContext, long mliOption, int
  3290.  
  3291. miDBErrorSeverity );
  3292.  
  3293. // lrd_close_cursor 函数关闭指定
  3294.  
  3295. // 数据库光标。关闭光标后,则无法再使用
  3296.  
  3297. // 该光标执行 SQL 语句。
  3298.  
  3299. LRDRET lrd_close_cursor ( LRD_CURSOR **mpptCursor, int miDBErrorSeverity );
  3300.  
  3301. // lrd_col_data 函数设置指向
  3302.  
  3303. // 特定列的数据的指针。
  3304.  
  3305. // 此函数访问数据,但不执行绑定操作。
  3306.  
  3307. // 注意,若要引用数据(通过指针),必须将其
  3308.  
  3309. // 转换为相应类型。lrd_col_data 只出现
  3310.  
  3311. // 在 Vuser 脚本目录的 print.inl 文件中。
  3312.  
  3313. LRDRET lrd_col_data ( LRD_CURSOR *mptCursor, unsigned int muiColNum, long mliOffset,
  3314.  
  3315. LRD_VAR_DESC *mptVarDesc, unsigned long *mpuliFetchedLen, int miDBErrorSeverity );
  3316.  
  3317. // lrd_commit 函数提交当
  3318.  
  3319. // 前数据库事务。提交事务后,
  3320.  
  3321. // 不能执行回滚。
  3322.  
  3323. LRDRET lrd_commit ( LRD_CONTEXT *mptContext, LRD_CONNECTION *mptConnection,
  3324.  
  3325. int miDBErrorSeverity );
  3326.  
  3327. // lrd_ctlib_cursor 函数指定要初始化
  3328.  
  3329. // 的 CtLib 光标命令。此函数指定命令
  3330.  
  3331. // 类型及其适用选项。
  3332.  
  3333. LRDRET lrd_ctlib_cursor ( LRD_CURSOR *mptCursor, char *mpcName, long mliNameLen,
  3334.  
  3335. char *mpcText, long mliTextLen, LRDOS_INT4 mjCmdType, LRDOS_INT4 mjCmdOption, int
  3336.  
  3337. miDBErrorSeverity );
  3338.  
  3339. // lrd_data_info 函数基于请求
  3340.  
  3341. // 规范获取 I/O 描述符信息。
  3342.  
  3343. // 请求规范字符串是 null 终止的字符串,
  3344.  
  3345. // 其中包含由分号分隔的 <keyword>=<value>
  3346.  
  3347. // 规范对。
  3348.  
  3349. LRDRET lrd_data_info ( LRD_CURSOR *mptCursor, unsigned int muiColNum, unsigned long
  3350.  
  3351. muliIODescNum, char *mpszReqSpec, int miDBErrorSeverity );
  3352.  
  3353. // lrd_db_option 函数为数据库光标、
  3354.  
  3355. // 上下文或连接设置选项。
  3356.  
  3357. LRDRET lrd_db_option ( void *mpvTargetObject, unsigned long muliOption, void
  3358.  
  3359. *mpvOptionValue, int miDBErrorSeverity );
  3360.  
  3361. // lrd_dynamic 函数指定要处理的动态 SQL 语句。
  3362.  
  3363. LRDRET lrd_dynamic ( LRD_CURSOR *mptCursor, char *mpcID, long mliIDLen, char
  3364.  
  3365. *mpcText, long mliTextLen, LRDOS_INT4 mjCmdType, int miDBErrorSeverity );
  3366.  
  3367. // lrd_end 函数关闭 VuGen 环境
  3368.  
  3369. // 并清除所有打开的结构和指针。此函数
  3370.  
  3371. // 在 Vuser 脚本中只被调用一次。
  3372.  
  3373. LRDRET lrd_end ( void *mpvEndParams );
  3374.  
  3375. // lrd_env_init 函数分配并
  3376.  
  3377. // 初始化 LRDBI 环境句柄。
  3378.  
  3379. // 如果被指向的指针是 NULL,则将分配
  3380.  
  3381. // 新的 LRDDBI 环境句柄。如果该值不是 NULL,
  3382.  
  3383. // 且被指向的 LRDDBI 句柄具有要求
  3384.  
  3385. // 的属性,则不会分配新的 LRDDBI 句柄,
  3386.  
  3387. // 并且函数将成功返回。否则将
  3388.  
  3389. // 返回 LRDRET_E_EXISTING_HANDLE_ERROR。
  3390.  
  3391. LRDRET lrd_env_init ( unsigned int muiDBType, void **mppvLRDDBIHandleEnv, unsigned
  3392.  
  3393. long muliMode, int miDBErrorSeverity );
  3394.  
  3395. // lrd_exec 函数执行 lrd_stmt 设置的 SQL 语句。
  3396.  
  3397. LRDRET lrd_exec ( LRD_CURSOR *mptCursor, unsigned long muliTotalRows, unsigned long
  3398.  
  3399. muliSkipRows, unsigned long *mpuliRowsProcessed, long mliOption, int miDBErrorSeverity );
  3400.  
  3401. // lrd_fetch 函数从结果集中提取后续若干行。
  3402.  
  3403. // 在录制的脚本中,结果集中的行数是参数
  3404.  
  3405. // mliRequestedRows 的绝对值。例如,
  3406.  
  3407. // 如果 lrd_fetch 的第二个参数是 -14,
  3408.  
  3409. // 则检索了十四行数据。
  3410.  
  3411. //
  3412.  
  3413. LRDRET lrd_fetch ( LRD_CURSOR *mptCursor, long mliRequestedRows, long
  3414.  
  3415. mliRowsBatchSize, unsigned long *mpuliFetchedRows, LRD_PRINT_ROW_TYPEDEF
  3416.  
  3417. mpfjPrintRow, int miDBErrorSeverity );
  3418.  
  3419. // lrd_fetchx 函数使用扩展
  3420.  
  3421. // 提取 (SQLExtendedFtech) 从结果集
  3422.  
  3423. // 中提取后续若干行。在录制的脚本中,
  3424.  
  3425. // 结果集中的行数是参数 mliRequestedRows
  3426.  
  3427. // 的绝对值。例如,如果 lrd_fetchx 的第二个
  3428.  
  3429. // 参数是 -14,则检索了十四行数据。
  3430.  
  3431. LRDRET lrd_fetchx ( LRD_CURSOR *mptCursor, long mliRequestedRows, long
  3432.  
  3433. mliRowsBatchSize, unsigned long *mpuliFetchedRows, LRD_PRINT_ROW_TYPEDEF
  3434.  
  3435. mpfjPrintRow, long mliOption, int miDBErrorSeverity );
  3436.  
  3437. // lrd_fetch_adv 使用 ODBC 扩展
  3438.  
  3439. // 提取 (SQLExtendedFtech) 从结果集
  3440.  
  3441. // 中提取多行。在录制的脚本中,
  3442.  
  3443. // 结果集中的行数是参数 mliRequestedRows 的
  3444.  
  3445. // 绝对值。
  3446.  
  3447. LRDRET lrd_fetch_adv( LRD_CURSOR *mptCursor, long mliRequestedRows,
  3448.  
  3449. long
  3450.  
  3451. mliRowsBatchSize, unsigned long *mpuliFetchedRows,
  3452.  
  3453. LRD_PRINT_ROW_TYPEDEF
  3454.  
  3455. mpfjPrintRow, long mliOption,
  3456.  
  3457. int miDBErrorSeverity, long mlilFetchOffset,
  3458.  
  3459. unsigned
  3460.  
  3461. short musOrientation);
  3462.  
  3463. // lrd_free_connection 释放 lrd_alloc_connection
  3464.  
  3465. // 创建的 LRD_CONNECTION 结构。
  3466.  
  3467. LRDRET lrd_free_connection ( LRD_CONNECTION **mpptConnection, long mliOption, int
  3468.  
  3469. miDBErrorSeverity );
  3470.  
  3471. // lrd_handle_alloc 函数分配并初始化
  3472.  
  3473. // LRDBI 句柄。注意,在调用此函数前必须
  3474.  
  3475. // 显式地(使用 lrd_handle_alloc)或
  3476.  
  3477. // 隐式地(使用 lrd_logon)分配父句柄。
  3478.  
  3479. LRDRET lrd_handle_alloc ( unsigned int muiDBType, void *mpvLRDDBIHandleParent, long
  3480.  
  3481. mliDBHandleType, void **mppvLRDDBIHandle, int miDBErrorSeverity );
  3482.  
  3483. // lrd_handle_free 函数显式地释放
  3484.  
  3485. // LRDDDBI 句柄。注意,句柄必须已被
  3486.  
  3487. // 显式地(使用 lrd_handle_alloc)
  3488.  
  3489. // 或隐式地(使用 lrd_logon)分配。只有
  3490.  
  3491. // Oracle 8.0 和更高版本才支持此函数。
  3492.  
  3493. LRDRET lrd_handle_free ( void **mppvLRDDBIHandle, int miDBErrorSeverity);
  3494.  
  3495. // lrd_init 函数设置包含 LRD 环境
  3496.  
  3497. // 初始化信息的 LRD_INIT_INFO 结构。
  3498.  
  3499. // 此函数在脚本中只被调用一次,并且要
  3500.  
  3501. // 置于所有其他 LRD 函数调用之前。
  3502.  
  3503. LRDRET lrd_init ( LRD_INIT_INFO *mptInitInfo, LRD_DEFAULT_DB_VERSION
  3504.  
  3505. *mpatDefaultDBVersion );
  3506.  
  3507. // lrd_initialize_db 函数初始化数据库
  3508.  
  3509. // 进程环境。注意,内存回调函数是
  3510.  
  3511. // 不受支持的。
  3512.  
  3513. LRDRET lrd_initialize_db( unsigned int muiDBType, long mliMode, int miDBErrorSeverity );
  3514.  
  3515. // lrd_logoff 函数终止由 lrd_logon 或
  3516.  
  3517. // lrd_logon_ext 启动的简单数据库会话。
  3518.  
  3519. LRDRET lrd_logoff ( void *mppvLRDDBIHandleSvcCtx, int miDBErrorSeverity );
  3520.  
  3521. // lrd_logon 函数创建简单登录会话,
  3522.  
  3523. // 其中的用户名、密码和数据库服务器
  3524.  
  3525. // 标识字符串都是 null 终止字符串。
  3526.  
  3527. // 只有 Oracle 8.0 和更高版本才支持此函数。
  3528.  
  3529. LRDRET lrd_logon (void *mpvLRDDBIHandleEnv, void **mppvLRDDBIHandleSvcCtx, char
  3530.  
  3531. *mpcUserName, char *mpcPassword, char *mpcServerID, int miDBErrorSeverity);
  3532.  
  3533. // lrd_logon_ext 函数通过显式指定
  3534.  
  3535. // 长度的用户名、密码和数据库
  3536.  
  3537. // 服务器标识字符串创建简单数据库会话。
  3538.  
  3539. // 只有 Oracle 8.0 和更高版本
  3540.  
  3541. // 才支持此函数。
  3542.  
  3543. LRDRET lrd_logon_ext (void const *mpvLRDDBIHandleEnv, void
  3544.  
  3545. **mppvLRDDBIHandleSvcCtx, char *mpcUserName, long mliUserNameLen, char
  3546.  
  3547. *mpcPassword, long mliPasswordLen, char *mpcServerID, long mliServerIDLen, int
  3548.  
  3549. miDBErrorSeverity );
  3550.  
  3551. // lrd_msg 函数允许您向日志文件
  3552.  
  3553. // output.txt 发送数据库消息。只有
  3554.  
  3555. // 当指定消息的类匹配 Log 运行时设置中的
  3556.  
  3557. // 设置时,消息才发送给日志文件。例如,
  3558.  
  3559. // 如果在运行时设置中选择“Brief Log”,
  3560.  
  3561. // 则只有分配给 brief 类的调式消息才会
  3562.  
  3563. // 出现。
  3564.  
  3565. LRDRET lrd_msg ( int miMsgClass, char *mpszMsg );
  3566.  
  3567. // 函数 lrd_oci8_to_oci7 将现有 Oracle OCI 8
  3568.  
  3569. // 连接 mpptConnectionconverts 转换为 Oracle
  3570.  
  3571. // OCI 7 连接。脚本将使用 OCI 7 连接通过执行
  3572.  
  3573. // OCI 7 和 OCI 8 操作来继续运行。此函数修改现有
  3574.  
  3575. // 连接 mpptConnection 并且不创建任何与数据库的
  3576.  
  3577. // 新的连接。
  3578.  
  3579. //
  3580.  
  3581. LRDRET lrd_oci8_to_oci7 ( void* mpvLRDDBIHandleSvcCtx, LRD_CONNECTION**
  3582.  
  3583. mpptConnection, int miDBErrorSeverity );
  3584.  
  3585. // lrd_open_connection 函数设置 LRD_CONNECTION
  3586.  
  3587. // 结构。在使用 lrd_close_connection 释放该结构之前,
  3588.  
  3589. // 它是有效的。
  3590.  
  3591. LRDRET lrd_open_connection ( LRD_CONNECTION **mpptConnection, unsigned int
  3592.  
  3593. muiDBType, char *mpszUser, char *mpszPassword, char *mpszServer, char *mpszExtConnectStr,
  3594.  
  3595. LRD_CONTEXT *mptContext, long mliOption, int miDBErrorSeverity );
  3596.  
  3597. // lrd_open_context 函数打开 ctlib 函数的上下文。
  3598.  
  3599. LRDRET lrd_open_context ( LRD_CONTEXT **mpptContext, unsigned int muiDBType, long
  3600.  
  3601. mliLibVersionBehavior, unsigned int muiOption, int miDBErrorSeverity );
  3602.  
  3603. // lrd_open_cursor 函数通过设置 LRD_CURSOR
  3604.  
  3605. // 结构打开光标。您可以使用单个光标执行后续 SQL
  3606.  
  3607. // 语句。在使用 lrd_close_cursor 释放该结构之前,
  3608.  
  3609. // 它是有效的。
  3610.  
  3611. LRDRET lrd_open_cursor ( LRD_CURSOR **mpptCursor, LRD_CONNECTION
  3612.  
  3613. *mptConnection, int miDBErrorSeverity );
  3614.  
  3615. // lrd_option 函数将值分配给 LRD
  3616.  
  3617. // 选项 (LRD_OPTION_) 之一。
  3618.  
  3619. LRDRET lrd_option ( unsigned long muliOption, void *mpvOptionValue );
  3620.  
  3621. // lrd_ora8_attr_set 函数设置 LRDDBI 句柄
  3622.  
  3623. // 的属性。在使用 lrd_handle_alloc 调用此
  3624.  
  3625. // 函数前必须显式分配句柄。只有 Oracle 8.0 和
  3626.  
  3627. // 更高版本才支持此函数。
  3628.  
  3629. LRDRET lrd_ora8_attr_set ( void *mpvLRDDBIHandleTarget, long mliAttrType, void
  3630.  
  3631. *mpvValue, long mliValueLen, int miDBErrorSeverity );
  3632.  
  3633. // lrd_ora8_attr_set_from_handle 函数设置
  3634.  
  3635. // LRDDBI 句柄的属性。在使用 lrd_handle_alloc
  3636.  
  3637. // 调用此函数之前,必须显式地分配句柄。
  3638.  
  3639. // 只有 Oracle 8.0 和更高版本才支持此函数。
  3640.  
  3641. //
  3642.  
  3643. LRDRET lrd_ora8_attr_set_from_handle ( void *mpvLRDDBIHandleTarget, long mliAttrType,
  3644.  
  3645. void *mpvValue, long mliValueLen, int miDBErrorSeverity );
  3646.  
  3647. // lrd_ora8_attr_set_literal 函数
  3648.  
  3649. // 设置 LRDDBI 句柄的属性。此函数使用
  3650.  
  3651. // 文本字符串指定属性,从而允许其包含 NULL
  3652.  
  3653. // 字符。
  3654.  
  3655. LRDRET lrd_ora8_attr_set_literal ( void *mpvLRDDBIHandleTarget, long mliAttrType, void
  3656.  
  3657. *mpvValue, int miDBErrorSeverity );
  3658.  
  3659. // lrd_ora8_bind_col 函数将主机变量
  3660.  
  3661. // 绑定到输出列。VuGen 为结果集中的所有列生成
  3662.  
  3663. // lrd_ora8_bind_col 语句。
  3664.  
  3665. LRDRET lrd_ora8_bind_col (void *mpvLRDDBIHandleStmt, void
  3666.  
  3667. **mppvLRDDBIHandleDefine, int muiColNum, LRD_VAR_DESC *mptVarDesc, long mliMode,
  3668.  
  3669. int miDBErrorSeverity );
  3670.  
  3671. // lrd_ora8_bind_placeholder 函数将
  3672.  
  3673. // 主机变量或数组绑定到占位符。此函数要
  3674.  
  3675. // 与 lrd_assign 配合使用。
  3676.  
  3677. LRDRET lrd_ora8_bind_placeholder (void *mpvLRDDBIHandleStmt, void
  3678.  
  3679. **mppvLRDDBIHandleBind, char *mpszPlaceholder, LRD_VAR_DESC *mptVarDesc, unsigned
  3680.  
  3681. long muliOption, long mliMode, int miDBErrorSeverity );
  3682.  
  3683. // lrd_ora8_commit 函数从 Oracle 8.x 客户端
  3684.  
  3685. // 的上一保存点提交当前数据库事务。
  3686.  
  3687. LRDRET lrd_ora8_commit ( void *ServiceContextHandle, long Mode, int ErrorSeverity );
  3688.  
  3689. // lrd_ora8_exec 函数执行 lrd_stmt 设置
  3690.  
  3691. // 的 SQL 语句。此函数重置由 lrd_ora8_stmt 设置
  3692.  
  3693. // 的 SQL 语句内容;在每个 lrd_ora8_exec 函数
  3694.  
  3695. // 调用之后,您必须提供新的语句(并可选择
  3696.  
  3697. // 绑定参数)。
  3698.  
  3699. LRDRET lrd_ora8_exec ( void *mpvLRDDBIHandleSvcCtx, char *mpvLRDDBIHandleStmt,
  3700.  
  3701. unsigned long muliTotalRows, unsigned long muliSkipRows, unsigned long
  3702.  
  3703. *mpuliRowsProcessed, LRD_ORA8_PRINT_ROW_TYPEDEF mpfjPrintRow, void *Reserved1,
  3704.  
  3705. void *Reserved2, long mliMode, int miDBErrorSeverity );
  3706.  
  3707. // lrd_ora8_fetch 函数从结果集中
  3708.  
  3709. // 提取后续若干行。在录制的脚本中,结果集
  3710.  
  3711. // 中的行数是参数 mliRequestedRows 的
  3712.  
  3713. // 绝对值。例如,如果 lrd_ora8_fetch 的
  3714.  
  3715. // 第二个参数是 -14,则检索了十四
  3716.  
  3717. // 行数据。
  3718.  
  3719. LRDRET lrd_ora8_fetch (void *mpvLRDDBIHandleStmt, long mliRequestedRows, long
  3720.  
  3721. mliRowsBatchSize, unsigned long *mpuliFetchedRows, LRD_PRINT_ROW_TYPEDEF
  3722.  
  3723. mpfjPrintRow, long mliOrientation, long mliMode, int miDBErrorSeverity );
  3724.  
  3725. // lrd_ora8_handle_alloc 函数分配
  3726.  
  3727. // 并初始化 LRDBI 句柄。句柄类型只由
  3728.  
  3729. // 限定符指定。限定符是 LRD_HTYPE_ORACLE_ 字符串
  3730.  
  3731. // 的唯一后缀。例如,在 LRD_HTYPE_ORACLE_SESSION 中,
  3732.  
  3733. // 限定符是“SESSION”。
  3734.  
  3735. LRDRET lrd_ora8_handle_alloc ( void const * mpvParentHandle, long const mliDBHandleType,
  3736.  
  3737. void * * const mppvLRDDBIHandle, int const miDBErrorSeverity );
  3738.  
  3739. // lrd_ora8_lob_read 函数在大对象
  3740.  
  3741. // (LOB) 描述符已从数据库中提取后,从该
  3742.  
  3743. // 描述符中读取字符。注意,lrd_ora8_lob_read
  3744.  
  3745. // 读取的字符无法被访问。此函数用于增加
  3746.  
  3747. // Oracle 服务器的负载并模拟现实的服务器
  3748.  
  3749. // 活动。
  3750.  
  3751. LRDRET lrd_ora8_lob_read ( void * const mpvLRDDBIHandleSvcCtx, void * const
  3752.  
  3753. mpvLRDDBIHandleLob, unsigned long const mjAmtToRead, unsigned long * const
  3754.  
  3755. mpjAmtRead, unsigned long const mjOffset, unsigned long const mjBufl, unsigned short const
  3756.  
  3757. mjCsid, unsigned char const mjCsfrm, int const miDBErrorSeverity);
  3758.  
  3759. // lrd_ora8_rollback 函数将当前数据库事务回
  3760.  
  3761. // 滚到 Oracle 8.x 客户端的上一保存点。
  3762.  
  3763. LRDRET lrd_ora8_rollback ( void *const ServiceContextHandle, long const Mode, int const
  3764.  
  3765. ErrorSeverity );
  3766.  
  3767. // lrd_ora8_save_col 函数保存指定
  3768.  
  3769. // 表单元格的动态值并将其分配给参数。
  3770.  
  3771. // 在 Vuser 脚本中,此函数用于关联
  3772.  
  3773. // 语句和其他 SQL 语句。不使用在查询
  3774.  
  3775. // 期间提取的实际结果,而是使用参数
  3776.  
  3777. // 替换常量值。然后,此参数可由同一
  3778.  
  3779. // 脚本中的其他数据库语句使用。注意,
  3780.  
  3781. // lrd_ora8_save_col 总是置于
  3782.  
  3783. // lrd_ora8_fetch 语句之前。
  3784.  
  3785. LRDRET lrd_ora8_save_col (void *mpvLRDDBIHandleStmt, unsigned int muiColNum, long
  3786.  
  3787. mliRowNum, unsigned long muliOption, char *mpszParamName );
  3788.  
  3789. // lrd_ora8_stmt 函数准备用于执行的 SQL
  3790.  
  3791. // 或 PL/SQL 语句。语句的文本是 null 终止
  3792.  
  3793. // 字符串,在该字符串中没有任何 null 字符。
  3794.  
  3795. // (对于包含 null 字符的字符串,请使用
  3796.  
  3797. // lrd_ora8_stmt_literal 或 lrd_ora8_stmt_ext。)
  3798.  
  3799. LRDRET lrd_ora8_stmt (void *mpvLRDDBIHandleStmt, char *mpcStmtText, long mliLanguage,
  3800.  
  3801. long mliMode, int miDBErrorSeverity );
  3802.  
  3803. // lrd_ora8_stmt_ext 函数准备
  3804.  
  3805. // 用于执行的 SQL 或 PL/SQL 语句。
  3806.  
  3807. // 语句文本是由地址和显式长度指定的。
  3808.  
  3809. // 文本可以包含 null 字符,并且应该
  3810.  
  3811. // 由 null 字符终止。lrd_ora8_stmt_ext
  3812.  
  3813. // 可用于可能包含嵌入 null 字符的动态
  3814.  
  3815. // 构造存储区域。
  3816.  
  3817. LRDRET lrd_ora8_stmt_ext (void *mpvLRDDBIHandleStmt, char *mpcStmtText, long
  3818.  
  3819. mliStmtTextLen, long mliLanguage, long mliMode, int miDBErrorSeverity );
  3820.  
  3821. // lrd_ora8_stmt_literal 函数准备
  3822.  
  3823. // 用于执行的文字 SQL 或 PL/SQL 语句。
  3824.  
  3825. // lrd_ora8_stmt_ext 可用于包含
  3826.  
  3827. // 嵌入 null 字符的字符串常量。语句的
  3828.  
  3829. // 长度由公式 sizeof()-1 确定。
  3830.  
  3831. LRDRET lrd_ora8_stmt_literal (void *mpvLRDDBIHandleStmt, char *mpcStmtText, long
  3832.  
  3833. mliLanguage, long mliMode, int miDBErrorSeverity );
  1. LoadRunner 函数大全之中文解释
  2.  
  3. // 在自动提取中,数据由 exec 命令提取,
  4.  
  5. // 所以组合提取与输出的 lrd_fetch 是
  6.  
  7. // 不适用的。lrd_print 使用指向
  8.  
  9. // bympfjPrintRow 的函数输出行。
  10.  
  11. LRDRET lrd_print ( LRD_CURSOR *mptCursor mptCursor, LRD_PRINT_ROW_TYPEDEF
  12.  
  13. mpfjPrintRow );
  14.  
  15. // lrd_reset_rows 函数为使用 ODBC SqlSetPos 函数
  16.  
  17. // 的 UPDATE 操作准备可供提取的行。
  18.  
  19. LRDRET lrd_reset_rows ( LRD_CURSOR *mptCursor, long mliRowIndex );
  20.  
  21. // lrd_result_set 函数准备用于
  22.  
  23. // 通过光标输出字符串(通常为 SQL 语句)
  24.  
  25. // 的下一结果集。对于 CtLib,它发出 ct_result
  26.  
  27. // 命令,并且在 ODBC 中它运行用于当前数据库
  28.  
  29. // 语句的 SqlMoreResults。
  30.  
  31. LRDRET lrd_result_set (LRD_CURSOR *mptCursor, long mliOpt1, long mliOpt2, int
  32.  
  33. miDBErrorSeverity );
  34.  
  35. // lrd_result_set_ext 函数准备
  36.  
  37. // 用于通过光标输出字符串(通常为 SQL 语句)
  38.  
  39. // 的下一结果集。它发出用于当前数据库
  40.  
  41. // 语句的 ct_result。
  42.  
  43. LRDRET lrd_result_set_ext ( LRD_CURSOR *mptCursor, long mliOpt1, long mliOpt2, long
  44.  
  45. *mpliReturnCode, long *mpliResultType, int miDBErrorSeverity );
  46.  
  47. // lrd_rollback 函数将当前数据库
  48.  
  49. // 事务回滚到上一保存点。
  50.  
  51. LRDRET lrd_rollback ( LRD_CONTEXT *mptContext, LRD_CONNECTION *mptConnection,
  52.  
  53. int miDBErrorSeverity );
  54.  
  55. // lrd_row_count 函数返回
  56.  
  57. // 受到 UPDATE、DELETE 或 INSERT 语句影响的行数。
  58.  
  59. // 只有 ODBC 和 DB2 Vuser 才支持它。
  60.  
  61. LRDRET lrd_row_count ( LRD_CURSOR * mptCursor, long * mpliRowCount, int
  62.  
  63. miDBErrorSeverity );
  64.  
  65. // lrd_save_col 函数保存指定
  66.  
  67. // 表单元格的动态值并将其分配给某
  68.  
  69. // 参数。在 Vuser 脚本中,此函数
  70.  
  71. // 用于关联语句和其他 SQL 语句。不
  72.  
  73. // 使用在查询期间提取的实际结果,而是
  74.  
  75. // 使用参数替换常量值。然后,此参数
  76.  
  77. // 可由同一脚本中的其他数据库
  78.  
  79. // 语句使用。注意,lrd_save_col 总是
  80.  
  81. // 置于 lrd_fetch 语句之前。
  82.  
  83. LRDRET lrd_save_col ( LRD_CURSOR *mptCursor, unsigned int muiColNum, long
  84.  
  85. mliRowNum, unsigned long muliOption, char *mpszParamName );
  86.  
  87. // lrd_save_last_rowid 函数将当前结果集
  88.  
  89. // 最后一行的 rowid 保存到参数中。最后的 rowid 值
  90.  
  91. // 可用在该脚本的稍后位置。
  92.  
  93. LRDRET lrd_save_last_rowid ( LRD_CURSOR *mptCursor, char *mpszParamName );
  94.  
  95. // lrd_save_ret_param 函数将存储
  96.  
  97. // 过程的返回参数的值保存到参数中。
  98.  
  99. // 如果函数无法检索返回参数,该
  100.  
  101. // 参数将标记为未初始化。此函数用于关联
  102.  
  103. // 数据库语句。
  104.  
  105. LRDRET lrd_save_ret_param ( LRD_CURSOR *mptCursor, unsigned int muiRetParamNum,
  106.  
  107. unsigned long muliOption, char *mpszParamName );
  108.  
  109. // lrd_save_value 函数保存占位符
  110.  
  111. // 描述符的动态值。此函数
  112.  
  113. // 用于设置输出占位符(例如,Oracle 中
  114.  
  115. // 的某些存储过程)的关联数据库语句。
  116.  
  117. // 在同一脚本中,此动态保存的值
  118.  
  119. // 可由其他数据库语句使用。注意,lrd_save_value 总是
  120.  
  121. // 跟随在 lrd_exec 语句之后。
  122.  
  123. LRDRET lrd_save_value ( LRD_VAR_DESC *mptVarDesc, unsigned long muIiIndex, unsigned
  124.  
  125. long muliOption, char *mpszParamName );
  126.  
  127. // lrd_send_data 函数将某数据块
  128.  
  129. // 发送给服务器。数据的位置由
  130.  
  131. // 请求规范字符串 mpszReqSpec 指定。
  132.  
  133. // 此 null 终止字符串包含关键字及其值的列表。
  134.  
  135. LRDRET lrd_send_data ( LRD_CURSOR *mptCursor, unsigned int muiUnused, unsigned long
  136.  
  137. muliIODescNum, char *mpszReqSpec, LRD_VAR_DESC *mptVarDesc, int
  138.  
  139. miDBErrorSeverity );
  140.  
  141. // lrd_server_detach 函数删除
  142.  
  143. // 用于数据库操作的数据源的访问路径。只有 Oracle 8.0 和
  144.  
  145. // 更高版本才支持此函数。
  146.  
  147. LRDRET lrd_server_detach ( void const * mpvLRDDBIHandleServer, long const mliMode, int
  148.  
  149. const miDBErrorSeverity );
  150.  
  151. // lrd_session_begin 函数启动
  152.  
  153. // 服务器的用户会话。只有 Oracle 8.0 和
  154.  
  155. // 更高版本才支持此函数。
  156.  
  157. LRDRET lrd_session_begin ( void *mpvLRDDBIHandleSvcCtx, void
  158.  
  159. *mpvLRDDBIHandleSession, unsigned long muliCredentials, long mliMode, int
  160.  
  161. miDBErrorSeverity );
  162.  
  163. // lrd_session_end 函数结束服务器的用户会话。
  164.  
  165. // 只有 Oracle 8.0 和更高版本才支持此函数。
  166.  
  167. LRDRET lrd_session_end ( void const *mpvLRDDBIHandleSvcCtx, void const
  168.  
  169. *mpvLRDDBIHandleSession, long const mliMode, int const miDBErrorSeverity );
  170.  
  171. // lrd_siebel_incr 函数按指定
  172.  
  173. // 值递增字符串(由数值表示)。在该函数
  174.  
  175. // 递增字符串后,它将字符串写回到原
  176.  
  177. // 内存位置。表示字符串的数值
  178.  
  179. // 以 36 为基。Siebel 使用以 36 为基的
  180.  
  181. // 算法,使用从 0 到 9 的数字或
  182.  
  183. // 从 A 到 Z 的字母(对应于 10 到 35)表示
  184.  
  185. // 数值。
  186.  
  187. LRDRET lrd_siebel_incr (char *string, int increment );
  188.  
  189. // lrd_siebel_str2num 用于自动的 Siebel 关联。
  190.  
  191. LRDRET lrd_siebel_str2num (const char *szString);
  192.  
  193. // {0>The lrd_stmt function associates a character string<}72{>?lrd_stmt 函数将字符串(通常
  194.  
  195. <)
  196.  
  197. // 为 SQL 语句}与光标相关联。如果一个 lrd_stmt 函数
  198.  
  199. // 之后跟随有另一个(两者之间没有 lrd_exec),
  200.  
  201. // 则这些字符串将被连接。
  202.  
  203. // 注意,单个光标可以支持多个连续
  204.  
  205. // 的 SQL 语句。虽然可以将 SQL 语句
  206.  
  207. // 文本拆分为若干个段,但无法拆分
  208.  
  209. // 占位符标识符。
  210.  
  211. LRDRET lrd_stmt (LRD_CURSOR *mptCursor, char *mpcText, long mliTextLen,
  212.  
  213. LRDOS_INT4 mjOpt1, LRDOS_INT4 mjOpt2, int miDBErrorSeverity );
  214.  
  215. // lrd_to_printable 函数将变量
  216.  
  217. // 或数组元素转换为可打印字符串。
  218.  
  219. // 在录制期间,将在脚本目录的 print.inl 文件
  220.  
  221. // 中生成此函数。它提供了有关如何在 VuGen 的
  222.  
  223. // 网格中显示结果的信息。
  224.  
  225. LRDRET lrd_to_printable ( LRD_VAR_DESC *mptVarDesc, unsigned long muliIndex, char
  226.  
  227. *mpszOutputStr, unsigned long muliOutputStrSize, char *mpszOutputStrFmt );
  228.  
  229. // SiebelPreSave_x 函数指示,
  230.  
  231. // 在对 2 层 Siebel 调用 lrd_fetch 或 lrd_ora8_fetch 之前,
  232.  
  233. // 需要为自动关联保存哪些 Siebel 参数。
  234.  
  235. int SiebelPreSave_x(void);
  236.  
  237. // SiebelPostSave_x 函数在对 2 层
  238.  
  239. // Siebel 调用 lrd_fetch 或 lrd_ora8_fetch 之后
  240.  
  241. // 保存以后的 Siebel 参数的值。
  242.  
  243. int SiebelPostSave_x(void);
  244.  
  245. // ms_dns_query 函数使用
  246.  
  247. // 域名服务 (DNS) 解析指定主机名的 IP 地址。
  248.  
  249. // 此函数不会自动将域添加到主机名(需要您显式
  250.  
  251. // 包含该域)。
  252.  
  253. char * ms_dns_query( char *transaction, char *dnsserver, [char *query_host,] [char
  254.  
  255. *local_address,] LAST );
  256.  
  257. // ms_dns_nextresult 函数在 IP 地址列表
  258.  
  259. // (由 ms_dns_query 返回)中查询下一个 IP 地址。
  260.  
  261. char* ms_dns_nextresult (char *ipaddresslist);
  262.  
  263. // ftp_delete 函数从 FTP 服务器中删除文件。
  264.  
  265. int ftp_delete (char *transaction, char *item_list, LAST);
  266.  
  267. // ftp_delete_ex 函数针对指定会话
  268.  
  269. // 从 FTP 服务器中删除文件。
  270.  
  271. int ftp_delete_ex (FTP *ppftp, char *transaction, char *item_list, LAST);
  272.  
  273. // ftp_dir 函数在 FTP 服务器上运行 dir 命令。
  274.  
  275. int ftp_dir (char *transaction, char *item_list, LAST);
  276.  
  277. // ftp_dir_ex 函数针对指定会话在 FTP
  278.  
  279. // 服务器上运行 dir 命令。
  280.  
  281. int ftp_dir_ex (FTP *ppftp, char *transaction, <List of Attributes>, LAST);
  282.  
  283. // ftp_get 函数在 FTP 服务器上设置工作目录。
  284.  
  285. int ftp_get (char *transaction, char *item_list, LAST);
  286.  
  287. // ftp_get_last_download_details 获取
  288.  
  289. // 上次下载的统计信息。它以毫秒
  290.  
  291. // 为单位将总计下载持续时间分配给 pDuration 指向
  292.  
  293. // 的长整型变量。此持续时间包括实际传输时间和
  294.  
  295. // 连接开销。
  296.  
  297. int ftp_get_last_download_details ( unsigned long * pByteCount, unsigned long *pDuration);
  298.  
  299. // ftp_get_last_download_details_ex 获取
  300.  
  301. // 会话中上次下载的统计信息。
  302.  
  303. // 它以毫秒为单位将总计下载持续时间
  304.  
  305. // 分配给 pDuration 指向的长整型变量。
  306.  
  307. // 此持续时间包括实际传输时间和连接开销。
  308.  
  309. int ftp_get_last_download_details_ex (FTP *ppFtp, unsigned long * pByteCount, unsigned long *
  310.  
  311. pDuration);
  312.  
  313. // ftp_get_ex 函数针对指定会话在 FTP 服务器
  314.  
  315. // 上设置工作目录。
  316.  
  317. int ftp_get_ex (FTP *ppftp, char *transaction, char *item_list, LAST);
  318.  
  319. // ftp_get_last_error 函数返回 FTP 会话
  320.  
  321. // 期间发生的最后一次错误。
  322.  
  323. char * ftp_get_last_error (FTP *ppftp);
  324.  
  325. // ftp_get_last_error_id 函数
  326.  
  327. // 返回在指定 FTP 会话期间发生的
  328.  
  329. // 最后一次错误的 ID 编号。
  330.  
  331. int ftp_get_last_error_id (FTP *ppftp);
  332.  
  333. // ftp_get_last_handshake_duration 以毫秒为单位返回最后一次
  334.  
  335. // 连接创建的持续时间。
  336.  
  337. double ftp_get_last_handshake_duration ();
  338.  
  339. // ftp_get_last_handshake_duration_ex 以毫秒为单位返回会话中
  340.  
  341. // 最后一次连接创建的持续时间。
  342.  
  343. double ftp_get_last_handshake_duration_ex (FTP *ppFtp);
  344.  
  345. // ftp_get_last_transfer_duration 以毫秒
  346.  
  347. // 为单位返回最后一次 get 命令的净传输时间。
  348.  
  349. // 净传输持续时间不包括连接开销。
  350.  
  351. double ftp_get_last_transfer_duration ();
  352.  
  353. // ftp_get_last_transfer_duration_ex 以
  354.  
  355. // 毫秒为单位返回此会话最后一次 get 命令
  356.  
  357. // 的净传输时间。净传输持续时间不包括
  358.  
  359. // 连接开销。
  360.  
  361. double ftp_get_last_transfer_duration_ex (FTP *ppftp);
  362.  
  363. // ftp_logon 函数执行登录到 FTP 服务器的操作。
  364.  
  365. int ftp_logon ( char *transaction, char *url, LAST);
  366.  
  367. // ftp_logon_ex 函数针对特定会话登录到 FTP 服务器。
  368.  
  369. int ftp_logon_ex (FTP *ppftp, char *transaction, char *url, LAST);
  370.  
  371. // ftp_logon 函数执行从 FTP 服务器注销的操作。
  372.  
  373. int ftp_logout ( );
  374.  
  375. // ftp_logout_ex 函数针对特定会话
  376.  
  377. // 从 FTP 服务器注销。
  378.  
  379. int ftp_logout_ex (FTP *ppftp);
  380.  
  381. // ftp_mkdir 函数在 FTP 服务器上设置工作目录。
  382.  
  383. int ftp_mkdir(char *transaction, char * path);
  384.  
  385. // ftp_mkdir_ex 函数针对指定会话
  386.  
  387. // 在 FTP 服务器上设置工作目录。
  388.  
  389. int ftp_mkdir_ex(FTP *ppftp, char *transaction, char * path);
  390.  
  391. // ftp_put 函数在 FTP 服务器上设置工作目录。
  392.  
  393. int ftp_put ( char *transaction, char *item_list, LAST);
  394.  
  395. // ftp_put_ex 函数针对指定会话
  396.  
  397. // 在 FTP 服务器上设置工作目录。
  398.  
  399. int ftp_put_ex (FTP *ppftp, char *transaction, char *item_list, LAST);
  400.  
  401. // ftp_rendir 函数重命名 FTP 服务器上的文件或目录。
  402.  
  403. int ftp_rendir (char *transaction, <item list>, LAST);
  404.  
  405. // 在下列示例中,ftp_rendir_ex 函数针对指定会话
  406.  
  407. // 重命名 FTP 服务器上的文件或目录。
  408.  
  409. int ftp_rendir_ex (FTP *ppftp, char *transaction, ITEM LIST, LAST);
  410.  
  411. // ftp_rmdir 函数重命名 FTP 服务器上的目录。
  412.  
  413. int ftp_rmdir (const char *transaction, const char * path);
  414.  
  415. // ftp_rmdir_ex 函数针对指定会话
  416.  
  417. // 删除 FTP 服务器上的目录。
  418.  
  419. int ftp_rmdir_ex (FTP *ppftp, const char *transaction, const char *path);
  420.  
  421. // imap_logon 函数通过身份验证信息(使用纯文本用户名和密码)
  422.  
  423. // 登录到 IMAP 服务器。
  424.  
  425. int imap_logon(char *transaction, char *url, char *certificate, char *key, char *password, LAST);
  426.  
  427. // imap_logon_ex 函数针对特定会话
  428.  
  429. // 登录到 MS Exchange 服务器。它使用
  430.  
  431. // 简单 IMAP(MS Exchange 协议)执行登录。
  432.  
  433. int imap_logon_ex(IMAP *ppimap, char *transaction, char *url, char *certificate, char *key, char
  434.  
  435. *password, LAST);
  436.  
  437. // imap_logout 函数从 IMAP 服务器注销。
  438.  
  439. int imap_logout( );
  440.  
  441. // imap_logout_ex 函数针对特定会话
  442.  
  443. // 从 IMAP 服务器注销。
  444.  
  445. int imap_logout_ex(IMAP *ppimap);
  446.  
  447. // imap_free_ex 函数释放 IMAP 会话描述符。
  448.  
  449. // 在从 IMAP 服务器注销后调用此函数。
  450.  
  451. int imap_free_ex(IMAP *ppimap);
  452.  
  453. // imap_get_result 函数获取 IMAP 服
  454.  
  455. // 务器返回代码。使用此函数可确定
  456.  
  457. // 由 IMAP 服务器发出的有关以前的 IMAP 函数的精确错误
  458.  
  459. // 代码。
  460.  
  461. int imap_get_result( );
  462.  
  463. // imap_get_result_ex 函数获取
  464.  
  465. // 指定服务器会话的 IMAP 服务器返回代码。
  466.  
  467. // 使用此函数可确定由 IMAP 服务器发出的有关以前的 IMAP 函数
  468.  
  469. // 的错误代码。
  470.  
  471. int imap_get_result_ex(IMAP *ppimap);
  472.  
  473. // imap_select 函数选择
  474.  
  475. // 邮箱以访问其邮件。调用此函数
  476.  
  477. // 将修改邮箱状态(未读邮件数、邮件
  478.  
  479. // 总数,等等)。若要检索邮箱属性,请调用
  480.  
  481. // imap_get_attribute_int。
  482.  
  483. int imap_select(char *transaction, char *mailbox, LAST);
  484.  
  485. // imap_select_ex 函数选择邮箱
  486.  
  487. // 以访问其邮件。调用此函数将修改
  488.  
  489. // 邮箱状态(未读邮件数、邮件总数,
  490.  
  491. // 等等)。若要检索邮箱属性,
  492.  
  493. // 请调用 imap_get_attribute_int_ex。
  494.  
  495. int imap_select_ex (IMAP *ppimap, char *transaction, char *mailbox, LAST);
  496.  
  497. // imap_examine 函数选择邮箱
  498.  
  499. // 以查看其邮件。调用此函数不会
  500.  
  501. // 修改邮箱状态(未读邮件数、邮件总数,
  502.  
  503. // 等等)。
  504.  
  505. int imap_examine (char *transaction, char *mailbox, LAST);
  506.  
  507. // imap_examine_ex 函数选择
  508.  
  509. // 邮箱以查看其邮件。调用
  510.  
  511. // 此函数不会修改邮箱状态
  512.  
  513. // (未读邮件数、邮件总数,等等)。
  514.  
  515. int imap_examine_ex (IMAP *ppimap, char *transaction, char *mailbox, LAST);
  516.  
  517. // imap_status 函数请求指定
  518.  
  519. // 邮箱的状态。它既不更改当前
  520.  
  521. // 选中邮箱,也不影响查询邮箱中任何
  522.  
  523. // 邮件的状态。请求这些状态
  524.  
  525. // 后,请使用 imap_get_attribute_int 获取
  526.  
  527. // 状态值。
  528.  
  529. int imap_status (char *transaction, char *mailbox, char *item, LAST);
  530.  
  531. // imap_status_ex 函数请求
  532.  
  533. // 指定邮箱的状态。它既不
  534.  
  535. // 更改当前选中邮箱,也不影响查询
  536.  
  537. // 邮箱中任何邮件的状态。请求
  538.  
  539. // 这些状态后,可使用 imap_get_attribute_int_ex 读取
  540.  
  541. // 状态值。
  542.  
  543. int imap_status_ex (IMAP *ppimap, char *transaction, char *mailbox, char *item, LAST);
  544.  
  545. // imap_list_mailboxes 函数列出
  546.  
  547. // 客户端可使用的邮箱。回复中包含名称属性、
  548.  
  549. // 层次结构分隔符和邮箱名称。
  550.  
  551. int imap_list_mailboxes(char *transaction, char *reference, char *name, LAST);
  552.  
  553. // imap_list_mailboxes_ex 函数列出
  554.  
  555. // 客户端可使用的邮箱。回复中包含名称属性、
  556.  
  557. // 层次结构分隔符和邮箱名称。
  558.  
  559. int imap_list_mailboxes_ex (IMAP *ppimap, char *transaction, char *reference, char *name,
  560.  
  561. LAST);
  562.  
  563. // imap_list_subscriptions 函数列出
  564.  
  565. // 对客户端声明为订阅或活动的邮箱。
  566.  
  567. // 回复中包含名称属性、层次结构分隔符和
  568.  
  569. // 邮箱名称。
  570.  
  571. int imap_list_subscriptions (char *transaction, char *reference, char *name, LAST);
  572.  
  573. // imap_list_subscriptions_ex 函数
  574.  
  575. // 列出对客户端声明为订阅或活动的邮箱。
  576.  
  577. // 回复中包含名称属性、层次结构分隔符和
  578.  
  579. // 邮箱名称。
  580.  
  581. int imap_list_subscriptions_ex (IMAP *ppimap, char *transaction, char *reference, char *name,
  582.  
  583. LAST);
  584.  
  585. // imap_subscribe 函数将指定
  586.  
  587. // 邮箱设置为订阅或活动的。若要检索具有订阅
  588.  
  589. // 的邮箱列表,请调用 imap_list_subscriptions。
  590.  
  591. int imap_subscribe(char *transaction, char *mailbox, LAST);
  592.  
  593. // imap_subscribe_ex 函数将指定
  594.  
  595. // 邮箱设置为订阅或活动的。若要
  596.  
  597. // 检索具有订阅的邮箱列表,请调用
  598.  
  599. // imap_list_subscriptions_ex。
  600.  
  601. int imap_subscribe_ex (IMAP *ppimap, char *transaction, char *mailbox, LAST);
  602.  
  603. // imap_unsubscribe 函数取消
  604.  
  605. // 对指定邮箱的订阅。取消订阅
  606.  
  607. // 命令将从服务器的“活动”或“订阅”
  608.  
  609. // 邮箱集中删除指定邮箱名称。
  610.  
  611. int imap_unsubscribe(char *transaction, char *mailbox, LAST);
  612.  
  613. // imap_unsubscribe_ex 函数取消
  614.  
  615. // 对指定邮箱的订阅。取消订阅
  616.  
  617. // 命令将从服务器的“活动”或“订阅”邮箱
  618.  
  619. // 集中删除指定邮箱名称。
  620.  
  621. int imap_unsubscribe_ex (IMAP *ppimap, char *transaction, char *mailbox, LAST);
  622.  
  623. // imap_expunge 函数使用指定
  624.  
  625. // 函数删除 IMAP 服务器上的邮件。
  626.  
  627. int imap_expunge(char *transaction, char *method, [char *message,] LAST);
  628.  
  629. // imap_expunge_ex 函数针对特定会话
  630.  
  631. // 从 IMAP 服务器上永久删除邮件。
  632.  
  633. int imap_expunge_ex(IMAP *ppimap, char *transaction, char *method, [char *message,] LAST);
  634.  
  635. // imap_store 函数更改与当前
  636.  
  637. // 邮箱中的指定邮件相关的标志。
  638.  
  639. // 可以更改所有标志、在现有标志上添加
  640.  
  641. // 标志或删除标志。
  642.  
  643. int imap_store(char *transaction, char *method, char *message, char *action, ENDITEM, LAST);
  644.  
  645. // imap_store_ex 函数更改
  646.  
  647. // 与当前邮箱中的指定邮件相关的标志。
  648.  
  649. // 可以更改所有标志、在现有标志上
  650.  
  651. // 添加标志或删除标志。
  652.  
  653. int imap_store_ex (IMAP *ppimap, char *transaction, char *method, char *message, char *action,
  654.  
  655. ENDITEM, LAST);
  656.  
  657. // imap_copy 函数将消息
  658.  
  659. // 从当前邮箱复制到另一邮箱中。
  660.  
  661. // 可以指定复制单个邮件或某个范围的邮件。
  662.  
  663. // 如果目标邮箱不存在,服务器将返回错误。
  664.  
  665. int imap_copy(char *transaction, char *message, char *mailbox, ENDITEM, LAST);
  666.  
  667. // imap_copy_ex 函数将消息从
  668.  
  669. // 当前邮箱复制到另一邮箱中。可以指定
  670.  
  671. // 复制单个邮件或某个范围的邮件。如果目标
  672.  
  673. // 邮箱不存在,服务器将返回错误。
  674.  
  675. int imap_copy_ex (IMAP *ppimap, char *transaction, char *message, char *mailbox, ENDITEM,
  676.  
  677. LAST);
  678.  
  679. // imap_fetch 函数针对特定会话
  680.  
  681. // 检索与邮箱邮件相关联的数据。
  682.  
  683. // 可以请求任何邮件数据值,
  684.  
  685. // 包括标志、标题和邮件 ID。
  686.  
  687. int imap_fetch (char *transaction, char *mode, char *message, ENDITEM, LAST);
  688.  
  689. // imap_fetch_ex 函数针对特定会话
  690.  
  691. // 检索与邮箱邮件相关联的数据。
  692.  
  693. // 可以请求任何邮件数据值,包括标志、
  694.  
  695. // 标题和邮件 ID。
  696.  
  697. int imap_fetch_ex (IMAP *ppimap, char *transaction, char *mode, char *message, char *saveto,
  698.  
  699. ENDITEM, LAST);
  700.  
  701. // imap_search 函数搜索
  702.  
  703. // 邮箱以查找与搜索标准匹配的邮件。
  704.  
  705. // 搜索标准可以由一个或多个搜索项组成。
  706.  
  707. int imap_search (char *transaction, char *key, char *param, char * saveto, ENDITEM, LAST);
  708.  
  709. // imap_search_ex 函数搜索邮箱
  710.  
  711. // 以查找与搜索标准匹配的邮件。搜索标准
  712.  
  713. // 可以由一个或多个搜索项组成。
  714.  
  715. int imap_search_ex (IMAP *ppimap, char *transaction, char *key, char *param, ENDITEM,
  716.  
  717. LAST);
  718.  
  719. // 使用 imap_set_max_param_len 设置
  720.  
  721. // 用于将邮件作为参数存储的缓冲区的
  722.  
  723. // 最大大小。该函数要在将邮件保存到参数的函数
  724.  
  725. // (imap_fetch 和 imap_search)之前被调用。
  726.  
  727. int imap_set_max_param_len ( char *size );
  728.  
  729. // 使用 imap_set_max_param_len_ex 设置用于
  730.  
  731. // 将邮件作为参数存储的缓冲区的最大大小。
  732.  
  733. // 该函数要在将邮件保存到参数
  734.  
  735. // 的函数(imap_fetch 和 imap_search)之前被调用。
  736.  
  737. int imap_set_max_param_len_ex ( IMAP *ppimap, char *size );
  738.  
  739. // imap_append 函数将文本表达式
  740.  
  741. // 作为新邮件追加到指定邮箱的末尾。
  742.  
  743. int imap_append (char *transaction, char *message, char *flag, char *mailbox, ENDITEM,
  744.  
  745. LAST);
  746.  
  747. // imap_append_ex 函数将文本表达式
  748.  
  749. // 作为新邮件追加到指定邮箱的末尾。
  750.  
  751. int imap_append_ex (IMAP *ppimap, char *transaction, char *message, char *flag, char *mailbox,
  752.  
  753. ENDITEM, LAST);
  754.  
  755. // imap_create 函数创建新的邮箱。
  756.  
  757. int imap_create(char *transaction, char *mailbox, LAST);
  758.  
  759. // imap_create_ex 函数针对特定会话创建新邮箱。
  760.  
  761. int imap_create_ex (IMAP *ppimap, char *transaction, char *mailbox, LAST);
  762.  
  763. // imap_delete 函数删除现有邮箱。
  764.  
  765. int imap_delete(char *transaction, char *mailbox, LAST);
  766.  
  767. // imap_delete_ex 函数针对特定会话
  768.  
  769. // 删除现有邮箱。
  770.  
  771. int imap_delete_ex (IMAP *ppimap, char *transaction, char *mailbox, LAST);
  772.  
  773. // imap_noop 函数在邮箱上执行 noop 操作。
  774.  
  775. // 这对于测试网络非常有用。
  776.  
  777. int imap_noop(char *transaction);
  778.  
  779. // imap_noop_ex 函数在指定 IMAP 会话
  780.  
  781. // 的邮箱上执行 noop 操作。
  782.  
  783. // 这对于测试网络非常有用。
  784.  
  785. int imap_noop_ex (IMAP *ppimap, char *transaction);
  786.  
  787. // imap_check 函数在当前
  788.  
  789. // 邮箱中请求检查点。检查点涉及任何依赖于
  790.  
  791. // 实现并适用于邮箱内部的内务管理。
  792.  
  793. int imap_check (char *transaction);
  794.  
  795. // imap_check_ex 函数在指定 IMAP 会话
  796.  
  797. // 的当前邮箱中请求检查点。检查点
  798.  
  799. // 涉及任何依赖于实现并适用于邮箱内部的
  800.  
  801. // 内务管理。
  802.  
  803. int imap_check_ex (IMAP *ppimap, char *transaction);
  804.  
  805. // imap_close 函数将设置
  806.  
  807. // 有 \Deleted 标记的所有邮件从
  808.  
  809. // 当前邮箱中永远删除。它将邮件从
  810.  
  811. // 选中状态返回到身份验证状态。
  812.  
  813. // 当前选中邮箱将关闭。
  814.  
  815. int imap_close(char *transaction, char *mailbox, LAST);
  816.  
  817. // imap_close_ex 函数针对特定会话将
  818.  
  819. // 设置有 \Deleted 标记的所有邮件
  820.  
  821. // 从当前邮箱中永久删除。
  822.  
  823. // 它将邮件从选中状态返回到身份验证状态。
  824.  
  825. // 当前选中的邮箱将被关闭。
  826.  
  827. int imap_close_ex (IMAP *ppimap, char *transaction, char *mailbox, LAST);
  828.  
  829. // imap_custom_request 函数执行
  830.  
  831. // 自定义的 IMAP 请求。此函数对于
  832.  
  833. // 处理未包含在 IMAP4rev1 协议规范中、特定
  834.  
  835. // 于 IMAP 服务器的扩展非常有用。
  836.  
  837. int imap_custom_request (char *transaction, char *operation, char *arguments );
  838.  
  839. // imap_custom_request_ex 函数针对特定会话
  840.  
  841. // 执行自定义的 IMAP 请求。此函数对于
  842.  
  843. // 处理未包含在 IMAP4rev1 协议规范中、特定
  844.  
  845. // 于 IMAP 服务器的扩展非常有用。
  846.  
  847. int imap_custom_request_ex (IMAP *ppimap, char *transaction, char *operation, char
  848.  
  849. *arguments);
  850.  
  851. // imap_get_attribute_int 函数将 IMAP 会话
  852.  
  853. // 属性的值作为 integer 类型值返回。
  854.  
  855. int imap_get_attribute_int(char *property);
  856.  
  857. // imap_get_attribute_int_ex 函数针对特定会话将 IMAP 属性的
  858.  
  859. // 值作为 integer 类型值返回。
  860.  
  861. int imap_get_attribute_int_ex(IMAP *ppimap, char *attribute);
  862.  
  863. // imap_get_attribute_sz 函数将 IMAP 会话
  864.  
  865. // 属性的值作为字符串返回。
  866.  
  867. char *imap_get_attribute_sz(char *property);
  868.  
  869. // imap_get_attribute_sz_ex 函数针对特定会话
  870.  
  871. // 将 IMAP 属性的值作为字符串返回。
  872.  
  873. char *imap_get_attribute_sz_ex(IMAP *ppimap, char *attribute);
  874.  
  875. // mldap_add 函数向 LDAP 目录中添加条目。
  876.  
  877. int mldap_add (char *transaction, char *dn, <List of Attributes>, LAST);
  878.  
  879. // mldap_add_ex 函数针对特定会话
  880.  
  881. // 向 LDAP 目录中添加条目。
  882.  
  883. int mldap_add_ex (MLDAP *pldap, char *transaction, char *dn, <List of Attributes>, LAST);
  884.  
  885. // mldap_delete 函数删除条目或条目的属性。
  886.  
  887. // 如果指定条目名称,该条目将被删除。
  888.  
  889. // 如果指定属性名称,则只有该属性
  890.  
  891. // 被删除。
  892.  
  893. int mldap_delete (char *transaction, char *dn, LAST);
  894.  
  895. // mldap_delete_ex 函数针对指定会话
  896.  
  897. // 从 LDAP 服务器删除文件。
  898.  
  899. int mldap_delete_ex (MLDAP *pldap, char *transaction, char *dn, LAST);
  900.  
  901. // mldap_get_attrib_name 函数检索
  902.  
  903. // 指定属性索引的属性名。可以选择
  904.  
  905. // 将此名称保存为参数。
  906.  
  907. char * mldap_get_attrib_name (char *transaction, char *index, [char *param,] LAST);
  908.  
  909. // mldap_get_attrib_name_ex 函数检索
  910.  
  911. // 指定会话的指定索引的属性名。
  912.  
  913. // 可以选择将此名称保存为参数。
  914.  
  915. char * mldap_get_attrib_name_ex (MLDAP *pldap, char *transaction, char *index, [char
  916.  
  917. *param,] LAST);
  918.  
  919. // mldap_get_attrib_value 函数检索
  920.  
  921. // 当前条目的属性值。既可以
  922.  
  923. // 指定属性的索引,也可以指定
  924.  
  925. // 属性的名称。默认情况下,
  926.  
  927. // 如果不指定任何值,函数将
  928.  
  929. // 返回第一个属性的值。可选的 offset 参数允
  930.  
  931. // 许您获取第一个属性之外的其他属性的值。
  932.  
  933. // 例如,如果属性具有多个值,offset 为 0 将返回第一个值,
  934.  
  935. // offset 为 1 将返回第二个值,依此类推。
  936.  
  937. char * mldap_get_attrib_value (char *transaction, char *name, char *index, [char *offset,] [char
  938.  
  939. *param,] LAST);
  940.  
  941. // mldap_get_attrib_value_ex 函数检索
  942.  
  943. // 指定会话指定属性的值。既可以指定
  944.  
  945. // 属性的索引,也可以指定属性的名称。
  946.  
  947. // 默认情况下,如果不指定任何值,函数将返回
  948.  
  949. // 第一个属性的值。可选的 offset 参数
  950.  
  951. // 允许您获取第一个属性之外的其他属性
  952.  
  953. // 的值。例如,如果属性具有多个值,
  954.  
  955. // offset 为 0 将返回第一个值,offset 为 1 将返回第二个值,
  956.  
  957. // 依此类推。
  958.  
  959. // 1 would return the second, etc.
  960.  
  961. char * mldap_get_attrib_value_ex (MLDAP *pldap, char *transaction, char *name, char *index,
  962.  
  963. [char *offset,] [char *param,] LAST);
  964.  
  965. // mldap_get_next_entry 函数显示作为
  966.  
  967. // 搜索结果的下一条目。对于异步搜索,
  968.  
  969. // 此函数检索并显示条目;对于同步搜索,
  970.  
  971. // 它只显示下一条目。函数返回 DN 条目的名称,
  972.  
  973. // 但您也可以命令该函数将其
  974.  
  975. // 保存为参数。如果没有其他条目,或者如果在检索
  976.  
  977. // 项目时发生错误,函数将
  978.  
  979. // 返回 NULL。
  980.  
  981. char * mldap_get_next_entry (char *transaction, [char *timeout,] [char *param,] LAST);
  982.  
  983. // mldap_get_next_entry_ex 函数显示
  984.  
  985. // 作为指定会话的搜索结果的下一
  986.  
  987. // 条目。对于异步搜索,此函数检索
  988.  
  989. // 并显示条目;对于同步搜索,它只显示
  990.  
  991. // 下一条目。函数返回 DN 条目的名称,
  992.  
  993. // 但您也可以命令该函数将其保存为参数。
  994.  
  995. // 如果没有其他条目,或者如果
  996.  
  997. // 在检索项目时发生错误,函数将
  998.  
  999. // 返回 NULL。
  1000.  
  1001. char * mldap_get_next_entry_ex (MLDAP *pldap, char *transaction, [char *timeout,] [char
  1002.  
  1003. *param,] LAST);
  1004.  
  1005. // mldap_logon 函数执行登录到 LDAP 服务器的操作。
  1006.  
  1007. int mldap_logon (char *transaction, char *url, LAST);
  1008.  
  1009. // mldap_logon_ex 函数针对特定会话登录
  1010.  
  1011. // 到 LDAP 服务器。
  1012.  
  1013. int mldap_logon_ex (MLDAP *pldap, char *transaction, char *url, LAST);
  1014.  
  1015. // mldap_logoff 函数执行从 LDAP 服务器注销的操作。
  1016.  
  1017. int mldap_logoff ( );
  1018.  
  1019. // mldap_logoff_ex 函数针对特定会话
  1020.  
  1021. // 从 LDAP 服务器注销。
  1022.  
  1023. int mldap_logoff_ex (MLDAP *pldap);
  1024.  
  1025. // mldap_modify 函数更改 LDAP 条目
  1026.  
  1027. // 属性的值。每个函数只能修改一个条目。
  1028.  
  1029. // 若要修改另一个条目的属性,请使用
  1030.  
  1031. // 另一个 mldap_modify 函数。
  1032.  
  1033. int mldap_modify (char *transaction, char *dn, <List of Attributes>, LAST);
  1034.  
  1035. // mldap_modify_ex 函数针对特定会话
  1036.  
  1037. // 向 LDAP 目录中添加条目。
  1038.  
  1039. int mldap_modify_ex (MLDAP *pldap, char *transaction, char *dn, <List of Attributes>, LAST);
  1040.  
  1041. // mldap_rename 函数替换 LDAP 服务器上的 DN
  1042.  
  1043. // 项。您可以替换一个或多个属性类型。例如,
  1044.  
  1045. // 如果某雇员更改了名称,您可以更改
  1046.  
  1047. // 其 CN 属性。如果某雇员换到了其他部门,
  1048.  
  1049. // 您可以更改其 OU 属性。
  1050.  
  1051. int mldap_rename (char *transaction, char *dn, char *NewDn, LAST);
  1052.  
  1053. // mldap_rename_ex 函数针对特定会话替换 LDAP 服务器上
  1054.  
  1055. // 的 DN 项。您可以替换
  1056.  
  1057. // 一个或多个属性类型。例如,某雇员
  1058.  
  1059. // 更改了名称,您可以更改其 CN 属性。
  1060.  
  1061. // 如果某雇员换到了其他部门,您可以
  1062.  
  1063. // 更改其 OU 属性。
  1064.  
  1065. int mldap_rename_ex (MLDAP *pldap, char *transaction, char *dn, char *NewDn, LAST);
  1066.  
  1067. // mldap_search 函数在 LDAP 中搜索
  1068.  
  1069. // 特定属性。您指明 VuGen 用作搜索
  1070.  
  1071. // 基础的 DN。搜索范围可以是
  1072.  
  1073. // 基础自身 (base)、基础下一级 (Onelevel) 或
  1074.  
  1075. // 基础下的所有级别 (subtree)。您可以
  1076.  
  1077. // 指定属性及其值,还可以指定通配符。
  1078.  
  1079. // 如果使用通配符,VuGen 将返回指定属性
  1080.  
  1081. // 的所有值。
  1082.  
  1083. int mldap_search (char *transaction, char *base, char *scope, char *filter, [char *timeout,] [char
  1084.  
  1085. *mode,] [const char *SaveAsParam,][const char *Attrs,] LAST);
  1086.  
  1087. // mldap_search_ex 函数在 LDAP 中搜索
  1088.  
  1089. // 特定属性。您指明 VuGen 用作搜索
  1090.  
  1091. // 基础的 DN。搜索范围可以是
  1092.  
  1093. // 基础自身 (base)、基础下一级 (Onelevel) 或
  1094.  
  1095. // 基础下的所有级别 (subtree)。您可以
  1096.  
  1097. // 指定属性及其值,还可以指定通配符。
  1098.  
  1099. // 如果使用通配符,VuGen 将返回指定属性
  1100.  
  1101. // 的所有值。
  1102.  
  1103. int mldap_search_ex (MLDAP *pldap, const char *transaction, const char *base, const char
  1104.  
  1105. *scope, const char *filter, [const char *timeout,] [const char *mode,][const char
  1106.  
  1107. *SaveAsParam,][const char *Attrs,] LAST);
  1108.  
  1109. // mapi_delete_mail 函数删除 MS Exchange 服务器上
  1110.  
  1111. // 的当前或选定的电子邮件项。
  1112.  
  1113. int mapi_delete_mail(char *transaction, [char *ID,] LAST);
  1114.  
  1115. // mapi_delete_mail_ex 函数针对特定会话删除
  1116.  
  1117. // MS Exchange 服务器上的邮件。
  1118.  
  1119. int mapi_delete_mail_ex(MAPI *ppmapi, char *transaction, [char *ID,] LAST);
  1120.  
  1121. // mapi_get_property_sz 函数针对特定会话
  1122.  
  1123. // 为 MAPI 属性的值分配缓冲区,并
  1124.  
  1125. // 返回指向缓冲区的值。
  1126.  
  1127. char* mapi_get_property_sz(char *property);
  1128.  
  1129. // mapi_get_property_sz_ex 函数针对特定会话
  1130.  
  1131. // 为 MAPI 属性的值分配缓冲区,并
  1132.  
  1133. // 返回指向缓冲区的值。
  1134.  
  1135. char *mapi_get_property_sz_ex(MAPI *ppmapi, char *property);
  1136.  
  1137. // mapi_logon 函数使用简单 MAPI(一种
  1138.  
  1139. // MS Exchange 协议)登录到 MS Exchange 服务器。
  1140.  
  1141. int mapi_logon(char *transaction, char *profilename, char *profilepass, NULL);
  1142.  
  1143. // mapi_logon_ex 针对特定会话登录到
  1144.  
  1145. // MS Exchange 服务器。它使用简单 MAPI(一种 MS Exchange
  1146.  
  1147. // 协议)执行登录。
  1148.  
  1149. int mapi_logon_ex (MAPI *ppmapi, char *transaction, char *profilename, char *profilepass,
  1150.  
  1151. NULL);
  1152.  
  1153. // mapi_logout 函数从 MS Exchange 服务器注销。
  1154.  
  1155. int mapi_logout( );
  1156.  
  1157. // mapi_logout_ex 函数针对特定函数
  1158.  
  1159. // 从 MAPI 服务器注销。
  1160.  
  1161. int mapi_logout_ex(MAPI *ppmapi);
  1162.  
  1163. // mapi_read_next_mail 函数使用 MAPI 服务器读取
  1164.  
  1165. // 邮件。使用 Peek 选项,可以控制
  1166.  
  1167. // 是否将邮件标记为“已读”或“未读”。
  1168.  
  1169. int mapi_read_next_mail(char *transaction, char *Show, [char *options,] LAST);
  1170.  
  1171. // mapi_read_next_mail_ex 函数针对
  1172.  
  1173. // 指定会话读取邮箱中的下一封邮件
  1174.  
  1175. // 消息。使用 Peek 选项,可以控制是否
  1176.  
  1177. // 将邮件标记为“已读”或“未读”。
  1178.  
  1179. int mapi_read_next_mail_ex( MAPI *ppmapi, char *transaction, char *Show, [char *Peek,] [char
  1180.  
  1181. *Type,] [char *Save,] [char *MessageId,] LAST );
  1182.  
  1183. // mapi_send_mail 函数使用 MAPI 服务器发送邮件消息。
  1184.  
  1185. int mapi_send_mail(char *transaction, char *To, [char *CC,] [char *BCC,] [char *Subject,] [char
  1186.  
  1187. *Type,] [char *Body,] [ATTACHMENTS,] LAST);
  1188.  
  1189. // mapi_send_mail_ex 函数针对指定会话
  1190.  
  1191. // 使用 MAPI 服务器发送邮件消息。
  1192.  
  1193. int mapi_send_mail_ex(MAPI *ppmapi, char *transaction, char *To, [char *CC,] [char *BCC,]
  1194.  
  1195. [char *Subject,] [char *Type,] [char *Body,] [ATTACHMENTS,] LAST);
  1196.  
  1197. // mapi_set_property_sz 函数设置 MAPI 会话属性值。
  1198.  
  1199. void mapi_set_property_sz(char *property, char *value );
  1200.  
  1201. // mapi_set_property_sz_ex 函数针对特定会话
  1202.  
  1203. // 设置 MAPI 会话属性值。
  1204.  
  1205. void mapi_set_property_sz_ex(MAPI *ppmapi, char *property, char *value);
  1206.  
  1207. // mms_close 函数关闭现有媒体播放器
  1208.  
  1209. // 会话。此函数仅对活动的播放器会话
  1210.  
  1211. // 有效。只有使用持续时间标记,而非 –1(无穷)
  1212.  
  1213. // 调用 mms_play 时(流传输尚未完成),播放器会话
  1214.  
  1215. // 才会处于活动状态。
  1216.  
  1217. int mms_close( );
  1218.  
  1219. // mms_close_ex 函数关闭指定的媒体
  1220.  
  1221. // 播放器会话。此函数仅对活动播放器
  1222.  
  1223. // 会话有效。只有使用持续时间标记,
  1224.  
  1225. // 而非 –1(无穷)调用 mms_play 时(流传输尚未完成),
  1226.  
  1227. // 播放器会话才会处于活动
  1228.  
  1229. // 状态。
  1230.  
  1231. int mms_close_ex(MMS *ppmms);
  1232.  
  1233. // mms_get_property 函数检索当前
  1234.  
  1235. // 媒体剪辑的属性。
  1236.  
  1237. double mms_get_property(int property);
  1238.  
  1239. // mms_get_property_ex 函数检索当前
  1240.  
  1241. // 媒体剪辑的属性。用于特定会话。
  1242.  
  1243. double mms_get_property_ex (MMS *ppmms, int property);
  1244.  
  1245. // mms_set_property 函数设置媒体播放器剪辑属性。
  1246.  
  1247. int mms_set_property(int property, char *value);
  1248.  
  1249. // mms_set_property_ex 函数针对特定会话
  1250.  
  1251. // 设置媒体剪辑属性。
  1252.  
  1253. int mms_set_property_ex(MMS *ppmms, int property, char *value);
  1254.  
  1255. // mms_isactive 函数检查 Media Player 是否处于
  1256.  
  1257. // 活动状态。它验证 Media Player 是否已打开
  1258.  
  1259. // 以及是否正在传入或传出数据。
  1260.  
  1261. int mms_isactive( );
  1262.  
  1263. // mms_isactive_ex 函数检查 Media Player
  1264.  
  1265. // 是否处于活动状态。它针对指定会话验证
  1266.  
  1267. // 是否打开了 Media Player,以及
  1268.  
  1269. // 是否正在传入或传出数据。
  1270.  
  1271. int mms_isactive_ex(MMS *ppmms);
  1272.  
  1273. // mms_pause 函数暂停媒体播放器剪辑。只有播放持续时间不为负值时,此函数
  1274.  
  1275. // 才起作用。
  1276.  
  1277. int mms_pause( );
  1278.  
  1279. // mms_pause_ex 函数针对指定会话
  1280.  
  1281. // 暂停媒体播放器剪辑。只有播放持续时间不为负值时,此函数
  1282.  
  1283. // 才起作用。
  1284.  
  1285. int mms_pause_ex(MMS *ppmms);
  1286.  
  1287. // mms_play 函数播放媒体播放器剪辑。如果只
  1288.  
  1289. // 希望连接到剪辑并手动控制它,请指定持续时间为
  1290.  
  1291. // 0,后面再跟所需的函数。
  1292.  
  1293. int mms_play(char *transaction, char *URL, [char *duration,] [char *starttime,] LAST);
  1294.  
  1295. // mms_play_ex 函数针对指定会话
  1296.  
  1297. // 播放媒体播放器剪辑。
  1298.  
  1299. int mms_play_ex(MMS *ppmms, char *transaction, char *URL, [char *duration,] [char
  1300.  
  1301. *starttime,] LAST);
  1302.  
  1303. // 在使用 mms_pause 暂停播放媒体剪辑后,
  1304.  
  1305. // mms_resume 函数继续播放。只有播放持续时间
  1306.  
  1307. // 不为负值时,此函数才起作用。
  1308.  
  1309. int mms_resume( DWORD resumetime, DWORD duration);
  1310.  
  1311. // 在指定会话中,在使用 mms_pause 暂停播放
  1312.  
  1313. // 媒体剪辑后,mms_resume_ex 函数继续
  1314.  
  1315. // 播放。只有播放持续时间不为负值时,此函数
  1316.  
  1317. // 才起作用。
  1318.  
  1319. int mms_resume_ex( MMS *ppmms, DWORD resumetime, DWORD duration);
  1320.  
  1321. // mms_sampling 函数通过收集指定
  1322.  
  1323. // 持续时间内的统计信息来采样播放媒体剪辑。
  1324.  
  1325. // 只有播放持续时间为无限(mms_play 中的
  1326.  
  1327. // 持续时间值设为 0)时,此函数才起作用。
  1328.  
  1329. int mms_sampling(DWORD duration);
  1330.  
  1331. // mms_sampling_ex 函数通过收集
  1332.  
  1333. // 指定持续时间内的统计信息来获取
  1334.  
  1335. // Media Player 会话采样。只有播放持续时间为无限
  1336.  
  1337. // (mms_play_ex 中的持续时间值设为 0)时,
  1338.  
  1339. // 此函数才起作用。
  1340.  
  1341. int mms_sampling_ex(MMS *ppmms, DWORD duration);
  1342.  
  1343. // mms_set_timeout 函数设置用于
  1344.  
  1345. // 打开或关闭剪辑的 Media Player 超时值。
  1346.  
  1347. int mms_set_timeout (int type, int value);
  1348.  
  1349. // mms_set_timeout_ex 函数针对特定会话、设置用于
  1350.  
  1351. // 打开或关闭剪辑的 Media Player 超时值。
  1352.  
  1353. int mms_set_timeout_ex (MMS *ppmms, int type, int value);
  1354.  
  1355. // mms_stop 函数停止播放 Media Player
  1356.  
  1357. // 剪辑。只有播放持续时间为无限(mms_play 中的
  1358.  
  1359. // 持续时间值设为 0)时,此函数才起作用。
  1360.  
  1361. int mms_stop( );
  1362.  
  1363. // mms_stop_ex 函数针对特定会话
  1364.  
  1365. // 停止播放媒体播放器剪辑。只有播放持续时间为无限
  1366.  
  1367. // (mms_play_ex 中的持续时间值设为 0)时,
  1368.  
  1369. // 此函数才起作用。
  1370.  
  1371. int mms_stop_ex(MMS *ppmms);
  1372.  
  1373. // nca_button_double_press 函数两次按指定的
  1374.  
  1375. // 推按钮。
  1376.  
  1377. int nca_button_double_press (LPCSTR name);
  1378.  
  1379. // nca_button_press 函数激活指定的推按钮。
  1380.  
  1381. int nca_button_press ( LPCSTR button );
  1382.  
  1383. // nca_button_set 函数将按钮状态设置为 ON
  1384.  
  1385. // 或 OFF。TOGGLE 选项反转当前状态。
  1386.  
  1387. int nca_button_set ( LPCSTR button, int istate );
  1388.  
  1389. // nca_combo_select_item 函数选择组合框中的项目。
  1390.  
  1391. int nca_combo_select_item (LPCSTR name, LPCSTR item_name);
  1392.  
  1393. // nca_combo_set_item 函数将 item_name 写入组合框名称。
  1394.  
  1395. int nca_combo_set_item ( LPCSTR name, LPCSTR item_name );
  1396.  
  1397. // nca_connect_server 函数使用指定的主机、端口号和模块
  1398.  
  1399. // 连接到 Oracle NCA 数据库服务器。
  1400.  
  1401. int nca_connect_server (LPCSTR host, LPCSTR port, LPCSTR command_line);
  1402.  
  1403. // nca_console_get_text 函数检索
  1404.  
  1405. // Oracle NCA 控制台消息。
  1406.  
  1407. int nca_console_get_text (char *text);
  1408.  
  1409. // nca_edit_box_press 函数在编辑框消息上按下。
  1410.  
  1411. int nca_edit_box_press (LPCSTR name);
  1412.  
  1413. // nca_edit_click 函数在指定编辑对象内单击,
  1414.  
  1415. // 以便将光标放置在框中。一旦
  1416.  
  1417. // 光标位于框中,用户就可以键入值
  1418.  
  1419. // 或从值列表中选择一个值。
  1420.  
  1421. int nca_edit_click ( LPCSTR edit );
  1422.  
  1423. // nca_edit_get_text 函数返回在
  1424.  
  1425. // 指定的编辑对象中找到的所有文本。
  1426.  
  1427. int nca_edit_get_text ( LPCSTR edit, char *out_string );
  1428.  
  1429. // nca_edit_press 函数激活编辑字段中的
  1430.  
  1431. // “浏览”按钮。这将打开可用值列表。
  1432.  
  1433. int nca_edit_press ( LPCSTR edit );
  1434.  
  1435. // nca_edit_set 函数将编辑对象的内容设置为
  1436.  
  1437. // 指定的字符串。它将替换现有字符串。
  1438.  
  1439. int nca_edit_set ( LPCSTR edit, LPCSTR text );
  1440.  
  1441. // nca_flex_click_cell 函数在 Flexfield 窗口中的
  1442.  
  1443. // 指定表单元格中单击。
  1444.  
  1445. int nca_flex_click_cell ( LPCSTR name, LPCSTR row, LPCSTR column);
  1446.  
  1447. // nca_flex_get_cell_data 函数获取 Flexfield 中指定单元格
  1448.  
  1449. // 的内容,并将其存储在变量中。
  1450.  
  1451. int nca_flex_get_cell_data(LPCSTR name, LPCSTR row, LPCSTR column, LPSTR data);
  1452.  
  1453. // nca_flex_get_column_name 函数获取 Flexfield 窗口中
  1454.  
  1455. // 某列的名称。此函数将列名写入
  1456.  
  1457. // 输出参数 column_name。
  1458.  
  1459. int nca_flex_get_column_name ( LPCSTR window_name, int column, LPCSTR column_name );
  1460.  
  1461. // nca_flex_get_row_name 函数获取 Flexfield 窗口中
  1462.  
  1463. // 某行的名称。此函数将行名写入
  1464.  
  1465. // 输出参数 row_name。
  1466.  
  1467. int nca_flex_get_row_name ( LPCSTR window_name, int row, LPCSTR row_name );
  1468.  
  1469. // nca_flex_press_clear 函数按
  1470.  
  1471. // 指定 Flexfield 窗口中的“清除”按钮。
  1472.  
  1473. int nca_flex_press_clear (LPCSTR name );
  1474.  
  1475. // nca_flex_press_find 函数按
  1476.  
  1477. // 指定 Flexfield 窗口中的“查找”按钮。
  1478.  
  1479. int nca_flex_press_find ( LPCSTR name );
  1480.  
  1481. // nca_flex_press_help 函数按指定
  1482.  
  1483. // Flexfield 窗口中的“帮助”按钮(问号)。
  1484.  
  1485. int nca_flex_press_help ( LPCSTR name );
  1486.  
  1487. // nca_flex_press_lov 函数单击
  1488.  
  1489. // 指定 Flexfield 窗口中的“值列表”按钮,
  1490.  
  1491. --------------------------------------------------------------------------------
  1492.  
  1493. Page
  1494.  
  1495. 阿祖总结-Zu.Stone@QQ.com
  1496.  
  1497. // 以便显示活动字段的值列表。
  1498.  
  1499. int nca_flex_press_lov( LPCSTR name, LPCSTR row, LPCSTR column );
  1500.  
  1501. // nca_flex_press_ok 函数按指定
  1502.  
  1503. // Flexfield 窗口中的“确定”按钮。
  1504.  
  1505. int nca_flex_press_ok ( LPCSTR name );
  1506.  
  1507. // nca_flex_set_cell_data 函数设置指定
  1508.  
  1509. // Flexfield 窗口中的单元格数据。
  1510.  
  1511. int nca_flex_set_cell_data ( LPCSTR name, LPCSTR row, LPCSTR column, LPCSTR data );
  1512.  
  1513. // nca_flex_set_cell_data_press_ok 函数在手动
  1514.  
  1515. // 向 Flexfield 中输入(而不是从值列表中
  1516.  
  1517. // 选择)数据之后按 Flexfield 窗口中的
  1518.  
  1519. // “确定”按钮。
  1520.  
  1521. int nca_flex_set_cell_data_press_ok ( LPCSTR name, LPCSTR row, LPCSTR column, LPCSTR
  1522.  
  1523. data );
  1524.  
  1525. // exit_oracle_application 函数断开与
  1526.  
  1527. // Oracle NCA 数据库服务器的连接,并退出应用程序。
  1528.  
  1529. int exit_oracle_application( );
  1530.  
  1531. // nca_get_top_window 函数将顶部窗口的名称分配给
  1532.  
  1533. // 由 winName 指向的用户分配的缓冲区。
  1534.  
  1535. int nca_get_top_window ( char *winName);
  1536.  
  1537. // nca_java_action 函数使用指定参数
  1538.  
  1539. // 在 Java 对象上执行事件。
  1540.  
  1541. int nca_java_action(LPCSTR name, LPCSTR event, LPCSTR arglist);
  1542.  
  1543. // 使用 nca_java_delete_name 可以删除用于存储属性的内存
  1544.  
  1545. // (这些属性是录制 Java 对象时由 Vugen
  1546.  
  1547. // 保存的)。只有在 nca_java_set_option 中启用了
  1548.  
  1549. // JAVA_SAVE_PROP 选项,Vugen 才会保存 Java 对象。。
  1550.  
  1551. int nca_java_delete_name(LPCSTR name, LPCSTR property_name);
  1552.  
  1553. // nca_java_get_value 函数检索指定
  1554.  
  1555. // Java 对象的值。
  1556.  
  1557. int nca_java_get_value(LPCSTR name, char *value );
  1558.  
  1559. // nca_java_get_value_ex 检索 Java 对象内指定
  1560.  
  1561. // 属性 property_name 的值。
  1562.  
  1563. int nca_java_get_value_ex (LPCSTR name, LPCSTR property_name, LPSTR property_value);
  1564.  
  1565. // nca_java_set_option 函数在录制 Java 对象时设置选项。
  1566.  
  1567. int nca_java_set_option(int option, < option value > );
  1568.  
  1569. // nca_java_set_reply_property 函数设置
  1570.  
  1571. // 指定的 Java 回复属性。
  1572.  
  1573. void nca_java_set_reply_property (void * ReplyPropList);
  1574.  
  1575. // nca_list_activate_item 函数双击列表中的
  1576.  
  1577. // 项目。项目通过其逻辑名称指定。
  1578.  
  1579. int nca_list_activate_item ( LPCSTR list, LPCSTR item );
  1580.  
  1581. // nca_list_get_text 从列表中检索选定项目并放到 value 中。
  1582.  
  1583. int nca_list_get_text( LPCSTR name, char *value );
  1584.  
  1585. // nca_list_select_item 函数从列表中
  1586.  
  1587. // 选择项目(在项目上执行一次鼠标单击)。
  1588.  
  1589. // 项目通过其名称指定。
  1590.  
  1591. int nca_list_select_item ( LPCSTR list, LPCSTR item );
  1592.  
  1593. // nca_list_select_index_item 函数从列表中
  1594.  
  1595. // 选择项目(在项目上执行一次鼠标单击)。该项目
  1596.  
  1597. // 通过其数字索引指明。该索引被指定为
  1598.  
  1599. // 字符串,起始值为 0。
  1600.  
  1601. int nca_list_select_index_item ( LPCSTR list, int index );
  1602.  
  1603. // nca_logon_connect 函数执行到 Oracle NCA
  1604.  
  1605. // 数据库的登录。它使用指定的用户名和密码
  1606.  
  1607. // 连接到数据库。
  1608.  
  1609. int nca_logon_connect (LPCSTR connection_name, LPCSTR username, LPCSTR password,
  1610.  
  1611. LPCSTR database);
  1612.  
  1613. // nca_logon_cancel 函数取消与 Oracle NCA
  1614.  
  1615. // 数据库的连接。连接名称通过
  1616.  
  1617. // nca_logon_connect 的 connection_name
  1618.  
  1619. // 参数设置。但是,此函数并不断开与服务器
  1620.  
  1621. // 的连接。
  1622.  
  1623. int nca_logon_cancel (LPCSTR name);
  1624.  
  1625. // nca_lov_auto_select 函数输入一个字母
  1626.  
  1627. // 来指明要从值列表中选择的项目的第一个
  1628.  
  1629. // 字符。以指定字母开头的项目
  1630.  
  1631. // 被选中。如果存在多个以该字母
  1632.  
  1633. // 开头的项目,那么所有匹配的值都将显示在列表中,
  1634.  
  1635. // 您需要从新列表中选择一个
  1636.  
  1637. // 项目。
  1638.  
  1639. int nca_lov_auto_select ( LPCSTR name, char selection );
  1640.  
  1641. // nca_lov_find_value 函数查找对象的
  1642.  
  1643. // 值列表。当您单击“值列表”窗口中的“查找”
  1644.  
  1645. // 按钮时,将录制此函数。
  1646.  
  1647. int nca_lov_find_value ( LPCSTR name, LPCSTR value );
  1648.  
  1649. // nca_lov_get_item_name 函数在值列表中检索
  1650.  
  1651. // 某项目的名称,并将其写入该函数
  1652.  
  1653. // 的 value 参数。调用该函数之前,必须为值分配足够的
  1654.  
  1655. // 内存空间。
  1656.  
  1657. int nca_lov_get_item_name ( LPCSTR name, int item_index, char *value);
  1658.  
  1659. // nca_lov_retrieve_items 函数基于指定的
  1660.  
  1661. // 范围,从值列表中检索项目。该范围
  1662.  
  1663. // 通过函数的参数 first_item 和 last_item
  1664.  
  1665. // 指定,其中“1”表示第一个项目。
  1666.  
  1667. int nca_lov_retrieve_items ( LPCSTR name, int first_item, int last_item );
  1668.  
  1669. // nca_lov_select_index_item 函数使用项目的索引编号
  1670.  
  1671. // 从值列表中选择项目。
  1672.  
  1673. int nca_lov_select_index_item ( LPCSTR name, int index );
  1674.  
  1675. // nca_lov_select_item 函数从值列表中选择项目。
  1676.  
  1677. int nca_lov_select_item ( LPCSTR name, LPCSTR item );
  1678.  
  1679. // nca_lov_select_random_item 函数从值列表中
  1680.  
  1681. // 选择随机项目。第二个参数是
  1682.  
  1683. // 输出参数,用于指明随机选择时
  1684.  
  1685. // 选择的是哪个值。
  1686.  
  1687. int nca_lov_select_random_item ( LPCSTR name, char *item );
  1688.  
  1689. // nca_menu_select_item 函数根据
  1690.  
  1691. // 菜单的逻辑名称和项目的名称从菜单中选择
  1692.  
  1693. // 项目。注意,菜单和项目表示分别表示为
  1694.  
  1695. // 单个字符串,并使用分号分隔。
  1696.  
  1697. int nca_menu_select_item ( LPCSTR window, LPCSTR menu;item );
  1698.  
  1699. // nca_message_box_press 函数按
  1700.  
  1701. // 消息窗口中的指定按钮。该按钮通过其索引指定,
  1702.  
  1703. // 通常是从左到右
  1704.  
  1705. // 的按钮顺序。例如,如果消息框包含
  1706.  
  1707. // 三个按钮:“是”、“否”和“取消”,那么相应的
  1708.  
  1709. // 索引可能为 1、2 和 3。
  1710.  
  1711. int nca_message_box_press ( LPCSTR name, int button );
  1712.  
  1713. // nca_obj_get_info 函数检索指定属性的值,
  1714.  
  1715. // 并存储在 out_value 中。
  1716.  
  1717. int nca_obj_get_info ( LPCSTR object, LPCSTR property, char *out_value );
  1718.  
  1719. // nca_obj_mouse_click 函数在
  1720.  
  1721. // 对象内的指定坐标处单击鼠标。
  1722.  
  1723. int nca_obj_mouse_click ( LPCSTR object, int x, int y, unsigned char modifier);
  1724.  
  1725. // nca_obj_mouse_dbl_click 函数在
  1726.  
  1727. // 对象内的指定坐标处双击鼠标。
  1728.  
  1729. int nca_obj_mouse_dbl_click ( LPCSTR object, int x, int y, unsigned char modifier);
  1730.  
  1731. // nca_obj_status 函数返回指定对象的状态。
  1732.  
  1733. int nca_obj_status ( LPCSTR name );
  1734.  
  1735. // nca_obj_type 函数指定 keyboard_input 将
  1736.  
  1737. // 发送到的对象。此函数录制
  1738.  
  1739. // 特殊字符,如 Tab 键、功能键以及
  1740.  
  1741. // 快捷键组合。
  1742.  
  1743. int nca_obj_type ( LPCSTR object, unsigned char keyboard_input, unsigned char modifier);
  1. // nca_popup_message_press 函数按
  2.  
  3. // 消息窗口中的指定按钮。
  4.  
  5. int nca_popup_message_press ( LPCSTR name, LPCSTR button );
  6.  
  7. // nca_response_get_cell_data 函数从“响应”框
  8.  
  9. // 中的单元格中检索数据。应指定“响应”对象
  10.  
  11. // 的名称和字段的名称。
  12.  
  13. int nca_response_get_cell_data ( const char *name, const char * rowname, char * data);
  14.  
  15. // nca_response_press_lov 函数单击“响应”框
  16.  
  17. // 中的下拉箭头。
  18.  
  19. int nca_response_press_lov(LPCSTR name, LPCSTR field);
  20.  
  21. // nca_response_press_ok 函数按指定响应框
  22.  
  23. // 中的“确定”
  24.  
  25. int nca_response_press_ok (LPCSTR name);
  26.  
  27. // nca_response_set_cell_data 函数向“响应”框中
  28.  
  29. // 的单元格中插入数据。应指定“响应”对象的名称、
  30.  
  31. // 单元格的名称以及数据。
  32.  
  33. int nca_response_set_cell_data (LPCSTR name, LPCSTR cell, LPCSTR data);
  34.  
  35. // nca_response_set_data 函数向“响应”框中
  36.  
  37. // 插入数据。应指定“响应”对象的名称
  38.  
  39. // 和数据。
  40.  
  41. int nca_response_set_data (LPCSTR name, LPCSTR data);
  42.  
  43. // nca_scroll_drag_from_min 函数从最小位置
  44.  
  45. // 滚动到指定距离。
  46.  
  47. int nca_scroll_drag_from_min ( LPCSTR object, int position );
  48.  
  49. // nca_scroll_line 函数滚动指定的
  50.  
  51. // 行数。此函数可用于
  52.  
  53. // 滚动栏和滑块对象。
  54.  
  55. int nca_scroll_line ( LPCSTR scroll, int lines );
  56.  
  57. // nca_scroll_page 函数滚动指定的
  58.  
  59. // 页数。此函数可用于
  60.  
  61. // 滚动栏和滑块对象。
  62.  
  63. int nca_scroll_page ( LPCSTR scroll, int pages );
  64.  
  65. // Vugen 将 nca_set_connect_opt 插入到 nca_connect_server 的前面,
  66.  
  67. // 这样就能识别为服务器连接
  68.  
  69. // 录制的值将不同于默认值。
  70.  
  71. // 保存录制的值将确保与服务器
  72.  
  73. // 的连接与录制脚本期间的服务器连接完全
  74.  
  75. // 相同。
  76.  
  77. int nca_set_connect_opt (eConnectionOption option, ...);
  78.  
  79. // nca_set_custom_dbtrace 设置在应用程序中
  80.  
  81. // 启用 DB 跟踪的自定义函数。如果使用
  82.  
  83. // 内置机制无法启用 DB 跟踪,可能需要
  84.  
  85. // nca_set_custom_dbtrace 和 nca_set_dbtrace_file_index。
  86.  
  87. // 当自定义应用程序包含非标准 UI 时,可能
  88.  
  89. // 会出现这种情况。nca_set_custom_dbtrace
  90.  
  91. // 设置在应用程序中启用 DB 跟踪的
  92.  
  93. // 自定义函数。
  94.  
  95. void nca_set_custom_dbtrace(long function);
  96.  
  97. // nca_set_dbtrace_file_index 标识跟踪文件,以便
  98.  
  99. // 以后供控制器和分析使用。如果使用
  100.  
  101. // 内置机制无法启用 DB 跟踪,可能需要
  102.  
  103. // nca_set_dbtrace_file_index 和 nca_set_custom_dbtrace。当
  104.  
  105. // 自定义应用程序包含非标准 UI 时,可能会出现
  106.  
  107. // 这种情况。
  108.  
  109. void nca_set_dbtrace_file_index(LPCSTR fileindex);
  110.  
  111. // nca_set_exception 函数指定在出现
  112.  
  113. // 异常时应执行的操作。应指定要调用以处理
  114.  
  115. // 异常窗口的函数。
  116.  
  117. void nca_set_exception (LPCSTR title, long function, [void *this_context]);
  118.  
  119. // 当显示了“启用诊断”窗口而且其中的密码
  120.  
  121. // 不同于默认值“apps”时,使用
  122.  
  123. // nca_set_diagnostics_password。必须在
  124.  
  125. // nca_connect_server 的后面添加此函数调用。
  126.  
  127. void nca_set_diagnostics_password( LPCSTR password );
  128.  
  129. // nca_set_iteration_offset 函数设置对象
  130.  
  131. // ID 编号的偏移值。在 Oracle NCA 脚本
  132.  
  133. // 常规录制中,VuGen 会录制每个
  134.  
  135. // 对象的名称。(在起始页中设置 record=names)。
  136.  
  137. // 如果您的版本不支持 record=names
  138.  
  139. // 标记,VuGen 将为每个对象生成一个新 ID 编号。
  140.  
  141. // 运行脚本的多次循环时,对象在
  142.  
  143. // 每次打开都将生成新的 ID 编号。
  144.  
  145. // 因此,当您回放脚本时,特殊对象
  146.  
  147. // 的 ID 编号将与首次循环之后
  148.  
  149. // 同一对象的 ID 不匹配,从而导致测试
  150.  
  151. // 失败。
  152.  
  153. void nca_set_iteration_offset (int offset);
  154.  
  155. // nca_set_server_response_time 函数为 Oracle NCA
  156.  
  157. // 服务器指定响应超时值。这是用户
  158.  
  159. // 向服务器发送请求之后继续停留在
  160.  
  161. // 侦听状态的时间。
  162.  
  163. void nca_set_server_response_time(int time);
  164.  
  165. // nca_set_think_time 函数指定脚本
  166.  
  167. // 执行期间使用的思考时间范围。测试使用指定时间
  168.  
  169. // 范围内的随机思考时间,并在每次操作之后暂停该
  170.  
  171. // 思考时间长度。
  172.  
  173. void nca_set_think_time ( DWORD start_range, DWORD end_range );
  174.  
  175. // nca_set_window 函数指明活动窗口的名称。
  176.  
  177. int nca_set_window ( LPCSTR window);
  178.  
  179. // nca_tab_select_item 函数选择选项卡项目。
  180.  
  181. int nca_tab_select_item ( LPCSTR tab, LPCSTR item );
  182.  
  183. // nca_tree_activate_item 函数激活
  184.  
  185. // Oracle NCA 树中的指定项目。
  186.  
  187. int nca_tree_activate_item (LPCSTR name, LPCSTR item);
  188.  
  189. // nca_tree_select_item 函数选择
  190.  
  191. // Oracle NCA 树中的指定项目。
  192.  
  193. int nca_tree_select_item (LPCSTR name, LPCSTR item);
  194.  
  195. // nca_tree_expand_item 函数展开 Oracle NCA 树中的节点。
  196.  
  197. int nca_tree_expand_item (LPCSTR name, LPCSTR item);
  198.  
  199. // nca_tree_collapse_item 函数折叠
  200.  
  201. // Oracle NCA 树中的节点。
  202.  
  203. int nca_tree_collapse_item (LPCSTR name, LPCSTR item);
  204.  
  205. // nca_win_close 函数关闭指定窗口。
  206.  
  207. int nca_win_close ( LPCSTR window );
  208.  
  209. // nca_win_get_info 函数检索指定属性的值,
  210.  
  211. // 并存储在 out_value 中。
  212.  
  213. int nca_win_get_info ( LPCSTR window, LPCSTR property, char *out_value );
  214.  
  215. // nca_win_move 将某窗口移到一个新的绝对位置。
  216.  
  217. int nca_win_move ( LPCSTR window, int x, int y );
  218.  
  219. // nca_win_resize 函数更改窗口的位置。
  220.  
  221. int nca_win_resize ( LPCSTR window, int width, int height );
  222.  
  223. // pop3_command 函数向 POP3 服务器发送
  224.  
  225. // 命令。服务器返回命令结果。
  226.  
  227. // 例如,如果发送命令“UIDL 1”,服务器将返回
  228.  
  229. // 第一封邮件的唯一 ID。
  230.  
  231. long pop3_command(char *transaction, char *command, [char *command,] [char
  232.  
  233. *save_to_param,] LAST);
  234.  
  235. // pop3_command_ex 函数针对特定会话
  236.  
  237. // 向 POP3 服务器发送命令。服务器
  238.  
  239. // 返回命令结果。例如,如果
  240.  
  241. // 发送命令“UIDL 1”,服务器将返回
  242.  
  243. // 第一封邮件的唯一 ID。
  244.  
  245. long pop3_command_ex (POP3 *pppop3, char *transaction, char *command, [char *command,]
  246.  
  247. LAST);
  248.  
  249. // pop3_delete 函数删除 POP3 服务器上的邮件。
  250.  
  251. long pop3_delete(char *transaction, char *deleteList, [char *save_to_param,] LAST);
  252.  
  253. // pop3_delete_ex 函数针对特定会话
  254.  
  255. // 删除 POP3 服务器上的邮件。
  256.  
  257. long pop3_delete_ex(POP3 *pppop3, char *transaction, char *deleteList, LAST);
  258.  
  259. // pop3_logon 函数登录到 POP3 服务器。
  260.  
  261. // 它使用 FTP 协议使用的格式。
  262.  
  263. int pop3_logon (char *transaction, char *url, LAST);
  264.  
  265. // pop3_logon_ex 函数针对特定会话登录
  266.  
  267. // 到 POP3 服务器。它使用 FTP 协议使用的格式。
  268.  
  269. int pop3_logon_ex (POP3 *pppop3, char *transaction, char *url, LAST);
  270.  
  271. // pop3_logoff 函数从 POP3 服务器注销。
  272.  
  273. long pop3_logoff( );
  274.  
  275. // pop3_logoff_ex 函数针对特定会话
  276.  
  277. // 从 POP3 服务器注销。
  278.  
  279. long pop3_logoff_ex(POP3 *pppop3);
  280.  
  281. // pop3_free 函数释放 POP3 服务器并取消
  282.  
  283. // 所有挂起的命令。
  284.  
  285. void pop3_free( );
  286.  
  287. // pop3_free_ex 函数针对特定会话释放 POP3
  288.  
  289. // 服务器,并取消所有挂起的命令。
  290.  
  291. void pop3_free_ex(POP3 *pppop3);
  292.  
  293. // pop3_list 函数列出 POP3
  294.  
  295. // 服务器上的邮件。它返回该服务器上
  296.  
  297. // 存在的邮件总数。
  298.  
  299. long pop3_list(char *transaction, [char *save_to_param,] LAST);
  300.  
  301. // pop3_list_ex 函数针对特定会话
  302.  
  303. // 列出 POP3 服务器上的邮件。它返回该服务器上
  304.  
  305. // 存在的邮件总数。
  306.  
  307. long pop3_list_ex (POP3 *pppop3, char *transaction, LAST);
  308.  
  309. // pop3_retrieve 函数从 POP3 服务器
  310.  
  311. // 检索邮件。您可以指定邮件范围或
  312.  
  313. // 所有邮件。默认情况下,它在检索邮件之后
  314.  
  315. // 将其从服务器中删除。
  316.  
  317. long pop3_retrieve(char *transaction, char *retrieveList, < Options, > LAST);
  318.  
  319. // pop3_retrieve_ex 函数从 POP3 服务器
  320.  
  321. // 检索邮件。您可以指定邮件范围或
  322.  
  323. // 所有邮件。默认情况下,它在检索邮件之后
  324.  
  325. // 将其从服务器中删除。
  326.  
  327. long pop3_retrieve_ex(POP3 *pppop3, char *transaction, char *retrieveList, char * deleteFlag,
  328.  
  329. [<Options>,] LAST);
  330.  
  331. // lreal_clip_size 函数返回当前与
  332.  
  333. // 播放器关联的剪辑的大小,单位为毫秒。
  334.  
  335. unsigned long lreal_clip_size(int miPlayerID);
  336.  
  337. // lreal_close_player 函数关闭
  338.  
  339. // RealPlayer 的指定示例。
  340.  
  341. int lreal_close_player ( int miplayerID );
  342.  
  343. // lreal_current_time 用于查明剪辑已运行
  344.  
  345. // 多长时间。返回的时间以毫秒为单位。
  346.  
  347. unsigned long lreal_current_time( int miplayerID );
  348.  
  349. // lreal_get_property 获取播放器的属性。
  350.  
  351. int lreal_get_property ( int miPlayerID, unsigned int miProperty );
  352.  
  353. // lreal_open_player 函数创建新的 RealPlayer 实例。
  354.  
  355. int lreal_open_player ( int miplayerID );
  356.  
  357. // lreal_open_url 函数将 URL 与
  358.  
  359. // RealPlayer 实例相关联。使用 lreal_play 向
  360.  
  361. // 实例发出命令让其播放时,将显示此处
  362.  
  363. // 指定的 szURL。
  364.  
  365. int lreal_open_url ( int miplayerID, LPSTR szURL );
  366.  
  367. // lreal_pause 函数将 RealPlayer 实例
  368.  
  369. // 暂停一段指定的时间(单位为毫秒)。此函数
  370.  
  371. // 模拟 RealPlayer 的“播放”菜单中的“暂停”命令。
  372.  
  373. int lreal_pause ( int miplayerID, unsigned long mulPauseTime );
  374.  
  375. // lreal_play 函数播放 RealPlayer 剪辑
  376.  
  377. // 一段指定的时间(单位为毫秒)。此函数
  378.  
  379. // 模拟 RealPlayer 的“播放”菜单中的“播放”命令。
  380.  
  381. int lreal_play ( int miplayerID, long mulTimeToPlay );
  382.  
  383. // lreal_seek 函数搜寻当前剪辑中的
  384.  
  385. // 指定位置。此函数模拟 RealPlayer 的
  386.  
  387. // “播放”菜单中的“搜寻至位置”命令。注意,
  388.  
  389. // 您必须输入以毫秒为单位的时间。
  390.  
  391. int lreal_seek ( int miplayerID, unsigned long mulTimeToSeek );
  392.  
  393. // lreal_stop 函数停止播放 RealPlayer 实例。此
  394.  
  395. // 函数模拟 RealPlayer 的“播放”菜单中的“停止”命令。
  396.  
  397. int lreal_stop ( int miplayerID);
  398.  
  399. // TE_connect 函数在您录制与主机
  400.  
  401. // 的连接时由 VuGen 生成。使用 com_string 的
  402.  
  403. // 内容连接到主机。
  404.  
  405. int TE_connect ( const char *com_string, unsigned int timeout );
  406.  
  407. // TE_find_text 搜索与通过 col1,
  408.  
  409. // row1, col2, row2 定义的矩形中的模式匹配的
  410.  
  411. // 文本。与模式匹配的文本将返回给
  412.  
  413. // match,实际的行与列位置将返回给
  414.  
  415. // retcol 和 retrow。搜索从矩形
  416.  
  417. // 左上角开始。
  418.  
  419. int TE_find_text ( const char *pattern, int col1, int row1, int col2, int row2, int *retcol, int *retrow,
  420.  
  421. char *match );
  422.  
  423. // TE_get_cursor_pos 返回当前鼠标在终端仿真器
  424.  
  425. // 屏幕上的位置的坐标。
  426.  
  427. int TE_get_cursor_pos ( int *col, int *row );
  428.  
  429. // TE_get_line_attribute 检查终端屏幕中
  430.  
  431. // 一行文本的格式。行中的第一个字符
  432.  
  433. // 由 col, row 定义。行中最后一个
  434.  
  435. // 字符的列坐标由 Width
  436.  
  437. // 指定。该函数将每个字符的字符格式存储在
  438.  
  439. // 缓冲区 buf 中。
  440.  
  441. char * TE_get_line_attribute ( int col, int row, int width, char *buf );
  442.  
  443. // TE_get_text_line 将一行文本从终端屏幕复制到
  444.  
  445. // 缓冲区。行中的第一个字符
  446.  
  447. // 由 col, row 定义。行中最后一个
  448.  
  449. // 字符的列坐标由 Width
  450.  
  451. // 指定。如果该行包含制表符或空格,将返回相同
  452.  
  453. // 数目的空格。
  454.  
  455. char * TE_get_text_line ( int col, int row, int width, char *text );
  456.  
  457. // TE_getvar 函数返回 RTE 系统变量的值。
  458.  
  459. int TE_getvar ( int var );
  460.  
  461. // TE_set_cursor_pos 将鼠标位置设置为 col, row。
  462.  
  463. int TE_set_cursor_pos( int col, int row );
  464.  
  465. // TE_setvar 函数设置 RTE 系统变量。
  466.  
  467. int TE_setvar ( int var, int val );
  468.  
  469. // TE_perror 将 TE_errno 的当前值转换为
  470.  
  471. // 相应的错误字符串,设置字符串格式,并将其发送到
  472.  
  473. // Topaz 代理日志或 LoadRunner 输出窗口。
  474.  
  475. void TE_perror ( char *prefix );
  476.  
  477. // TE_sperror 将 TE_errno 的当前值转换为
  478.  
  479. // 相应的错误字符串。
  480.  
  481. char *TE_sperror ();
  482.  
  483. // TE_type 函数描述发送到
  484.  
  485. // 终端仿真器的键盘输入。
  486.  
  487. int TE_type ( const char *string );
  488.  
  489. // TE_unlock_keyboard 用于在因为
  490.  
  491. // 出现错误消息而导致大型机终端的键盘
  492.  
  493. // 被锁定之后解除锁定。TE_unlock_keyboard 等价于
  494.  
  495. // 按 F3 键。
  496.  
  497. int TE_unlock_keyboard ( void );
  498.  
  499. // TE_typing_style 函数确定键入的
  500.  
  501. // 字符串如何提交给在终端仿真器上运行的
  502.  
  503. // 客户端应用程序。如果选择 FAST,
  504.  
  505. // 将把字符作为单个字符串发送。
  506.  
  507. // 此输入方式不需要参数。
  508.  
  509. int TE_typing_style ( const char *style );
  510.  
  511. // 回放期间,TE_wait_cursor 等待鼠标出现在
  512.  
  513. // 终端窗口中的指定位置。
  514.  
  515. int TE_wait_cursor ( int col, int row, int stable, int timeout );
  516.  
  517. // TE_wait_silent 函数等待客户端
  518.  
  519. // 应用程序静默指定的时间。当终端仿真器
  520.  
  521. // 未接到任何字符时,认为客户端处于
  522.  
  523. // 静默状态。如果客户端应用程序
  524.  
  525. // 由于过了超时时间(以秒为单位)
  526.  
  527. // 而未静默认指定的时间,该函数将
  528.  
  529. // 返回错误。
  530.  
  531. int TE_wait_silent ( int sec, int milli, int timeout );
  532.  
  533. // 执行期间,TE_wait_sync 函数暂停
  534.  
  535. // 脚本执行,并等待“X SYSTEM”消息
  536.  
  537. // 从屏幕上消失之后再继续。出现
  538.  
  539. // “X SYSTEM”消息表示系统处于“内部输入”
  540.  
  541. // 模式。
  542.  
  543. int TE_wait_sync (void);
  544.  
  545. // 您可以指示 VuGen 录制每次
  546.  
  547. // 进入 X SYSTEM 模式时系统停留在 X SYSTEM
  548.  
  549. // 模式的时间。要这样做,VuGen 在每个 TE_wait_sync 函数之后插入
  550.  
  551. // TE_wait_sync_transaction 函数。
  552.  
  553. int TE_wait_sync_transaction (char *transaction_name );
  554.  
  555. // TE_wait_text 函数等待与通过 col1,
  556.  
  557. // row1, col2, row2 定义的矩形中
  558.  
  559. // 的模式匹配的文本。与模式
  560.  
  561. // 匹配的文本将返回给 match,实际的
  562.  
  563. // 行和列位置返回给 retcol 和
  564.  
  565. // retrow。如果模式超时时间已过而未
  566.  
  567. // 显示模式,该函数将返回错误
  568.  
  569. // 代码。如果模式已显示在屏幕上,
  570.  
  571. // 该函数将立即返回。
  572.  
  573. int TE_wait_text ( const char *pattern, int timeout [, int col1, int row1, int col2, int row2, int
  574.  
  575. *retcol, int *retrow, char *match ] );
  576.  
  577. // TE_run_script_command 执行 PSL 命令。
  578.  
  579. int TE_run_script_command ( const char *command );
  580.  
  581. // TE_run_script_file 运行 PSL 脚本文件。
  582.  
  583. int TE_run_script_file ( const char *filename );
  584.  
  585. // sapgui_active_object_from_parent_method 函数
  586.  
  587. // 使用 ID 编号 control_id 从大的
  588.  
  589. // 父级对象中选择对象。嵌入的
  590.  
  591. // 对象由方法 method_name 返回。
  592.  
  593. int sapgui_active_object_from_parent_method ( const char *control_id, const char *method_name,
  594.  
  595. char *arg1, ..., char *argn, [optionArguments,] LAST );
  596.  
  597. // sapgui_active_object_from_parent_property 函数
  598.  
  599. // 使用 ID 编号 control_id 从大的
  600.  
  601. // 父级对象中选择对象。嵌入的
  602.  
  603. // 对象由属性 property_name 返回。
  604.  
  605. int sapgui_active_object_from_parent_property (const char *control_id, const char
  606.  
  607. *property_name, [args,] LAST);
  608.  
  609. // sapgui_calendar_focus_date 将焦点置于
  610.  
  611. // 日历中的日期上。从日历中选择
  612.  
  613. // 日期时,将自动录制此函数。
  614.  
  615. // 但是,实际返回日期的函数是
  616.  
  617. // sapgui_calendar_select_interval。
  618.  
  619. int sapgui_calendar_focus_date(const char *description, const char *calendarID, const char *date,
  620.  
  621. [args,] LAST ) ;
  622.  
  623. // sapgui_calendar_scroll_to_date 模拟使用
  624.  
  625. // 滚动栏使日期可见的操作。它不是通过
  626.  
  627. // 将焦点置于日期上来选择日期。
  628.  
  629. int sapgui_calendar_scroll_to_date(const char *description, const char *calendarID, const char
  630.  
  631. *date, [args,] LAST ) ;
  632.  
  633. // sapgui_calendar_select_interval 从日历中
  634.  
  635. // 将日期间隔返回给调用日历
  636.  
  637. // 弹出框时焦点所在的控件。它等价于
  638.  
  639. // 在不显示日历的情况下,将控件文本
  640.  
  641. // 设置为日期字符串。
  642.  
  643. int sapgui_calendar_select_interval(const char *description, const char *calendarID, const char
  644.  
  645. *interval, [args,] LAST ) ;
  646.  
  647. // sapgui_call_method 函数使用 SAP 标识符
  648.  
  649. // control_id 来标识 SAP 对象,并调用
  650.  
  651. // 对象的方法 method_name。它向方法传递
  652.  
  653. // 实际参数 arg1...argn。
  654.  
  655. int sapgui_call_method ( const char *control_id, const char *method_name, void *arg1, ..., void
  656.  
  657. *argn, [optionalArguments] LAST );
  658.  
  659. // sapgui_call_method_of_active_object 函数调用
  660.  
  661. // 通过 sapgui_active_object_from_parent_method
  662.  
  663. // 或 sapgui_active_object_from_parent_property
  664.  
  665. // 选择的当前活动对象的方法 method_name。
  666.  
  667. int sapgui_call_method_of_active_object ( const char *method_name, char *arg1, [args,] char
  668.  
  669. *argn, [optionalArguments,] LAST );
  670.  
  671. // sapgui_create_new_session 创建一个新会话。它等价于
  672.  
  673. // 从“系统”菜单中选择“创建会话”。
  674.  
  675. int sapgui_create_new_session([optionalArgs,] LAST );
  676.  
  677. // sapgui_get_active_window_title 数据检索函数
  678.  
  679. // 获取当前 SAP 会话中活动窗口的名称,
  680.  
  681. // 并保存到 output_param_name 中。
  682.  
  683. int sapgui_get_active_window_title (const char *output_param_name, [args,] LAST);
  684.  
  685. // sapgui_get_ok_code 数据检索函数获取
  686.  
  687. // “命令”字段的文本。“命令”字段是主窗口中
  688.  
  689. // 第一个工具栏左边的框。
  690.  
  691. int sapgui_get_ok_code( const char *outParamName, [args,] LAST);
  692.  
  693. // sapgui_get_property 数据检索函数获取
  694.  
  695. // ID 编号为 control_id 的 SAP 对象中
  696.  
  697. // 指定属性 property_name 的值。
  698.  
  699. // 该值保存在 output_param_name 中。
  700.  
  701. int sapgui_get_property ( const char *control_id, const char *property_name, char
  702.  
  703. *output_param_name, [args,] LAST);
  704.  
  705. // sapgui_get_property_of_active_object 数据检索
  706.  
  707. // 函数从当前活动对象中检索
  708.  
  709. // 指定属性 property_name 的值。
  710.  
  711. // 该值保存在 output_param_name 中。
  712.  
  713. int sapgui_get_property_of_active_object ( const char *property_name, const char
  714.  
  715. *output_param_name, [args,] LAST );
  716.  
  717. // sapgui_get_text 数据检索函数
  718.  
  719. // 获取任意可视屏幕对象的文本属性,
  720.  
  721. // 并保存到参数 outParamName 中。
  722.  
  723. int sapgui_get_text(const char *description, const char *controlID, const char *outParamName,
  724.  
  725. [args,] LAST);
  726.  
  727. // sapgui_grid_fill_data 在网格中输入表格数据
  728.  
  729. // 参数。当您在网格中输入数据并按 Enter 时,
  730.  
  731. // 录制此函数。表格参数 paramName 是
  732.  
  733. // 自动创建的。录制之后,可以在 VuGen 中编辑此表格参数,
  734.  
  735. // 以便更改数据。
  736.  
  737. int sapgui_grid_fill_data( const char *description, const char *gridID, const char *paramName,
  738.  
  739. [args,] LAST );
  740.  
  741. // sapgui_grid_clear_selection 取消选择已在网格控件中
  742.  
  743. // 选定的所有单元格、行和列。
  744.  
  745. int sapgui_grid_clear_selection(const char *description, const char *gridID, [args,] LAST );
  746.  
  747. // sapgui_grid_click 模拟用户在通过“row”或
  748.  
  749. // “column”指定的网格单元格中单击。
  750.  
  751. int sapgui_grid_click(const char *description, const char *gridID, const char *row, const char
  752.  
  753. *column, [args,] LAST );
  754.  
  755. // sapgui_grid_click_current_cell 模拟用户
  756.  
  757. // 在当前选定的单元格中单击。
  758.  
  759. int sapgui_grid_click_current_cell(const char *description, const char *gridID, [args,] LAST );
  760.  
  761. // sapgui_grid_deselect_column 取消选择某列。
  762.  
  763. int sapgui_grid_deselect_column(const char *description, const char *gridID, const char* column,
  764.  
  765. [args,] LAST );
  766.  
  767. // sapgui_grid_double_click 模拟用户在
  768.  
  769. // 网格中的单元格中双击。
  770.  
  771. int sapgui_grid_double_click(const char *description, const char *gridID, const char *row, const
  772.  
  773. char *column, [args,] LAST );
  774.  
  775. // sapgui_grid_double_click_current_cell 模拟用户在
  776.  
  777. // 当前选定的单元格中双击。
  778.  
  779. int sapgui_grid_double_click_current_cell(const char *description, const char *gridID, [args,]
  780.  
  781. LAST );
  782.  
  783. // sapgui_grid_get_cell_data 数据检索函数
  784.  
  785. // 获取网格单元格中的数据,并保存到 outParamName 中。
  786.  
  787. int sapgui_grid_get_cell_data(const char *description, const char *gridID, const char *row, const
  788.  
  789. char *column, const char *outParamName, [args,] LAST );
  790.  
  791. // sapgui_grid_get_columns_count 数据检索
  792.  
  793. // 函数获取网格中的列数。
  794.  
  795. int sapgui_grid_get_columns_count(const char *description, const char *gridID, const char
  796.  
  797. *outParamName, [args,] LAST );
  798.  
  799. // sapgui_grid_get_current_cell_column 数据
  800.  
  801. // 检索函数获取当前活动单元格的列标识符,
  802.  
  803. // 并保存到 outparamName 中。
  804.  
  805. int sapgui_grid_get_current_cell_column(const char *description, const char *gridID, const char
  806.  
  807. *outParamName, [args,] LAST );
  808.  
  809. // sapgui_grid_get_current_cell_row 数据
  810.  
  811. // 检索函数获取当前活动单元格的行号,
  812.  
  813. // 并保存到 outparamName 中。
  814.  
  815. int sapgui_grid_get_current_cell_row(const char *description, const char *gridID, const char
  816.  
  817. *outParamName, [args,] LAST );
  818.  
  819. // sapgui_grid_get_rows_count 数据检索
  820.  
  821. // 函数获取网格中的行数。
  822.  
  823. int sapgui_grid_get_rows_count(const char *description, const char *gridID, const char
  824.  
  825. *outParamName, [args,] LAST );
  826.  
  827. // sapgui_grid_is_checkbox_selected 验证
  828.  
  829. // 函数在复选框被选中时返回 true,
  830.  
  831. // 在复选框未被选中时返回 false。
  832.  
  833. int sapgui_grid_is_checkbox_selected(const char *description, const char *gridID, const char
  834.  
  835. *row, const char *column, [args,] LAST );
  836.  
  837. // sapgui_grid_open_context_menu 模拟用户
  838.  
  839. // 在网格中右键单击以便打开上下文菜单。
  840.  
  841. int sapgui_grid_open_context_menu(const char *description, const char *gridID, [args,]
  842.  
  843. LAST );
  844.  
  845. // sapgui_grid_press_button 函数单击网格单元格中的按钮。
  846.  
  847. int sapgui_grid_press_button(const char *description, const char *gridID, const char *row, const
  848.  
  849. char *column, [args,] LAST );
  850.  
  851. // sapgui_grid_press_button_current_cell 模拟用户
  852.  
  853. // 单击当前活动的网格单元格中的按钮。
  854.  
  855. int sapgui_grid_press_button_current_cell(const char *description, const char *gridID, [args,]
  856.  
  857. LAST );
  858.  
  859. // sapgui_grid_press_column_header 模拟用户
  860.  
  861. // 单击网格控件中的列标题。
  862.  
  863. int sapgui_grid_press_column_header(const char *description, const char *gridID, const char
  864.  
  865. *column, [args,] LAST );
  866.  
  867. // sapgui_grid_press_ENTER 模拟用户
  868.  
  869. // 在网格处于活动状态时按 Enter 键。
  870.  
  871. int sapgui_grid_press_ENTER (const char *description, const char *gridID, [args,] LAST );
  872.  
  873. // sapgui_grid_press_F1 模拟用户
  874.  
  875. // 在网格处于活动状态时按 F1 键。其结果是
  876.  
  877. // 显示上下文相关帮助。
  878.  
  879. int sapgui_grid_press_F1 (const char *description, const char *gridID, [args,] LAST );
  880.  
  881. // sapgui_grid_press_F4 模拟用户在网格处于
  882.  
  883. // 活动状态时按 F4 键。其结果通常是
  884.  
  885. // 显示活动字段可能的选项。
  886.  
  887. int sapgui_grid_press_F4 (const char *description, const char *gridID, [args,] LAST );
  888.  
  889. // sapgui_grid_press_toolbar_button 模拟
  890.  
  891. // 用户单击网格工具栏按钮。
  892.  
  893. int sapgui_grid_press_toolbar_button(const char *description, const char *gridID, const char
  894.  
  895. *buttonID, [args,] LAST );
  896.  
  897. // sapgui_grid_press_toolbar_context_button 模拟用户
  898.  
  899. // 通过单击上下文按钮打开选项列表。
  900.  
  901. int sapgui_grid_press_toolbar_context_button(const char *description, const char *gridID, const
  902.  
  903. char *buttonID, [args,] LAST );
  904.  
  905. // sapgui_grid_press_total_row 函数按
  906.  
  907. // 网格单元格中的总计行按钮。如果总计
  908.  
  909. // 行被精简了,该函数将展开它。如果总计行
  910.  
  911. // 已展开,该函数将精简它。
  912.  
  913. int sapgui_grid_press_total_row(const char *description, const char *gridID, const char *row,
  914.  
  915. const char *column, [args,] LAST );
  916.  
  917. // sapgui_grid_press_total_row_current_cell 函数按
  918.  
  919. // 当前活动网格单元格中的总计行按钮。
  920.  
  921. // 如果总计行被精简了,该函数将展开它。
  922.  
  923. // 如果总计行已展开,该函数将精简它。
  924.  
  925. int sapgui_grid_press_total_row_current_cell(const char *description, const char *gridID, [args,]
  926.  
  927. LAST );
  928.  
  929. // sapgui_grid_scroll_to_row 滚动到网格中的指定行,
  930.  
  931. // 从而使其可见。它不会选择行。
  932.  
  933. int sapgui_grid_scroll_to_row(const char *description, const char *gridID, const char *row, [args,]
  934.  
  935. LAST ) ;
  936.  
  937. // sapgui_grid_select_all 选择网格控件中的所有单元格。
  938.  
  939. int sapgui_grid_select_all(const char *description, const char *gridID, [args,] LAST );
  940.  
  941. // sapgui_grid_select_cell 选择网格控件中的单个单元格。
  942.  
  943. int sapgui_grid_select_cell(const char *description, const char *gridID, const char *row, const
  944.  
  945. char *column, [args,] LAST );
  946.  
  947. // sapgui_grid_select_cell_column 选择与当前选择
  948.  
  949. // 位于同一行但位于不同列的单元格。
  950.  
  951. // 它在同一行中向左或向右移动选择,以便移动到
  952.  
  953. // 由参数 column 指定的列号。
  954.  
  955. int sapgui_grid_select_cell_column(const char *description, const char *gridID, const char
  956.  
  957. *column, [args,] LAST );
  958.  
  959. // sapgui_grid_select_cell_row 选择与当前选择
  960.  
  961. // 位于同一列但位于不同行的单元格。
  962.  
  963. // 它在同一列中向上或向下移动选择,以便移动到
  964.  
  965. // 由参数 row 指定的行号。
  966.  
  967. int sapgui_grid_select_cell_row(const char *description, const char *gridID, const char *row,
  968.  
  969. [args,] LAST );
  970.  
  971. // sapgui_grid_select_cells 函数选择
  972.  
  973. // 网格中的单元格。单元格列表以
  974.  
  975. // “LAST”或“BEGIN_OPTIONAL”结束。
  976.  
  977. int sapgui_grid_select_cells(const char *description, const char *gridID, const char *cell1 ,...,
  978.  
  979. celln, [args,] LAST );
  980.  
  981. // sapgui_grid_select_column 选择网格控件中的一列。
  982.  
  983. int sapgui_grid_select_column ( const char *description, const char *gridID, const char* column,
  984.  
  985. [optionalArgs,] LAST );
  986.  
  987. // sapgui_grid_select_columns 选择网格控件中的
  988.  
  989. // 一列或多列。这些列不必相邻,
  990.  
  991. // 也不必按照网格中的显示顺序传递给
  992.  
  993. // 函数。
  994.  
  995. int sapgui_grid_select_columns(const char *description, const char *gridID, char *arg1, ..., char
  996.  
  997. *argn, [optionalArgs,] LAST);
  998.  
  999. // sapgui_grid_select_context_menu 模拟用户
  1000.  
  1001. // 从上下文菜单中选择选项。
  1002.  
  1003. int sapgui_grid_select_context_menu(const char *description, const char *gridID, const char
  1004.  
  1005. *functionCode, [args,] LAST );
  1006.  
  1007. // sapgui_grid_select_rows 选择网格单元格中的一行或多行。
  1008.  
  1009. int sapgui_grid_select_rows(const char *description, const char *gridID, const char *rows, [args,]
  1010.  
  1011. LAST );
  1012.  
  1013. // sapgui_grid_select_toolbar_menu 模拟用户
  1014.  
  1015. // 从网格工具栏菜单中选择选项。
  1016.  
  1017. int sapgui_grid_select_toolbar_menu(const char *description, const char *gridID, const char
  1018.  
  1019. *functionCode, [args,] LAST );
  1020.  
  1021. // sapgui_grid_selection_changed 验证函数
  1022.  
  1023. // 返回选择是否已发生更改。
  1024.  
  1025. int sapgui_grid_selection_changed(const char *description, const char *gridID, [args,] LAST );
  1026.  
  1027. // sapgui_grid_set_cell_data 在网格单元格中插入数据。字符串
  1028.  
  1029. // newValue 被写入位于 row 和 column 的单元格中。
  1030.  
  1031. int sapgui_grid_set_cell_data(const char *description, const char *gridID, const char *row, const
  1032.  
  1033. char *column, const char *newValue, [args,] LAST );
  1034.  
  1035. // sapgui_grid_set_checkbox 函数选择或清除网格复选框。
  1036.  
  1037. int sapgui_grid_set_checkbox(const char *description, const char *gridID, const char *row, const
  1038.  
  1039. char *column, const char *newValue, [args,] LAST );
  1040.  
  1041. // sapgui_grid_set_column_order 模拟用户
  1042.  
  1043. // 将列拖动到网格中的新位置。
  1044.  
  1045. int sapgui_grid_set_column_order(const char *description, const char *gridID, const char *row,
  1046.  
  1047. const char *columns, [args,] LAST );
  1048.  
  1049. // sapgui_grid_set_column_width 模拟用户
  1050.  
  1051. // 拖动列边框以便设置新宽度。
  1052.  
  1053. int sapgui_grid_set_column_width(const char *description, const char *gridID, const char*
  1054.  
  1055. column, const char* width, [args,] LAST);
  1056.  
  1057. // sapgui_htmlviewer_send_event 发送 HTML 事件。
  1058.  
  1059. int sapgui_htmlviewer_send_event(const char *htmlViewerID, const char *frame, const char
  1060.  
  1061. *data, const char *url, [args,] LAST ) ;
  1062.  
  1063. // sapgui_is_checkbox_selected 验证函数返回
  1064.  
  1065. // 复选框的状态。如果复选框被选中,该函数返回 True。
  1066.  
  1067. // 如果复选框未被选中,该函数返回 False。
  1068.  
  1069. int sapgui_is_checkbox_selected(const char *description, const char *checkBoxID, [args,]
  1070.  
  1071. LAST );
  1072.  
  1073. // sapgui_is_object_available 验证函数检查
  1074.  
  1075. // 指定对象是否可用在函数中。
  1076.  
  1077. int sapgui_is_object_available (const char *object_name, [args,] LAST);
  1078.  
  1079. // sapgui_is_object_changeable 验证函数返回
  1080.  
  1081. // 组件是否可被修改。如果组件既未被禁用,也不是只读,
  1082.  
  1083. // 则可被修改。
  1084.  
  1085. int sapgui_is_object_changeable(const char *controlID, [args,] LAST);
  1086.  
  1087. // sapgui_is_radio_button_selected 验证函数
  1088.  
  1089. // 返回单选按钮是否已被选中。
  1090.  
  1091. int sapgui_is_radio_button_selected(const char *description, const char *buttonID,[args,]
  1092.  
  1093. LAST );
  1094.  
  1095. // sapgui_is_tab_selected 验证函数返回一个布尔值,
  1096.  
  1097. // 指明当前是否选择了选项卡 tabID。
  1098.  
  1099. int sapgui_is_tab_selected(const char *description, const char *tabID, [args,] LAST);
  1100.  
  1101. // sapgui_logon 登录到 SAP 服务器。
  1102.  
  1103. int sapgui_logon ( const char *user_name, const char *password, const char *client_num, const
  1104.  
  1105. char *language, [args,] LAST );
  1106.  
  1107. // sapgui_open_connection 函数打开
  1108.  
  1109. // 由 connection_name 定义的连接。如果在
  1110.  
  1111. // 现有的 SAP 客户端定义中未找到
  1112.  
  1113. // connection_name,该函数将试图连接到
  1114.  
  1115. // 使用该名称的服务器。
  1116.  
  1117. int sapgui_open_connection (const char *connection_name, const char *connection_id, [args,]
  1118.  
  1119. LAST );
  1120.  
  1121. // sapgui_open_connection_ex 函数打开
  1122.  
  1123. // 与由 connection_string 定义的服务器的连接。此函数
  1124.  
  1125. // 设置输出参数 connection_id。此参数用在
  1126.  
  1127. // sapgui_select_active_connection 中。
  1128.  
  1129. int sapgui_open_connection_ex (const char *connection_string, const char *connection_name,
  1130.  
  1131. const char *connection_id, [args,] LAST );
  1132.  
  1133. // sapgui_press_button 模拟用户单击按钮 buttonID。
  1134.  
  1135. int sapgui_press_button( const char *description, const char *buttonID, [args,] LAST );
  1136.  
  1137. // sapgui_select_active_connection 指定一个打开的服务器连接
  1138.  
  1139. // 作为工作连接。
  1140.  
  1141. int sapgui_select_active_connection(const char *connectionID);
  1142.  
  1143. // sapgui_select_active_session 从打开的会话集合中
  1144.  
  1145. // 选择当前工作会话。
  1146.  
  1147. int sapgui_select_active_session(const char *sessionID);
  1148.  
  1149. // 录制时,只要您在不属于前一活动
  1150.  
  1151. // 窗口的控件上执行操作,就会自动
  1152.  
  1153. // 生成 sapgui_select_active_window
  1154.  
  1155. // 语句。随后的所有操作都将在此
  1156.  
  1157. // 窗口上执行,直到调用下一个 sapgui_select_active_window
  1158.  
  1159. // 语句。
  1160.  
  1161. int sapgui_select_active_window ( const char *window_id );
  1162.  
  1163. // sapgui_select_combobox_entry 从组合框中选择项目 entryKey。
  1164.  
  1165. int sapgui_select_combobox_entry(const char *description, const char *objectID, const char
  1166.  
  1167. *entryKey, [args,] LAST );
  1168.  
  1169. // sapgui_select_menu 模拟用户打开
  1170.  
  1171. // 菜单并选择菜单项目。
  1172.  
  1173. int sapgui_select_menu(const char *description, const char *menuID, [args,] LAST );
  1174.  
  1175. // sapgui_select_radio_button 从组中选择一个单选按钮,
  1176.  
  1177. // 并清除该组中的所有其他按钮。
  1178.  
  1179. int sapgui_select_radio_button(const char *description, const char *buttonID, [args,] LAST );
  1180.  
  1181. // sapgui_select_tab 激活一个选项卡页。它
  1182.  
  1183. // 模拟用户单击选项卡 tabID。
  1184.  
  1185. int sapgui_select_tab(const char *description, const char *tabID, [args,] LAST );
  1186.  
  1187. // sapgui_send_vkey 函数通过发送
  1188.  
  1189. // 虚拟键来模拟键盘。
  1190.  
  1191. int sapgui_send_vkey(const char *key, [args,] LAST );
  1192.  
  1193. // 如果 isSelected 为“True”,那么 sapgui_set_checkbox 将选中
  1194.  
  1195. // 复选框。如果 isSelected 为“False”,将清除该复选框。
  1196.  
  1197. int sapgui_set_checkbox(const char *description, const char *isSelected, const char *checkBoxID,
  1198.  
  1199. [args,] LAST );
  1200.  
  1201. // sapgui_set_collection_property 函数使用组成
  1202.  
  1203. // GuiCollection 对象的字符串列表项目 arg1...argn
  1204.  
  1205. // 设置指定的属性 property_name。
  1206.  
  1207. int sapgui_set_collection_property ( const char *control_id, const char *property_name, char
  1208.  
  1209. *arg1, ..., char *argn, [optionalArgs,] LAST );
  1210.  
  1211. // sapgui_set_focus 将焦点置于对象 controlID 上。
  1212.  
  1213. int sapgui_set_focus(const char *controlID, [args,] LAST );
  1214.  
  1215. // sapgui_set_ok_code 在“命令”字段中输入文本。
  1216.  
  1217. // “命令”字段是主窗口中第一个工具栏
  1218.  
  1219. // 左边的框。文本必须是 SAP 命令。
  1220.  
  1221. int sapgui_set_ok_code(const char *text, [args,] LAST );
  1222.  
  1223. // sapgui_set_password 在“密码”文本框中输入
  1224.  
  1225. // 密码。录制函数时,密码文本被
  1226.  
  1227. // 隐藏。要回放脚本,请编辑函数并输入
  1228.  
  1229. // 密码。
  1230.  
  1231. int sapgui_set_password(const char *description, const char *password, const char *controlID,
  1232.  
  1233. [args,] LAST );
  1234.  
  1235. // sapgui_set_property 函数使用 ID 编号为
  1236.  
  1237. // control_id 的 SAP 对象中的值 new_value 设置
  1238.  
  1239. // 指定属性 property_name。
  1240.  
  1241. int sapgui_set_property ( const char *control_id, const char *property_name, const char
  1242.  
  1243. *new_value, [args,] LAST );
  1244.  
  1245. // sapgui_set_property_of_active_object 函数使用
  1246.  
  1247. // 值 new_value 设置当前活动对象的指定
  1248.  
  1249. // 属性 property_name。当前对象通过
  1250.  
  1251. // sapgui_active_object_from_parent_method 或
  1252.  
  1253. // sapgui_active_object_from_parent_property 选择。
  1254.  
  1255. int sapgui_set_property_of_active_object ( const char *property_name, const char *new_value,
  1256.  
  1257. [args,] LAST );
  1258.  
  1259. // sapgui_set_text 将 text 参数的值写入
  1260.  
  1261. // 控件。如果 text 为文字,请将它放置在引号中:
  1262.  
  1263. // “The text to enter”。如果 text 是文件,
  1264.  
  1265. // 语法为 “file=filename.ext”。引号是语法的
  1266.  
  1267. // 组成部分。文件必须位于
  1268.  
  1269. // script 文件夹中。不能使用路径。
  1270.  
  1271. int sapgui_set_text(const char *description, const char *text, const char *controlID, [args,]
  1272.  
  1273. LAST );
  1274.  
  1275. // sapgui_status_bar_get_param 数据检索函数
  1276.  
  1277. // 从状态栏获取位置 paramIndex 中的参数,
  1278.  
  1279. // 并将其存储在参数 outputParamName 中。
  1280.  
  1281. int sapgui_status_bar_get_param(const char *paramIndex, const char *outputParamName, [args,]
  1282.  
  1283. LAST );
  1284.  
  1285. // sapgui_status_bar_get_text 数据检索函数
  1286.  
  1287. // 从状态栏获取文本,并将其存储在参数
  1288.  
  1289. // outputParamName 中。将检索用户看到的整个文本,
  1290.  
  1291. // 包括固定文本和参数。
  1292.  
  1293. int sapgui_status_bar_get_text(const char *outputParamName, [args,] LAST );
  1294.  
  1295. // 成功调用 sapgui_status_bar_get_type 后,outputParamName 的值
  1296.  
  1297. // 为以下文字字符串之一
  1298.  
  1299. // :“Success”、“Warning”或“Error”。该函数
  1300.  
  1301. // 用于测试上一操作的结果。
  1302.  
  1303. int sapgui_status_bar_get_type(const char *outputParamName, [args,] LAST );
  1304.  
  1305. // 当您在表中输入数据并按 Enter 键时录制 sapgui_table_fill_data
  1306.  
  1307. // 。将自动创建表参数 paramName
  1308.  
  1309. // 。录制后可以在 VuGen 中编辑表参数
  1310.  
  1311. // 以便更改数据。
  1312.  
  1313. int sapgui_table_fill_data(const char *description, const char *tableID, const char *paramName,
  1314.  
  1315. [args,] LAST );
  1316.  
  1317. // sapgui_table_get_column_width 数据检索函数
  1318.  
  1319. // 将列的宽度放到参数 paramName 中。
  1320.  
  1321. int sapgui_table_get_column_width(const char *description, const char *tableID, const char
  1322.  
  1323. *column, const char *paramName, [args,] LAST );
  1324.  
  1325. // sapgui_table_get_text 数据检索函数将由
  1326.  
  1327. // row 和 column 指定的单元格中的文本放到参数 paramName 中。
  1328.  
  1329. int sapgui_table_get_text(const char *description, const char *tableID, const char *row, const char
  1330.  
  1331. *column, const char *paramName, [args,] LAST );
  1332.  
  1333. // 如果选中列,则 sapgui_table_is_column_selected 返回 True。
  1334.  
  1335. int sapgui_table_is_column_selected ( char * tableID, char * column, [args,] LAST );
  1336.  
  1337. // sapgui_table_is_checkbox_selected 验证函数
  1338.  
  1339. // 适用于表控件中的复选框。
  1340.  
  1341. // 它返回是选中还是清除了该复选框。
  1342.  
  1343. int sapgui_table_is_checkbox_selected(const char *description, const char *tableID, const char
  1344.  
  1345. *row, const char *column, [args,] LAST );
  1346.  
  1347. // 如果选中表中的单选按钮,
  1348.  
  1349. // 则 sapgui_table_is_radio_button_selected 验证函数返回 True。
  1350.  
  1351. int sapgui_table_is_radio_button_selected(const char *description, const char *tableID, const char
  1352.  
  1353. *row, const char *column, [args,] LAST );
  1354.  
  1355. // sapgui_table_is_row_selected 验证函数
  1356.  
  1357. // 适用于表控件中的行。
  1358.  
  1359. // 它返回行是否被选中。
  1360.  
  1361. int sapgui_table_is_row_selected(const char *tableID, const char *row, [args,] LAST );
  1362.  
  1363. // sapgui_table_press_button 适用于表单元格中的
  1364.  
  1365. // 按钮控件。它模拟用户单击由 row 和 column 指定的
  1366.  
  1367. // 单元格中的按钮。
  1368.  
  1369. int sapgui_table_press_button(const char *description, const char *tableID, const char *row, const
  1370.  
  1371. char *column, [args,] LAST );
  1372.  
  1373. // sapgui_table_reorder 对表中的列进行重新排序。
  1374.  
  1375. // order 参数是新顺序中
  1376.  
  1377. // 列的原有位置。使用空格来分隔列编号
  1378.  
  1379. // 。例如,“0 1 3 2”会将第 4 列
  1380.  
  1381. // (列 3)移动到第 3 个位置。
  1382.  
  1383. int sapgui_table_reorder ( const char *description, const char *tableID, const char *order, [args,]
  1384.  
  1385. LAST );
  1386.  
  1387. // sapgui_table_select_combobox_entry 从组合框中
  1388.  
  1389. // 选择项目 entryKey,并在由 row 和 column 指定的
  1390.  
  1391. // 表单元格中输入该值。
  1392.  
  1393. int sapgui_table_select_combobox_entry (const char *description, const char *tableID, const char
  1394.  
  1395. *row, const char *column, const char *entryKey, [args,] LAST );
  1396.  
  1397. // sapgui_table_select_radio_button 适用于表单元格中的
  1398.  
  1399. // 单选按钮控件。它模拟用户选中由 row 和 column 指定
  1400.  
  1401. // 的单元格中的按钮。
  1402.  
  1403. int sapgui_table_select_radio_button(const char *description, const char *tableID, const char *row,
  1404.  
  1405. const char *column, [args,] LAST );
  1406.  
  1407. // sapgui_table_set_checkbox 设置表中复选框
  1408.  
  1409. // 的状态。如果 newValue 为“True”,则该复选框处于选中状态。
  1410.  
  1411. // 如果 newValue 为“False”,则该复选框处于清除状态。
  1412.  
  1413. int sapgui_table_set_checkbox(const char *description, const char *tableID, const char *row,
  1414.  
  1415. const char *column, const char *newValue, [args,] LAST );

LoadRunner 函数大全之中文解释的更多相关文章

  1. LoadRunner函数大全之中文解释

    LoadRunner函数大全之中文解释

  2. Mysql 函数大全- 5.6 中文解释函数参考

    mysql 函数大全 5.6 函数参考 5.6函数参考    (只翻译部分,细节查看相关英文版) 12.1功能和操作员参考 12.2表达式评估中的类型转换 12.3运营商 12.4控制流功能 12.5 ...

  3. 性能测试学习第二天-----loadrunner常用函数大全及设置项

    常用函数大全: 1,C语言参数转web参数 lr_save_string("aaa","param"):将字符串“aaa”或者一个字符串变量,转变成LR的参数{ ...

  4. PB函数大全

    PB函数大全 Abs()功能计算绝对值.语法Abs ( n )参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值.如果参数n的值为NULL, ...

  5. [转载]ORACLE日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年 ...

  6. orale 函数大全[转]

    oracle函数大全 http://wenku.baidu.com/link?url=bXaGsnn8iN264GB8ec48IUPg5eRGDKAyAiSw0OBKL1I0mBVG549-2u9HT ...

  7. MySQL 函数大全

    mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NU ...

  8. MySQL日期时间函数大全(转)

    MySQL日期时间函数大全 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1 ...

  9. SqlServer 函数 大全

    sql server使用convert来取得datetime日期数据 sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换 语句及查询结果: Selec ...

随机推荐

  1. phpstorm 自定义属性没语法提示的问题

    在右侧Options勾选上Custom HTML tag attributes,并且在下面的输入框输入自定义属性列表,逗号分隔.

  2. (4.1)LingPipe在Eclipse中的运行

    酒店评论情感分析系统(四)——LingPipe在Eclipse中的运行 本来打算在做这个项目的时候,使用基于语义的文本倾向性分析方法,即先通过对评论文本进行中文分析,去停用词,然后在倾向性语义模式库的 ...

  3. 浅谈卡特兰数(Catalan number)的原理和相关应用

    一.卡特兰数(Catalan number) 1.定义 组合数学中一个常出现在各种计数问题中出现的数列(用c表示).以比利时的数学家欧仁·查理·卡特兰的名字来命名: 2.计算公式 (1)递推公式 c[ ...

  4. 【leetcode 简单】第一题 两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...

  5. 旋转3D立方体

    <!DOCTYPE html><html><head> <title>css-3d-盒子</title> <meta charset= ...

  6. 微信小程序迁移到头条小程序工具

    最近公司需要将微信小程序迁移到头条小程序,比较得知微信和头条小程序的写法类似,只有文件名称不同,相关的指令不同,以及头条在ttml绑定的数据不可使用function,于是就写了node脚本来实现这些重 ...

  7. bzoj 2741 可持久化trie

    首先我们设si为前i个数的xor和,那么对于询问区间[i,j]的xor和,就相当于si-1^sj,那么对于这道题的询问我们可以处理处si,然后对于询问[l,r],可以表示为在区间[l-1,r]里找两个 ...

  8. RMQ之ST求区间最大值

    题目链接:https://cn.vjudge.net/problem/HRBUST-1188 每一次按照二进制的方式进行更新,二维数组dp [i] [j],i表示下标,j表示从i 开始的往后移动2的j ...

  9. Dull Chocolates Gym - 101991D 离散化 前缀和

    题目链接:https://vjudge.net/problem/Gym-101991D 具体思路:首先看数据范围,暴力肯定不可以,可以下离散化,然后先求出离散化后每一个点到(1,1)的符合题目的要求的 ...

  10. SVMtrain的参数c和g的优化

    SVMtrain的参数c和g的优化 在svm训练过程中,需要对惩罚参数c和核函数的参数g进行优化,选取最好的参数 知道测试集标签的情况下 是让两个参数c和g在某一范围内取离散值,然后,取测试集分类准确 ...