From 205aabd82891810fb07e4a833fbb7d02f04ed5d6 Mon Sep 17 00:00:00 2001 From: Alice <95208+alice@users.noreply.github.com> Date: Fri, 23 Feb 2024 10:32:32 +1100 Subject: [PATCH 1/3] Add pre-commit config (#86) This adds configuration for pre-commit and ClangFormat, and instructions for how to set up pre-commit locally. Once you set up pre-commit locally, each time you commit, pre-commit will run ClangFormat, trim trailing whitespace and ensure each text file ends with a newline. If these steps cause any changes to your code, it will halt the commit so that you can check the changes. --- .clang-format | 1 + .pre-commit-config.yaml | 16 ++++++++++++++++ README.md | 13 ++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 .clang-format create mode 100644 .pre-commit-config.yaml diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000..3f19e616 --- /dev/null +++ b/.clang-format @@ -0,0 +1 @@ +BasedOnStyle: Chromium diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..03fc8ff8 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,16 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files +- repo: https://github.com/pre-commit/mirrors-clang-format + rev: v17.0.6 + hooks: + - id: clang-format + types_or: [c++, javascript, objective-c] + args: ["-style=file"] diff --git a/README.md b/README.md index 4e0f276d..01a5aca6 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,12 @@ For NodeJS module (optional): These bindings dependencies are on my default. See *Feature Flags* section below for how to disable them. +For `pre-commit`: +* `pip install pre-commit` +* `pip install clang-format` +* `pre-commit install` + + #### Build steps ``` % mkdir build @@ -80,6 +86,11 @@ For the nodeJS bindings, you will need to download and build node-gyp app and pu npm install -g node-gyp ``` +For `pre-commit`: +* `pip install pre-commit` +* `pip install clang-format` +* `pre-commit install` + #### Build steps ``` @@ -159,4 +170,4 @@ You can also run the following from a bash terminal: Currently produces the following executable: ``` ./build/bin/Release/dump_tree_ia2.exe -``` \ No newline at end of file +``` From 5eafc0b845a43b685253688ab8083ba1e841c28f Mon Sep 17 00:00:00 2001 From: Alice <95208+alice@users.noreply.github.com> Date: Fri, 23 Feb 2024 10:49:04 +1100 Subject: [PATCH 2/3] Add pre-commit hooks to format code, and format everything (#76) * Fix trailing whitespace and end-of-file issues * clang-format everything * Add newlines to break up #includes into groups --- .gitignore | 2 +- .node-version | 2 +- examples/atspi/dump_tree_atspi.cc | 52 ++++++++++++------------- examples/dump_tree.cc | 2 +- examples/ia2/CMakeLists.txt | 2 +- examples/ia2/dump_tree_ia2.cc | 49 ++++++++++++------------ examples/mac/dump_tree_mac.cc | 2 +- include/axaccess/atspi/atspi_node.h | 18 ++++----- include/axaccess/atspi/linux_utils.h | 2 +- include/axaccess/context.h | 6 +-- include/axaccess/ia2/ia2_node.h | 12 +++--- include/axaccess/ia2/win_utils.h | 2 +- lib/atspi/atspi_node.cc | 7 ++-- lib/atspi/axa_context_impl.cc | 8 ++-- lib/atspi/axa_context_impl.h | 6 +-- lib/atspi/axa_node_impl.cc | 10 ++--- lib/atspi/axa_node_impl.h | 6 +-- lib/ia2/ia2_node.cc | 4 +- lib/ia2/win_utils.cc | 57 ++++++++++++++-------------- lib/node.cc | 6 +-- 20 files changed, 127 insertions(+), 128 deletions(-) diff --git a/.gitignore b/.gitignore index 10561bd6..f7857461 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ build/ -.vscode \ No newline at end of file +.vscode diff --git a/.node-version b/.node-version index 11aba0a0..9138b823 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -v18.13.00 \ No newline at end of file +v18.13.00 diff --git a/examples/atspi/dump_tree_atspi.cc b/examples/atspi/dump_tree_atspi.cc index 6c273b1a..9170f5fa 100644 --- a/examples/atspi/dump_tree_atspi.cc +++ b/examples/atspi/dump_tree_atspi.cc @@ -6,7 +6,7 @@ #include void print_usage(std::string& program_name) { - std::cout << "Usage: "<< program_name << " \n"; + std::cout << "Usage: " << program_name << " \n"; } static void print_node(AtspiNodePtr& node, int level) { @@ -29,29 +29,29 @@ static void print_node(AtspiNodePtr& node, int level) { } int main(int argc, char** argv) { - std::string program_name(argv[0]); - - if (argc != 2) { - print_usage(program_name); - return 1; - } - - std::string pid_string(argv[1]); - std::regex number_regex("\\d+"); - if (!std::regex_match(pid_string, number_regex)) { - print_usage(program_name); - return 1; - } - - const int pid = std::stoi(pid_string); - std::cout << "Got PID: " << pid << "\n"; - AtspiNodePtr root = find_root_accessible_from_pid(pid); - if (!root) { - std::cerr << "No accessible root found at pid " << pid << "\n"; - return -1; - } - - print_node(root, 0); - - return 0; + std::string program_name(argv[0]); + + if (argc != 2) { + print_usage(program_name); + return 1; + } + + std::string pid_string(argv[1]); + std::regex number_regex("\\d+"); + if (!std::regex_match(pid_string, number_regex)) { + print_usage(program_name); + return 1; + } + + const int pid = std::stoi(pid_string); + std::cout << "Got PID: " << pid << "\n"; + AtspiNodePtr root = find_root_accessible_from_pid(pid); + if (!root) { + std::cerr << "No accessible root found at pid " << pid << "\n"; + return -1; + } + + print_node(root, 0); + + return 0; } diff --git a/examples/dump_tree.cc b/examples/dump_tree.cc index 03d999e2..86f43ee6 100644 --- a/examples/dump_tree.cc +++ b/examples/dump_tree.cc @@ -7,7 +7,7 @@ #include void print_usage(std::string& program_name) { - std::cout << "Usage: "<< program_name << " \n"; + std::cout << "Usage: " << program_name << " \n"; } static void print_node(axa::NodePtr& node, int level) { diff --git a/examples/ia2/CMakeLists.txt b/examples/ia2/CMakeLists.txt index b88194b0..ca771078 100644 --- a/examples/ia2/CMakeLists.txt +++ b/examples/ia2/CMakeLists.txt @@ -1,4 +1,4 @@ -# Example C++ executable +# Example C++ executable add_executable( # Name dump_tree_ia2 diff --git a/examples/ia2/dump_tree_ia2.cc b/examples/ia2/dump_tree_ia2.cc index 17cb928c..f2b80f7c 100644 --- a/examples/ia2/dump_tree_ia2.cc +++ b/examples/ia2/dump_tree_ia2.cc @@ -3,38 +3,37 @@ #include #include -#include "include/axaccess/ia2/win_utils.h" #include "include/axaccess/ia2/ia2_node.h" - +#include "include/axaccess/ia2/win_utils.h" void print_usage(std::string& program_name) { - std::cout << "Usage: "<< program_name << " \n"; + std::cout << "Usage: " << program_name << " \n"; } int main(int argc, char** argv) { - std::string program_name(argv[0]); + std::string program_name(argv[0]); + + if (argc != 2) { + print_usage(program_name); + return 1; + } - if (argc != 2) { - print_usage(program_name); - return 1; - } + std::string pid_string(argv[1]); + std::regex number_regex("\\d+"); + if (!std::regex_match(pid_string, number_regex)) { + print_usage(program_name); + return 1; + } - std::string pid_string(argv[1]); - std::regex number_regex("\\d+"); - if (!std::regex_match(pid_string, number_regex)) { - print_usage(program_name); - return 1; - } + const int pid = std::stoi(pid_string); + std::cout << "Got PID: " << pid << "\n"; + IA2NodePtr root = find_root_accessible_from_pid(pid); + if (!root) { + std::cerr << "No accessible root found at pid " << pid << "\n"; + return -1; + } - const int pid = std::stoi(pid_string); - std::cout << "Got PID: " << pid << "\n"; - IA2NodePtr root = find_root_accessible_from_pid(pid); - if (!root) { - std::cerr << "No accessible root found at pid " << pid << "\n"; - return -1; - } - - std::cout << root->get_accRole(); - std::cout << " (" << root->get_accName() << ")\n"; - return 0; + std::cout << root->get_accRole(); + std::cout << " (" << root->get_accName() << ")\n"; + return 0; } diff --git a/examples/mac/dump_tree_mac.cc b/examples/mac/dump_tree_mac.cc index 2183eeeb..b38fc3b6 100644 --- a/examples/mac/dump_tree_mac.cc +++ b/examples/mac/dump_tree_mac.cc @@ -9,7 +9,7 @@ using mac_inspect::AXAPINode; void print_usage(std::string& program_name) { - std::cout << "Usage: "<< program_name << " \n"; + std::cout << "Usage: " << program_name << " \n"; } void logInfoForPID(pid_t pid) { diff --git a/include/axaccess/atspi/atspi_node.h b/include/axaccess/atspi/atspi_node.h index ff3c045e..f6125a1d 100644 --- a/include/axaccess/atspi/atspi_node.h +++ b/include/axaccess/atspi/atspi_node.h @@ -13,15 +13,15 @@ typedef std::unique_ptr AtspiNodePtr; class AtspiNode { AtspiAccessible* accessible_; - public: - AtspiNode(AtspiAccessible* accessible): accessible_(accessible) {}; - ~AtspiNode(); + public: + AtspiNode(AtspiAccessible* accessible) : accessible_(accessible){}; + ~AtspiNode(); - std::string accessible_get_role_name(); - std::string accessible_get_name(); - int32_t accessible_get_child_count(); - AtspiNodePtr accessible_get_child_at_index(int32_t index); - std::vector accessible_get_children(); + std::string accessible_get_role_name(); + std::string accessible_get_name(); + int32_t accessible_get_child_count(); + AtspiNodePtr accessible_get_child_at_index(int32_t index); + std::vector accessible_get_children(); }; -#endif // LIB_ATSPI_ATSPI_NODE_H_ +#endif // LIB_ATSPI_ATSPI_NODE_H_ diff --git a/include/axaccess/atspi/linux_utils.h b/include/axaccess/atspi/linux_utils.h index f7196830..6d8b90ca 100644 --- a/include/axaccess/atspi/linux_utils.h +++ b/include/axaccess/atspi/linux_utils.h @@ -8,4 +8,4 @@ AtspiNodePtr find_root_accessible_from_pid(const int pid); -#endif // LIB_ATSPI_LINUX_UTILS_H_ +#endif // LIB_ATSPI_LINUX_UTILS_H_ diff --git a/include/axaccess/context.h b/include/axaccess/context.h index f1a3bbd1..7b79143a 100644 --- a/include/axaccess/context.h +++ b/include/axaccess/context.h @@ -9,9 +9,9 @@ namespace axa { enum APIType { UNKNOWN, - ATSPI, // Linux + ATSPI, // Linux AXAPI, // MacOS - IACCESSIBLE2, // Windows + IACCESSIBLE2, // Windows }; class ContextImpl { @@ -21,7 +21,6 @@ class ContextImpl { virtual NodePtr GetAccessibleRootByPID(int pid) = 0; }; - class Context; typedef std::shared_ptr ContextPtr; @@ -33,6 +32,7 @@ class AXA_EXPORT Context { enum APIType GetAPIType(); NodePtr GetAccessibleRootByPID(const int pid); + private: std::unique_ptr impl; }; diff --git a/include/axaccess/ia2/ia2_node.h b/include/axaccess/ia2/ia2_node.h index 9ea79634..d0fc1fd8 100644 --- a/include/axaccess/ia2/ia2_node.h +++ b/include/axaccess/ia2/ia2_node.h @@ -12,12 +12,12 @@ typedef std::unique_ptr IA2NodePtr; class AXA_EXPORT IA2Node { // We need to have a point to an IA2 node, I assume, here. - public: - IA2Node() {}; - ~IA2Node() {}; + public: + IA2Node(){}; + ~IA2Node(){}; - std::string get_accRole(); - std::string get_accName(); + std::string get_accRole(); + std::string get_accName(); }; -#endif // LIB_IA2_IA2_NODE_H_ +#endif // LIB_IA2_IA2_NODE_H_ diff --git a/include/axaccess/ia2/win_utils.h b/include/axaccess/ia2/win_utils.h index a3e0379c..a4f7c41d 100644 --- a/include/axaccess/ia2/win_utils.h +++ b/include/axaccess/ia2/win_utils.h @@ -9,4 +9,4 @@ AXA_EXPORT IA2NodePtr find_root_accessible_from_pid(const int pid); -#endif // LIB_IA2_WIN_UTILS_H_ +#endif // LIB_IA2_WIN_UTILS_H_ diff --git a/lib/atspi/atspi_node.cc b/lib/atspi/atspi_node.cc index 018c7be4..5762fa0c 100644 --- a/lib/atspi/atspi_node.cc +++ b/lib/atspi/atspi_node.cc @@ -1,8 +1,9 @@ +#include + #include #include #include #include -#include AtspiNode::~AtspiNode() { assert(accessible_); @@ -42,13 +43,13 @@ int32_t AtspiNode::accessible_get_child_count() { g_error_free(error); return -1; } - return (int32_t) count; + return (int32_t)count; } AtspiNodePtr AtspiNode::accessible_get_child_at_index(int32_t index) { GError* error = nullptr; AtspiAccessible* child = - atspi_accessible_get_child_at_index(accessible_, index, &error); + atspi_accessible_get_child_at_index(accessible_, index, &error); if (error) { std::cerr << error->message; g_error_free(error); diff --git a/lib/atspi/axa_context_impl.cc b/lib/atspi/axa_context_impl.cc index c1b4dd0e..683d2502 100644 --- a/lib/atspi/axa_context_impl.cc +++ b/lib/atspi/axa_context_impl.cc @@ -1,8 +1,10 @@ -#include #include "axa_context_impl.h" -#include "axa_node_impl.h" + +#include #include +#include "axa_node_impl.h" + namespace axa { std::unique_ptr AtspiContextImpl::Create() { @@ -23,4 +25,4 @@ NodePtr AtspiContextImpl::GetAccessibleRootByPID(const int pid) { return Node::Create(std::move(rootNodeImpl)); } -} // namespace axa +} // namespace axa diff --git a/lib/atspi/axa_context_impl.h b/lib/atspi/axa_context_impl.h index fb084461..a3b0f377 100644 --- a/lib/atspi/axa_context_impl.h +++ b/lib/atspi/axa_context_impl.h @@ -6,8 +6,8 @@ namespace axa { -class AtspiContextImpl: public ContextImpl { -public: +class AtspiContextImpl : public ContextImpl { + public: static std::unique_ptr Create(); AtspiContextImpl() = default; ~AtspiContextImpl() = default; @@ -16,4 +16,4 @@ class AtspiContextImpl: public ContextImpl { NodePtr GetAccessibleRootByPID(const int pid) override; }; -} // namespace axa +} // namespace axa diff --git a/lib/atspi/axa_node_impl.cc b/lib/atspi/axa_node_impl.cc index a8a36327..2d479de0 100644 --- a/lib/atspi/axa_node_impl.cc +++ b/lib/atspi/axa_node_impl.cc @@ -1,11 +1,11 @@ -#include #include "axa_node_impl.h" +#include + namespace axa { -AtspiNodeImpl::AtspiNodeImpl(AtspiNodePtr& aAtspiNode): - atspiNode(std::move(aAtspiNode)) { -} +AtspiNodeImpl::AtspiNodeImpl(AtspiNodePtr& aAtspiNode) + : atspiNode(std::move(aAtspiNode)) {} AtspiNodeImpl::~AtspiNodeImpl() { atspiNode.reset(); @@ -38,4 +38,4 @@ NodePtr AtspiNodeImpl::ChildAt(const int32_t index) { return Node::Create(std::move(nodeImpl)); } -} // namespace axa +} // namespace axa diff --git a/lib/atspi/axa_node_impl.h b/lib/atspi/axa_node_impl.h index 2ccac28d..c90ef37e 100644 --- a/lib/atspi/axa_node_impl.h +++ b/lib/atspi/axa_node_impl.h @@ -6,8 +6,8 @@ namespace axa { -class AtspiNodeImpl: public NodeImpl { -public: +class AtspiNodeImpl : public NodeImpl { + public: static std::unique_ptr Create(AtspiNodePtr& atspiNode); AtspiNodeImpl(AtspiNodePtr& atspiNode); ~AtspiNodeImpl(); @@ -21,4 +21,4 @@ class AtspiNodeImpl: public NodeImpl { AtspiNodePtr atspiNode; }; -} // namespace axa +} // namespace axa diff --git a/lib/ia2/ia2_node.cc b/lib/ia2/ia2_node.cc index 2710fe60..c66ef870 100644 --- a/lib/ia2/ia2_node.cc +++ b/lib/ia2/ia2_node.cc @@ -1,14 +1,14 @@ +#include "axaccess/ia2/ia2_node.h" + #include #include #include #include -#include "axaccess/ia2/ia2_node.h" std::string IA2Node::get_accRole() { return "RoleTest"; } std::string IA2Node::get_accName() { - return "NameTest"; } diff --git a/lib/ia2/win_utils.cc b/lib/ia2/win_utils.cc index b886be6a..dea0a57b 100644 --- a/lib/ia2/win_utils.cc +++ b/lib/ia2/win_utils.cc @@ -1,43 +1,42 @@ +#include "axaccess/ia2/win_utils.h" + #include #include #include +#include -// We will need these for windows related things, see the formatter_win.cc in chromium -//#include -//#include +// We will need these for windows related things, see the formatter_win.cc in +// chromium +// #include +// #include -// TODO: we will probably need to get these from the IAccessible2 git repo, like in Chromium -//#include "third_party/iaccessible2/ia2_api_all.h" +// TODO: we will probably need to get these from the IAccessible2 git repo, like +// in Chromium +// #include "third_party/iaccessible2/ia2_api_all.h" // Windows system libraries, used for pid/windows/hwnd management. -#include #include +#include -#include - -#include "axaccess/ia2/win_utils.h" - -void GetAllWindowsFromProcessID(DWORD dwProcessID, std::vector &hwnds) -{ - HWND hCurWnd = nullptr; - do - { - hCurWnd = FindWindowEx(nullptr, hCurWnd, nullptr, nullptr); - DWORD checkProcessID = 0; - GetWindowThreadProcessId(hCurWnd, &checkProcessID); - if (checkProcessID == dwProcessID) - { - hwnds.push_back(hCurWnd); - std::cout << "Found hWnd: " << hCurWnd << "\n"; - } +void GetAllWindowsFromProcessID(DWORD dwProcessID, std::vector& hwnds) { + HWND hCurWnd = nullptr; + do { + hCurWnd = FindWindowEx(nullptr, hCurWnd, nullptr, nullptr); + DWORD checkProcessID = 0; + GetWindowThreadProcessId(hCurWnd, &checkProcessID); + if (checkProcessID == dwProcessID) { + hwnds.push_back(hCurWnd); + std::cout << "Found hWnd: " << hCurWnd << "\n"; } - while (hCurWnd != nullptr); + } while (hCurWnd != nullptr); } IA2NodePtr find_root_accessible_from_pid(const int pid) { - std::vector hwnds; - GetAllWindowsFromProcessID(pid, hwnds); - // TODO: Get the IAccessible2 pointer(s) for each HWND and construct an IA2Node for each - // TODO: Construct a top-level IA2Node with the collection of IA2Nodes as children - return std::make_unique(IA2Node()); + std::vector hwnds; + GetAllWindowsFromProcessID(pid, hwnds); + // TODO: Get the IAccessible2 pointer(s) for each HWND and construct an + // IA2Node for each + // TODO: Construct a top-level IA2Node with the collection of IA2Nodes as + // children + return std::make_unique(IA2Node()); } diff --git a/lib/node.cc b/lib/node.cc index a3dffddd..ff04846f 100644 --- a/lib/node.cc +++ b/lib/node.cc @@ -4,9 +4,7 @@ namespace axa { -Node::Node(std::unique_ptr aImpl): - impl(std::move(aImpl)) { -} +Node::Node(std::unique_ptr aImpl) : impl(std::move(aImpl)) {} Node::~Node() { impl.reset(); @@ -33,4 +31,4 @@ NodePtr Node::ChildAt(const int32_t index) { return impl->ChildAt(index); } -} // namespace axa +} // namespace axa From 15d37517cf564d9375b454938d6c8a61abccd348 Mon Sep 17 00:00:00 2001 From: Valerie Young Date: Fri, 16 Feb 2024 09:51:26 -0800 Subject: [PATCH 3/3] Add IAccessible2 dependency --- .gitattributes | 1 + CMakeLists.txt | 3 +- examples/ia2/dump_tree_ia2.cc | 20 +- include/axaccess/ia2/ia2_api_all.h | 5231 ++++++++++++++++++ include/axaccess/ia2/ia2_node.h | 19 +- include/axaccess/ia2/win_utils.h | 10 +- lib/ia2/CMakeLists.txt | 20 + lib/ia2/ia2_api_all.dlldata.c | 38 + lib/ia2/ia2_api_all.idl | 5710 +++++++++++++++++++ lib/ia2/ia2_api_all.tlb | Bin 0 -> 29016 bytes lib/ia2/ia2_api_all_i.c | 136 + lib/ia2/ia2_api_all_p.c | 8276 ++++++++++++++++++++++++++++ lib/ia2/ia2_node.cc | 423 +- lib/ia2/win_utils.cc | 78 +- 14 files changed, 19922 insertions(+), 43 deletions(-) create mode 100644 .gitattributes create mode 100644 include/axaccess/ia2/ia2_api_all.h create mode 100644 lib/ia2/ia2_api_all.dlldata.c create mode 100644 lib/ia2/ia2_api_all.idl create mode 100644 lib/ia2/ia2_api_all.tlb create mode 100644 lib/ia2/ia2_api_all_i.c create mode 100644 lib/ia2/ia2_api_all_p.c diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..3baff73d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +lib/ia2/ia2_api_all.idl eol=crlf \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 79a7e5a6..6f642ade 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,14 +3,13 @@ cmake_minimum_required(VERSION 3.25) # Enable cmake_print_variables() and cmake_print_properties() for debugging include(CMakePrintHelpers) -set(PROJECT_LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_OBJCXX_STANDARD 17) project( axaccess VERSION 1.0 - LANGUAGES ${PROJECT_LANGUAGES} + LANGUAGES C CXX ) # Use absolute paths for #includes diff --git a/examples/ia2/dump_tree_ia2.cc b/examples/ia2/dump_tree_ia2.cc index f2b80f7c..3c7c3533 100644 --- a/examples/ia2/dump_tree_ia2.cc +++ b/examples/ia2/dump_tree_ia2.cc @@ -4,7 +4,6 @@ #include #include "include/axaccess/ia2/ia2_node.h" -#include "include/axaccess/ia2/win_utils.h" void print_usage(std::string& program_name) { std::cout << "Usage: " << program_name << " \n"; @@ -27,13 +26,18 @@ int main(int argc, char** argv) { const int pid = std::stoi(pid_string); std::cout << "Got PID: " << pid << "\n"; - IA2NodePtr root = find_root_accessible_from_pid(pid); - if (!root) { - std::cerr << "No accessible root found at pid " << pid << "\n"; - return -1; - } + // IA2NodePtr root = IA2Node::CreateForPID(pid); + // if (!root) { + // std::cerr << "No accessible root found at pid " << pid << "\n"; + // return -1; + // } + // + // std::cout << root->get_accRole(); + // std::cout << " " << root->ia2_role(); + // std::cout << " (" << root->get_accName() << ")\n"; + + // Testing + IA2Node::DumpRoleTree(pid); - std::cout << root->get_accRole(); - std::cout << " (" << root->get_accName() << ")\n"; return 0; } diff --git a/include/axaccess/ia2/ia2_api_all.h b/include/axaccess/ia2/ia2_api_all.h new file mode 100644 index 00000000..7e583eec --- /dev/null +++ b/include/axaccess/ia2/ia2_api_all.h @@ -0,0 +1,5231 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 8.01.0628 */ +/* at Mon Jan 18 19:14:07 2038 + */ +/* Compiler settings for ia2_api_all.idl: + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0628 + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +/* @@MIDL_FILE_HEADING( ) */ + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif /* __RPCNDR_H_VERSION__ */ + +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __ia2_api_all_h__ +#define __ia2_api_all_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +#ifndef DECLSPEC_XFGVIRT +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + +/* Forward Declarations */ + +#ifndef __IAccessibleRelation_FWD_DEFINED__ +#define __IAccessibleRelation_FWD_DEFINED__ +typedef interface IAccessibleRelation IAccessibleRelation; + +#endif /* __IAccessibleRelation_FWD_DEFINED__ */ + + +#ifndef __IAccessibleAction_FWD_DEFINED__ +#define __IAccessibleAction_FWD_DEFINED__ +typedef interface IAccessibleAction IAccessibleAction; + +#endif /* __IAccessibleAction_FWD_DEFINED__ */ + + +#ifndef __IAccessible2_FWD_DEFINED__ +#define __IAccessible2_FWD_DEFINED__ +typedef interface IAccessible2 IAccessible2; + +#endif /* __IAccessible2_FWD_DEFINED__ */ + + +#ifndef __IAccessible2_2_FWD_DEFINED__ +#define __IAccessible2_2_FWD_DEFINED__ +typedef interface IAccessible2_2 IAccessible2_2; + +#endif /* __IAccessible2_2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleComponent_FWD_DEFINED__ +#define __IAccessibleComponent_FWD_DEFINED__ +typedef interface IAccessibleComponent IAccessibleComponent; + +#endif /* __IAccessibleComponent_FWD_DEFINED__ */ + + +#ifndef __IAccessibleValue_FWD_DEFINED__ +#define __IAccessibleValue_FWD_DEFINED__ +typedef interface IAccessibleValue IAccessibleValue; + +#endif /* __IAccessibleValue_FWD_DEFINED__ */ + + +#ifndef __IAccessibleText_FWD_DEFINED__ +#define __IAccessibleText_FWD_DEFINED__ +typedef interface IAccessibleText IAccessibleText; + +#endif /* __IAccessibleText_FWD_DEFINED__ */ + + +#ifndef __IAccessibleText2_FWD_DEFINED__ +#define __IAccessibleText2_FWD_DEFINED__ +typedef interface IAccessibleText2 IAccessibleText2; + +#endif /* __IAccessibleText2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTextSelectionContainer_FWD_DEFINED__ +#define __IAccessibleTextSelectionContainer_FWD_DEFINED__ +typedef interface IAccessibleTextSelectionContainer IAccessibleTextSelectionContainer; + +#endif /* __IAccessibleTextSelectionContainer_FWD_DEFINED__ */ + + +#ifndef __IAccessibleEditableText_FWD_DEFINED__ +#define __IAccessibleEditableText_FWD_DEFINED__ +typedef interface IAccessibleEditableText IAccessibleEditableText; + +#endif /* __IAccessibleEditableText_FWD_DEFINED__ */ + + +#ifndef __IAccessibleHyperlink_FWD_DEFINED__ +#define __IAccessibleHyperlink_FWD_DEFINED__ +typedef interface IAccessibleHyperlink IAccessibleHyperlink; + +#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */ + + +#ifndef __IAccessibleHypertext_FWD_DEFINED__ +#define __IAccessibleHypertext_FWD_DEFINED__ +typedef interface IAccessibleHypertext IAccessibleHypertext; + +#endif /* __IAccessibleHypertext_FWD_DEFINED__ */ + + +#ifndef __IAccessibleHypertext2_FWD_DEFINED__ +#define __IAccessibleHypertext2_FWD_DEFINED__ +typedef interface IAccessibleHypertext2 IAccessibleHypertext2; + +#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTable_FWD_DEFINED__ +#define __IAccessibleTable_FWD_DEFINED__ +typedef interface IAccessibleTable IAccessibleTable; + +#endif /* __IAccessibleTable_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTable2_FWD_DEFINED__ +#define __IAccessibleTable2_FWD_DEFINED__ +typedef interface IAccessibleTable2 IAccessibleTable2; + +#endif /* __IAccessibleTable2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTableCell_FWD_DEFINED__ +#define __IAccessibleTableCell_FWD_DEFINED__ +typedef interface IAccessibleTableCell IAccessibleTableCell; + +#endif /* __IAccessibleTableCell_FWD_DEFINED__ */ + + +#ifndef __IAccessibleImage_FWD_DEFINED__ +#define __IAccessibleImage_FWD_DEFINED__ +typedef interface IAccessibleImage IAccessibleImage; + +#endif /* __IAccessibleImage_FWD_DEFINED__ */ + + +#ifndef __IAccessibleApplication_FWD_DEFINED__ +#define __IAccessibleApplication_FWD_DEFINED__ +typedef interface IAccessibleApplication IAccessibleApplication; + +#endif /* __IAccessibleApplication_FWD_DEFINED__ */ + + +#ifndef __IAccessibleDocument_FWD_DEFINED__ +#define __IAccessibleDocument_FWD_DEFINED__ +typedef interface IAccessibleDocument IAccessibleDocument; + +#endif /* __IAccessibleDocument_FWD_DEFINED__ */ + + +#ifndef __IAccessible2_FWD_DEFINED__ +#define __IAccessible2_FWD_DEFINED__ +typedef interface IAccessible2 IAccessible2; + +#endif /* __IAccessible2_FWD_DEFINED__ */ + + +#ifndef __IAccessible2_2_FWD_DEFINED__ +#define __IAccessible2_2_FWD_DEFINED__ +typedef interface IAccessible2_2 IAccessible2_2; + +#endif /* __IAccessible2_2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleAction_FWD_DEFINED__ +#define __IAccessibleAction_FWD_DEFINED__ +typedef interface IAccessibleAction IAccessibleAction; + +#endif /* __IAccessibleAction_FWD_DEFINED__ */ + + +#ifndef __IAccessibleApplication_FWD_DEFINED__ +#define __IAccessibleApplication_FWD_DEFINED__ +typedef interface IAccessibleApplication IAccessibleApplication; + +#endif /* __IAccessibleApplication_FWD_DEFINED__ */ + + +#ifndef __IAccessibleComponent_FWD_DEFINED__ +#define __IAccessibleComponent_FWD_DEFINED__ +typedef interface IAccessibleComponent IAccessibleComponent; + +#endif /* __IAccessibleComponent_FWD_DEFINED__ */ + + +#ifndef __IAccessibleDocument_FWD_DEFINED__ +#define __IAccessibleDocument_FWD_DEFINED__ +typedef interface IAccessibleDocument IAccessibleDocument; + +#endif /* __IAccessibleDocument_FWD_DEFINED__ */ + + +#ifndef __IAccessibleEditableText_FWD_DEFINED__ +#define __IAccessibleEditableText_FWD_DEFINED__ +typedef interface IAccessibleEditableText IAccessibleEditableText; + +#endif /* __IAccessibleEditableText_FWD_DEFINED__ */ + + +#ifndef __IAccessibleHyperlink_FWD_DEFINED__ +#define __IAccessibleHyperlink_FWD_DEFINED__ +typedef interface IAccessibleHyperlink IAccessibleHyperlink; + +#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */ + + +#ifndef __IAccessibleText_FWD_DEFINED__ +#define __IAccessibleText_FWD_DEFINED__ +typedef interface IAccessibleText IAccessibleText; + +#endif /* __IAccessibleText_FWD_DEFINED__ */ + + +#ifndef __IAccessibleHypertext_FWD_DEFINED__ +#define __IAccessibleHypertext_FWD_DEFINED__ +typedef interface IAccessibleHypertext IAccessibleHypertext; + +#endif /* __IAccessibleHypertext_FWD_DEFINED__ */ + + +#ifndef __IAccessibleHypertext2_FWD_DEFINED__ +#define __IAccessibleHypertext2_FWD_DEFINED__ +typedef interface IAccessibleHypertext2 IAccessibleHypertext2; + +#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleImage_FWD_DEFINED__ +#define __IAccessibleImage_FWD_DEFINED__ +typedef interface IAccessibleImage IAccessibleImage; + +#endif /* __IAccessibleImage_FWD_DEFINED__ */ + + +#ifndef __IAccessibleRelation_FWD_DEFINED__ +#define __IAccessibleRelation_FWD_DEFINED__ +typedef interface IAccessibleRelation IAccessibleRelation; + +#endif /* __IAccessibleRelation_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTable_FWD_DEFINED__ +#define __IAccessibleTable_FWD_DEFINED__ +typedef interface IAccessibleTable IAccessibleTable; + +#endif /* __IAccessibleTable_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTable2_FWD_DEFINED__ +#define __IAccessibleTable2_FWD_DEFINED__ +typedef interface IAccessibleTable2 IAccessibleTable2; + +#endif /* __IAccessibleTable2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTableCell_FWD_DEFINED__ +#define __IAccessibleTableCell_FWD_DEFINED__ +typedef interface IAccessibleTableCell IAccessibleTableCell; + +#endif /* __IAccessibleTableCell_FWD_DEFINED__ */ + + +#ifndef __IAccessibleText2_FWD_DEFINED__ +#define __IAccessibleText2_FWD_DEFINED__ +typedef interface IAccessibleText2 IAccessibleText2; + +#endif /* __IAccessibleText2_FWD_DEFINED__ */ + + +#ifndef __IAccessibleTextSelectionContainer_FWD_DEFINED__ +#define __IAccessibleTextSelectionContainer_FWD_DEFINED__ +typedef interface IAccessibleTextSelectionContainer IAccessibleTextSelectionContainer; + +#endif /* __IAccessibleTextSelectionContainer_FWD_DEFINED__ */ + + +#ifndef __IAccessibleValue_FWD_DEFINED__ +#define __IAccessibleValue_FWD_DEFINED__ +typedef interface IAccessibleValue IAccessibleValue; + +#endif /* __IAccessibleValue_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "objidl.h" +#include "oaidl.h" +#include "oleacc.h" + +#ifdef __cplusplus +extern "C"{ +#endif + + +/* interface __MIDL_itf_ia2_api_all_0000_0000 */ +/* [local] */ + + +enum IA2ScrollType + { + IA2_SCROLL_TYPE_TOP_LEFT = 0, + IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) , + IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) , + IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) , + IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) , + IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) , + IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 ) + } ; + +enum IA2CoordinateType + { + IA2_COORDTYPE_SCREEN_RELATIVE = 0, + IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 ) + } ; + +enum IA2TextSpecialOffsets + { + IA2_TEXT_OFFSET_LENGTH = -1, + IA2_TEXT_OFFSET_CARET = -2 + } ; + +enum IA2TableModelChangeType + { + IA2_TABLE_MODEL_CHANGE_INSERT = 0, + IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) , + IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 ) + } ; +typedef struct IA2TableModelChange + { + enum IA2TableModelChangeType type; + long firstRow; + long lastRow; + long firstColumn; + long lastColumn; + } IA2TableModelChange; + +#define IA2_RELATION_CONTAINING_APPLICATION ( L"containingApplication" ) + +#define IA2_RELATION_CONTAINING_DOCUMENT ( L"containingDocument" ) + +#define IA2_RELATION_CONTAINING_TAB_PANE ( L"containingTabPane" ) + +#define IA2_RELATION_CONTAINING_WINDOW ( L"containingWindow" ) + +#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" ) + +#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" ) + +#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" ) + +#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" ) + +#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" ) + +#define IA2_RELATION_EMBEDS ( L"embeds" ) + +#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" ) + +#define IA2_RELATION_FLOWS_TO ( L"flowsTo" ) + +#define IA2_RELATION_LABEL_FOR ( L"labelFor" ) + +#define IA2_RELATION_LABELED_BY ( L"labelledBy" ) + +#define IA2_RELATION_LABELLED_BY ( L"labelledBy" ) + +#define IA2_RELATION_MEMBER_OF ( L"memberOf" ) + +#define IA2_RELATION_NEXT_TABBABLE ( L"nextTabbable" ) + +#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" ) + +#define IA2_RELATION_NODE_PARENT_OF ( L"nodeParentOf" ) + +#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" ) + +#define IA2_RELATION_POPUP_FOR ( L"popupFor" ) + +#define IA2_RELATION_PREVIOUS_TABBABLE ( L"previousTabbable" ) + +#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" ) + +#define IA2_RELATION_DETAILS ( L"details" ) + +#define IA2_RELATION_DETAILS_FOR ( L"detailsFor" ) + +#define IA2_RELATION_ERROR ( L"error" ) + +#define IA2_RELATION_ERROR_FOR ( L"errorFor" ) + + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_s_ifspec; + +#ifndef __IAccessibleRelation_INTERFACE_DEFINED__ +#define __IAccessibleRelation_INTERFACE_DEFINED__ + +/* interface IAccessibleRelation */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleRelation; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC") + IAccessibleRelation : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType( + /* [retval][out] */ BSTR *relationType) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType( + /* [retval][out] */ BSTR *localizedRelationType) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets( + /* [retval][out] */ long *nTargets) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target( + /* [in] */ long targetIndex, + /* [retval][out] */ IUnknown **target) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets( + /* [in] */ long maxTargets, + /* [length_is][size_is][out] */ IUnknown **targets, + /* [retval][out] */ long *nTargets) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleRelationVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleRelation * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleRelation * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleRelation * This); + + DECLSPEC_XFGVIRT(IAccessibleRelation, get_relationType) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )( + IAccessibleRelation * This, + /* [retval][out] */ BSTR *relationType); + + DECLSPEC_XFGVIRT(IAccessibleRelation, get_localizedRelationType) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )( + IAccessibleRelation * This, + /* [retval][out] */ BSTR *localizedRelationType); + + DECLSPEC_XFGVIRT(IAccessibleRelation, get_nTargets) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )( + IAccessibleRelation * This, + /* [retval][out] */ long *nTargets); + + DECLSPEC_XFGVIRT(IAccessibleRelation, get_target) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )( + IAccessibleRelation * This, + /* [in] */ long targetIndex, + /* [retval][out] */ IUnknown **target); + + DECLSPEC_XFGVIRT(IAccessibleRelation, get_targets) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )( + IAccessibleRelation * This, + /* [in] */ long maxTargets, + /* [length_is][size_is][out] */ IUnknown **targets, + /* [retval][out] */ long *nTargets); + + END_INTERFACE + } IAccessibleRelationVtbl; + + interface IAccessibleRelation + { + CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleRelation_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleRelation_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleRelation_get_relationType(This,relationType) \ + ( (This)->lpVtbl -> get_relationType(This,relationType) ) + +#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \ + ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) ) + +#define IAccessibleRelation_get_nTargets(This,nTargets) \ + ( (This)->lpVtbl -> get_nTargets(This,nTargets) ) + +#define IAccessibleRelation_get_target(This,targetIndex,target) \ + ( (This)->lpVtbl -> get_target(This,targetIndex,target) ) + +#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \ + ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_ia2_api_all_0000_0001 */ +/* [local] */ + + +enum IA2Actions + { + IA2_ACTION_OPEN = -1, + IA2_ACTION_COMPLETE = -2, + IA2_ACTION_CLOSE = -3 + } ; + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_s_ifspec; + +#ifndef __IAccessibleAction_INTERFACE_DEFINED__ +#define __IAccessibleAction_INTERFACE_DEFINED__ + +/* interface IAccessibleAction */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleAction; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5") + IAccessibleAction : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE nActions( + /* [retval][out] */ long *nActions) = 0; + + virtual HRESULT STDMETHODCALLTYPE doAction( + /* [in] */ long actionIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description( + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *description) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding( + /* [in] */ long actionIndex, + /* [in] */ long nMaxBindings, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, + /* [retval][out] */ long *nBindings) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name( + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *name) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName( + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *localizedName) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleActionVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleAction * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleAction * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleAction * This); + + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) + HRESULT ( STDMETHODCALLTYPE *nActions )( + IAccessibleAction * This, + /* [retval][out] */ long *nActions); + + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) + HRESULT ( STDMETHODCALLTYPE *doAction )( + IAccessibleAction * This, + /* [in] */ long actionIndex); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( + IAccessibleAction * This, + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *description); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( + IAccessibleAction * This, + /* [in] */ long actionIndex, + /* [in] */ long nMaxBindings, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, + /* [retval][out] */ long *nBindings); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( + IAccessibleAction * This, + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *name); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( + IAccessibleAction * This, + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *localizedName); + + END_INTERFACE + } IAccessibleActionVtbl; + + interface IAccessibleAction + { + CONST_VTBL struct IAccessibleActionVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleAction_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleAction_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleAction_nActions(This,nActions) \ + ( (This)->lpVtbl -> nActions(This,nActions) ) + +#define IAccessibleAction_doAction(This,actionIndex) \ + ( (This)->lpVtbl -> doAction(This,actionIndex) ) + +#define IAccessibleAction_get_description(This,actionIndex,description) \ + ( (This)->lpVtbl -> get_description(This,actionIndex,description) ) + +#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \ + ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) ) + +#define IAccessibleAction_get_name(This,actionIndex,name) \ + ( (This)->lpVtbl -> get_name(This,actionIndex,name) ) + +#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \ + ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_ia2_api_all_0000_0002 */ +/* [local] */ + + +enum IA2Role + { + IA2_ROLE_UNKNOWN = 0, + IA2_ROLE_CANVAS = 0x401, + IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) , + IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) , + IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) , + IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) , + IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) , + IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) , + IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) , + IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) , + IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) , + IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) , + IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) , + IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) , + IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) , + IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) , + IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) , + IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) , + IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) , + IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) , + IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) , + IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) , + IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) , + IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) , + IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) , + IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) , + IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) , + IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) , + IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) , + IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) , + IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) , + IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) , + IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) , + IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) , + IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) , + IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) , + IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) , + IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) , + IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) , + IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) , + IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) , + IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) , + IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) , + IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) , + IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 ) , + IA2_ROLE_LANDMARK = ( IA2_ROLE_COMPLEMENTARY_CONTENT + 1 ) , + IA2_ROLE_LEVEL_BAR = ( IA2_ROLE_LANDMARK + 1 ) , + IA2_ROLE_CONTENT_DELETION = ( IA2_ROLE_LEVEL_BAR + 1 ) , + IA2_ROLE_CONTENT_INSERTION = ( IA2_ROLE_CONTENT_DELETION + 1 ) , + IA2_ROLE_BLOCK_QUOTE = ( IA2_ROLE_CONTENT_INSERTION + 1 ) , + IA2_ROLE_MARK = ( IA2_ROLE_BLOCK_QUOTE + 1 ) , + IA2_ROLE_SUGGESTION = ( IA2_ROLE_MARK + 1 ) , + IA2_ROLE_COMMENT = ( IA2_ROLE_SUGGESTION + 1 ) + } ; +typedef long AccessibleStates; + + +enum IA2States + { + IA2_STATE_ACTIVE = 0x1, + IA2_STATE_ARMED = 0x2, + IA2_STATE_DEFUNCT = 0x4, + IA2_STATE_EDITABLE = 0x8, + IA2_STATE_HORIZONTAL = 0x10, + IA2_STATE_ICONIFIED = 0x20, + IA2_STATE_INVALID_ENTRY = 0x40, + IA2_STATE_MANAGES_DESCENDANTS = 0x80, + IA2_STATE_MODAL = 0x100, + IA2_STATE_MULTI_LINE = 0x200, + IA2_STATE_OPAQUE = 0x400, + IA2_STATE_REQUIRED = 0x800, + IA2_STATE_SELECTABLE_TEXT = 0x1000, + IA2_STATE_SINGLE_LINE = 0x2000, + IA2_STATE_STALE = 0x4000, + IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000, + IA2_STATE_TRANSIENT = 0x10000, + IA2_STATE_VERTICAL = 0x20000, + IA2_STATE_CHECKABLE = 0x40000, + IA2_STATE_PINNED = 0x80000 + } ; +typedef struct IA2Locale + { + BSTR language; + BSTR country; + BSTR variant; + } IA2Locale; + + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_s_ifspec; + +#ifndef __IAccessible2_INTERFACE_DEFINED__ +#define __IAccessible2_INTERFACE_DEFINED__ + +/* interface IAccessible2 */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessible2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478") + IAccessible2 : public IAccessible + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations( + /* [retval][out] */ long *nRelations) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation( + /* [in] */ long relationIndex, + /* [retval][out] */ IAccessibleRelation **relation) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations( + /* [in] */ long maxRelations, + /* [length_is][size_is][out] */ IAccessibleRelation **relations, + /* [retval][out] */ long *nRelations) = 0; + + virtual HRESULT STDMETHODCALLTYPE role( + /* [retval][out] */ long *role) = 0; + + virtual HRESULT STDMETHODCALLTYPE scrollTo( + /* [in] */ enum IA2ScrollType scrollType) = 0; + + virtual HRESULT STDMETHODCALLTYPE scrollToPoint( + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition( + /* [out] */ long *groupLevel, + /* [out] */ long *similarItemsInGroup, + /* [retval][out] */ long *positionInGroup) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states( + /* [retval][out] */ AccessibleStates *states) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole( + /* [retval][out] */ BSTR *extendedRole) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole( + /* [retval][out] */ BSTR *localizedExtendedRole) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates( + /* [retval][out] */ long *nExtendedStates) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates( + /* [in] */ long maxExtendedStates, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, + /* [retval][out] */ long *nExtendedStates) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates( + /* [in] */ long maxLocalizedExtendedStates, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, + /* [retval][out] */ long *nLocalizedExtendedStates) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID( + /* [retval][out] */ long *uniqueID) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle( + /* [retval][out] */ HWND *windowHandle) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent( + /* [retval][out] */ long *indexInParent) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale( + /* [retval][out] */ IA2Locale *locale) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes( + /* [retval][out] */ BSTR *attributes) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessible2Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessible2 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessible2 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessible2 * This); + + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IAccessible2 * This, + /* [out] */ UINT *pctinfo); + + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IAccessible2 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IAccessible2 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + DECLSPEC_XFGVIRT(IDispatch, Invoke) + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IAccessible2 * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + DECLSPEC_XFGVIRT(IAccessible, get_accParent) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( + IAccessible2 * This, + /* [retval][out] */ IDispatch **ppdispParent); + + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( + IAccessible2 * This, + /* [retval][out] */ long *pcountChildren); + + DECLSPEC_XFGVIRT(IAccessible, get_accChild) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( + IAccessible2 * This, + /* [in] */ VARIANT varChild, + /* [retval][out] */ IDispatch **ppdispChild); + + DECLSPEC_XFGVIRT(IAccessible, get_accName) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszName); + + DECLSPEC_XFGVIRT(IAccessible, get_accValue) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszValue); + + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszDescription); + + DECLSPEC_XFGVIRT(IAccessible, get_accRole) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ VARIANT *pvarRole); + + DECLSPEC_XFGVIRT(IAccessible, get_accState) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ VARIANT *pvarState); + + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszHelp); + + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( + IAccessible2 * This, + /* [out] */ BSTR *pszHelpFile, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ long *pidTopic); + + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszKeyboardShortcut); + + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( + IAccessible2 * This, + /* [retval][out] */ VARIANT *pvarChild); + + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( + IAccessible2 * This, + /* [retval][out] */ VARIANT *pvarChildren); + + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszDefaultAction); + + DECLSPEC_XFGVIRT(IAccessible, accSelect) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( + IAccessible2 * This, + /* [in] */ long flagsSelect, + /* [optional][in] */ VARIANT varChild); + + DECLSPEC_XFGVIRT(IAccessible, accLocation) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( + IAccessible2 * This, + /* [out] */ long *pxLeft, + /* [out] */ long *pyTop, + /* [out] */ long *pcxWidth, + /* [out] */ long *pcyHeight, + /* [optional][in] */ VARIANT varChild); + + DECLSPEC_XFGVIRT(IAccessible, accNavigate) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( + IAccessible2 * This, + /* [in] */ long navDir, + /* [optional][in] */ VARIANT varStart, + /* [retval][out] */ VARIANT *pvarEndUpAt); + + DECLSPEC_XFGVIRT(IAccessible, accHitTest) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( + IAccessible2 * This, + /* [in] */ long xLeft, + /* [in] */ long yTop, + /* [retval][out] */ VARIANT *pvarChild); + + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild); + + DECLSPEC_XFGVIRT(IAccessible, put_accName) + /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [in] */ BSTR szName); + + DECLSPEC_XFGVIRT(IAccessible, put_accValue) + /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( + IAccessible2 * This, + /* [optional][in] */ VARIANT varChild, + /* [in] */ BSTR szValue); + + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( + IAccessible2 * This, + /* [retval][out] */ long *nRelations); + + DECLSPEC_XFGVIRT(IAccessible2, get_relation) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( + IAccessible2 * This, + /* [in] */ long relationIndex, + /* [retval][out] */ IAccessibleRelation **relation); + + DECLSPEC_XFGVIRT(IAccessible2, get_relations) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( + IAccessible2 * This, + /* [in] */ long maxRelations, + /* [length_is][size_is][out] */ IAccessibleRelation **relations, + /* [retval][out] */ long *nRelations); + + DECLSPEC_XFGVIRT(IAccessible2, role) + HRESULT ( STDMETHODCALLTYPE *role )( + IAccessible2 * This, + /* [retval][out] */ long *role); + + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) + HRESULT ( STDMETHODCALLTYPE *scrollTo )( + IAccessible2 * This, + /* [in] */ enum IA2ScrollType scrollType); + + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) + HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( + IAccessible2 * This, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y); + + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( + IAccessible2 * This, + /* [out] */ long *groupLevel, + /* [out] */ long *similarItemsInGroup, + /* [retval][out] */ long *positionInGroup); + + DECLSPEC_XFGVIRT(IAccessible2, get_states) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( + IAccessible2 * This, + /* [retval][out] */ AccessibleStates *states); + + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( + IAccessible2 * This, + /* [retval][out] */ BSTR *extendedRole); + + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( + IAccessible2 * This, + /* [retval][out] */ BSTR *localizedExtendedRole); + + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( + IAccessible2 * This, + /* [retval][out] */ long *nExtendedStates); + + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( + IAccessible2 * This, + /* [in] */ long maxExtendedStates, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, + /* [retval][out] */ long *nExtendedStates); + + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( + IAccessible2 * This, + /* [in] */ long maxLocalizedExtendedStates, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, + /* [retval][out] */ long *nLocalizedExtendedStates); + + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( + IAccessible2 * This, + /* [retval][out] */ long *uniqueID); + + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( + IAccessible2 * This, + /* [retval][out] */ HWND *windowHandle); + + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( + IAccessible2 * This, + /* [retval][out] */ long *indexInParent); + + DECLSPEC_XFGVIRT(IAccessible2, get_locale) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( + IAccessible2 * This, + /* [retval][out] */ IA2Locale *locale); + + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( + IAccessible2 * This, + /* [retval][out] */ BSTR *attributes); + + END_INTERFACE + } IAccessible2Vtbl; + + interface IAccessible2 + { + CONST_VTBL struct IAccessible2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessible2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessible2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessible2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessible2_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IAccessible2_get_accParent(This,ppdispParent) \ + ( (This)->lpVtbl -> get_accParent(This,ppdispParent) ) + +#define IAccessible2_get_accChildCount(This,pcountChildren) \ + ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) ) + +#define IAccessible2_get_accChild(This,varChild,ppdispChild) \ + ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) ) + +#define IAccessible2_get_accName(This,varChild,pszName) \ + ( (This)->lpVtbl -> get_accName(This,varChild,pszName) ) + +#define IAccessible2_get_accValue(This,varChild,pszValue) \ + ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) ) + +#define IAccessible2_get_accDescription(This,varChild,pszDescription) \ + ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) ) + +#define IAccessible2_get_accRole(This,varChild,pvarRole) \ + ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) ) + +#define IAccessible2_get_accState(This,varChild,pvarState) \ + ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) ) + +#define IAccessible2_get_accHelp(This,varChild,pszHelp) \ + ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) ) + +#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \ + ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) ) + +#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \ + ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) ) + +#define IAccessible2_get_accFocus(This,pvarChild) \ + ( (This)->lpVtbl -> get_accFocus(This,pvarChild) ) + +#define IAccessible2_get_accSelection(This,pvarChildren) \ + ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) ) + +#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \ + ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) ) + +#define IAccessible2_accSelect(This,flagsSelect,varChild) \ + ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) ) + +#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \ + ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) ) + +#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \ + ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) ) + +#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \ + ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) ) + +#define IAccessible2_accDoDefaultAction(This,varChild) \ + ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) ) + +#define IAccessible2_put_accName(This,varChild,szName) \ + ( (This)->lpVtbl -> put_accName(This,varChild,szName) ) + +#define IAccessible2_put_accValue(This,varChild,szValue) \ + ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) ) + + +#define IAccessible2_get_nRelations(This,nRelations) \ + ( (This)->lpVtbl -> get_nRelations(This,nRelations) ) + +#define IAccessible2_get_relation(This,relationIndex,relation) \ + ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) ) + +#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \ + ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) ) + +#define IAccessible2_role(This,role) \ + ( (This)->lpVtbl -> role(This,role) ) + +#define IAccessible2_scrollTo(This,scrollType) \ + ( (This)->lpVtbl -> scrollTo(This,scrollType) ) + +#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \ + ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) ) + +#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \ + ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) ) + +#define IAccessible2_get_states(This,states) \ + ( (This)->lpVtbl -> get_states(This,states) ) + +#define IAccessible2_get_extendedRole(This,extendedRole) \ + ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) ) + +#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \ + ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) ) + +#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \ + ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) ) + +#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \ + ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) ) + +#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \ + ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) ) + +#define IAccessible2_get_uniqueID(This,uniqueID) \ + ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) ) + +#define IAccessible2_get_windowHandle(This,windowHandle) \ + ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) ) + +#define IAccessible2_get_indexInParent(This,indexInParent) \ + ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) ) + +#define IAccessible2_get_locale(This,locale) \ + ( (This)->lpVtbl -> get_locale(This,locale) ) + +#define IAccessible2_get_attributes(This,attributes) \ + ( (This)->lpVtbl -> get_attributes(This,attributes) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessible2_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessible2_2_INTERFACE_DEFINED__ +#define __IAccessible2_2_INTERFACE_DEFINED__ + +/* interface IAccessible2_2 */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessible2_2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("6C9430E9-299D-4E6F-BD01-A82A1E88D3FF") + IAccessible2_2 : public IAccessible2 + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attribute( + /* [in] */ BSTR name, + /* [retval][out] */ VARIANT *attribute) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleWithCaret( + /* [out] */ IUnknown **accessible, + /* [retval][out] */ long *caretOffset) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationTargetsOfType( + /* [in] */ BSTR type, + /* [in] */ long maxTargets, + /* [size_is][size_is][out] */ IUnknown ***targets, + /* [retval][out] */ long *nTargets) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessible2_2Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessible2_2 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessible2_2 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessible2_2 * This); + + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IAccessible2_2 * This, + /* [out] */ UINT *pctinfo); + + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IAccessible2_2 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IAccessible2_2 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + DECLSPEC_XFGVIRT(IDispatch, Invoke) + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IAccessible2_2 * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + DECLSPEC_XFGVIRT(IAccessible, get_accParent) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( + IAccessible2_2 * This, + /* [retval][out] */ IDispatch **ppdispParent); + + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( + IAccessible2_2 * This, + /* [retval][out] */ long *pcountChildren); + + DECLSPEC_XFGVIRT(IAccessible, get_accChild) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( + IAccessible2_2 * This, + /* [in] */ VARIANT varChild, + /* [retval][out] */ IDispatch **ppdispChild); + + DECLSPEC_XFGVIRT(IAccessible, get_accName) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszName); + + DECLSPEC_XFGVIRT(IAccessible, get_accValue) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszValue); + + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszDescription); + + DECLSPEC_XFGVIRT(IAccessible, get_accRole) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ VARIANT *pvarRole); + + DECLSPEC_XFGVIRT(IAccessible, get_accState) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ VARIANT *pvarState); + + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszHelp); + + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( + IAccessible2_2 * This, + /* [out] */ BSTR *pszHelpFile, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ long *pidTopic); + + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszKeyboardShortcut); + + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( + IAccessible2_2 * This, + /* [retval][out] */ VARIANT *pvarChild); + + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( + IAccessible2_2 * This, + /* [retval][out] */ VARIANT *pvarChildren); + + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) + /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [retval][out] */ BSTR *pszDefaultAction); + + DECLSPEC_XFGVIRT(IAccessible, accSelect) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( + IAccessible2_2 * This, + /* [in] */ long flagsSelect, + /* [optional][in] */ VARIANT varChild); + + DECLSPEC_XFGVIRT(IAccessible, accLocation) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( + IAccessible2_2 * This, + /* [out] */ long *pxLeft, + /* [out] */ long *pyTop, + /* [out] */ long *pcxWidth, + /* [out] */ long *pcyHeight, + /* [optional][in] */ VARIANT varChild); + + DECLSPEC_XFGVIRT(IAccessible, accNavigate) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( + IAccessible2_2 * This, + /* [in] */ long navDir, + /* [optional][in] */ VARIANT varStart, + /* [retval][out] */ VARIANT *pvarEndUpAt); + + DECLSPEC_XFGVIRT(IAccessible, accHitTest) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( + IAccessible2_2 * This, + /* [in] */ long xLeft, + /* [in] */ long yTop, + /* [retval][out] */ VARIANT *pvarChild); + + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) + /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild); + + DECLSPEC_XFGVIRT(IAccessible, put_accName) + /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [in] */ BSTR szName); + + DECLSPEC_XFGVIRT(IAccessible, put_accValue) + /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( + IAccessible2_2 * This, + /* [optional][in] */ VARIANT varChild, + /* [in] */ BSTR szValue); + + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( + IAccessible2_2 * This, + /* [retval][out] */ long *nRelations); + + DECLSPEC_XFGVIRT(IAccessible2, get_relation) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( + IAccessible2_2 * This, + /* [in] */ long relationIndex, + /* [retval][out] */ IAccessibleRelation **relation); + + DECLSPEC_XFGVIRT(IAccessible2, get_relations) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( + IAccessible2_2 * This, + /* [in] */ long maxRelations, + /* [length_is][size_is][out] */ IAccessibleRelation **relations, + /* [retval][out] */ long *nRelations); + + DECLSPEC_XFGVIRT(IAccessible2, role) + HRESULT ( STDMETHODCALLTYPE *role )( + IAccessible2_2 * This, + /* [retval][out] */ long *role); + + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) + HRESULT ( STDMETHODCALLTYPE *scrollTo )( + IAccessible2_2 * This, + /* [in] */ enum IA2ScrollType scrollType); + + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) + HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( + IAccessible2_2 * This, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y); + + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( + IAccessible2_2 * This, + /* [out] */ long *groupLevel, + /* [out] */ long *similarItemsInGroup, + /* [retval][out] */ long *positionInGroup); + + DECLSPEC_XFGVIRT(IAccessible2, get_states) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( + IAccessible2_2 * This, + /* [retval][out] */ AccessibleStates *states); + + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( + IAccessible2_2 * This, + /* [retval][out] */ BSTR *extendedRole); + + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( + IAccessible2_2 * This, + /* [retval][out] */ BSTR *localizedExtendedRole); + + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( + IAccessible2_2 * This, + /* [retval][out] */ long *nExtendedStates); + + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( + IAccessible2_2 * This, + /* [in] */ long maxExtendedStates, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, + /* [retval][out] */ long *nExtendedStates); + + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( + IAccessible2_2 * This, + /* [in] */ long maxLocalizedExtendedStates, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, + /* [retval][out] */ long *nLocalizedExtendedStates); + + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( + IAccessible2_2 * This, + /* [retval][out] */ long *uniqueID); + + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( + IAccessible2_2 * This, + /* [retval][out] */ HWND *windowHandle); + + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( + IAccessible2_2 * This, + /* [retval][out] */ long *indexInParent); + + DECLSPEC_XFGVIRT(IAccessible2, get_locale) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( + IAccessible2_2 * This, + /* [retval][out] */ IA2Locale *locale); + + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( + IAccessible2_2 * This, + /* [retval][out] */ BSTR *attributes); + + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( + IAccessible2_2 * This, + /* [in] */ BSTR name, + /* [retval][out] */ VARIANT *attribute); + + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( + IAccessible2_2 * This, + /* [out] */ IUnknown **accessible, + /* [retval][out] */ long *caretOffset); + + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( + IAccessible2_2 * This, + /* [in] */ BSTR type, + /* [in] */ long maxTargets, + /* [size_is][size_is][out] */ IUnknown ***targets, + /* [retval][out] */ long *nTargets); + + END_INTERFACE + } IAccessible2_2Vtbl; + + interface IAccessible2_2 + { + CONST_VTBL struct IAccessible2_2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessible2_2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessible2_2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessible2_2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessible2_2_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IAccessible2_2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IAccessible2_2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IAccessible2_2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IAccessible2_2_get_accParent(This,ppdispParent) \ + ( (This)->lpVtbl -> get_accParent(This,ppdispParent) ) + +#define IAccessible2_2_get_accChildCount(This,pcountChildren) \ + ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) ) + +#define IAccessible2_2_get_accChild(This,varChild,ppdispChild) \ + ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) ) + +#define IAccessible2_2_get_accName(This,varChild,pszName) \ + ( (This)->lpVtbl -> get_accName(This,varChild,pszName) ) + +#define IAccessible2_2_get_accValue(This,varChild,pszValue) \ + ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) ) + +#define IAccessible2_2_get_accDescription(This,varChild,pszDescription) \ + ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) ) + +#define IAccessible2_2_get_accRole(This,varChild,pvarRole) \ + ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) ) + +#define IAccessible2_2_get_accState(This,varChild,pvarState) \ + ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) ) + +#define IAccessible2_2_get_accHelp(This,varChild,pszHelp) \ + ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) ) + +#define IAccessible2_2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \ + ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) ) + +#define IAccessible2_2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \ + ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) ) + +#define IAccessible2_2_get_accFocus(This,pvarChild) \ + ( (This)->lpVtbl -> get_accFocus(This,pvarChild) ) + +#define IAccessible2_2_get_accSelection(This,pvarChildren) \ + ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) ) + +#define IAccessible2_2_get_accDefaultAction(This,varChild,pszDefaultAction) \ + ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) ) + +#define IAccessible2_2_accSelect(This,flagsSelect,varChild) \ + ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) ) + +#define IAccessible2_2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \ + ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) ) + +#define IAccessible2_2_accNavigate(This,navDir,varStart,pvarEndUpAt) \ + ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) ) + +#define IAccessible2_2_accHitTest(This,xLeft,yTop,pvarChild) \ + ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) ) + +#define IAccessible2_2_accDoDefaultAction(This,varChild) \ + ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) ) + +#define IAccessible2_2_put_accName(This,varChild,szName) \ + ( (This)->lpVtbl -> put_accName(This,varChild,szName) ) + +#define IAccessible2_2_put_accValue(This,varChild,szValue) \ + ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) ) + + +#define IAccessible2_2_get_nRelations(This,nRelations) \ + ( (This)->lpVtbl -> get_nRelations(This,nRelations) ) + +#define IAccessible2_2_get_relation(This,relationIndex,relation) \ + ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) ) + +#define IAccessible2_2_get_relations(This,maxRelations,relations,nRelations) \ + ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) ) + +#define IAccessible2_2_role(This,role) \ + ( (This)->lpVtbl -> role(This,role) ) + +#define IAccessible2_2_scrollTo(This,scrollType) \ + ( (This)->lpVtbl -> scrollTo(This,scrollType) ) + +#define IAccessible2_2_scrollToPoint(This,coordinateType,x,y) \ + ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) ) + +#define IAccessible2_2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \ + ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) ) + +#define IAccessible2_2_get_states(This,states) \ + ( (This)->lpVtbl -> get_states(This,states) ) + +#define IAccessible2_2_get_extendedRole(This,extendedRole) \ + ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) ) + +#define IAccessible2_2_get_localizedExtendedRole(This,localizedExtendedRole) \ + ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) ) + +#define IAccessible2_2_get_nExtendedStates(This,nExtendedStates) \ + ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) ) + +#define IAccessible2_2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \ + ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) ) + +#define IAccessible2_2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \ + ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) ) + +#define IAccessible2_2_get_uniqueID(This,uniqueID) \ + ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) ) + +#define IAccessible2_2_get_windowHandle(This,windowHandle) \ + ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) ) + +#define IAccessible2_2_get_indexInParent(This,indexInParent) \ + ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) ) + +#define IAccessible2_2_get_locale(This,locale) \ + ( (This)->lpVtbl -> get_locale(This,locale) ) + +#define IAccessible2_2_get_attributes(This,attributes) \ + ( (This)->lpVtbl -> get_attributes(This,attributes) ) + + +#define IAccessible2_2_get_attribute(This,name,attribute) \ + ( (This)->lpVtbl -> get_attribute(This,name,attribute) ) + +#define IAccessible2_2_get_accessibleWithCaret(This,accessible,caretOffset) \ + ( (This)->lpVtbl -> get_accessibleWithCaret(This,accessible,caretOffset) ) + +#define IAccessible2_2_get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) \ + ( (This)->lpVtbl -> get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessible2_2_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_ia2_api_all_0000_0004 */ +/* [local] */ + +typedef long IA2Color; + + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_s_ifspec; + +#ifndef __IAccessibleComponent_INTERFACE_DEFINED__ +#define __IAccessibleComponent_INTERFACE_DEFINED__ + +/* interface IAccessibleComponent */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleComponent; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4") + IAccessibleComponent : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent( + /* [out] */ long *x, + /* [retval][out] */ long *y) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground( + /* [retval][out] */ IA2Color *foreground) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background( + /* [retval][out] */ IA2Color *background) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleComponentVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleComponent * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleComponent * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleComponent * This); + + DECLSPEC_XFGVIRT(IAccessibleComponent, get_locationInParent) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )( + IAccessibleComponent * This, + /* [out] */ long *x, + /* [retval][out] */ long *y); + + DECLSPEC_XFGVIRT(IAccessibleComponent, get_foreground) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )( + IAccessibleComponent * This, + /* [retval][out] */ IA2Color *foreground); + + DECLSPEC_XFGVIRT(IAccessibleComponent, get_background) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )( + IAccessibleComponent * This, + /* [retval][out] */ IA2Color *background); + + END_INTERFACE + } IAccessibleComponentVtbl; + + interface IAccessibleComponent + { + CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleComponent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleComponent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleComponent_get_locationInParent(This,x,y) \ + ( (This)->lpVtbl -> get_locationInParent(This,x,y) ) + +#define IAccessibleComponent_get_foreground(This,foreground) \ + ( (This)->lpVtbl -> get_foreground(This,foreground) ) + +#define IAccessibleComponent_get_background(This,background) \ + ( (This)->lpVtbl -> get_background(This,background) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleValue_INTERFACE_DEFINED__ +#define __IAccessibleValue_INTERFACE_DEFINED__ + +/* interface IAccessibleValue */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleValue; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394") + IAccessibleValue : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue( + /* [retval][out] */ VARIANT *currentValue) = 0; + + virtual HRESULT STDMETHODCALLTYPE setCurrentValue( + /* [in] */ VARIANT value) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue( + /* [retval][out] */ VARIANT *maximumValue) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue( + /* [retval][out] */ VARIANT *minimumValue) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleValueVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleValue * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleValue * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleValue * This); + + DECLSPEC_XFGVIRT(IAccessibleValue, get_currentValue) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )( + IAccessibleValue * This, + /* [retval][out] */ VARIANT *currentValue); + + DECLSPEC_XFGVIRT(IAccessibleValue, setCurrentValue) + HRESULT ( STDMETHODCALLTYPE *setCurrentValue )( + IAccessibleValue * This, + /* [in] */ VARIANT value); + + DECLSPEC_XFGVIRT(IAccessibleValue, get_maximumValue) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )( + IAccessibleValue * This, + /* [retval][out] */ VARIANT *maximumValue); + + DECLSPEC_XFGVIRT(IAccessibleValue, get_minimumValue) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )( + IAccessibleValue * This, + /* [retval][out] */ VARIANT *minimumValue); + + END_INTERFACE + } IAccessibleValueVtbl; + + interface IAccessibleValue + { + CONST_VTBL struct IAccessibleValueVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleValue_get_currentValue(This,currentValue) \ + ( (This)->lpVtbl -> get_currentValue(This,currentValue) ) + +#define IAccessibleValue_setCurrentValue(This,value) \ + ( (This)->lpVtbl -> setCurrentValue(This,value) ) + +#define IAccessibleValue_get_maximumValue(This,maximumValue) \ + ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) ) + +#define IAccessibleValue_get_minimumValue(This,minimumValue) \ + ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_ia2_api_all_0000_0006 */ +/* [local] */ + +typedef struct IA2TextSegment + { + BSTR text; + long start; + long end; + } IA2TextSegment; + + +enum IA2TextBoundaryType + { + IA2_TEXT_BOUNDARY_CHAR = 0, + IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) , + IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) , + IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) , + IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) , + IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 ) + } ; + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_s_ifspec; + +#ifndef __IAccessibleText_INTERFACE_DEFINED__ +#define __IAccessibleText_INTERFACE_DEFINED__ + +/* interface IAccessibleText */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleText; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B") + IAccessibleText : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE addSelection( + /* [in] */ long startOffset, + /* [in] */ long endOffset) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes( + /* [in] */ long offset, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *textAttributes) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset( + /* [retval][out] */ long *offset) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents( + /* [in] */ long offset, + /* [in] */ enum IA2CoordinateType coordType, + /* [out] */ long *x, + /* [out] */ long *y, + /* [out] */ long *width, + /* [retval][out] */ long *height) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections( + /* [retval][out] */ long *nSelections) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint( + /* [in] */ long x, + /* [in] */ long y, + /* [in] */ enum IA2CoordinateType coordType, + /* [retval][out] */ long *offset) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection( + /* [in] */ long selectionIndex, + /* [out] */ long *startOffset, + /* [retval][out] */ long *endOffset) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text( + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [retval][out] */ BSTR *text) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset( + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset( + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset( + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text) = 0; + + virtual HRESULT STDMETHODCALLTYPE removeSelection( + /* [in] */ long selectionIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE setCaretOffset( + /* [in] */ long offset) = 0; + + virtual HRESULT STDMETHODCALLTYPE setSelection( + /* [in] */ long selectionIndex, + /* [in] */ long startOffset, + /* [in] */ long endOffset) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters( + /* [retval][out] */ long *nCharacters) = 0; + + virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo( + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2ScrollType scrollType) = 0; + + virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint( + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText( + /* [retval][out] */ IA2TextSegment *newText) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText( + /* [retval][out] */ IA2TextSegment *oldText) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleTextVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleText * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleText * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleText * This); + + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) + HRESULT ( STDMETHODCALLTYPE *addSelection )( + IAccessibleText * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( + IAccessibleText * This, + /* [in] */ long offset, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *textAttributes); + + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( + IAccessibleText * This, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( + IAccessibleText * This, + /* [in] */ long offset, + /* [in] */ enum IA2CoordinateType coordType, + /* [out] */ long *x, + /* [out] */ long *y, + /* [out] */ long *width, + /* [retval][out] */ long *height); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( + IAccessibleText * This, + /* [retval][out] */ long *nSelections); + + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( + IAccessibleText * This, + /* [in] */ long x, + /* [in] */ long y, + /* [in] */ enum IA2CoordinateType coordType, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( + IAccessibleText * This, + /* [in] */ long selectionIndex, + /* [out] */ long *startOffset, + /* [retval][out] */ long *endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_text) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( + IAccessibleText * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( + IAccessibleText * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( + IAccessibleText * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( + IAccessibleText * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) + HRESULT ( STDMETHODCALLTYPE *removeSelection )( + IAccessibleText * This, + /* [in] */ long selectionIndex); + + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) + HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( + IAccessibleText * This, + /* [in] */ long offset); + + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) + HRESULT ( STDMETHODCALLTYPE *setSelection )( + IAccessibleText * This, + /* [in] */ long selectionIndex, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( + IAccessibleText * This, + /* [retval][out] */ long *nCharacters); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( + IAccessibleText * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2ScrollType scrollType); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( + IAccessibleText * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y); + + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( + IAccessibleText * This, + /* [retval][out] */ IA2TextSegment *newText); + + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( + IAccessibleText * This, + /* [retval][out] */ IA2TextSegment *oldText); + + END_INTERFACE + } IAccessibleTextVtbl; + + interface IAccessibleText + { + CONST_VTBL struct IAccessibleTextVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleText_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleText_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleText_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleText_addSelection(This,startOffset,endOffset) \ + ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) ) + +#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \ + ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) ) + +#define IAccessibleText_get_caretOffset(This,offset) \ + ( (This)->lpVtbl -> get_caretOffset(This,offset) ) + +#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \ + ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) ) + +#define IAccessibleText_get_nSelections(This,nSelections) \ + ( (This)->lpVtbl -> get_nSelections(This,nSelections) ) + +#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \ + ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) ) + +#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleText_get_text(This,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) ) + +#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleText_removeSelection(This,selectionIndex) \ + ( (This)->lpVtbl -> removeSelection(This,selectionIndex) ) + +#define IAccessibleText_setCaretOffset(This,offset) \ + ( (This)->lpVtbl -> setCaretOffset(This,offset) ) + +#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleText_get_nCharacters(This,nCharacters) \ + ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) ) + +#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \ + ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) ) + +#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \ + ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) ) + +#define IAccessibleText_get_newText(This,newText) \ + ( (This)->lpVtbl -> get_newText(This,newText) ) + +#define IAccessibleText_get_oldText(This,oldText) \ + ( (This)->lpVtbl -> get_oldText(This,oldText) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleText_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleText2_INTERFACE_DEFINED__ +#define __IAccessibleText2_INTERFACE_DEFINED__ + +/* interface IAccessibleText2 */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleText2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("9690A9CC-5C80-4DF5-852E-2D5AE4189A54") + IAccessibleText2 : public IAccessibleText + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributeRange( + /* [in] */ long offset, + /* [in] */ BSTR filter, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *attributeValues) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleText2Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleText2 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleText2 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleText2 * This); + + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) + HRESULT ( STDMETHODCALLTYPE *addSelection )( + IAccessibleText2 * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( + IAccessibleText2 * This, + /* [in] */ long offset, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *textAttributes); + + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( + IAccessibleText2 * This, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( + IAccessibleText2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2CoordinateType coordType, + /* [out] */ long *x, + /* [out] */ long *y, + /* [out] */ long *width, + /* [retval][out] */ long *height); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( + IAccessibleText2 * This, + /* [retval][out] */ long *nSelections); + + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( + IAccessibleText2 * This, + /* [in] */ long x, + /* [in] */ long y, + /* [in] */ enum IA2CoordinateType coordType, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( + IAccessibleText2 * This, + /* [in] */ long selectionIndex, + /* [out] */ long *startOffset, + /* [retval][out] */ long *endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_text) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( + IAccessibleText2 * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( + IAccessibleText2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( + IAccessibleText2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( + IAccessibleText2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) + HRESULT ( STDMETHODCALLTYPE *removeSelection )( + IAccessibleText2 * This, + /* [in] */ long selectionIndex); + + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) + HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( + IAccessibleText2 * This, + /* [in] */ long offset); + + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) + HRESULT ( STDMETHODCALLTYPE *setSelection )( + IAccessibleText2 * This, + /* [in] */ long selectionIndex, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( + IAccessibleText2 * This, + /* [retval][out] */ long *nCharacters); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( + IAccessibleText2 * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2ScrollType scrollType); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( + IAccessibleText2 * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y); + + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( + IAccessibleText2 * This, + /* [retval][out] */ IA2TextSegment *newText); + + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( + IAccessibleText2 * This, + /* [retval][out] */ IA2TextSegment *oldText); + + DECLSPEC_XFGVIRT(IAccessibleText2, get_attributeRange) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )( + IAccessibleText2 * This, + /* [in] */ long offset, + /* [in] */ BSTR filter, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *attributeValues); + + END_INTERFACE + } IAccessibleText2Vtbl; + + interface IAccessibleText2 + { + CONST_VTBL struct IAccessibleText2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleText2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleText2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleText2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleText2_addSelection(This,startOffset,endOffset) \ + ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) ) + +#define IAccessibleText2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \ + ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) ) + +#define IAccessibleText2_get_caretOffset(This,offset) \ + ( (This)->lpVtbl -> get_caretOffset(This,offset) ) + +#define IAccessibleText2_get_characterExtents(This,offset,coordType,x,y,width,height) \ + ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) ) + +#define IAccessibleText2_get_nSelections(This,nSelections) \ + ( (This)->lpVtbl -> get_nSelections(This,nSelections) ) + +#define IAccessibleText2_get_offsetAtPoint(This,x,y,coordType,offset) \ + ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) ) + +#define IAccessibleText2_get_selection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleText2_get_text(This,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) ) + +#define IAccessibleText2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleText2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleText2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleText2_removeSelection(This,selectionIndex) \ + ( (This)->lpVtbl -> removeSelection(This,selectionIndex) ) + +#define IAccessibleText2_setCaretOffset(This,offset) \ + ( (This)->lpVtbl -> setCaretOffset(This,offset) ) + +#define IAccessibleText2_setSelection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleText2_get_nCharacters(This,nCharacters) \ + ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) ) + +#define IAccessibleText2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \ + ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) ) + +#define IAccessibleText2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \ + ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) ) + +#define IAccessibleText2_get_newText(This,newText) \ + ( (This)->lpVtbl -> get_newText(This,newText) ) + +#define IAccessibleText2_get_oldText(This,oldText) \ + ( (This)->lpVtbl -> get_oldText(This,oldText) ) + + +#define IAccessibleText2_get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) \ + ( (This)->lpVtbl -> get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleText2_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_ia2_api_all_0000_0008 */ +/* [local] */ + +typedef struct IA2TextSelection + { + IAccessibleText *startObj; + long startOffset; + IAccessibleText *endObj; + long endOffset; + boolean startIsActive; + } IA2TextSelection; + + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0008_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0008_v0_0_s_ifspec; + +#ifndef __IAccessibleTextSelectionContainer_INTERFACE_DEFINED__ +#define __IAccessibleTextSelectionContainer_INTERFACE_DEFINED__ + +/* interface IAccessibleTextSelectionContainer */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleTextSelectionContainer; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("2118B599-733F-43D0-A569-0B31D125ED9A") + IAccessibleTextSelectionContainer : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selections( + /* [size_is][size_is][out] */ IA2TextSelection **selections, + /* [retval][out] */ long *nSelections) = 0; + + virtual HRESULT STDMETHODCALLTYPE setSelections( + /* [in] */ long nSelections, + /* [size_is][in] */ IA2TextSelection *selections) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleTextSelectionContainerVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleTextSelectionContainer * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleTextSelectionContainer * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleTextSelectionContainer * This); + + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, get_selections) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selections )( + IAccessibleTextSelectionContainer * This, + /* [size_is][size_is][out] */ IA2TextSelection **selections, + /* [retval][out] */ long *nSelections); + + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, setSelections) + HRESULT ( STDMETHODCALLTYPE *setSelections )( + IAccessibleTextSelectionContainer * This, + /* [in] */ long nSelections, + /* [size_is][in] */ IA2TextSelection *selections); + + END_INTERFACE + } IAccessibleTextSelectionContainerVtbl; + + interface IAccessibleTextSelectionContainer + { + CONST_VTBL struct IAccessibleTextSelectionContainerVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleTextSelectionContainer_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleTextSelectionContainer_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleTextSelectionContainer_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleTextSelectionContainer_get_selections(This,selections,nSelections) \ + ( (This)->lpVtbl -> get_selections(This,selections,nSelections) ) + +#define IAccessibleTextSelectionContainer_setSelections(This,nSelections,selections) \ + ( (This)->lpVtbl -> setSelections(This,nSelections,selections) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleTextSelectionContainer_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__ +#define __IAccessibleEditableText_INTERFACE_DEFINED__ + +/* interface IAccessibleEditableText */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleEditableText; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3") + IAccessibleEditableText : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE copyText( + /* [in] */ long startOffset, + /* [in] */ long endOffset) = 0; + + virtual HRESULT STDMETHODCALLTYPE deleteText( + /* [in] */ long startOffset, + /* [in] */ long endOffset) = 0; + + virtual HRESULT STDMETHODCALLTYPE insertText( + /* [in] */ long offset, + /* [in] */ BSTR *text) = 0; + + virtual HRESULT STDMETHODCALLTYPE cutText( + /* [in] */ long startOffset, + /* [in] */ long endOffset) = 0; + + virtual HRESULT STDMETHODCALLTYPE pasteText( + /* [in] */ long offset) = 0; + + virtual HRESULT STDMETHODCALLTYPE replaceText( + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [in] */ BSTR *text) = 0; + + virtual HRESULT STDMETHODCALLTYPE setAttributes( + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [in] */ BSTR *attributes) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleEditableTextVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleEditableText * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleEditableText * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleEditableText * This); + + DECLSPEC_XFGVIRT(IAccessibleEditableText, copyText) + HRESULT ( STDMETHODCALLTYPE *copyText )( + IAccessibleEditableText * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleEditableText, deleteText) + HRESULT ( STDMETHODCALLTYPE *deleteText )( + IAccessibleEditableText * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleEditableText, insertText) + HRESULT ( STDMETHODCALLTYPE *insertText )( + IAccessibleEditableText * This, + /* [in] */ long offset, + /* [in] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleEditableText, cutText) + HRESULT ( STDMETHODCALLTYPE *cutText )( + IAccessibleEditableText * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleEditableText, pasteText) + HRESULT ( STDMETHODCALLTYPE *pasteText )( + IAccessibleEditableText * This, + /* [in] */ long offset); + + DECLSPEC_XFGVIRT(IAccessibleEditableText, replaceText) + HRESULT ( STDMETHODCALLTYPE *replaceText )( + IAccessibleEditableText * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [in] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleEditableText, setAttributes) + HRESULT ( STDMETHODCALLTYPE *setAttributes )( + IAccessibleEditableText * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [in] */ BSTR *attributes); + + END_INTERFACE + } IAccessibleEditableTextVtbl; + + interface IAccessibleEditableText + { + CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleEditableText_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleEditableText_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \ + ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) ) + +#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \ + ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) ) + +#define IAccessibleEditableText_insertText(This,offset,text) \ + ( (This)->lpVtbl -> insertText(This,offset,text) ) + +#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \ + ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) ) + +#define IAccessibleEditableText_pasteText(This,offset) \ + ( (This)->lpVtbl -> pasteText(This,offset) ) + +#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) ) + +#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \ + ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__ +#define __IAccessibleHyperlink_INTERFACE_DEFINED__ + +/* interface IAccessibleHyperlink */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleHyperlink; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41") + IAccessibleHyperlink : public IAccessibleAction + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor( + /* [in] */ long index, + /* [retval][out] */ VARIANT *anchor) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget( + /* [in] */ long index, + /* [retval][out] */ VARIANT *anchorTarget) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex( + /* [retval][out] */ long *index) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex( + /* [retval][out] */ long *index) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid( + /* [retval][out] */ boolean *valid) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleHyperlinkVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleHyperlink * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleHyperlink * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleHyperlink * This); + + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) + HRESULT ( STDMETHODCALLTYPE *nActions )( + IAccessibleHyperlink * This, + /* [retval][out] */ long *nActions); + + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) + HRESULT ( STDMETHODCALLTYPE *doAction )( + IAccessibleHyperlink * This, + /* [in] */ long actionIndex); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( + IAccessibleHyperlink * This, + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *description); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( + IAccessibleHyperlink * This, + /* [in] */ long actionIndex, + /* [in] */ long nMaxBindings, + /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, + /* [retval][out] */ long *nBindings); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( + IAccessibleHyperlink * This, + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *name); + + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( + IAccessibleHyperlink * This, + /* [in] */ long actionIndex, + /* [retval][out] */ BSTR *localizedName); + + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchor) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )( + IAccessibleHyperlink * This, + /* [in] */ long index, + /* [retval][out] */ VARIANT *anchor); + + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchorTarget) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( + IAccessibleHyperlink * This, + /* [in] */ long index, + /* [retval][out] */ VARIANT *anchorTarget); + + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_startIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )( + IAccessibleHyperlink * This, + /* [retval][out] */ long *index); + + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_endIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )( + IAccessibleHyperlink * This, + /* [retval][out] */ long *index); + + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_valid) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )( + IAccessibleHyperlink * This, + /* [retval][out] */ boolean *valid); + + END_INTERFACE + } IAccessibleHyperlinkVtbl; + + interface IAccessibleHyperlink + { + CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleHyperlink_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleHyperlink_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleHyperlink_nActions(This,nActions) \ + ( (This)->lpVtbl -> nActions(This,nActions) ) + +#define IAccessibleHyperlink_doAction(This,actionIndex) \ + ( (This)->lpVtbl -> doAction(This,actionIndex) ) + +#define IAccessibleHyperlink_get_description(This,actionIndex,description) \ + ( (This)->lpVtbl -> get_description(This,actionIndex,description) ) + +#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \ + ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) ) + +#define IAccessibleHyperlink_get_name(This,actionIndex,name) \ + ( (This)->lpVtbl -> get_name(This,actionIndex,name) ) + +#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \ + ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) ) + + +#define IAccessibleHyperlink_get_anchor(This,index,anchor) \ + ( (This)->lpVtbl -> get_anchor(This,index,anchor) ) + +#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \ + ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) ) + +#define IAccessibleHyperlink_get_startIndex(This,index) \ + ( (This)->lpVtbl -> get_startIndex(This,index) ) + +#define IAccessibleHyperlink_get_endIndex(This,index) \ + ( (This)->lpVtbl -> get_endIndex(This,index) ) + +#define IAccessibleHyperlink_get_valid(This,valid) \ + ( (This)->lpVtbl -> get_valid(This,valid) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__ +#define __IAccessibleHypertext_INTERFACE_DEFINED__ + +/* interface IAccessibleHypertext */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleHypertext; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9") + IAccessibleHypertext : public IAccessibleText + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks( + /* [retval][out] */ long *hyperlinkCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink( + /* [in] */ long index, + /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex( + /* [in] */ long charIndex, + /* [retval][out] */ long *hyperlinkIndex) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleHypertextVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleHypertext * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleHypertext * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleHypertext * This); + + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) + HRESULT ( STDMETHODCALLTYPE *addSelection )( + IAccessibleHypertext * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( + IAccessibleHypertext * This, + /* [in] */ long offset, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *textAttributes); + + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( + IAccessibleHypertext * This, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( + IAccessibleHypertext * This, + /* [in] */ long offset, + /* [in] */ enum IA2CoordinateType coordType, + /* [out] */ long *x, + /* [out] */ long *y, + /* [out] */ long *width, + /* [retval][out] */ long *height); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( + IAccessibleHypertext * This, + /* [retval][out] */ long *nSelections); + + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( + IAccessibleHypertext * This, + /* [in] */ long x, + /* [in] */ long y, + /* [in] */ enum IA2CoordinateType coordType, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( + IAccessibleHypertext * This, + /* [in] */ long selectionIndex, + /* [out] */ long *startOffset, + /* [retval][out] */ long *endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_text) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( + IAccessibleHypertext * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( + IAccessibleHypertext * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( + IAccessibleHypertext * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( + IAccessibleHypertext * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) + HRESULT ( STDMETHODCALLTYPE *removeSelection )( + IAccessibleHypertext * This, + /* [in] */ long selectionIndex); + + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) + HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( + IAccessibleHypertext * This, + /* [in] */ long offset); + + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) + HRESULT ( STDMETHODCALLTYPE *setSelection )( + IAccessibleHypertext * This, + /* [in] */ long selectionIndex, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( + IAccessibleHypertext * This, + /* [retval][out] */ long *nCharacters); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( + IAccessibleHypertext * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2ScrollType scrollType); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( + IAccessibleHypertext * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y); + + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( + IAccessibleHypertext * This, + /* [retval][out] */ IA2TextSegment *newText); + + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( + IAccessibleHypertext * This, + /* [retval][out] */ IA2TextSegment *oldText); + + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( + IAccessibleHypertext * This, + /* [retval][out] */ long *hyperlinkCount); + + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( + IAccessibleHypertext * This, + /* [in] */ long index, + /* [retval][out] */ IAccessibleHyperlink **hyperlink); + + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( + IAccessibleHypertext * This, + /* [in] */ long charIndex, + /* [retval][out] */ long *hyperlinkIndex); + + END_INTERFACE + } IAccessibleHypertextVtbl; + + interface IAccessibleHypertext + { + CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleHypertext_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleHypertext_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \ + ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) ) + +#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \ + ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) ) + +#define IAccessibleHypertext_get_caretOffset(This,offset) \ + ( (This)->lpVtbl -> get_caretOffset(This,offset) ) + +#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \ + ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) ) + +#define IAccessibleHypertext_get_nSelections(This,nSelections) \ + ( (This)->lpVtbl -> get_nSelections(This,nSelections) ) + +#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \ + ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) ) + +#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) ) + +#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleHypertext_removeSelection(This,selectionIndex) \ + ( (This)->lpVtbl -> removeSelection(This,selectionIndex) ) + +#define IAccessibleHypertext_setCaretOffset(This,offset) \ + ( (This)->lpVtbl -> setCaretOffset(This,offset) ) + +#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \ + ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) ) + +#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \ + ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) ) + +#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \ + ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) ) + +#define IAccessibleHypertext_get_newText(This,newText) \ + ( (This)->lpVtbl -> get_newText(This,newText) ) + +#define IAccessibleHypertext_get_oldText(This,oldText) \ + ( (This)->lpVtbl -> get_oldText(This,oldText) ) + + +#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \ + ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) ) + +#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \ + ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) ) + +#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \ + ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleHypertext2_INTERFACE_DEFINED__ +#define __IAccessibleHypertext2_INTERFACE_DEFINED__ + +/* interface IAccessibleHypertext2 */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleHypertext2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("CF64D89F-8287-4B44-8501-A827453A6077") + IAccessibleHypertext2 : public IAccessibleHypertext + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinks( + /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks, + /* [retval][out] */ long *nHyperlinks) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleHypertext2Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleHypertext2 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleHypertext2 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleHypertext2 * This); + + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) + HRESULT ( STDMETHODCALLTYPE *addSelection )( + IAccessibleHypertext2 * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( + IAccessibleHypertext2 * This, + /* [in] */ long offset, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *textAttributes); + + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( + IAccessibleHypertext2 * This, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( + IAccessibleHypertext2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2CoordinateType coordType, + /* [out] */ long *x, + /* [out] */ long *y, + /* [out] */ long *width, + /* [retval][out] */ long *height); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( + IAccessibleHypertext2 * This, + /* [retval][out] */ long *nSelections); + + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( + IAccessibleHypertext2 * This, + /* [in] */ long x, + /* [in] */ long y, + /* [in] */ enum IA2CoordinateType coordType, + /* [retval][out] */ long *offset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( + IAccessibleHypertext2 * This, + /* [in] */ long selectionIndex, + /* [out] */ long *startOffset, + /* [retval][out] */ long *endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_text) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( + IAccessibleHypertext2 * This, + /* [in] */ long startOffset, + /* [in] */ long endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( + IAccessibleHypertext2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( + IAccessibleHypertext2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( + IAccessibleHypertext2 * This, + /* [in] */ long offset, + /* [in] */ enum IA2TextBoundaryType boundaryType, + /* [out] */ long *startOffset, + /* [out] */ long *endOffset, + /* [retval][out] */ BSTR *text); + + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) + HRESULT ( STDMETHODCALLTYPE *removeSelection )( + IAccessibleHypertext2 * This, + /* [in] */ long selectionIndex); + + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) + HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( + IAccessibleHypertext2 * This, + /* [in] */ long offset); + + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) + HRESULT ( STDMETHODCALLTYPE *setSelection )( + IAccessibleHypertext2 * This, + /* [in] */ long selectionIndex, + /* [in] */ long startOffset, + /* [in] */ long endOffset); + + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( + IAccessibleHypertext2 * This, + /* [retval][out] */ long *nCharacters); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( + IAccessibleHypertext2 * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2ScrollType scrollType); + + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) + HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( + IAccessibleHypertext2 * This, + /* [in] */ long startIndex, + /* [in] */ long endIndex, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [in] */ long x, + /* [in] */ long y); + + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( + IAccessibleHypertext2 * This, + /* [retval][out] */ IA2TextSegment *newText); + + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( + IAccessibleHypertext2 * This, + /* [retval][out] */ IA2TextSegment *oldText); + + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( + IAccessibleHypertext2 * This, + /* [retval][out] */ long *hyperlinkCount); + + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( + IAccessibleHypertext2 * This, + /* [in] */ long index, + /* [retval][out] */ IAccessibleHyperlink **hyperlink); + + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( + IAccessibleHypertext2 * This, + /* [in] */ long charIndex, + /* [retval][out] */ long *hyperlinkIndex); + + DECLSPEC_XFGVIRT(IAccessibleHypertext2, get_hyperlinks) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )( + IAccessibleHypertext2 * This, + /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks, + /* [retval][out] */ long *nHyperlinks); + + END_INTERFACE + } IAccessibleHypertext2Vtbl; + + interface IAccessibleHypertext2 + { + CONST_VTBL struct IAccessibleHypertext2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleHypertext2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleHypertext2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleHypertext2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleHypertext2_addSelection(This,startOffset,endOffset) \ + ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) ) + +#define IAccessibleHypertext2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \ + ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) ) + +#define IAccessibleHypertext2_get_caretOffset(This,offset) \ + ( (This)->lpVtbl -> get_caretOffset(This,offset) ) + +#define IAccessibleHypertext2_get_characterExtents(This,offset,coordType,x,y,width,height) \ + ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) ) + +#define IAccessibleHypertext2_get_nSelections(This,nSelections) \ + ( (This)->lpVtbl -> get_nSelections(This,nSelections) ) + +#define IAccessibleHypertext2_get_offsetAtPoint(This,x,y,coordType,offset) \ + ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) ) + +#define IAccessibleHypertext2_get_selection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleHypertext2_get_text(This,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) ) + +#define IAccessibleHypertext2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleHypertext2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleHypertext2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \ + ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) ) + +#define IAccessibleHypertext2_removeSelection(This,selectionIndex) \ + ( (This)->lpVtbl -> removeSelection(This,selectionIndex) ) + +#define IAccessibleHypertext2_setCaretOffset(This,offset) \ + ( (This)->lpVtbl -> setCaretOffset(This,offset) ) + +#define IAccessibleHypertext2_setSelection(This,selectionIndex,startOffset,endOffset) \ + ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) ) + +#define IAccessibleHypertext2_get_nCharacters(This,nCharacters) \ + ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) ) + +#define IAccessibleHypertext2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \ + ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) ) + +#define IAccessibleHypertext2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \ + ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) ) + +#define IAccessibleHypertext2_get_newText(This,newText) \ + ( (This)->lpVtbl -> get_newText(This,newText) ) + +#define IAccessibleHypertext2_get_oldText(This,oldText) \ + ( (This)->lpVtbl -> get_oldText(This,oldText) ) + + +#define IAccessibleHypertext2_get_nHyperlinks(This,hyperlinkCount) \ + ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) ) + +#define IAccessibleHypertext2_get_hyperlink(This,index,hyperlink) \ + ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) ) + +#define IAccessibleHypertext2_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \ + ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) ) + + +#define IAccessibleHypertext2_get_hyperlinks(This,hyperlinks,nHyperlinks) \ + ( (This)->lpVtbl -> get_hyperlinks(This,hyperlinks,nHyperlinks) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleHypertext2_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleTable_INTERFACE_DEFINED__ +#define __IAccessibleTable_INTERFACE_DEFINED__ + +/* interface IAccessibleTable */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleTable; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469") + IAccessibleTable : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt( + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ IUnknown **accessible) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption( + /* [retval][out] */ IUnknown **accessible) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex( + /* [in] */ long rowIndex, + /* [in] */ long columnIndex, + /* [retval][out] */ long *cellIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription( + /* [in] */ long column, + /* [retval][out] */ BSTR *description) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt( + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ long *nColumnsSpanned) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader( + /* [out] */ IAccessibleTable **accessibleTable, + /* [retval][out] */ long *startingRowIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex( + /* [in] */ long cellIndex, + /* [retval][out] */ long *columnIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns( + /* [retval][out] */ long *columnCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows( + /* [retval][out] */ long *rowCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren( + /* [retval][out] */ long *cellCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns( + /* [retval][out] */ long *columnCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows( + /* [retval][out] */ long *rowCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription( + /* [in] */ long row, + /* [retval][out] */ BSTR *description) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt( + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ long *nRowsSpanned) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader( + /* [out] */ IAccessibleTable **accessibleTable, + /* [retval][out] */ long *startingColumnIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex( + /* [in] */ long cellIndex, + /* [retval][out] */ long *rowIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren( + /* [in] */ long maxChildren, + /* [length_is][length_is][size_is][size_is][out] */ long **children, + /* [retval][out] */ long *nChildren) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns( + /* [in] */ long maxColumns, + /* [length_is][length_is][size_is][size_is][out] */ long **columns, + /* [retval][out] */ long *nColumns) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows( + /* [in] */ long maxRows, + /* [length_is][length_is][size_is][size_is][out] */ long **rows, + /* [retval][out] */ long *nRows) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary( + /* [retval][out] */ IUnknown **accessible) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected( + /* [in] */ long column, + /* [retval][out] */ boolean *isSelected) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected( + /* [in] */ long row, + /* [retval][out] */ boolean *isSelected) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected( + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ boolean *isSelected) = 0; + + virtual HRESULT STDMETHODCALLTYPE selectRow( + /* [in] */ long row) = 0; + + virtual HRESULT STDMETHODCALLTYPE selectColumn( + /* [in] */ long column) = 0; + + virtual HRESULT STDMETHODCALLTYPE unselectRow( + /* [in] */ long row) = 0; + + virtual HRESULT STDMETHODCALLTYPE unselectColumn( + /* [in] */ long column) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex( + /* [in] */ long index, + /* [out] */ long *row, + /* [out] */ long *column, + /* [out] */ long *rowExtents, + /* [out] */ long *columnExtents, + /* [retval][out] */ boolean *isSelected) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange( + /* [retval][out] */ IA2TableModelChange *modelChange) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleTableVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleTable * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleTable * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleTable * This); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_accessibleAt) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )( + IAccessibleTable * This, + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ IUnknown **accessible); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_caption) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( + IAccessibleTable * This, + /* [retval][out] */ IUnknown **accessible); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_childIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )( + IAccessibleTable * This, + /* [in] */ long rowIndex, + /* [in] */ long columnIndex, + /* [retval][out] */ long *cellIndex); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnDescription) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( + IAccessibleTable * This, + /* [in] */ long column, + /* [retval][out] */ BSTR *description); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnExtentAt) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )( + IAccessibleTable * This, + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ long *nColumnsSpanned); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnHeader) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )( + IAccessibleTable * This, + /* [out] */ IAccessibleTable **accessibleTable, + /* [retval][out] */ long *startingRowIndex); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( + IAccessibleTable * This, + /* [in] */ long cellIndex, + /* [retval][out] */ long *columnIndex); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_nColumns) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( + IAccessibleTable * This, + /* [retval][out] */ long *columnCount); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_nRows) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( + IAccessibleTable * This, + /* [retval][out] */ long *rowCount); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedChildren) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )( + IAccessibleTable * This, + /* [retval][out] */ long *cellCount); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedColumns) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( + IAccessibleTable * This, + /* [retval][out] */ long *columnCount); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedRows) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( + IAccessibleTable * This, + /* [retval][out] */ long *rowCount); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowDescription) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( + IAccessibleTable * This, + /* [in] */ long row, + /* [retval][out] */ BSTR *description); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowExtentAt) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )( + IAccessibleTable * This, + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ long *nRowsSpanned); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowHeader) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )( + IAccessibleTable * This, + /* [out] */ IAccessibleTable **accessibleTable, + /* [retval][out] */ long *startingColumnIndex); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( + IAccessibleTable * This, + /* [in] */ long cellIndex, + /* [retval][out] */ long *rowIndex); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedChildren) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )( + IAccessibleTable * This, + /* [in] */ long maxChildren, + /* [length_is][length_is][size_is][size_is][out] */ long **children, + /* [retval][out] */ long *nChildren); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedColumns) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( + IAccessibleTable * This, + /* [in] */ long maxColumns, + /* [length_is][length_is][size_is][size_is][out] */ long **columns, + /* [retval][out] */ long *nColumns); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedRows) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( + IAccessibleTable * This, + /* [in] */ long maxRows, + /* [length_is][length_is][size_is][size_is][out] */ long **rows, + /* [retval][out] */ long *nRows); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_summary) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( + IAccessibleTable * This, + /* [retval][out] */ IUnknown **accessible); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_isColumnSelected) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( + IAccessibleTable * This, + /* [in] */ long column, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_isRowSelected) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( + IAccessibleTable * This, + /* [in] */ long row, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_isSelected) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( + IAccessibleTable * This, + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTable, selectRow) + HRESULT ( STDMETHODCALLTYPE *selectRow )( + IAccessibleTable * This, + /* [in] */ long row); + + DECLSPEC_XFGVIRT(IAccessibleTable, selectColumn) + HRESULT ( STDMETHODCALLTYPE *selectColumn )( + IAccessibleTable * This, + /* [in] */ long column); + + DECLSPEC_XFGVIRT(IAccessibleTable, unselectRow) + HRESULT ( STDMETHODCALLTYPE *unselectRow )( + IAccessibleTable * This, + /* [in] */ long row); + + DECLSPEC_XFGVIRT(IAccessibleTable, unselectColumn) + HRESULT ( STDMETHODCALLTYPE *unselectColumn )( + IAccessibleTable * This, + /* [in] */ long column); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowColumnExtentsAtIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )( + IAccessibleTable * This, + /* [in] */ long index, + /* [out] */ long *row, + /* [out] */ long *column, + /* [out] */ long *rowExtents, + /* [out] */ long *columnExtents, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTable, get_modelChange) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( + IAccessibleTable * This, + /* [retval][out] */ IA2TableModelChange *modelChange); + + END_INTERFACE + } IAccessibleTableVtbl; + + interface IAccessibleTable + { + CONST_VTBL struct IAccessibleTableVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleTable_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleTable_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \ + ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) ) + +#define IAccessibleTable_get_caption(This,accessible) \ + ( (This)->lpVtbl -> get_caption(This,accessible) ) + +#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \ + ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) ) + +#define IAccessibleTable_get_columnDescription(This,column,description) \ + ( (This)->lpVtbl -> get_columnDescription(This,column,description) ) + +#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \ + ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) ) + +#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \ + ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) ) + +#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \ + ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) ) + +#define IAccessibleTable_get_nColumns(This,columnCount) \ + ( (This)->lpVtbl -> get_nColumns(This,columnCount) ) + +#define IAccessibleTable_get_nRows(This,rowCount) \ + ( (This)->lpVtbl -> get_nRows(This,rowCount) ) + +#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \ + ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) ) + +#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \ + ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) ) + +#define IAccessibleTable_get_nSelectedRows(This,rowCount) \ + ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) ) + +#define IAccessibleTable_get_rowDescription(This,row,description) \ + ( (This)->lpVtbl -> get_rowDescription(This,row,description) ) + +#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \ + ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) ) + +#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \ + ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) ) + +#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \ + ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) ) + +#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \ + ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) ) + +#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \ + ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) ) + +#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \ + ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) ) + +#define IAccessibleTable_get_summary(This,accessible) \ + ( (This)->lpVtbl -> get_summary(This,accessible) ) + +#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \ + ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) ) + +#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \ + ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) ) + +#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \ + ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) ) + +#define IAccessibleTable_selectRow(This,row) \ + ( (This)->lpVtbl -> selectRow(This,row) ) + +#define IAccessibleTable_selectColumn(This,column) \ + ( (This)->lpVtbl -> selectColumn(This,column) ) + +#define IAccessibleTable_unselectRow(This,row) \ + ( (This)->lpVtbl -> unselectRow(This,row) ) + +#define IAccessibleTable_unselectColumn(This,column) \ + ( (This)->lpVtbl -> unselectColumn(This,column) ) + +#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \ + ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) ) + +#define IAccessibleTable_get_modelChange(This,modelChange) \ + ( (This)->lpVtbl -> get_modelChange(This,modelChange) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleTable2_INTERFACE_DEFINED__ +#define __IAccessibleTable2_INTERFACE_DEFINED__ + +/* interface IAccessibleTable2 */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleTable2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869") + IAccessibleTable2 : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt( + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ IUnknown **cell) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption( + /* [retval][out] */ IUnknown **accessible) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription( + /* [in] */ long column, + /* [retval][out] */ BSTR *description) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns( + /* [retval][out] */ long *columnCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows( + /* [retval][out] */ long *rowCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells( + /* [retval][out] */ long *cellCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns( + /* [retval][out] */ long *columnCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows( + /* [retval][out] */ long *rowCount) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription( + /* [in] */ long row, + /* [retval][out] */ BSTR *description) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells( + /* [size_is][size_is][out] */ IUnknown ***cells, + /* [retval][out] */ long *nSelectedCells) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns( + /* [size_is][size_is][out] */ long **selectedColumns, + /* [retval][out] */ long *nColumns) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows( + /* [size_is][size_is][out] */ long **selectedRows, + /* [retval][out] */ long *nRows) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary( + /* [retval][out] */ IUnknown **accessible) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected( + /* [in] */ long column, + /* [retval][out] */ boolean *isSelected) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected( + /* [in] */ long row, + /* [retval][out] */ boolean *isSelected) = 0; + + virtual HRESULT STDMETHODCALLTYPE selectRow( + /* [in] */ long row) = 0; + + virtual HRESULT STDMETHODCALLTYPE selectColumn( + /* [in] */ long column) = 0; + + virtual HRESULT STDMETHODCALLTYPE unselectRow( + /* [in] */ long row) = 0; + + virtual HRESULT STDMETHODCALLTYPE unselectColumn( + /* [in] */ long column) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange( + /* [retval][out] */ IA2TableModelChange *modelChange) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleTable2Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleTable2 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleTable2 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleTable2 * This); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_cellAt) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )( + IAccessibleTable2 * This, + /* [in] */ long row, + /* [in] */ long column, + /* [retval][out] */ IUnknown **cell); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_caption) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( + IAccessibleTable2 * This, + /* [retval][out] */ IUnknown **accessible); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_columnDescription) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( + IAccessibleTable2 * This, + /* [in] */ long column, + /* [retval][out] */ BSTR *description); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nColumns) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( + IAccessibleTable2 * This, + /* [retval][out] */ long *columnCount); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nRows) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( + IAccessibleTable2 * This, + /* [retval][out] */ long *rowCount); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedCells) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )( + IAccessibleTable2 * This, + /* [retval][out] */ long *cellCount); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedColumns) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( + IAccessibleTable2 * This, + /* [retval][out] */ long *columnCount); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedRows) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( + IAccessibleTable2 * This, + /* [retval][out] */ long *rowCount); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_rowDescription) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( + IAccessibleTable2 * This, + /* [in] */ long row, + /* [retval][out] */ BSTR *description); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedCells) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )( + IAccessibleTable2 * This, + /* [size_is][size_is][out] */ IUnknown ***cells, + /* [retval][out] */ long *nSelectedCells); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedColumns) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( + IAccessibleTable2 * This, + /* [size_is][size_is][out] */ long **selectedColumns, + /* [retval][out] */ long *nColumns); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedRows) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( + IAccessibleTable2 * This, + /* [size_is][size_is][out] */ long **selectedRows, + /* [retval][out] */ long *nRows); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_summary) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( + IAccessibleTable2 * This, + /* [retval][out] */ IUnknown **accessible); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isColumnSelected) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( + IAccessibleTable2 * This, + /* [in] */ long column, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isRowSelected) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( + IAccessibleTable2 * This, + /* [in] */ long row, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTable2, selectRow) + HRESULT ( STDMETHODCALLTYPE *selectRow )( + IAccessibleTable2 * This, + /* [in] */ long row); + + DECLSPEC_XFGVIRT(IAccessibleTable2, selectColumn) + HRESULT ( STDMETHODCALLTYPE *selectColumn )( + IAccessibleTable2 * This, + /* [in] */ long column); + + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectRow) + HRESULT ( STDMETHODCALLTYPE *unselectRow )( + IAccessibleTable2 * This, + /* [in] */ long row); + + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectColumn) + HRESULT ( STDMETHODCALLTYPE *unselectColumn )( + IAccessibleTable2 * This, + /* [in] */ long column); + + DECLSPEC_XFGVIRT(IAccessibleTable2, get_modelChange) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( + IAccessibleTable2 * This, + /* [retval][out] */ IA2TableModelChange *modelChange); + + END_INTERFACE + } IAccessibleTable2Vtbl; + + interface IAccessibleTable2 + { + CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleTable2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleTable2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleTable2_get_cellAt(This,row,column,cell) \ + ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) ) + +#define IAccessibleTable2_get_caption(This,accessible) \ + ( (This)->lpVtbl -> get_caption(This,accessible) ) + +#define IAccessibleTable2_get_columnDescription(This,column,description) \ + ( (This)->lpVtbl -> get_columnDescription(This,column,description) ) + +#define IAccessibleTable2_get_nColumns(This,columnCount) \ + ( (This)->lpVtbl -> get_nColumns(This,columnCount) ) + +#define IAccessibleTable2_get_nRows(This,rowCount) \ + ( (This)->lpVtbl -> get_nRows(This,rowCount) ) + +#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \ + ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) ) + +#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \ + ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) ) + +#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \ + ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) ) + +#define IAccessibleTable2_get_rowDescription(This,row,description) \ + ( (This)->lpVtbl -> get_rowDescription(This,row,description) ) + +#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \ + ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) ) + +#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \ + ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) ) + +#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \ + ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) ) + +#define IAccessibleTable2_get_summary(This,accessible) \ + ( (This)->lpVtbl -> get_summary(This,accessible) ) + +#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \ + ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) ) + +#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \ + ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) ) + +#define IAccessibleTable2_selectRow(This,row) \ + ( (This)->lpVtbl -> selectRow(This,row) ) + +#define IAccessibleTable2_selectColumn(This,column) \ + ( (This)->lpVtbl -> selectColumn(This,column) ) + +#define IAccessibleTable2_unselectRow(This,row) \ + ( (This)->lpVtbl -> unselectRow(This,row) ) + +#define IAccessibleTable2_unselectColumn(This,column) \ + ( (This)->lpVtbl -> unselectColumn(This,column) ) + +#define IAccessibleTable2_get_modelChange(This,modelChange) \ + ( (This)->lpVtbl -> get_modelChange(This,modelChange) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__ +#define __IAccessibleTableCell_INTERFACE_DEFINED__ + +/* interface IAccessibleTableCell */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleTableCell; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645") + IAccessibleTableCell : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent( + /* [retval][out] */ long *nColumnsSpanned) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells( + /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, + /* [retval][out] */ long *nColumnHeaderCells) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex( + /* [retval][out] */ long *columnIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent( + /* [retval][out] */ long *nRowsSpanned) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells( + /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, + /* [retval][out] */ long *nRowHeaderCells) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex( + /* [retval][out] */ long *rowIndex) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected( + /* [retval][out] */ boolean *isSelected) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents( + /* [out] */ long *row, + /* [out] */ long *column, + /* [out] */ long *rowExtents, + /* [out] */ long *columnExtents, + /* [retval][out] */ boolean *isSelected) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table( + /* [retval][out] */ IUnknown **table) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleTableCellVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleTableCell * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleTableCell * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleTableCell * This); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnExtent) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )( + IAccessibleTableCell * This, + /* [retval][out] */ long *nColumnsSpanned); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnHeaderCells) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )( + IAccessibleTableCell * This, + /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, + /* [retval][out] */ long *nColumnHeaderCells); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( + IAccessibleTableCell * This, + /* [retval][out] */ long *columnIndex); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowExtent) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )( + IAccessibleTableCell * This, + /* [retval][out] */ long *nRowsSpanned); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowHeaderCells) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )( + IAccessibleTableCell * This, + /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, + /* [retval][out] */ long *nRowHeaderCells); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowIndex) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( + IAccessibleTableCell * This, + /* [retval][out] */ long *rowIndex); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_isSelected) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( + IAccessibleTableCell * This, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowColumnExtents) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )( + IAccessibleTableCell * This, + /* [out] */ long *row, + /* [out] */ long *column, + /* [out] */ long *rowExtents, + /* [out] */ long *columnExtents, + /* [retval][out] */ boolean *isSelected); + + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_table) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )( + IAccessibleTableCell * This, + /* [retval][out] */ IUnknown **table); + + END_INTERFACE + } IAccessibleTableCellVtbl; + + interface IAccessibleTableCell + { + CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleTableCell_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleTableCell_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \ + ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) ) + +#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \ + ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) ) + +#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \ + ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) ) + +#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \ + ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) ) + +#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \ + ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) ) + +#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \ + ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) ) + +#define IAccessibleTableCell_get_isSelected(This,isSelected) \ + ( (This)->lpVtbl -> get_isSelected(This,isSelected) ) + +#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \ + ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) ) + +#define IAccessibleTableCell_get_table(This,table) \ + ( (This)->lpVtbl -> get_table(This,table) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleImage_INTERFACE_DEFINED__ +#define __IAccessibleImage_INTERFACE_DEFINED__ + +/* interface IAccessibleImage */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleImage; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE") + IAccessibleImage : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description( + /* [retval][out] */ BSTR *description) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition( + /* [in] */ enum IA2CoordinateType coordinateType, + /* [out] */ long *x, + /* [retval][out] */ long *y) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize( + /* [out] */ long *height, + /* [retval][out] */ long *width) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleImageVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleImage * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleImage * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleImage * This); + + DECLSPEC_XFGVIRT(IAccessibleImage, get_description) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( + IAccessibleImage * This, + /* [retval][out] */ BSTR *description); + + DECLSPEC_XFGVIRT(IAccessibleImage, get_imagePosition) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )( + IAccessibleImage * This, + /* [in] */ enum IA2CoordinateType coordinateType, + /* [out] */ long *x, + /* [retval][out] */ long *y); + + DECLSPEC_XFGVIRT(IAccessibleImage, get_imageSize) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )( + IAccessibleImage * This, + /* [out] */ long *height, + /* [retval][out] */ long *width); + + END_INTERFACE + } IAccessibleImageVtbl; + + interface IAccessibleImage + { + CONST_VTBL struct IAccessibleImageVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleImage_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleImage_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleImage_get_description(This,description) \ + ( (This)->lpVtbl -> get_description(This,description) ) + +#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \ + ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) ) + +#define IAccessibleImage_get_imageSize(This,height,width) \ + ( (This)->lpVtbl -> get_imageSize(This,height,width) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_ia2_api_all_0000_0017 */ +/* [local] */ + + +enum IA2EventID + { + IA2_EVENT_ACTION_CHANGED = 0x101, + IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) , + IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED, + IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) , + IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) , + IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) , + IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) , + IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) , + IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) , + IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) , + IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) , + IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) , + IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) , + IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) , + IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) , + IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) , + IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) , + IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) , + IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) , + IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) , + IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) , + IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) , + IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) , + IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) , + IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) , + IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) , + IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) , + IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) , + IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) , + IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) , + IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) , + IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) , + IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) , + IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) , + IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 ) , + IA2_EVENT_ROLE_CHANGED = ( IA2_EVENT_VISIBLE_DATA_CHANGED + 1 ) + } ; + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0017_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0017_v0_0_s_ifspec; + +#ifndef __IAccessibleApplication_INTERFACE_DEFINED__ +#define __IAccessibleApplication_INTERFACE_DEFINED__ + +/* interface IAccessibleApplication */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleApplication; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E") + IAccessibleApplication : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName( + /* [retval][out] */ BSTR *name) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion( + /* [retval][out] */ BSTR *version) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName( + /* [retval][out] */ BSTR *name) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion( + /* [retval][out] */ BSTR *version) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleApplicationVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleApplication * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleApplication * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleApplication * This); + + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appName) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )( + IAccessibleApplication * This, + /* [retval][out] */ BSTR *name); + + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appVersion) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )( + IAccessibleApplication * This, + /* [retval][out] */ BSTR *version); + + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitName) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )( + IAccessibleApplication * This, + /* [retval][out] */ BSTR *name); + + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitVersion) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )( + IAccessibleApplication * This, + /* [retval][out] */ BSTR *version); + + END_INTERFACE + } IAccessibleApplicationVtbl; + + interface IAccessibleApplication + { + CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleApplication_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleApplication_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleApplication_get_appName(This,name) \ + ( (This)->lpVtbl -> get_appName(This,name) ) + +#define IAccessibleApplication_get_appVersion(This,version) \ + ( (This)->lpVtbl -> get_appVersion(This,version) ) + +#define IAccessibleApplication_get_toolkitName(This,name) \ + ( (This)->lpVtbl -> get_toolkitName(This,name) ) + +#define IAccessibleApplication_get_toolkitVersion(This,version) \ + ( (This)->lpVtbl -> get_toolkitVersion(This,version) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */ + + +#ifndef __IAccessibleDocument_INTERFACE_DEFINED__ +#define __IAccessibleDocument_INTERFACE_DEFINED__ + +/* interface IAccessibleDocument */ +/* [uuid][object] */ + + +EXTERN_C const IID IID_IAccessibleDocument; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C48C7FCF-4AB5-4056-AFA6-902D6E1D1149") + IAccessibleDocument : public IUnknown + { + public: + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget( + /* [retval][out] */ IUnknown **accessible) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IAccessibleDocumentVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IAccessibleDocument * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + IAccessibleDocument * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + IAccessibleDocument * This); + + DECLSPEC_XFGVIRT(IAccessibleDocument, get_anchorTarget) + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( + IAccessibleDocument * This, + /* [retval][out] */ IUnknown **accessible); + + END_INTERFACE + } IAccessibleDocumentVtbl; + + interface IAccessibleDocument + { + CONST_VTBL struct IAccessibleDocumentVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IAccessibleDocument_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IAccessibleDocument_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IAccessibleDocument_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IAccessibleDocument_get_anchorTarget(This,accessible) \ + ( (This)->lpVtbl -> get_anchorTarget(This,accessible) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IAccessibleDocument_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_ia2_api_all_0000_0019 */ +/* [local] */ + + +// Type Library Definitions + + + +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0019_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0019_v0_0_s_ifspec; + + +#ifndef __IAccessible2Lib_LIBRARY_DEFINED__ +#define __IAccessible2Lib_LIBRARY_DEFINED__ + +/* library IAccessible2Lib */ +/* [hidden][version][helpstring][uuid] */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EXTERN_C const IID LIBID_IAccessible2Lib; +#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); +void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * ); +unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); +unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * ); +void __RPC_USER HWND_UserFree( unsigned long *, HWND * ); + +unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); +void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * ); + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/include/axaccess/ia2/ia2_node.h b/include/axaccess/ia2/ia2_node.h index d0fc1fd8..24532d68 100644 --- a/include/axaccess/ia2/ia2_node.h +++ b/include/axaccess/ia2/ia2_node.h @@ -6,18 +6,27 @@ #include #include "axaccess/export.h" +#include +#include + class IA2Node; typedef std::unique_ptr IA2NodePtr; class AXA_EXPORT IA2Node { - // We need to have a point to an IA2 node, I assume, here. + Microsoft::WRL::ComPtr root_; public: - IA2Node(){}; - ~IA2Node(){}; + IA2Node(Microsoft::WRL::ComPtr root) : root_(root) {}; + ~IA2Node() {}; + + static IA2NodePtr CreateForPID(const int pid); + // testing + static void DumpRoleTree(const int pid); + + std::string get_accRole(); + std::string get_accName(); - std::string get_accRole(); - std::string get_accName(); + std::string ia2_role(); }; #endif // LIB_IA2_IA2_NODE_H_ diff --git a/include/axaccess/ia2/win_utils.h b/include/axaccess/ia2/win_utils.h index a4f7c41d..daee09fc 100644 --- a/include/axaccess/ia2/win_utils.h +++ b/include/axaccess/ia2/win_utils.h @@ -3,10 +3,16 @@ #include #include +#include +#include + #include "axaccess/export.h" -#include "ia2_node.h" +AXA_EXPORT Microsoft::WRL::ComPtr GetAccessibleFromProcessID(DWORD dwProcessID); + +AXA_EXPORT std::string nameFromHwnd(HWND hwnd); + +AXA_EXPORT std::string BstrToString(BSTR bstr); -AXA_EXPORT IA2NodePtr find_root_accessible_from_pid(const int pid); #endif // LIB_IA2_WIN_UTILS_H_ diff --git a/lib/ia2/CMakeLists.txt b/lib/ia2/CMakeLists.txt index cc2f8e2e..1e9ec5fa 100644 --- a/lib/ia2/CMakeLists.txt +++ b/lib/ia2/CMakeLists.txt @@ -1,3 +1,16 @@ +add_library( + iaccessible2 + STATIC + ia2_api_all_i.c +) + +target_include_directories( + iaccessible2 + + PUBLIC + ${PROJECT_BINARY_DIR}/include/axaccess/ia2 +) + add_library( # Name ia2_inspect @@ -15,6 +28,12 @@ target_include_directories( ${PROJECT_BINARY_DIR}/include ) +target_link_libraries( + ia2_inspect + oleacc + iaccessible2 +) + target_compile_definitions( ia2_inspect PRIVATE @@ -22,3 +41,4 @@ target_compile_definitions( # case all AXA_EXPORTS will result in a dllexport statement. axaccess_EXPORTS ) + diff --git a/lib/ia2/ia2_api_all.dlldata.c b/lib/ia2/ia2_api_all.dlldata.c new file mode 100644 index 00000000..1685d834 --- /dev/null +++ b/lib/ia2/ia2_api_all.dlldata.c @@ -0,0 +1,38 @@ +/********************************************************* + DllData file -- generated by MIDL compiler + + DO NOT ALTER THIS FILE + + This file is regenerated by MIDL on every IDL file compile. + + To completely reconstruct this file, delete it and rerun MIDL + on all the IDL files in this DLL, specifying this file for the + /dlldata command line option + +*********************************************************/ + +#define PROXY_DELEGATION + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_PROXY_FILE( ia2_api_all ) + + +PROXYFILE_LIST_START +/* Start of list */ + REFERENCE_PROXY_FILE( ia2_api_all ), +/* End of list */ +PROXYFILE_LIST_END + + +DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID ) + +#ifdef __cplusplus +} /*extern "C" */ +#endif + +/* end of generated dlldata file */ diff --git a/lib/ia2/ia2_api_all.idl b/lib/ia2/ia2_api_all.idl new file mode 100644 index 00000000..dd7ddf72 --- /dev/null +++ b/lib/ia2/ia2_api_all.idl @@ -0,0 +1,5710 @@ +/************************************************************************* + * + * File Name (api_all_headers.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2013 Linux Foundation + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + +import "objidl.idl"; +import "oaidl.idl"; +import "oleacc.idl"; + +/************************************************************************* + * + * File Name (IA2CommonTypes.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + /** These constants control the scrolling of an object or substring into a window. + + This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo. +*/ +enum IA2ScrollType { + + /** Scroll the top left corner of the object or substring such that the top left + corner (and as much as possible of the rest of the object or substring) is within + the top level window. In cases where the entire object or substring fits within + the top level window, the placement of the object or substring is dependent on + the application. For example, the object or substring may be scrolled to the + closest edge, the furthest edge, or midway between those two edges. In cases + where there is a hierarchy of nested scrollable controls, more than one control + may have to be scrolled. + */ + IA2_SCROLL_TYPE_TOP_LEFT, + + /** Scroll the bottom right corner of the object or substring such that the bottom right + corner (and as much as possible of the rest of the object or substring) is within + the top level window. In cases where the entire object or substring fits within + the top level window, the placement of the object or substring is dependent on + the application. For example, the object or substring may be scrolled to the + closest edge, the furthest edge, or midway between those two edges. In cases + where there is a hierarchy of nested scrollable controls, more than one control + may have to be scrolled. + */ + IA2_SCROLL_TYPE_BOTTOM_RIGHT, + + /** Scroll the top edge of the object or substring such that the top edge + (and as much as possible of the rest of the object or substring) is within the + top level window. In cases where the entire object or substring fits within + the top level window, the placement of the object or substring is dependent on + the application. For example, the object or substring may be scrolled to the + closest edge, the furthest edge, or midway between those two edges. In cases + where there is a hierarchy of nested scrollable controls, more than one control + may have to be scrolled. + */ + IA2_SCROLL_TYPE_TOP_EDGE, + + /** Scroll the bottom edge of the object or substring such that the bottom edge + (and as much as possible of the rest of the object or substring) is within the + top level window. In cases where the entire object or substring fits within + the top level window, the placement of the object or substring is dependent on + the application. For example, the object or substring may be scrolled to the + closest edge, the furthest edge, or midway between those two edges. In cases + where there is a hierarchy of nested scrollable controls, more than one control + may have to be scrolled. + */ + IA2_SCROLL_TYPE_BOTTOM_EDGE, + + /** Scroll the left edge of the object or substring such that the left edge + (and as much as possible of the rest of the object or substring) is within the + top level window. In cases where the entire object or substring fits within + the top level window, the placement of the object or substring is dependent on + the application. For example, the object or substring may be scrolled to the + closest edge, the furthest edge, or midway between those two edges. In cases + where there is a hierarchy of nested scrollable controls, more than one control + may have to be scrolled. + */ + IA2_SCROLL_TYPE_LEFT_EDGE, + + /** Scroll the right edge of the object or substring such that the right edge + (and as much as possible of the rest of the object or substring) is within the + top level window. In cases where the entire object or substring fits within + the top level window, the placement of the object or substring is dependent on + the application. For example, the object or substring may be scrolled to the + closest edge, the furthest edge, or midway between those two edges. In cases + where there is a hierarchy of nested scrollable controls, more than one control + may have to be scrolled. + */ + IA2_SCROLL_TYPE_RIGHT_EDGE, + + /** Scroll the object or substring such that as much as possible of the + object or substring is within the top level window. The placement of + the object is dependent on the application. For example, the object or + substring may be scrolled to the closest edge, the furthest edge, or midway + between those two edges. + */ + IA2_SCROLL_TYPE_ANYWHERE +}; + +/** These constants define which coordinate system a point is located in. + + This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition, + IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and + IAccessibleText::scrollSubstringToPoint. +*/ +enum IA2CoordinateType { + + /// The coordinates are relative to the screen. + IA2_COORDTYPE_SCREEN_RELATIVE, + + /** The coordinates are relative to the upper left corner of the bounding box + of the immediate parent. + */ + IA2_COORDTYPE_PARENT_RELATIVE + +}; + +/** Special offsets for use in IAccessibleText and IAccessibleEditableText methods + + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for more information. +*/ +enum IA2TextSpecialOffsets { + IA2_TEXT_OFFSET_LENGTH = -1, /**< This offset is equivalent to the length of the string. It eliminates + the need to call IAccessibleText::nCharacters. */ + IA2_TEXT_OFFSET_CARET = -2 /**< This offset signifies that the text related to the physical location + of the caret should be used. */ +}; + +/** These constants specify the kind of change made to a table. + + This enum is used in the IA2TableModelChange struct which in turn is used by + IAccessibleTable::modelChange and IAccessibleTable2::modelChange. +*/ +enum IA2TableModelChangeType { + IA2_TABLE_MODEL_CHANGE_INSERT, // = 0; + IA2_TABLE_MODEL_CHANGE_DELETE, + IA2_TABLE_MODEL_CHANGE_UPDATE +}; + +/** A structure defining the type of and extents of changes made to a table + + IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct. + In the case of an insertion or change the row and column offsets define the boundaries + of the inserted or changed subtable after the operation. In the case of a deletion + the row and column offsets define the boundaries of the subtable being removed before + the removal. +*/ +typedef struct IA2TableModelChange { + enum IA2TableModelChangeType type; // insert, delete, update + long firstRow; ///< 0 based, inclusive + long lastRow; ///< 0 based, inclusive + long firstColumn; ///< 0 based, inclusive + long lastColumn; ///< 0 based, inclusive +} IA2TableModelChange; +/************************************************************************* + * + * File Name (AccessibleRelation.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + +/** @defgroup grpRelations Relations + Use the following constants to compare against the BSTRs returned by + IAccessibleRelation::relationType. +*/ +///@{ + +/** The target object is the containing application object. */ +const WCHAR *const IA2_RELATION_CONTAINING_APPLICATION = L"containingApplication"; + +/** The target object is the containing document object. The target object implements + the IAccessibleDocument interface. +*/ +const WCHAR *const IA2_RELATION_CONTAINING_DOCUMENT = L"containingDocument"; + +/** The target object is the containing tab pane object. */ +const WCHAR *const IA2_RELATION_CONTAINING_TAB_PANE = L"containingTabPane"; + +/** The target object is the containing window object. */ +const WCHAR *const IA2_RELATION_CONTAINING_WINDOW = L"containingWindow"; + +/** Some attribute of this object is affected by a target object. */ +const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy"; + +/** This object is interactive and controls some attribute of a target object. */ +const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor"; + +/** This object is described by the target object. */ +const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy"; + +/** This object is describes the target object. */ +const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor"; + +/** This object is embedded by a target object. */ +const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy"; + +/** This object embeds a target object. This relation can be used on the + OBJID_CLIENT accessible for a top level window to show where the content + areas are. +*/ +const WCHAR *const IA2_RELATION_EMBEDS = L"embeds"; + +/** Content flows to this object from a target object. + This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text + objects together in order to allow assistive technology to follow the + intended reading order. +*/ +const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom"; + +/** Content flows from this object to a target object. */ +const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo"; + +/** This object is label for a target object. */ +const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor"; + +/** This object is labelled by a target object. Note that the double L spelling + which follows is preferred. Please use it instead. This single L version may + be removed in a later version. +*/ +const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy"; + +/** This object is labelled by a target object. */ +const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy"; + +/** This object is a member of a group of one or more objects. When + there is more than one object in the group each member may have one and the + same target, e.g. a grouping object. It is also possible that each member has + multiple additional targets, e.g. one for every other member in the group. +*/ +const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf"; + +/** The target object is the next object in the tab order. */ +const WCHAR *const IA2_RELATION_NEXT_TABBABLE = L"nextTabbable"; + +/** This object is a logical child of a target object. This relation is the reciprocal + of the IA2_RELATION_NODE_PARENT_OF relation. In some cases an application's accessible + tree is such that objects can be in a logical parent-child relationship which is + different from the hierarchy of the accessible tree. */ +const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf"; + +/** This object is a logical parent of a target object. This relation is the reciprocal + of the IA2_RELATION_NODE_CHILD_OF relation. In some cases an application's accessible + tree is such that objects can be in a logical parent-child relationship which is + different from the hierarchy of the accessible tree. */ +const WCHAR *const IA2_RELATION_NODE_PARENT_OF = L"nodeParentOf"; + +/** This object is a parent window of the target object. */ +const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf"; + +/** This object is a transient component related to the target object. + When this object is activated the target object doesn't lose focus. +*/ +const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor"; + +/** The target object is the previous object in the tab order. */ +const WCHAR *const IA2_RELATION_PREVIOUS_TABBABLE = L"previousTabbable"; + +/** This object is a sub window of a target object. */ +const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf"; + +/** The target object provides the detailed, extended description for this + object. It provides more detailed information than would normally be provided + using the IA2_RELATION_DESCRIBED_BY relation. A common use for this relation is + in digital publishing where an extended description needs to be conveyed in + a book that requires structural markup or the embedding of other technology to + provide illustrative content. */ +const WCHAR *const IA2_RELATION_DETAILS = L"details"; + +/** This object provides the detailed, extended description for the target + object. See IA2_RELATION_DETAILS. */ +const WCHAR *const IA2_RELATION_DETAILS_FOR = L"detailsFor"; + +/** The target object is the error message for this object. */ +const WCHAR *const IA2_RELATION_ERROR = L"error"; + +/** This object is the error message for the target object. */ +const WCHAR *const IA2_RELATION_ERROR_FOR = L"errorFor"; + +///@} + +/** This interface gives access to an object's set of relations. +*/ +[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)] +interface IAccessibleRelation : IUnknown +{ + /** @brief Returns the type of the relation. + @param [out] relationType + The strings returned are defined @ref grpRelations "in this section of the documentation". + @retval S_OK + */ + [propget] HRESULT relationType + ( + [out, retval] BSTR *relationType + ); + + /** @brief Returns a localized version of the relation type. + @param [out] localizedRelationType + @retval S_OK + */ + [propget] HRESULT localizedRelationType + ( + [out, retval] BSTR *localizedRelationType + ); + + /** @brief Returns the number of targets for this relation. + @param [out] nTargets + @retval S_OK + */ + [propget] HRESULT nTargets + ( + [out, retval] long *nTargets + ); + + /** @brief Returns one accessible relation target. + @param [in] targetIndex + 0 based index + @param [out] target + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Use QueryInterface to get IAccessible2. + */ + [propget] HRESULT target + ( + [in] long targetIndex, + [out, retval] IUnknown **target + ); + + /** @brief Returns multiple accessible relation targets + @param [in] maxTargets + maximum size of the array allocated by the client + @param [out] targets + The array of target objects. Note that this array is to be allocated by the + client and freed when no longer needed. Refer to @ref _arrayConsideration + "Special Consideration when using Arrays" for more details. You will need to use + QueryInterface on the IUnknown to get the IAccessible2. + @param [out] nTargets + actual number of targets in the returned array (not more than maxTargets) + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, e.g. a negative value + */ + [propget] HRESULT targets + ( + [in] long maxTargets, + [out, size_is(maxTargets), length_is(*nTargets)] + IUnknown **targets, + [out, retval] long *nTargets + ); + +} +/************************************************************************* + * + * File Name (AccessibleAction.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + +/** This enum defines values which are predefined actions for use when implementing + support for media. + + This enum is used when specifying an action for IAccessibleAction::doAction. +*/ + +enum IA2Actions { + IA2_ACTION_OPEN = -1, /**< Used to inform the server that the client will + signal via IA2_ACTION_COMPLETE when it has consumed + the content provided by the object. This action + allows the object's server to wait for all clients + to signal their readiness for additional content. + Any form of content generation that requires + synchronization with an AT would require use of this + action. One example is the generation of text describing + visual content not obvious from a video's sound track. + In this scenario the Text to Speech or Braille output + may take more time than the related length of silence + in the video's sound track. */ + IA2_ACTION_COMPLETE = -2, /**< Used by the client to inform the server that it has + consumed the most recent content provided by this object. */ + IA2_ACTION_CLOSE = -3 /**< Used to inform the server that the client no longer + requires synchronization. */ +}; + +/** @brief This interface gives access to actions that can be executed + for accessible objects. + + Every accessible object that can be manipulated via the native GUI beyond the + methods available either in the MSAA IAccessible interface or in the set of + IAccessible2 interfaces (other than this IAccessibleAction interface) should + support the IAccessibleAction interface in order to provide Assistive Technology + access to all the actions that can be performed by the object. Each action can + be performed or queried for a name, description or associated key bindings. + Actions are needed more for ATs that assist the mobility impaired, such as + on-screen keyboards and voice command software. By providing actions directly, + the AT can present them to the user without the user having to perform the extra + steps to navigate a context menu. + + The first action should be equivalent to the MSAA default action. If there is + only one action, %IAccessibleAction should also be implemented. +*/ +[object, uuid(B70D9F59-3B5A-4dba-AB9E-22012F607DF5)] +interface IAccessibleAction : IUnknown +{ + + /** @brief Returns the number of accessible actions available in this object. + + If there are more than one, the first one is considered the + "default" action of the object. + @param [out] nActions + The returned value of the number of actions is zero if there are + no actions. + @retval S_OK + @note This method is missing a [propget] prefix in the IDL. The result is the + method is named nActions in generated C++ code instead of get_nActions. + */ + HRESULT nActions + ( + [out,retval] long* nActions + ); + + /** @brief Performs the specified Action on the object. + @param [in] actionIndex + 0 based index specifying the action to perform. If it lies outside + the valid range no action is performed. + @retval S_OK + @retval S_FALSE if action could not be performed + @retval E_INVALIDARG if bad [in] passed + @note If implementing support for media, refer to the predefined constants in the ::IA2Actions enum. + */ + HRESULT doAction + ( + [in] long actionIndex + ); + + /** @brief Returns a description of the specified action of the object. + @param [in] actionIndex + 0 based index specifying which action's description to return. + If it lies outside the valid range an empty string is returned. + @param [out] description + The returned value is a localized string of the specified action. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT description + ( + [in] long actionIndex, + [out, retval] BSTR *description + ); + + /** @brief Returns an array of BSTRs describing one or more key bindings, if + there are any, associated with the specified action. + + The returned strings are the localized human readable key sequences to be + used to activate each action, e.g. "Ctrl+Shift+D". Since these key + sequences are to be used when the object has focus, they are like + mnemonics (access keys), and not like shortcut (accelerator) keys. + + There is no need to implement this method for single action controls since + that would be redundant with the standard MSAA programming practice of + getting the mnemonic from get_accKeyboardShortcut. + + An AT such as an On Screen Keyboard might not expose these bindings but + provide alternative means of activation. + + Note: the client allocates and passes in an array of pointers. The server + allocates the BSTRs and passes back one or more pointers to these BSTRs into + the array of pointers allocated by the client. The client is responsible + for deallocating the BSTRs. + + @param [in] actionIndex + 0 based index specifying which action's key bindings should be returned. + @param [in] nMaxBindings + This parameter is ignored. Refer to @ref _arrayConsideration + "Special Consideration when using Arrays" for more details. + @param [out] keyBindings + An array of BSTRs, allocated by the server, one for each key binding. + The client must free it with CoTaskMemFree. + @param [out] nBindings + The number of key bindings returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are no key bindings, [out] values are NULL and 0 respectively + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT keyBinding + ( + [in] long actionIndex, + [in] long nMaxBindings, + [out, size_is(,nMaxBindings), length_is(,*nBindings)] BSTR **keyBindings, + [out, retval] long *nBindings + ); + + /** @brief Returns the non-localized name of specified action. + @param [in] actionIndex + 0 based index specifying which action's non-localized name should be returned. + @param [out] name + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT name + ( + [in] long actionIndex, + [out, retval] BSTR *name + ); + + /** @brief Returns the localized name of specified action. + @param [in] actionIndex + 0 based index specifying which action's localized name should be returned. + @param [out] localizedName + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT localizedName + ( + [in] long actionIndex, + [out, retval] BSTR *localizedName + ); + +} +/************************************************************************* + * + * File Name (AccessibleRole.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007-2018 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + +/** Collection of roles + + This enumerator defines an extended set of accessible roles of objects implementing + the %IAccessible2 interface. These roles are in addition to the MSAA roles obtained + through the MSAA get_accRole method. Examples are 'footnote', 'heading', and + 'label'. You obtain an object's %IAccessible2 roles by calling IAccessible2::role. +*/ +enum IA2Role { + + /** Unknown role. The object contains some Accessible information, but its + role is not known. + */ + IA2_ROLE_UNKNOWN = 0, + + /** An object that can be drawn into and to manage events from the objects + drawn into it. Also refer to ::IA2_ROLE_FRAME, + ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE. + */ + IA2_ROLE_CANVAS = 0x401, + + /// A caption describing another object. + IA2_ROLE_CAPTION, + + /// Used for check buttons that are menu items. + IA2_ROLE_CHECK_MENU_ITEM, + + /// A specialized dialog that lets the user choose a color. + IA2_ROLE_COLOR_CHOOSER, + + /// A date editor. + IA2_ROLE_DATE_EDITOR, + + /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE. + Also refer to ::IA2_ROLE_INTERNAL_FRAME. + */ + IA2_ROLE_DESKTOP_ICON, + + /** A desktop pane. A pane that supports internal frames and iconified + versions of those internal frames. Also refer to ::IA2_ROLE_INTERNAL_FRAME. + */ + IA2_ROLE_DESKTOP_PANE, + + /** A directory pane. A pane that allows the user to navigate through + and select the contents of a directory. May be used by a file chooser. + Also refer to ::IA2_ROLE_FILE_CHOOSER. + */ + IA2_ROLE_DIRECTORY_PANE, + + /** An editable text object in a toolbar. Deprecated. + The edit bar role was meant for a text area in a tool bar. However, to detect + a text area in a tool bar the AT can query the parent. + */ + IA2_ROLE_EDITBAR, + + /// Embedded (OLE) object. + IA2_ROLE_EMBEDDED_OBJECT, + + /// Text that is used as an endnote (footnote at the end of a chapter or section). + IA2_ROLE_ENDNOTE, + + /** A file chooser. A specialized dialog that displays the files in the + directory and lets the user select a file, browse a different directory, + or specify a filename. May use the directory pane to show the contents of + a directory. + Also refer to ::IA2_ROLE_DIRECTORY_PANE. + */ + IA2_ROLE_FILE_CHOOSER, + + /** A font chooser. A font chooser is a component that lets the user pick + various attributes for fonts. + */ + IA2_ROLE_FONT_CHOOSER, + + /** Footer of a document page. + Also refer to ::IA2_ROLE_HEADER. + */ + IA2_ROLE_FOOTER, + + /// Text that is used as a footnote. Also refer to ::IA2_ROLE_ENDNOTE. + IA2_ROLE_FOOTNOTE, + + /** A container of form controls. An example of the use of this role is to + represent an HTML FORM tag. + */ + IA2_ROLE_FORM, + + /** Frame role. A top level window with a title bar, border, menu bar, etc. + It is often used as the primary window for an application. Also refer to + ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window. + */ + IA2_ROLE_FRAME, + + /** A glass pane. A pane that is guaranteed to be painted on top of all panes + beneath it. Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and + ::IA2_ROLE_ROOT_PANE. + */ + IA2_ROLE_GLASS_PANE, + + /** Header of a document page. + Also refer to ::IA2_ROLE_FOOTER. + */ + IA2_ROLE_HEADER, + + /// Heading. Use the IAccessible2::attributes level attribute to determine the heading level. + IA2_ROLE_HEADING, + + /// A small fixed size picture, typically used to decorate components. + IA2_ROLE_ICON, + + /** An image map object. Usually a graphic with multiple hotspots, where + each hotspot can be activated resulting in the loading of another document + or section of a document. + */ + IA2_ROLE_IMAGE_MAP, + + /** An object which is used to allow input of characters not found on a keyboard, + such as the input of Chinese characters on a Western keyboard. + */ + IA2_ROLE_INPUT_METHOD_WINDOW, + + /** An internal frame. A frame-like object that is clipped by a desktop pane. + The desktop pane, internal frame, and desktop icon objects are often used to + create multiple document interfaces within an application. + Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME. + */ + IA2_ROLE_INTERNAL_FRAME, + + /// An object used to present an icon or short string in an interface. + IA2_ROLE_LABEL, + + /** A layered pane. A specialized pane that allows its children to be drawn + in layers, providing a form of stacking order. This is usually the pane that + holds the menu bar as well as the pane that contains most of the visual + components in a window. + Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE. + */ + IA2_ROLE_LAYERED_PANE, + + /** A section whose content is parenthetic or ancillary to the main content + of the resource. + */ + IA2_ROLE_NOTE, + + /** A specialized pane whose primary use is inside a dialog. + Also refer to MSAA's dialog role. + */ + IA2_ROLE_OPTION_PANE, + + /** An object representing a page of document content. It is used in documents + which are accessed by the user on a page by page basis. + */ + IA2_ROLE_PAGE, + + /// A paragraph of text. + IA2_ROLE_PARAGRAPH, + + /** A radio button that is a menu item. + Also refer to MSAA's button and menu item roles. + */ + IA2_ROLE_RADIO_MENU_ITEM, + + /** An object which is redundant with another object in the accessible hierarchy. + ATs typically ignore objects with this role. + */ + IA2_ROLE_REDUNDANT_OBJECT, + + /** A root pane. A specialized pane that has a glass pane and a layered pane + as its children. + Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE + */ + IA2_ROLE_ROOT_PANE, + + /** A ruler such as those used in word processors. + */ + IA2_ROLE_RULER, + + /** A scroll pane. An object that allows a user to incrementally view a large + amount of information. Its children can include scroll bars and a viewport. + Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role. + */ + IA2_ROLE_SCROLL_PANE, + + /** A container of document content. An example of the use of this role is to + represent an HTML DIV tag. A section may be used as a region. A region is a + group of elements that together form a perceivable unit. A region does not + necessarily follow the logical structure of the content, but follows the + perceivable structure of the page. A region may have an attribute in the set + of IAccessible2::attributes which indicates that it is "live". A live region + is content that is likely to change in response to a timed change, a user + event, or some other programmed logic or event. + */ + IA2_ROLE_SECTION, + + /// Object with graphical representation used to represent content on draw pages. + IA2_ROLE_SHAPE, + + /** A split pane. A specialized panel that presents two other panels at the + same time. Between the two panels is a divider the user can manipulate to make + one panel larger and the other panel smaller. + */ + IA2_ROLE_SPLIT_PANE, + + /** An object that forms part of a menu system but which can be "undocked" + from or "torn off" the menu system to exist as a separate window. + */ + IA2_ROLE_TEAR_OFF_MENU, + + /// An object used as a terminal emulator. + IA2_ROLE_TERMINAL, + + /// Collection of objects that constitute a logical text entity. + IA2_ROLE_TEXT_FRAME, + + /** A toggle button. A specialized push button that can be checked or unchecked, + but does not provide a separate indicator for the current state. + Also refer to MSAA's roles of push button, check box, and radio button. +
Note: IA2_ROLE_TOGGLE_BUTTON should not be used. Instead, use MSAA's + ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED. + */ + IA2_ROLE_TOGGLE_BUTTON, + + /** A viewport. An object usually used in a scroll pane. It represents the + portion of the entire data that the user can see. As the user manipulates + the scroll bars, the contents of the viewport can change. + Also refer to ::IA2_ROLE_SCROLL_PANE. + */ + IA2_ROLE_VIEW_PORT, + + /** An object containing content which is complementary to the main content of + a document, but remains meaningful when separated from the main content. There + are various types of content that would appropriately have this role. For example, + in the case where content is delivered via a web portal to a web browser, this may + include but not be limited to show times, current weather, related articles, or + stocks to watch. The complementary role indicates that contained content is relevant + to the main content. If the complementary content is completely separable main + content, it may be appropriate to use a more general role. + */ + IA2_ROLE_COMPLEMENTARY_CONTENT, + + /** An object representing a navigational landmark, a region on a page to + which the user may want quick access, such as a navigation area, a search + facility or the main content of a page. + */ + IA2_ROLE_LANDMARK, + + /** + * A bar that serves as a level indicator to, for instance, show + * the strength of a password or the charge of a battery. + */ + IA2_ROLE_LEVEL_BAR, + + /** Content previously deleted or proposed for deletion, e.g. in revision + history or a content view providing suggestions from reviewers. + */ + IA2_ROLE_CONTENT_DELETION, + + /** Content previously inserted or proposed for insertion, e.g. in revision + history or a content view providing suggestions from reviewers. + */ + IA2_ROLE_CONTENT_INSERTION, + + /// A section of content that is quoted from another source. + IA2_ROLE_BLOCK_QUOTE, + + /** A run of content that is marked or highlighted, such as for reference + purposes, or to call it out as having a special purpose that is clear from + context. If the mark is used in conjunction with a related content section + in the document, then IA2_RELATION_DETAILS should be used to link the + related content (and the reverse relation IA2_RELATION_DETAILS_FOR should + link back to the IA2_ROLE_MARK object). If the mark has related information + in a tooltip, or as hidden text, then accDescription should be used to + provide this information. + */ + IA2_ROLE_MARK, + + /** A grouping for content that is called out as a proposed change from the + current version of the document, such as by a reviewer of the content. + Should include as children one or both of: + IA2_ROLE_CONTENT_DELETION and IA2_ROLE_CONTENT_INSERTION, in any order, + to indicate what the actual change is. + If the suggestion is accepted, the implementation should change the role to + a generic one such as IA2_ROLE_SECTION or IA2_ROLE_TEXT_FRAME. + */ + IA2_ROLE_SUGGESTION, + + /** A single comment, typically user-generated content. Supports reply + hierarchies via descendant structure, e.g. a child comment is a reply + to the parent comment. Supports groupPosition() method to determine + reply level (top comment is 1), as well as set size and position in set + within that level. + */ + IA2_ROLE_COMMENT +}; +/************************************************************************* + * + * File Name (AccessibleStates.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + +typedef long AccessibleStates; + +/** %IAccessible2 specific state bit constants + + This enum defines the state bits returned by IAccessible2::states. The + %IAccessible2 state bits are in addition to those returned by MSAA. +*/ +enum IA2States { + +/** Indicates a window is currently the active window, or is an active subelement + within a container or table. + + This state can be used to indicate the current active item in a container, even + if the container itself is not currently active. In other words this would indicate + the item that will get focus if you tab to the container. + + This information is important for knowing what to report for trees and potentially + other containers in a virtual buffer. + + Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information. +*/ +IA2_STATE_ACTIVE = 0x1, + +/** Indicates that the object is armed. + + Used to indicate that the control is "pressed" and will be invoked when the + actuator, e.g. a mouse button, is "released". An AT which either monitors the + mouse or synthesizes mouse events might need to know that, and possibly a talking + interface would even let the user know about it. It could also potentially be + useful to on screen keyboards or test tools since the information does indicate + something about the state of the interface, for example, code operating asynchronously + might need to wait for the armed state to change before doing something else. + +*/ +IA2_STATE_ARMED = 0x2, + +/** Indicates the user interface object corresponding to this object no longer exists. */ +IA2_STATE_DEFUNCT = 0x4, + +/** An object with this state has a caret and implements the IAccessibleText interface. + + Such fields may be read-only, so STATE_SYSTEM_READONLY is valid in combination + with IA2_STATE_EDITABLE. + +*/ +IA2_STATE_EDITABLE = 0x8, + +/** Indicates the orientation of this object is horizontal. */ +IA2_STATE_HORIZONTAL = 0x10, + +/** Indicates this object is minimized and is represented only by an icon. */ +IA2_STATE_ICONIFIED = 0x20, + +/** Indicates an input validation failure. */ +IA2_STATE_INVALID_ENTRY = 0x40, + +/** Indicates that this object manages its children. + + Note: Due to the fact that MSAA's WinEvents don't allow the active child index + to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event, the manages + descendants scheme can't be used. Instead the active child object has to fire + MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be + added to provide for event specific data to be passed with the event. At that + time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and + IA2_STATE_MANAGES_DESCENDANTS state would be useful. +*/ +IA2_STATE_MANAGES_DESCENDANTS = 0x80, + +/** Indicates that an object is modal. + + Modal objects have the behavior that something must be done with the object + before the user can interact with an object in a different window. +*/ +IA2_STATE_MODAL = 0x100, + +/** Indicates this text object can contain multiple lines of text. */ +IA2_STATE_MULTI_LINE = 0x200, + +/** Indicates this object paints every pixel within its rectangular region. */ +IA2_STATE_OPAQUE = 0x400, + +/** Indicates that user interaction is required. + + An example of when this state is used is when a field in a form must be filled + before a form can be processed. +*/ +IA2_STATE_REQUIRED = 0x800, + +/** Indicates an object which supports text selection. + + Note: This is different than MSAA STATE_SYSTEM_SELECTABLE. +*/ +IA2_STATE_SELECTABLE_TEXT = 0x1000, + +/** Indicates that this text object can contain only a single line of text. */ +IA2_STATE_SINGLE_LINE = 0x2000, + +/** Indicates that the accessible object is stale. + + This state is used when the accessible object no longer accurately + represents the state of the object which it is representing such as when an + object is transient or when an object has been or is in the process of being + destroyed or when the object's index in its parent has changed. +*/ +IA2_STATE_STALE = 0x4000, + +/** Indicates that the object implements autocompletion. + + This state indicates that a text control will respond to the input of + one or more characters and cause a sub-item to become selected. The + selection may also result in events fired on the parent object. +*/ +IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000, + +/** Indicates this object is transient. + + An object has this state when its parent object has the state ::IA2_STATE_MANAGES_DESCENDANTS. + For example, a list item object may be managed by its parent list object and may only + exist as long as the object is actually rendered. Similarly a table cell's accessible + object may exist only while the cell has focus. However, from the perspective of an + assistive technology a transient object behaves like a non-transient object. As a + result it is likely that this state is not of use to an assistive technology, but it + is provided in case an assistive technology determines that knowledge of the transient + nature of the object is useful and also for harmony with the Linux accessibility API. + + Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information. + */ +IA2_STATE_TRANSIENT = 0x10000, + +/** Indicates the orientation of this object is vertical. */ +IA2_STATE_VERTICAL = 0x20000, + +/** Indicates this object is checkable. + + The standard checkable objects are check boxes, radio buttons, check box menu + items, radio menu items, and toggle buttons. Since assistive technology will + determine that these objects are checkable via the object's role the checkable + state is not required. However, this state is necessary in those cases where + an object has a role which is not one of the previously mentioned roles. An + example is a table cell which indicates whether or not an email has an attachment, + whether or not an mail is considered spam, and whether or not an email has been read. + */ +IA2_STATE_CHECKABLE = 0x40000, + +/** Indicates this object is pinned. + + This state indicates that an object is fixed at a certain location. One example + is a browser tab that when pinned cannot be moved until unpinned. Another example + is a movable or floating object that when pinned remains in its pinned location + until being unpinned. + */ +IA2_STATE_PINNED = 0x80000 + +}; +/************************************************************************* + * + * File Name (Accessible2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + +/** @mainpage + + @section _interfaces Interfaces + IAccessible2\n + IAccessible2_2\n + IAccessible2_3 [Deprecated]\n + IAccessibleAction\n + IAccessibleApplication\n + IAccessibleComponent\n + IAccessibleDocument\n + IAccessibleEditableText\n + IAccessibleHypertext\n + IAccessibleHypertext2\n + IAccessibleHyperlink\n + IAccessibleImage\n + IAccessibleRelation\n + IAccessibleTable [Deprecated]\n + IAccessibleTable2\n + IAccessibleTableCell\n + IAccessibleText\n + IAccessibleText2\n + IAccessibleTextSelectionContainer\n + IAccessibleValue + + @section _structs Structs + IA2Locale\n + IA2Range\n + IA2TableModelChange\n + IA2TextSegment\n + IA2TextSelection + + @section _enums Enums + ::IA2Actions values are predefined actions for use when implementing support for HTML5 media.\n + ::IA2CoordinateType values define the requested coordinate type (screen or parent window).\n + ::IA2EventID values identify events.\n + ::IA2Role values defines roles which are in addition to the existing MSAA roles.\n + ::IA2ScrollType values define where to place an object or substring on the screen.\n + ::IA2States values define states which are in addition to the existing MSAA states.\n + ::IA2TableModelChangeType values describe the kinds of changes made to a table (insert, delete, update).\n + ::IA2TextBoundaryType values define the requested text unit (character, word, sentence, line, paragraph).\n + ::IA2TextSpecialOffsets values define special offsets for use in the text interfaces. + + @section _constants Constants + @ref grpRelations + + @section _misc Miscellaneous + @ref _licensePage "BSD License"\n + @ref _generalInfo "General Information"\n + + @page _licensePage BSD License + %IAccessible2 IDL Specification + + Copyright (c) 2007, 2013 Linux Foundation\n + Copyright (c) 2006 IBM Corporation\n + Copyright (c) 2000, 2006 Sun Microsystems, Inc.\n + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + 3. Neither the name of the Linux Foundation nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + This BSD License conforms to the Open Source Initiative "Simplified + BSD License" as published at: + http://www.opensource.org/licenses/bsd-license.php + + %IAccessible2 is a trademark of the Linux Foundation. The %IAccessible2 + mark may be used in accordance with the + + Linux Foundation Trademark Policy to indicate compliance with the %IAccessible2 specification. + + @page _generalInfo General Information + The following information is applicable to two or more interfaces. + + @ref _errors\n + @ref _memory\n +   @ref _arrayConsideration\n + @ref _indexes\n + @ref _enums\n + @ref _specialOffsets\n + @ref _dicoveringInterfaces\n + @ref _changingInterfaces\n + @ref _applicationInfo\n + @ref _childIDs\n + @ref _variants\n + @ref _iaaction-iahyperlink\n + @ref _trademark + + @section _errors Error Handling + HRESULT values are defined by the Microsoft® Win32® API. For more information, refer to + + Interpreting HRESULT Values in MSDN®. + + Note that the S_FALSE return value is considered a non-error value and the + SUCCEEDED macro will return TRUE. S_FALSE is used when there is no failure + but there was nothing valid to return, e.g. in IAccessible2::attributes when + there are no attributes. When S_FALSE is returned [out] pointer types should + be NULL and [out] longs should generally be 0, but sometimes -1 is used such + as IAccessible2::indexInParent, IAccessibleText::caretOffset, and + IAccessibleHypertext::hyperlinkIndex. + + Note that for BSTR [out] variables common COM practice is that the server does + the SysAllocString and the client does the SysFreeString. Also note that when + NULL is returned there is no need for the client to call SysFreeString. Please + refer to the documentation for each method for more details regarding error handling. + + @section _memory Memory Management + The following memory management issues should be considered: + @li Although [out] BSTR variables are declared by the client, their space is + allocated by the server. They need to be freed with SysFreeString by the + client at end of life; the same is true when BSTRs are used in structs or + arrays which are passed to the server. + @li If there is no valid [out] BSTR to return, the server should return S_FALSE and + assign NULL to the output, e.g. *theOutBSTR = NULL;. + @li COM interfaces need to be referenced with AddRef when used and dereferenced + with Release at end of life. + @li Single [out] longs, HWNDs, booleans, and structs are declared by the caller + and passed by reference. The marshaller does all the memory management. + + The following articles may be helpful for understanding memory management issues: + @li An article by Don Box in a + Q & A section + of the November 1996 edition of the Microsoft Systems Journal. + @li A posting to a CodeGuru forum, + Windows SDK + String: What are the rules for BSTR allocation and deallocation? + + @subsection _arrayConsideration Special Consideration when using Arrays + There are several methods which return arrays. In the case of IAccessible2::relations + and IAccessibleRelation::targets the client must allocate and free the arrays. + + For the remaining methods which return arrays, the server must allocate the array + and the client must free the array when no longer needed. These methods are + IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, + IAccessible2_2::relationTargetsOfType, IAccessibleAction::keyBinding, + IAccessibleHypertext2::hyperlinks, IAccessibleTable::selectedChildren, + IAccessibleTable::selectedColumns, IAccessibleTable::selectedRows, + IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns, + IAccessibleTable2::selectedRows, IAccessibleTableCell::columnHeaderCells, + and IAccessibleTableCell::rowHeaderCells. + For those methods, the server must allocate both the top level array and any storage + associated with it, e.g. for BSTRs. The server must allocate the arrays with + CoTaskMemAlloc and any BSTRs with SysAllocString. The client must use CoTaskMemFree + to free the array and any BSTRs must be freed with SysFreeString. + + Also, the IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, + IAccessibleAction::keyBinding, IAccessibleTable::selectedChildren, + IAccessibleTable::selectedColumns, and IAccessibleTable::selectedRows includes an + extraneous [in] parameter for the caller to specify the max size of the array. + This parameter will be ignored by the COM server. + + @section _indexes Zero and One Based Indexes + Unless otherwise specified all offsets and indexes are 0 based. + + @section _enums Enums + Note that enums start at 0. + + @section _specialOffsets Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods + IAccessibleText and IAccessibleEditableText can use one or more of the following + special offset values. They are defined in the ::IA2TextSpecialOffsets enum. + @li Using ::IA2_TEXT_OFFSET_LENGTH (-1) as an offset in any of the IAccessibleText or + IAccessibleEditableText methods is the same as specifying the length of the string. + @li Using ::IA2_TEXT_OFFSET_CARET (-2) as an offset for IAccessibleText::textBeforeOffset, + IAccessibleText::textAtOffset, and IAccessibleText::textAfterOffset indicates that the + text related to the physical location of the caret should be used. This is needed for + applications that consider the character offset of the end of one line (as reached by + pressing the End key) the same as the offset of the first character on the next line. + Since the same offset is associated with two different lines a special means is needed + to fetch text from the line where the caret is physically located. + + @section _dicoveringInterfaces Discovery of Interfaces + In general AT (Assistive Technology) should try IAccessible2 interfaces, followed by using + the MSAA (Microsoft® Active Accessibility®) interfaces. (In cases where the an application + is known to have custom interfaces which provide information not supplied by IAccessible2 + or MSAA, then those custom interfaces can be used.) The AT can then, by default, support + unknown IAccessible2/MSAA applications, without the application developers having to request + AT vendors for support on an individual application by application basis. + + When you have a reference to an IAccessible and require a reference to an IAccessible2 use + QueryService as follows: + @code + // pAcc is a reference to the accessible object's IAccessible interface. + IServiceProvider *pService = NULL; + hr = pAcc->QueryInterface(IID_IServiceProvider, (void **)&pService); + if(SUCCEEDED(hr)) { + IAccessible2 *pIA2 = NULL; + hr = pService->QueryService(IID_IAccessible, IID_IAccessible2, (void**)&pIA2); + if (SUCCEEDED(hr) && pIA2) { + // The control supports IAccessible2. + // pIA2 is the reference to the accessible object's IAccessible2 interface. + } + } + @endcode + + @section _changingInterfaces Changing between Accessible Interfaces + Note that developers must always implement MSAA's IAccessible and, if needed, some + of the interfaces in the set of IAccessible2 interfaces. Although the IAccessible2 + IDL is coded such that IAccessible2 is a subclass of MSAA's IAccessible, none of + MSAA's IAccessible methods are redefined by IAccessible2. + + QueryService must be used to switch from a reference to an MSAA IAccessible interface + to another interface. This has been + + documented and the pertinent facts have been extracted below: + + @par + Why use QueryService instead of just using QueryInterface to get IAccessibleEx + directly? The reason is that since MSAA 2.0, clients don't talk to a server's + IAccessible interface directly; instead they talk to an intermediate MSAA-provided + wrapper that calls through to the original IAccessible. This wrapper provides services + such as implementing IDispatch, supplying information from MSAA 2.0's Dynamic Annotation + service, and scaling locations when running on Windows Vista with DPI scaling enabled. + QueryService is the supported way to expose additional interfaces from an existing + IAccessible and was originally used by MSHTML to expose IHTMLElement objects corresponding + to IAccessibles. QueryService is often more convenient for servers to implement than + QueryInterface because it does not have the same requirements for preserving object + identity or symmetry/transitivity as QueryInterface, so QueryService allows servers to + easily implement the interface on the same object or a separate object. The latter is + often hard to do with QueryInterface unless the original object supports aggregation. + + Two related references in MSDN® are: + @li + "Using QueryService to expose a native object model interface for an IAccessible object" + @li + "Accessing the Internet Explorer Object Associated with an Accessible Object" + + Based on this information from Microsoft, QueryService must be used to switch back and forth + between a reference to an MSAA IAccessible interface and any of the IAccessible2 interfaces. + + Regarding switching between any of the IAccessible2 interfaces, applications implementing + IAccessible2 should implement the IAccessible2 interfaces on a single object since ATs + will be using QueryInterface to switch between the IAccessilbe2 interfaces. Implementing + the IAccessible2 interfaces on separate objects would require the use of QueryService. + There is one exception, IAccessibleApplication can be implemented on a separate object so + its common code doesn't have to be included in each accessible object. ATs should use + QueryService to access IAccessibleApplication. + + @section _applicationInfo Access to Information about the Application + Servers implementing IAccessible2 should provide access to the IAccessibleApplication + interface via QueryService from any object so that ATs can easily determine specific + information about the application such as its name or version. + + @section _childIDs Child IDs + The IAccessible2 interfaces do not support child IDs, i.e. simple child elements. + Full accessible objects must be created for each object that supports IAccessible2. + Therefore MSAA's get_accChild should never return a child ID (other than CHILDID_SELF) + for an object that implements any of the IAccessible2 interfaces. + + Microsoft's UI Automation specification has the same limitation and this was resolved + in the UI Automation Express specification by adding IAccessibleEx::GetObjectForChild + and IAccessibleEx::GetIAccessiblePair. These methods allow mapping back and forth + between an IAccessibleEx and an {IAccessible, Child ID} pair. A future version of + IAccessible2 may include similar methods to map back and forth between an IAccessible2 + and an {IAccessible, Child ID} pair. + + @section _variants VARIANTs + Some methods return a VARIANT. Implementers need to make sure that the return type is + specified, i.e. VT_I4, VT_IDISPATCH, etc. The methods that return VARIANTs are + IAccessibleHyperlink::anchor, IAccessibleHyperlink::anchorTarget, IAccessibleValue::currentValue, + IAccessibleValue::maximumValue, IAccessibleValue::minimumValue. + + @section _iaaction-iahyperlink IAccessibleHyperlink as subclass of IAccessibleAction + In this version of the IDL, IAccessibleHyperlink is a subclass of IAccessibleAction. + However, there is no practical need for that inheritance and in some cases, such as + an image map of smart tags, it doesn't make sense because such an image map doesn't + have actionable objects; it's the secondary smart tags that are actionable. As a + result, implementations should not rely on the inheritance as it may be removed in + a later version of the IDL. + + @section _trademark Trademark Attribution + The names of actual companies and products mentioned herein may be the trademarks of + their respective owners. In particular, Active Accessibility, Microsoft, MSDN, and Win32 + are trademarks of the Microsoft group of companies in the U.S.A. and/or other countries. + +**/ + + + + + + + + +/** A structure defining the locale of an accessible object. + +IAccessible2::locale returns this struct. +*/ +typedef struct IA2Locale { + BSTR language; ///< ISO 639-1 Alpha-2 two character language code + BSTR country; ///< ISO 3166-1 Alpha-2 two character country code + BSTR variant; ///< Application specific variant of the locale +} IA2Locale; + +/** @brief This interface exposes the primary set of information about an + IAccessible2 enabled accessible object. + + This interface must always be provided for objects that support some + portion of the collection of the %IAccessible2 interfaces. + + Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces" + for special considerations related to use of the MSAA IAccessible interface and + the set of %IAccessible2 interfaces. + */ +[object, uuid(E89F726E-C4F4-4c19-BB19-B647D7FA8478)] +interface IAccessible2 : IAccessible +{ + + /** @brief Returns the number of accessible relations for this object. + @param [out] nRelations + @retval S_OK + */ + [propget] HRESULT nRelations + ( + [out, retval] long *nRelations + ); + + /** @brief Returns one accessible relation for this object. + @param [in] relationIndex + 0 based + @param [out] relation + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT relation + ( + [in] long relationIndex, + [out, retval] IAccessibleRelation **relation + ); + + /** @brief Returns multiple accessible relations for this object. + @param [in] maxRelations + maximum size of the array allocated by the client + @param [out] relations + The array of accessible relation objects. Note that this array is to be + allocated by the client and freed when no longer needed. Refer to @ref + _arrayConsideration "Special Consideration when using Arrays" for more details. + @param [out] nRelations + actual number of relations in the returned array (not more than maxRelations) + @retval S_OK + @retval S_FALSE if there are no relations, nRelations is set to 0 + @note As a performant alternative, client code should consider using IAccessible2_2::relationTargetsOfType. + */ + [propget] HRESULT relations + ( + [in] long maxRelations, + [out, size_is(maxRelations), length_is(*nRelations)] + IAccessibleRelation **relations, + [out, retval] long *nRelations + ); + + /** @brief Returns the role of an %IAccessible2 object. + @param [out] role + The role of an %IAccessible2 object. + @retval S_OK + @note + @li For convenience MSAA roles are also passed through this method so the + AT doesn't have to also fetch roles through MSAA's get_accRole. + @li %IAccessible2 roles should not be passed through MSAA's get_accRole. + @li For compatibility with non IAccessible2 enabled ATs, IAccessible2 + applications should also add support to get_accRole to return the closest + MSAA role or ROLE_SYSTEM_CLIENT (the MSAA defined default role) if there + is not a good match. + @li This method is missing a [propget] prefix in the IDL. The result is the + method is named role in generated C++ code instead of get_role. + */ + HRESULT role + ( + [out, retval] long *role + ); + + /** @brief Makes an object visible on the screen. + @param [in] scrollType + Defines where the object should be placed on the screen. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT scrollTo + ( + [in] enum IA2ScrollType scrollType + ); + + /** @brief Moves the top left of an object to a specified location. + + @param [in] coordinateType + Specifies whether the coordinates are relative to the screen or the parent object. + @param [in] x + Defines the x coordinate. + @param [in] y + Defines the y coordinate. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT scrollToPoint + ( + [in] enum IA2CoordinateType coordinateType, + [in] long x, + [in] long y + ); + + /** @brief Returns grouping information. + + Used for tree items, list items, tab panel labels, radio buttons, etc. + Also used for collections of non-text objects. + + @param [out] groupLevel + 1 based, 0 indicates that this value is not applicable + @param [out] similarItemsInGroup + 1 based, 0 indicates that this value is not applicable + @param [out] positionInGroup + 1 based, 0 indicates that this value is not applicable. This is an index + into the objects in the current group, not an index into all the objects + at the same group level. + @retval S_OK if at least one value is valid + @retval S_FALSE if no values are valid, [out] values are 0s + @note This method is meant to describe the nature of an object's containment + structure. It's exposed by trees, tree grids, nested lists, nested menus, + but not headings, which uses the level object attribute. It is also exposed + by radio buttons (with groupLevel == 0). + @note This is normally not implemented on a combo box to describe the nature + of its contents. Normally an AT will get that information from its child list + object. However, in some cases when non-edit combo boxes are not able to be structured + such that the list is a child of the combo box, this method is implemented on + the combo box itself. ATs can use this interface if a child list is not found. + */ + [propget] HRESULT groupPosition + ( + [out] long *groupLevel, + [out] long *similarItemsInGroup, + [out, retval] long *positionInGroup + ); + + /** @brief Returns the bit strip containing any IAccessible2 states. + + The IAccessible2 states are in addition to the MSAA states and are defined in + the IA2States enum. + + @param [out] states + @retval S_OK + */ + [propget] HRESULT states + ( + [out, retval] AccessibleStates *states + ); + + /** @brief Returns the extended role. + + An extended role is a role which is dynamically generated by the application. + It is not predefined by the %IAccessible2 specification. + + @param [out] extendedRole + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT extendedRole + ( + [out, retval] BSTR *extendedRole + ); + + /** @brief Returns the localized extended role. + @param [out] localizedExtendedRole + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT localizedExtendedRole + ( + [out, retval] BSTR *localizedExtendedRole + ); + + /** @brief Returns the number of extended states. + @param [out] nExtendedStates + @retval S_OK + */ + [propget] HRESULT nExtendedStates + ( + [out, retval] long *nExtendedStates + ); + + /** @brief Returns the extended states (array of strings). + + An extended state is a state which is dynamically generated by the application. + It is not predefined by the %IAccessible2 specification. + + @param [in] maxExtendedStates + This parameter is ignored. Refer to @ref _arrayConsideration + "Special Consideration when using Arrays" for more details. + @param [out] extendedStates + This array is allocated by the server. The client must free it with CoTaskMemFree. + @param [out] nExtendedStates + The number of extended states returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively + */ + [propget] HRESULT extendedStates + ( + [in] long maxExtendedStates, + [out, size_is(,maxExtendedStates), length_is(,*nExtendedStates)] BSTR **extendedStates, + [out, retval] long *nExtendedStates + ); + + /** @brief Returns the localized extended states (array of strings). + + @param [in] maxLocalizedExtendedStates + This parameter is ignored. Refer to @ref _arrayConsideration + "Special Consideration when using Arrays" for more details. + @param [out] localizedExtendedStates + This array is allocated by the server. The client must free it with CoTaskMemFree. + @param [out] nLocalizedExtendedStates + The number of localized extended states returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively + */ + [propget] HRESULT localizedExtendedStates + ( + [in] long maxLocalizedExtendedStates, + [out, size_is(,maxLocalizedExtendedStates), length_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates, + [out, retval] long *nLocalizedExtendedStates + ); + + /** @brief Returns the unique ID. + + The uniqueID is an identifier for this object, is unique within the + current window, and remains the same for the lifetime of the accessible + object. + + The uniqueID is not related to: + - the MSAA objectID which is used by the server to disambiguate between + IAccessibles per HWND or + - the MSAA childID which is used to disambiguate between children being + managed by an IAccessible. + + This value is provided so the AT can have access to a unique runtime persistent + identifier even when not handling an event for the object. + + An example of when this value is useful is if the AT wants to build a cache. + The AT could cache the uniqueIDs in addition to other data being cached. + When an event is fired the AT could map the uniqueID to its internal model. + Thus, if there's a REORDER/SHOW/HIDE event the AT knows which part of the + internal structure has been invalidated and can refetch just that part. + + This value can also be used by an AT to determine when the current control + has changed. If the role is the same for two controls that are adjacent in + the tab order, this can be used to detect the new control. + + Another use of this value by an AT is to identify when a grouping object has + changed, e.g. when moving from a radio button in one group to a radio button in a + different group. + + One means of implementing this would be to create a factory with a 32 bit number + generator and a reuse pool. The number generator would emit numbers starting + at 1. Each time an object's life cycle ended, its number would be saved into a + reuse pool. The number generator would be used whenever the reuse pool was empty. + + Another way to create a unique ID is to generate it from a pointer value, e.g. an + object's address. That would be unique because no two active objects can use the + same allocated memory space. + + @param [out] uniqueID + @retval S_OK + */ + [propget] HRESULT uniqueID + ( + [out, retval] long *uniqueID + ); + + /** @brief Returns the window handle for the parent window which contains this object. + + This is the same window handle which will be passed for any events that occur on the + object, but is cached in the accessible object for use when it would be helpful to + access the window handle in cases where an event isn't fired on this object. + + A use case is when a screen reader is grabbing an entire web page on a page load. + Without the availability of windowHandle, the AT would have to get the window handle + by using WindowFromAccessibleObject on each IAccessible, which is slow because it's + implemented by oleacc.dll as a loop which crawls up the ancestor chain and looks for + a ROLE_WINDOW object, mapping that back to a window handle. + + @param [out] windowHandle + @retval S_OK + */ + [propget] HRESULT windowHandle + ( + [out, retval] HWND *windowHandle + ); + + /** @brief Returns the index of this object in its parent object. + @param [out] indexInParent + 0 based; -1 indicates there is no parent; the upper bound is the value + returned by the parent's IAccessible::get_accChildCount. + @retval S_OK + @retval S_FALSE if no parent, [out] value is -1 + */ + [propget] HRESULT indexInParent + ( + [out, retval] long *indexInParent + ); + + /** @brief Returns the IA2Locale of the accessible object. + @param [out] locale + @retval S_OK + */ + [propget] HRESULT locale + ( + [out, retval] IA2Locale *locale + ); + + /** @brief Returns the attributes specific to this object, such as a cell's formula. + @param [out] attributes + @retval S_OK + @retval S_FALSE returned if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT attributes + ( + [out, retval] BSTR *attributes + ); + +} + +/************************************************************************* + * + * File Name (Accessible2_2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** @brief This interface exposes the primary set of information about an + IAccessible2 enabled accessible object. + + This interface must always be provided for objects that support some + portion of the collection of the %IAccessible2 interfaces. + + Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces" + for special considerations related to use of the MSAA IAccessible interface and + the set of %IAccessible2 interfaces. + */ +[object, uuid(6C9430E9-299D-4E6F-BD01-A82A1E88D3FF)] +interface IAccessible2_2 : IAccessible2 +{ + /** @brief Returns the attribute value of a specified attribute specific to this object. + @param [in] name + @param [out] attribute + @retval S_OK + @retval S_FALSE returned if there is nothing to return, [out] value is NULL. + @retval E_INVALIDARG if bad [in] passed. + @note The output value is a VARIANT. Typically it will be a VT_BSTR, but there + are some cases where it will be a VT_I4 or VT_BOOL. Refer to the + Object Attributes specification for more information. + */ + [propget] HRESULT attribute + ( + [in] BSTR name, + [out, retval] VARIANT *attribute + ); + + /** @brief Returns the deepest hypertext accessible in the subtree of this object, and the caret offset within it. + @param [out] accessible + @param [out] caretOffset + @retval S_OK + @retval S_FALSE returned if there is no caret in any of the objects in the subtree, [out] accessible is NULL and [out] caretOffset is -1. + */ + [propget] HRESULT accessibleWithCaret + ( + [out] IUnknown **accessible, + [out, retval] long *caretOffset + ); + + /** @brief Returns relation targets for a specified target type. + @param [in] type + The requested @ref grpRelations "relation type". + @param [in] maxTargets + The number of targets requested. 0 indicates that all targets should be returned. + @param [out] targets + This array is allocated by the server. The client must free it with CoTaskMemFree. + @param [out] nTargets + The number of targets returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are no targets, [out] values are NULL and 0 respectively. + @retval E_INVALIDARG if bad [in] passed. + */ + [propget] HRESULT relationTargetsOfType + ( + [in] BSTR type, + [in] long maxTargets, + [out, size_is(,*nTargets)] IUnknown ***targets, + [out, retval] long *nTargets + ); + +} + +/************************************************************************* + * + * File Name (AccessibleComponent.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + +/** A value specifying a color in ARGB format, where each 8 bit color component +specifies alpha, red, green, and blue respectively. The alpha value is optional. +*/ +typedef long IA2Color; + +/** @brief This interface is implemented by any object that can be rendered + on the screen. + + This interface provides the standard mechanism for an assistive technology + to retrieve information concerning the graphical representation of an object. + Coordinates used by the functions of this interface are specified in + different coordinate systems. Their scale is the same and is equal to + that of the screen coordinate system. In other words all coordinates + are measured in pixels. They differ in their respective origin: +
    +
  • The screen coordinate system has its origin in the upper left + corner of the current screen.
  • +
  • The origin of the parent coordinate system is the upper left corner + of the parent's bounding box. With no parent the screen coordinate + system is used instead.
  • +
+*/ +[object, uuid(1546D4B0-4C98-4bda-89AE-9A64748BDDE4)] +interface IAccessibleComponent : IUnknown +{ + + /** @brief Returns the location of the upper left corner of the object's + bounding box relative to the immediate parent object. + + The coordinates of the bounding box are given relative to the parent's + coordinate system. The coordinates of the returned position are relative + to this object's parent or relative to the screen on which this object + is rendered if it has no parent. If the object is not on any screen + the returned position is (0,0). + + @param [out] x + @param [out] y + @retval S_OK + */ + [propget] HRESULT locationInParent + ( + [out] long *x, + [out, retval] long *y + ); + + /** @brief Returns the foreground color of this object. + @param [out] foreground + The returned color is the foreground color of this object or, if + that is not supported, the default foreground color. + @retval S_OK + */ + [propget] HRESULT foreground + ( + [out, retval] IA2Color *foreground + ); + + /** @brief Returns the background color of this object. + @param [out] background + The returned color is the background color of this object or, if + that is not supported, the default background color. + @retval S_OK + */ + [propget] HRESULT background + ( + [out, retval] IA2Color *background + ); +} +/************************************************************************* + * + * File Name (AccessibleValue.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + +/** @brief This interface gives access to a single numerical value. + + The %IAccessibleValue interface represents a single numerical value and should + be implemented by any class that supports numerical value like progress bars + and spin boxes. This interface lets you access the value and its upper and + lower bounds. +*/ +[object, uuid(35855B5B-C566-4fd0-A7B1-E65465600394)] +interface IAccessibleValue : IUnknown +{ + + /** @brief Returns the value of this object as a number. + + The exact return type is implementation dependent. Typical types are long and + double. + @param [out] currentValue + Returns the current value represented by this object. See the section about + @ref _variants "VARIANTs" for additional information. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY + */ + [propget] HRESULT currentValue + ( + [out, retval] VARIANT *currentValue + ); + + /** @brief Sets the value of this object to the given number. + + The argument is clipped to the valid interval whose upper and lower + bounds are returned by the methods IAccessibleValue::maximumValue and + IAccessibleValue::minimumValue, i.e. if it is lower than the minimum + value the new value will be the minimum and if it is greater than the + maximum then the new value will be the maximum. + + @param [in] value + The new value represented by this object. The set of admissible types for + this argument is implementation dependent. + @retval S_OK + */ + HRESULT setCurrentValue + ( + [in] VARIANT value + ); + + /** @brief Returns the maximal value that can be represented by this object. + + The type of the returned value is implementation dependent. It does not have + to be the same type as that returned by method IAccessibleValue::currentValue. + + @param [out] maximumValue + Returns the maximal value in an implementation dependent type. If this object + has no upper bound then an empty object is returned. See the section about + @ref _variants "VARIANTs" for additional information. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY + */ + [propget] HRESULT maximumValue + ( + [out, retval] VARIANT *maximumValue + ); + + /** @brief Returns the minimal value that can be represented by this object. + + The type of the returned value is implementation dependent. It does not have + to be the same type as that returned by method IAccessibleValue::currentValue. + + @param [out] minimumValue + Returns the minimal value in an implementation dependent type. If this object + has no lower bound then an empty object is returned. See the section about + @ref _variants "VARIANTs" for additional information. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY + */ + [propget] HRESULT minimumValue + ( + [out, retval] VARIANT *minimumValue + ); + +}; +/************************************************************************* + * + * File Name (AccessibleText.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** A structure containing a substring and the start and end offsets in the enclosing string. + + IAccessibleText::newText and IAccessibleText::oldText return this struct. +*/ +typedef struct IA2TextSegment { + BSTR text; ///< A copy of a segment of text taken from an enclosing paragraph. + long start; ///< Index of the first character of the segment in the enclosing text. + long end; ///< Index of the character following the last character of the segment in the enclosing text. +} IA2TextSegment; + +/** This enum defines values which specify a text boundary type. + + IA2_TEXT_BOUNDARY_SENTENCE is optional. When a method doesn't implement this + method it must return S_FALSE. Typically this feature would not be implemented + by an application. However, if the application developer was not satisfied with + how screen readers have handled the reading of sentences this boundary type + could be implemented and screen readers could use the application's version of a + sentence rather than the screen reader's. + + The rest of the boundary types must be supported. + + This enum is used in IAccessibleText::textBeforeOffset, IAccessibleText::textAtOffset, + and IAccessibleText::textAfterOffset. +*/ + +enum IA2TextBoundaryType { + /** Typically, a single character is returned. In some cases more than one + character is returned, for example, when a document contains field data such + as a field containing a date, time, or footnote reference. In this case + the caret can move over several characters in one movement of the caret. + Note, that after the caret moves, the caret offset changes by the number of + characters in the field, e.g. by 8 characters in the following date: 03/26/07. + */ + IA2_TEXT_BOUNDARY_CHAR, + + /** The range provided matches the range observed when the application + processes the Ctrl + left arrow and Ctrl + right arrow key sequences. + Typically this is from the start of one word to the start of the next, but + various applications are inconsistent in the handling of the end of a line. + */ + IA2_TEXT_BOUNDARY_WORD, + + /** Range is from start of one sentence to the start of another sentence. + */ + IA2_TEXT_BOUNDARY_SENTENCE, + + /** Range is from start of one paragraph to the start of another paragraph. + */ + IA2_TEXT_BOUNDARY_PARAGRAPH, + + /** Range is from start of one line to the start of another line. This often + means that an end-of-line character will appear at the end of the range. + However in the case of some applications an end-of-line character indicates + the end of a paragraph and the lines composing the paragraph, other than + the last line, do not contain an end of line character. + */ + IA2_TEXT_BOUNDARY_LINE, + + /** Deprecated. Using this value will cause all text to be returned. + Note: IAccessibleText::text should be used instead. + */ + IA2_TEXT_BOUNDARY_ALL +}; + +/** @brief This interface gives read-only access to text. + + The %IAccessibleText interface should be implemented by all components + that present textual information on the display like buttons, + text entry fields, or text portions of the document window. The interface + provides access to the text's content, attributes, and spatial location. + However, text can not be modified with this interface. That is the task + of the IAccessibleEditableText interface. + + The text length, i.e. the number of characters in the text, is + returned by IAccessibleText::nCharacters. All methods that operate + on particular characters (e.g. IAccessibleText::textAtOffset) use character + indices from 0 to length-1. All methods that operate on character positions + (e.g. IAccessibleText::text) use indices from 0 to length. + + Please note that accessible text does not necessarily support selection. + In this case it should behave as if there where no selection. An empty + selection is used for example to express the current cursor position. + + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + + E_FAIL is returned in the following cases + @li endOffset < startOffset + @li endoffset > length +*/ +[object, uuid(24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B)] +interface IAccessibleText : IUnknown +{ + + /** @brief Adds a text selection + @param [in] startOffset + Starting offset ( 0 based). + @param [in] endOffset + Offset of first character after new selection (0 based). + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + */ + HRESULT addSelection + ( + [in] long startOffset, + [in] long endOffset + ); + + /** @brief Returns text attributes. + @param [in] offset + Text offset (0 based). Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + @param [out] startOffset + The starting offset of the character range over which all text attributes match + those of offset. (0 based) + @param [out] endOffset + The offset of the first character past the character range over which all text + attributes match those of offset. (0 based) + @param [out] textAttributes + A string of attributes describing the text. The attributes are described in the + + text attributes specification on the %IAccessible2 web site. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] values are 0s and NULL respectively + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT attributes + ( + [in] long offset, + [out] long *startOffset, + [out] long *endOffset, + [out, retval] BSTR *textAttributes + ); + + /** @brief Returns the position of the caret. + + Returns the 0-based offset of the caret within the text. If the text is + implemented as a tree of text objects with embed characters in higher levels + representing substrings of child text objects and the caret is in one of the + child text objects, then the offset in the higher level text object would be + at the embed character representing child text object that contains the caret. + + For example, if the string "one two three" is implemented as a two text objects, + with a top level text object containing an embed character "one ? three" and a + child text object containing "two" and if the caret is in the descendant object + just before the 'o' in "two", then: +
    +
  • the caretOffset for the "one ? three" object would be 4, matching the embed character
  • +
  • the caretOffset for "two" would be 2, matching the "o"
  • +
+ The caret position/offset is that of the character logically following it, e.g. + to the right of it in a left to right language, or to the left of it in a right + to left language. + @param [out] offset + The returned offset is relative to the text represented by this object. + @retval S_OK + @retval S_FALSE if the caret is not currently active on this object, i.e. the + caret is located on some other object. The returned offset value will be -1. + @note S_FALSE (and an offset of -1) will not be returned if the caret is somewhere + in the text object or one of its descendants. + */ + [propget] HRESULT caretOffset + ( + [out, retval] long *offset + ); + + + /** @brief Returns the bounding box of the specified position. + + The virtual character after the last character of the represented + text, i.e. the one at position length is a special case. It represents the + current input position and will therefore typically be queried by AT more + often than other positions. Because it does not represent an existing character + its bounding box is defined in relation to preceding characters. It should be + roughly equivalent to the bounding box of some character when inserted at the + end of the text. Its height typically being the maximal height of all the + characters in the text or the height of the preceding character, its width being + at least one pixel so that the bounding box is not degenerate. + + Note that the index 'length' is not always valid. Whether it is or not is + implementation dependent. It typically is when text is editable or otherwise + when on the screen the caret can be placed behind the text. You can be sure + that the index is valid after you have received a ::IA2_EVENT_TEXT_CARET_MOVED + event for this index. + @param [in] offset + Index of the character for which to return its bounding box. The valid range + is 0..length. Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + @param [in] coordType + Specifies if the coordinates are relative to the screen or to the parent window. + @param [out] x + X coordinate of the top left corner of the bounding box of the referenced character. + @param [out] y + Y coordinate of the top left corner of the bounding box of the referenced character. + @param [out] width + Width of the bounding box of the referenced character. + @param [out] height + Height of the bounding box of the referenced character. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT characterExtents + ( + [in] long offset, + [in] enum IA2CoordinateType coordType, + [out] long *x, + [out] long *y, + [out] long *width, + [out, retval] long *height + ); + + + /** @brief Returns the number of active non-contiguous selections + @param [out] nSelections + @retval S_OK + */ + [propget] HRESULT nSelections + ( + [out, retval] long *nSelections + ); + + /** @brief Returns the text position for the specified screen position. + + Given a point return the zero-based index of the character under that + point. The same functionality could be achieved by using the bounding + boxes for each character as returned by IAccessibleText::characterExtents. + The method IAccessibleText::offsetAtPoint, however, can be implemented + more efficiently. + + @param [in] x + The position's x value for which to look up the index of the character that + is rendered on to the display at that point. + @param [in] y + The position's y value for which to look up the index of the character that + is rendered on to the display at that point. + @param [in] coordType + Screen coordinates or window coordinates. + @param [out] offset + Index of the character under the given point or -1 if the point + is invalid or there is no character under the point. + @retval S_OK + @retval S_FALSE if nothing to return, [out] value is -1 + + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT offsetAtPoint + ( + [in] long x, + [in] long y, + [in] enum IA2CoordinateType coordType, + [out, retval] long *offset + ); + + /** @brief Returns the character offsets of Nth active text selection + + Returns the 0-based starting and ending offsets of the Nth selection. If the + text is implemented as a tree of text objects with embed characters in higher + levels representing substrings of child text objects, consider the following. + If the starting selection offset is in one of the child text objects, then the + starting offset in the higher level text object would be at the embed character + representing the child text object that contains the starting selection offset. + If the ending selection offset is in one of the child text objects, then the + ending offset in the higher level text object would be just after the embed + character representing the child text object that contains the ending selection + offset. + + For example, if the string "one two three" is implemented as a two text objects, + with a top level text object containing an embed character "one ? three" and a + child text object containing "two" and if the selection is the string "two" then: +
    +
  • the startOffset for the "one ? three" object would be 4, matching the embed character and the endOffset would be 5.
  • +
  • the startOffset for the "two" object would be 0, and the endOffset would be 3
  • +
+ Selection offsets are that of the character logically following it, e.g. + to the right of it in a left to right language or to the left of it in a right to left language. + @param [in] selectionIndex + Index of selection (0 based). + @param [out] startOffset + 0 based offset of first selected character + @param [out] endOffset + 0 based offset of one past the last selected character. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT selection + ( + [in] long selectionIndex, + [out] long *startOffset, + [out, retval] long *endOffset + ); + + /** @brief Returns the substring between the two given indices. + + The substring starts with the character at startOffset (inclusive) and up to + the character at endOffset (exclusive), if startOffset is less or equal + endOffset. If endOffset is lower than startOffset, the result is the same + as a call with the two arguments being exchanged. + + The whole text can be requested by passing the indices zero and + IAccessibleText::nCharacters. If both indices have the same value, an empty + string is returned. + @param [in] startOffset + Index of the first character to include in the returned string. The valid range + is 0..length. + @param [in] endOffset + Index of the last character to exclude in the returned string. The valid range + is 0..length. + @param [out] text + Returns the substring starting with the character at startOffset (inclusive) + and up to the character at endOffset (exclusive), if startOffset is less than + or equal to endOffset. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note + @li The returned string may be longer than endOffset-startOffset bytes if text + contains multi-byte characters. + @li Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + */ + [propget] HRESULT text + ( + [in] long startOffset, + [in] long endOffset, + [out, retval] BSTR *text + ); + + /** @brief Returns a text portion before the given position. + + Returns the substring of the specified text type that is located before the + given character and does not include it. The result of this method should be + same as a result for IAccessibleText::textAtOffset with a suitably decreased + index value. + + For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete + word that is closest to and located before offset is returned. + + If the index is valid, but no text is found, S_FALSE is returned along with out + values of 0, 0, and a NULL pointer. This would happen for boundary types other + than character when the text consists entirely of whitespace. + + @param [in] offset + Index of the character for which to return the text part before it. The index + character will not be part of the returned string. The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + @param [in] boundaryType + The type of the text portion to return. See ::IA2TextBoundaryType for the + complete list. + @param [out] startOffset + 0 based offset of first character. + @param [out] endOffset + 0 based offset of one past the last character. + @param [out] text + Returns the requested text portion. This portion may be empty or invalid when + no appropriate text portion is found or text type is invalid. + @retval S_OK + @retval S_FALSE if the requested boundary type is not implemented, such as + ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return; + [out] values are 0s and NULL respectively + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT textBeforeOffset + ( + [in] long offset, + [in] enum IA2TextBoundaryType boundaryType, + [out] long *startOffset, + [out] long *endOffset, + [out, retval] BSTR *text + ); + + /** @brief Returns a text portion after the given position. + + Returns the substring of the specified text type that is located after the + given character and does not include it. The result of this method should be + same as a result for IAccessibleText::textAtOffset with a suitably increased + index value. + + For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete + word that is closest to and located after offset is returned. + + If the index is valid, but no text is found, S_FALSE is returned along with out + values of 0, 0, and a NULL pointer. This would happen for boundary types other + than character when the text consists entirely of whitespace. + + @param [in] offset + Index of the character for which to return the text part after it. The index + character will not be part of the returned string. The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + @param [in] boundaryType + The type of the text portion to return. See ::IA2TextBoundaryType for the complete + list. + @param [out] startOffset + 0 based offset of first character. + @param [out] endOffset + 0 based offset of one past the last character. + @param [out] text + Returns the requested text portion. This portion may be empty or invalid when + no appropriate text portion is found or text type is invalid. + @retval S_OK + @retval S_FALSE if the requested boundary type is not implemented, such as + ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return; + [out] values are 0s and NULL respectively + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT textAfterOffset + ( + [in] long offset, + [in] enum IA2TextBoundaryType boundaryType, + [out] long *startOffset, + [out] long *endOffset, + [out, retval] BSTR *text + ); + + /** @brief Returns a text portion that spans the given position. + + Returns the substring defined by the specified boundary type at the specified + offset. Refer to IA2TextBoundaryType for more details. + + For the word boundary type the returned string will contain the word at the + offset if the offset is inside a word and will contain the word before the + offset if the offset is not inside a word. All offsets from the first to the + last characters of a word are considered inside the word. Boundary types of + sentence and paragraph should exhibit similar behavior. + + If the index is valid, but no text is found, S_FALSE is returned along with out + values of 0, 0, and a NULL pointer. This would happen for boundary types other + than character when the text consists entirely of whitespace. + + @param [in] offset + Index of the character for which to return the text part it belongs to. The valid + range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + @param [in] boundaryType + The type of the text portion to return. See ::IA2TextBoundaryType for the complete + list. + @param [out] startOffset + 0 based offset of first character. + @param [out] endOffset + 0 based offset of one past the last character. + @param [out] text + Returns the requested text portion. This portion may be empty or invalid when + no appropriate text portion is found or text type is invalid. + @retval S_OK + @retval S_FALSE if the requested boundary type is not implemented, such as + ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return; + [out] values are 0s and NULL respectively + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT textAtOffset + ( + [in] long offset, + [in] enum IA2TextBoundaryType boundaryType, + [out] long *startOffset, + [out] long *endOffset, + [out, retval] BSTR *text + ); + + /** @brief Unselects a range of text. + @param [in] selectionIndex + Index of selection to remove (0 based). + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT removeSelection + ( + [in] long selectionIndex + ); + + /** @brief Sets the position of the caret. + + The caret position/offset is that of the character logically following it, + e.g. to the right of it in a left to right language. + + Setting the caret position may or may not alter the current selection. A + change of the selection is notified to the accessibility event listeners with + an ::IA2_EVENT_TEXT_SELECTION_CHANGED event. + + When the new caret position differs from the old one (which, of course, is the + standard case) this is notified to the accessibility event listeners with an + ::IA2_EVENT_TEXT_CARET_MOVED event. + @param [in] offset + The new index of the caret. This caret is actually placed to the left side of + the character with that index. An index of 0 places the caret so that the next + insertion goes before the first character. An index of IAccessibleText::nCharacters + leads to insertion after the last character. Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + @retval S_OK + @retval E_FAIL if the caret cannot be set + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT setCaretOffset + ( + [in] long offset + ); + + /** @brief Changes the bounds of an existing selection. + @param [in] selectionIndex + Index of selection to change (0 based) + @param [in] startOffset + New starting offset (0 based) + @param [in] endOffset + New ending offset (0 based) - the offset of the character just past the last character of the selection. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + */ + HRESULT setSelection + ( + [in] long selectionIndex, + [in] long startOffset, + [in] long endOffset + ); + + /** @brief Returns total number of characters. + + Note that this may be different than the total number of bytes required to store the + text, if the text contains multi-byte characters. + @param [out] nCharacters + @retval S_OK + */ + [propget] HRESULT nCharacters + ( + [out, retval] long *nCharacters + ); + + /** @brief Makes a specific part of string visible on screen. + @param [in] startIndex + 0 based character offset. + @param [in] endIndex + 0 based character offset - the offset of the character just past the last character of the string. + @param [in] scrollType + Defines where the object should be placed on the screen. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + */ + HRESULT scrollSubstringTo + ( + [in] long startIndex, + [in] long endIndex, + [in] enum IA2ScrollType scrollType + ); + + /** @brief Moves the top left of a substring to a specified location. + + @param [in] startIndex + 0 based character offset. + @param [in] endIndex + 0 based character offset - the offset of the character just past the last character of the string. + @param [in] coordinateType + Specifies whether the coordinates are relative to the screen or the parent object. + @param [in] x + Defines the x coordinate. + @param [in] y + Defines the y coordinate. + @retval S_OK + @retval S_FALSE if the object is already at the specified location. + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. + */ + HRESULT scrollSubstringToPoint + ( + [in] long startIndex, + [in] long endIndex, + [in] enum IA2CoordinateType coordinateType, + [in] long x, + [in] long y + ); + + /** @brief Returns any inserted text. + + Provided for use by the ::IA2_EVENT_TEXT_INSERTED and ::IA2_EVENT_TEXT_UPDATED + event handlers. + + This data is only guaranteed to be valid while the thread notifying the event + continues. Once the handler has returned, the validity of the data depends on + how the server manages the life cycle of its objects. Also, note that the server + may have different life cycle management strategies for controls depending on + whether or not a control manages its children. Lists, trees, and tables can have + a large number of children and thus it's possible that the child objects for those + controls would only be created as needed. Servers should document their life cycle + strategy as this will be of interest to assistive technology or script engines + accessing data out of process or from other threads. Servers only need to save the + last inserted block of text and a scope of the entire application is adequate. + + @param [out] newText + The text that was just inserted. + @retval S_OK + @retval S_FALSE If there is nothing to return, the values of IA2TextSegment + struct are set as follows: text = NULL, start = 0, end = 0. + + */ + [propget] HRESULT newText + ( + [out, retval] IA2TextSegment *newText + ); + + /** @brief Returns any removed text. + + Provided for use by the IA2_EVENT_TEXT_REMOVED/UPDATED event handlers. + + This data is only guaranteed to be valid while the thread notifying the event + continues. Once the handler has returned, the validity of the data depends on + how the server manages the life cycle of its objects. Also, note that the server + may have different life cycle management strategies for controls depending on + whether or not a control manages its children. Lists, trees, and tables can have + a large number of children and thus it's possible that the child objects for those + controls would only be created as needed. Servers should document their life cycle + strategy as this will be of interest to assistive technology or script engines + accessing data out of process or from other threads. Servers only need to save the + last removed block of text and a scope of the entire application is adequate. + + @param [out] oldText + The text that was just removed. + @retval S_OK + @retval S_FALSE If there is nothing to return, the values of IA2TextSegment + struct are set as follows: text = NULL, start = 0, end = 0. + */ + [propget] HRESULT oldText + ( + [out, retval] IA2TextSegment *oldText + ); + +} +/************************************************************************* + * + * File Name (AccessibleText2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + + +/** @brief This interface gives read-only access to text. + + The %IAccessibleText2 interface extends the functionality of the + %IAccessibleText interface. +*/ +[object, uuid(9690A9CC-5C80-4DF5-852E-2D5AE4189A54)] +interface IAccessibleText2 : IAccessibleText +{ + + /** @brief Returns the range and of the specified set of attributes. + + Return the range (start and end offsets) and text attributes that correspond + to the given attributes filter at the given offset. + + @param [in] offset + The offset at which to search for the attributes specified in the filter. + @param [in] filter + The requested attribute names. The filter format is "attribute1, attribute2". + @param [out] startOffset + The starting (0-based) offset of the text containing the specified attributes. + @param [out] endOffset + The (0-based) offset one past the last character of the text containing the + specified attributes. + @param [out] attributeValues + The values of the requested attributes. + @retval S_OK + @retval S_FALSE if nothing to return, [out] values are -1, -1, NULL respectively. + @retval E_INVALIDARG if bad [in] passed. + */ + [propget] HRESULT attributeRange + ( + [in] long offset, + [in] BSTR filter, + [out] long *startOffset, + [out] long *endOffset, + [out, retval] BSTR *attributeValues + ); + +} +/************************************************************************* + * + * File Name (accessibleTextSelectionContainer.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2022 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** + This structure represents a single text selection within an accessibility + subtree. This could be within a document, or the subtree of a document. This + selection is defined by two points in the content, where each one is defined by + an accessible object supporting the IAccessibleTextInterface and an + IAccessibleText character offset relative to it. + + The end object must appear after the start object in the accessibility tree, + i.e. the end object must be reachable from the start object by navigating + forward (next, first child etc). + + This struct also contains a `startIsActive` boolean, to communicate if the + start of the selection is the active point or not. + + The active point corresponds to the user's focus or point of interest. The user + moves the active point to expand or collapse the range. The anchor point is + the other point of the range and typically remains constant. In most cases, + anchor is the start of the range and active is the end. However, when selecting + backwards (e.g. pressing shift+left arrow in a text field), the start of the + range is the active point, as the user moves this to manipulate the selection. + */ +typedef struct IA2TextSelection { + IAccessibleText* startObj; + long startOffset; + IAccessibleText* endObj; + long endOffset; + boolean startIsActive; +} IA2TextSelection; + +/** + @brief an interface to get and set text selections in a document. + this interface can be supported on any object that also supports the + IAccessibleText and/or IAccessibleHypertext interfaces. This could be a + document, any subtree of a document, or a text input control. +*/ +[object, uuid(2118B599-733F-43D0-A569-0B31D125ED9A)] +interface IAccessibleTextSelectionContainer : IUnknown +{ + /** + @brief Returns an array of selections within this subtree. + @param [out] selections + The array of selections, allocated by the server. The client must free it + with CoTaskMemFree. The selections returned will be cropped to fit entirely + within this subtree, i.e. to only reference descendant objects, even if the + physical selection may reach outside of this subtree. In the case where the + physical selection is entirely outside the subtree, an empty array will be + returned. + @param [out] nSelections + the array length + @retval S_OK + @retval S_FALSE returned if there are no selections within this subtree, or + the physical selection is entirely outside of this subtree. + */ + [propget] HRESULT selections + ( + [out, size_is(,*nSelections)] IA2TextSelection **selections, + [out, retval] long *nSelections + ); + + /** + @brief makes 1 or more selections within this subtree denoted by the given + array of IA2TextSelections. + Any existing physical selection (inside or outside this subtree) is replaced + by the new selections. All objects within the given selection ranges must be + descendants of this subtree, otherwise E_INVALIDARG will be returned. + @param [in] nSelections + The length of the array containing the selection ranges. + @param [in] selections + The array of selection ranges. + @retval S_OK Returned if the selections were made successfully. + @retval S_FALSE Returned if the selections could not be made. + @retval E_INVALIDARG Returned if any of the input arguments are invalid, or + any of the objects in the given ranges are outside of this subtree. + */ + HRESULT setSelections + ( + [in] long nSelections, + [in, size_is(nSelections)] IA2TextSelection* selections + ); + +} +/************************************************************************* + * + * File Name (AccessibleEditableText.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2012 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** @brief This interface provides clipboard capability to text objects. + + This interface is typically used in conjunction with the IAccessibleText + interface and complements that interface with the additional capability of + clipboard operations. Note that even a read only text object can support + the copy capability so this interface is not limited to editable objects. + + The substrings used with this interface are specified as follows: + If startOffset is less than endOffset, the substring starts with the + character at startOffset and ends with the character just before endOffset. + If endOffset is lower than startOffset, the result is the same as a call + with the two arguments exchanged. The whole text can be defined by passing + the indices zero and IAccessibleText::nCharacters. If both indices have the + same value, an empty string is defined. + + Refer to the @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about a special offset constant that can be used in %IAccessibleEditableText methods. +*/ +[object, uuid(A59AA09A-7011-4b65-939D-32B1FB5547E3)] +interface IAccessibleEditableText : IUnknown +{ + + /** @brief Copies the text range into the clipboard. + + The selection is set to the specified offsets and then selection is copied into + the system clipboard. + + @param [in] startOffset + Start index of the text to moved into the clipboard. + The valid range is 0..length. + @param [in] endOffset + End index of the text to moved into the clipboard. + The valid range is 0..length. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + @deprecated This function is available via the application's GUI. + */ + HRESULT copyText + ( + [in] long startOffset, + [in] long endOffset + ); + + /** @brief Deletes a range of text. + + The text between and including the two given indices is deleted + from the text represented by this object. + + @param [in] startOffset + Start index of the text to be deleted. + The valid range is 0..length. + @param [in] endOffset + End index of the text to be deleted. + The valid range is 0..length. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + */ + HRESULT deleteText + ( + [in] long startOffset, + [in] long endOffset + ); + + /** @brief Inserts text at the specified position. + + The specified string is inserted at the given index into the text + represented by this object. + + @param [in] offset + Index at which to insert the text. + The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + @param [in] text + Text that is inserted. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT insertText + ( + [in] long offset, + [in] BSTR *text + ); + + /** @brief Deletes a range of text and copies it to the clipboard. + + The selection is set to the specified offsets, the selection is then copied into + the system clipboard, and then the selection is deleted. + + @param [in] startOffset + Start index of the text to be deleted. + The valid range is 0..length. + @param [in] endOffset + End index of the text to be deleted. + The valid range is 0..length. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + @deprecated This function is available via the application's GUI. + */ + HRESULT cutText + ( + [in] long startOffset, + [in] long endOffset + ); + + /** @brief Pastes content from the clipboard. + + Any existing selection is removed, the clipboard content is then pasted into + this object's text at the given offset. This method is similar to the insertText + method. If the index is not valid the system clipboard content is not inserted. The + behavior is the same as when Ctrl+V is used, i.e. the pasted contents are not + necessarily plain text. + + @param [in] offset + Index at which to insert the content from the system clipboard into + the text represented by this object. + The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @deprecated This function is available via the application's GUI. + */ + HRESULT pasteText + ( + [in] long offset + ); + + /** @brief Replaces text. + + The text between the two given indices is replaced by the specified + replacement string. This method is equivalent to calling first + IAccessibleEditableText::deleteText with the two indices and then + calling IAccessibleEditableText::insertText with the replacement text + at the start index. + + @param [in] startOffset + Start index of the text to be replaced. + The valid range is 0..length. + @param [in] endOffset + End index of the text to be replaced. + The valid range is 0..length. + @param [in] text + The Text that replaces the text between the given indices. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + */ + HRESULT replaceText + ( + [in] long startOffset, + [in] long endOffset, + [in] BSTR *text + ); + + /** @brief Replaces the attributes of a text range by the given set of attributes. + + Sets the attributes for the text between the two given indices. The old + attributes are replaced by the new list of attributes. + + @param [in] startOffset + Start index of the text whose attributes are modified. + The valid range is 0..length. + @param [in] endOffset + End index of the text whose attributes are modified. + The valid range is 0..length. + @param [in] attributes + Set of attributes that replaces the old list of attributes of + the specified text portion. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + */ + HRESULT setAttributes + ( + [in] long startOffset, + [in] long endOffset, + [in] BSTR *attributes + ); +} + +/************************************************************************* + * + * File Name (AccessibleHyperlink.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** @brief This interface represents hyperlinks. + + This interface represents a hyperlink associated with a single substring + of text or single non-text object. Non-text objects can have either a + single link or a collection of links such as when the non-text object is + an image map. + + Linked objects and anchors are implementation dependent. This interface is derived + from IAccessibleAction. IAccessibleAction::nActions is one greater than the + maximum value for the indices used with the methods of this interface. + + Furthermore, the object that implements this interface has to be connected + implicitly or explicitly with an object that implements IAccessibleText. + IAccessibleHyperlink::startIndex and IAccessibleHyperlink::endIndex are + indices with respect to the text exposed by IAccessibleText. + + This interface provides access to a single object which can have multiple actions. + An example is an image map which is an image with multiple links each of which is + associated with a separate non-overlapping area of the image. This interface could + also be applied to other kinds of objects with multiple actions such as "smart tags" + which are objects, typically strings, which have multiple actions such as + "Activate URI", "Bookmark URI", etc. + + An interesting use case is an image map where each area is associated with multiple + actions, e.g. an image map of smart tags. In this case you would have to implement + two levels of accessible hyperlinks. The first level hyperlinks would only implement + anchor and anchorTarget. The anchors would all reference the image object. The + anchorTargets would reference the second level accessible hyperlink objects. None + of the IAccessibleAction methods would be implemented on the first level hyperlink + objects. The second level hyperlink objects would implement the IAccessibleAction + methods. Their anchors would also reference the image object and their anchorTargets + would reference URLs or the objects that would be activated. + + This use case demonstrates that in some cases there is no need for IAccessibleHyperlink + to derive from IAccessibleAction. As a result it may be removed in a later version of + the IDL and it is suggested that implementations should not rely on the inheritance. + +*/ +[object, uuid(01C20F2B-3DD2-400f-949F-AD00BDAB1D41)] +interface IAccessibleHyperlink : IAccessibleAction +{ + + /** @brief Returns an object that represents the link anchor, as appropriate + for the link at the specified index. + @param [in] index + A 0 based index identifies the anchor when, as in the case of an image map, + there is more than one link represented by this object. The valid maximal + index is indicated by IAccessibleAction::nActions. + @param [out] anchor + This is an implementation dependent value. For example, for a text link this + method could return the substring of the containing string where the substring + is overridden with link behavior, and for an image link this method could return + an IUnknown VARIANT for IAccessibleImage. See the section about + @ref _variants "VARIANTs" for additional information. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT anchor + ( + [in] long index, + [out, retval] VARIANT *anchor + ); + + /** @brief Returns an object representing the target of the link, as appropriate + for the link at the specified index. + @param [in] index + A 0 based index identifies the anchor when, as in the case of an image map, + there is more than one link represented by this object. The valid maximal + index is indicated by IAccessibleAction::nActions. + @param [out] anchorTarget + This is an implementation dependent value. For example this method could + return a BSTR VARIANT of the URI. Alternatively this method could return an + IUnknown VARIANT of a COM interface representing a target object to be + activated when the link is activated. See the section about + @ref _variants "VARIANTs" for additional information. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT anchorTarget + ( + [in] long index, + [out, retval] VARIANT *anchorTarget + ); + + /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink starts. + + The returned value is related to the IAccessibleText interface of the object that + owns this hyperlink. + @param [out] index + @retval S_OK + */ + [propget] HRESULT startIndex + ( + [out, retval] long *index + ); + + /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink ends. + + The returned value is related to the IAccessibleText interface of the object that + owns this hyperlink. The character at the index is not part of the hypertext. + @param [out] index + @retval S_OK + */ + [propget] HRESULT endIndex + ( + [out, retval] long *index + ); + + /** @brief Returns whether the target object referenced by this link is still valid. + + This is a volatile state that may change without sending an appropriate event. + Returns TRUE if the referenced target is still valid and FALSE otherwise. + + This has also been used to indicate whether or not the URI of the anchorTarget + is malformed. + + @param [out] valid + If false, one or more of the object's links are invalid. + If true, all of the object's links are valid. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is FALSE + @note This method is not being used, is deprecated, and should not be implemented or + used. It is likely that this method will be removed in a later version of the IDL. + */ + [propget] HRESULT valid + ( + [out, retval] boolean *valid + ); +} +/************************************************************************* + * + * File Name (AccessibleHypertext.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + + +/** @brief This interface exposes information about hypertext in a document. + + The %IAccessibleHypertext interface is the main interface to expose + hyperlinks in a document, typically a text document, that are used + to reference other documents. A typical implementation is to implement + this interface on the smallest text object such as a paragraph of text. +*/ +[object, uuid(6B4F8BBF-F1F2-418a-B35E-A195BC4103B9)] +interface IAccessibleHypertext : IAccessibleText +{ + + /** @brief Returns the number of links and link groups contained within this hypertext + paragraph. + @param [out] hyperlinkCount + The number of links and link groups within this hypertext paragraph. + Returns 0 if there is no link. + @retval S_OK + */ + [propget] HRESULT nHyperlinks + ( + [out, retval] long *hyperlinkCount + ); + + /** @brief Returns the specified link. + + The returned IAccessibleHyperlink object encapsulates the hyperlink and + provides several kinds of information describing it. + @param [in] index + This 0 based index specifies the hyperlink to return. + @param [out] hyperlink + If the given index is valid, i.e. lies in the interval from 0 to the number + of links minus one, a reference to the specified hyperlink object is returned. + If the index is invalid then a NULL pointer is returned. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT hyperlink + ( + [in] long index, + [out, retval] IAccessibleHyperlink **hyperlink + ); + + /** @brief Returns the index of the hyperlink that is associated with this character index. + + This is the case when a link spans the given character index. + @param [in] charIndex + A 0 based index of the character for which to return the link index. If + IAccessibleText is used to represent the text containing the link, then the + character index is only valid if it is greater than or equal to zero and + lower than the number of characters in the text. + @param [out] hyperlinkIndex + Returns the 0 based index of the hyperlink that is associated with this + character index, or -1 if charIndex is not on a link. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is -1 + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT hyperlinkIndex + ( + [in] long charIndex, + [out, retval] long *hyperlinkIndex + ); + +} +/************************************************************************* + * + * File Name (AccessibleHypertext2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + + +/** @brief This interface exposes information about hypertext in a document. + + The %IAccessibleHypertext2 interface extends the functionality of the + %IAccessibleHypertext interface. +*/ +[object, uuid(CF64D89F-8287-4B44-8501-A827453A6077)] +interface IAccessibleHypertext2 : IAccessibleHypertext +{ + + /** @brief Returns the links for this object. + + The returned IAccessibleHyperlink objects encapsulate the hyperlink and + provides several kinds of information describing it. + + @param [out] hyperlinks + This array is allocated by the server. The client must free it with CoTaskMemFree. + @param [out] nHyperlinks + The number of links returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are no links, [out] values are NULL and 0 respectively + */ + [propget] HRESULT hyperlinks + ( + [out, size_is(,*nHyperlinks)] IAccessibleHyperlink ***hyperlinks, + [out, retval] long *nHyperlinks + ); + +} +/************************************************************************* + * + * File Name (AccessibleTable.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + + +/** @brief This interface gives access to a two-dimensional table. + + Typically all accessible objects that represent cells or cell-clusters of a table + will be at the same time children of the table. In this case IAccessible2::indexInParent + will return the child index which then can be used when calling IAccessibleTable::rowIndex + and IAccessibleTable::columnIndex. + + However, in some cases that kind of implementation will not be possible. When + the table cells are not direct children of a table, the object representing + the cell can define a "table-cell-index" object attribute identifying the 0 + based table cell index. This object attribute is obtained by parsing the + attribute string returned by IAccessible2::attributes. The "table-cell-index" + attribute can be used just like a child index of the typical case. ATs should + first test for the presence of the "table-cell-index" attribute and if it is not + present then IAccessible2::indexInParent can be used as in the typical case + where cells are direct children of the table. + + The range of valid coordinates for this interface are implementation dependent. + However, that range includes at least the intervals from the from the first row + or column with the index 0 up to the last (but not including) used row or column + as returned by IAccessibleTable::nRows and IAccessibleTable::nColumns. + + Note that newer implementations are now using IAccessibleTable2 and IAccessibleTableCell + rather than this interface. +*/ +[object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)] +interface IAccessibleTable : IUnknown +{ + + /** @brief Returns the accessible object at the specified row and column in + the table. This object could be an IAccessible or an IAccessible2. + @param [in] row + The 0 based row index for which to retrieve the cell. + @param [in] column + The 0 based column index for which to retrieve the cell. + @param [out] accessible + If both row and column index are valid then the corresponding accessible + object is returned that represents the requested cell regardless of whether + the cell is currently visible (on the screen). + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + */ + [propget] HRESULT accessibleAt + ( + [in] long row, + [in] long column, + [out, retval] IUnknown **accessible + ); + + /** @brief Returns the caption for the table. The returned object could be + an IAccessible or an IAccessible2. + @param [out] accessible + If the table has a caption then a reference to it is returned, else a NULL + pointer is returned. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT caption + ( + [out, retval] IUnknown **accessible + ); + + /** @brief Translates the given row and column indexes into the corresponding cell index. + @param [in] rowIndex + 0 based row index for the cell. + @param [in] columnIndex + 0 based column index for the cell. + @param [out] cellIndex + Returns the 0 based index of the cell at the specified row and column indexes. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is 0 + @note The returned value is not necessarily a child index of the immediate parent. + In cases where the table cells are not direct children of the table the index + is actually the cell index, i.e. conceptually it's an index into a one dimensional + array of cells laid out in row order. + */ + [propget] HRESULT childIndex + ( + [in] long rowIndex, + [in] long columnIndex, + [out, retval] long *cellIndex + ); + + /** @brief Returns the description text of the specified column in the table. + @param [in] column + The 0 based index of the column for which to retrieve the description. + @param [out] description + Returns the description text of the specified column in the table if such a + description exists. Otherwise a NULL pointer is returned. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + */ + [propget] HRESULT columnDescription + ( + [in] long column, + [out, retval] BSTR *description + ); + + /** @brief Returns the number of columns occupied by the accessible object + at the specified row and column in the table. + + The result is greater than 1 if the specified cell spans multiple columns. + @param [in] row + 0 based row index of the accessible for which to return the column extent. + @param [in] column + 0 based column index of the accessible for which to return the column extent. + @param [out] nColumnsSpanned + Returns the 1 based column extent of the specified cell. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is 0 + */ + [propget] HRESULT columnExtentAt + ( + [in] long row, + [in] long column, + [out, retval] long *nColumnsSpanned + ); + + /** @brief Returns the column headers as an %IAccessibleTable object. + + Content and size of the returned table are implementation dependent. + @param [out] accessibleTable + The column header + @param [out] startingRowIndex + The 0 based row index where the header starts, usually 0. + @retval S_OK + @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively + */ + [propget] HRESULT columnHeader + ( + [out] IAccessibleTable **accessibleTable, + [out, retval] long *startingRowIndex + ); + + /** @brief Translates the given cell index into the corresponding column index. + @param [in] cellIndex + 0 based index of the cell in the parent or closest ancestor table. Typically this + is the value returned from IAccessible2::indexInParent, but in the case where the + table cells are not direct children of the table this is the cell index specified + by the "table-cell-index" object attribute obtained from parsing the attributes + string returned by calling IAccessible2::attributes on the cell object. + @param [out] columnIndex + Returns the 0 based column index of the cell of the specified child or the index of + the first column if the child spans multiple columns. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is 0 + */ + [propget] HRESULT columnIndex + ( + [in] long cellIndex, + [out, retval] long *columnIndex + ); + + /** @brief Returns the total number of columns in table + @param [out] columnCount + Number of columns in table (including columns outside the current viewport) + @retval S_OK + */ + [propget] HRESULT nColumns + ( + [out, retval] long *columnCount + ); + + /** @brief Returns the total number of rows in table + @param [out] rowCount + Number of rows in table (including rows outside the current viewport) + @retval S_OK + */ + [propget] HRESULT nRows + ( + [out, retval] long *rowCount + ); + + /** @brief Returns the total number of selected cells + @param [out] cellCount + Number of cells currently selected + @retval S_OK + */ + [propget] HRESULT nSelectedChildren + ( + [out, retval] long *cellCount + ); + + /** @brief Returns the total number of selected columns + @param [out] columnCount + Number of columns currently selected + @retval S_OK + */ + [propget] HRESULT nSelectedColumns + ( + [out, retval] long *columnCount + ); + + /** @brief Returns the total number of selected rows + @param [out] rowCount + Number of rows currently selected + @retval S_OK + */ + [propget] HRESULT nSelectedRows + ( + [out, retval] long *rowCount + ); + + /** @brief Returns the description text of the specified row in the table. + @param [in] row + The 0 based index of the row for which to retrieve the description. + @param [out] description + Returns the description text of the specified row in the table if such a + description exists. Otherwise a NULL pointer is returned. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + */ + [propget] HRESULT rowDescription + ( + [in] long row, + [out, retval] BSTR *description + ); + + /** @brief Returns the number of rows occupied by the accessible object + at the specified row and column in the table. + + The result is greater than 1 if the specified cell spans multiple rows. + @param [in] row + 0 based row index of the accessible for which to return the row extent. + @param [in] column + 0 based column index of the accessible for which to return the row extent. + @param [out] nRowsSpanned + Returns the row extent of the specified cell. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is 0 + */ + [propget] HRESULT rowExtentAt + ( + [in] long row, + [in] long column, + [out, retval] long *nRowsSpanned + ); + + /** @brief Returns the row headers as an %IAccessibleTable object. + + Content and size of the returned table are implementation dependent. + @param [out] accessibleTable + The row header. + @param [out] startingColumnIndex + The 0 based column index where the header starts, usually 0. + @retval S_OK + @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively + */ + [propget] HRESULT rowHeader + ( + [out] IAccessibleTable **accessibleTable, + [out, retval] long *startingColumnIndex + ); + + /** @brief Translates the given cell index into a row index. + @param [in] cellIndex + 0 based index of the cell in the parent or closest ancestor table. Typically this + is the value returned from IAccessible2::indexInParent, but in the case where the + table cells are not direct children of the table this is the cell index specified + by the "table-cell-index" object attribute obtained from parsing the attributes + string returned by calling IAccessible2::attributes on the cell object. + @param [out] rowIndex + 0 based row index + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is 0 + */ + [propget] HRESULT rowIndex + ( + [in] long cellIndex, + [out, retval] long *rowIndex + ); + + /** @brief Returns a list of cell indexes currently selected (0 based). + @param [in] maxChildren + This parameter is ignored. Refer to @ref _arrayConsideration + "Special Consideration when using Arrays" for more details. + @param [out] children + An array of cell indexes of selected cells (each index is 0 based), + allocated by the server. The client must free it with CoTaskMemFree. + @param [out] nChildren + The number of cell indexes returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are none, [out] values are NULL and 0 respectively + */ + [propget] HRESULT selectedChildren + ( + [in] long maxChildren, + [out, size_is(,maxChildren), length_is(,*nChildren)] long **children, + [out, retval] long *nChildren + ); + + /** @brief Returns a list of column indexes currently selected (0 based). + @param [in] maxColumns + This parameter is ignored. Refer to @ref _arrayConsideration + "Special Consideration when using Arrays" for more details. + @param [out] columns + An array of column indexes of selected columns (each index is 0 based), allocated + by the server. The client must free it with CoTaskMemFree. + @param [out] nColumns + The number of column indexes returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are none, [out] values are NULL and 0 respectively + */ + [propget] HRESULT selectedColumns + ( + [in] long maxColumns, + [out, size_is(,maxColumns), length_is(,*nColumns)] long **columns, + [out, retval] long *nColumns + ); + + /** @brief Returns a list of row indexes currently selected (0 based). + @param [in] maxRows + This parameter is ignored. Refer to @ref _arrayConsideration + "Special Consideration when using Arrays" for more details. + @param [out] rows + An array of row indexes of selected rows (each index is 0 based), allocated + by the server. The client must free it with CoTaskMemFree. + @param [out] nRows + The number of row indexes returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are none, [out] values are NULL and 0 respectively + */ + [propget] HRESULT selectedRows + ( + [in] long maxRows, + [out, size_is(,maxRows), length_is(,*nRows)] long **rows, + [out, retval] long *nRows + ); + + /** @brief Returns the summary description of the table. The returned object could be + an IAccessible or an IAccessible2. + @param [out] accessible + Returns a reference to an implementation dependent accessible object + representing the table's summary or a NULL pointer if the table + does not support a summary. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT summary + ( + [out, retval] IUnknown **accessible + ); + + /** @brief Returns a boolean value indicating whether the specified column is + completely selected. + @param [in] column + 0 based index of the column for which to determine whether it is selected. + @param [out] isSelected + Returns TRUE if the specified column is selected completely and FALSE otherwise. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE + */ + [propget] HRESULT isColumnSelected + ( + [in] long column, + [out, retval] boolean *isSelected + ); + + /** @brief Returns a boolean value indicating whether the specified row is completely + selected. + @param [in] row + 0 based index of the row for which to determine whether it is selected. + @param [out] isSelected + Returns TRUE if the specified row is selected completely and FALSE otherwise. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE + */ + [propget] HRESULT isRowSelected + ( + [in] long row, + [out, retval] boolean *isSelected + ); + + /** @brief Returns a boolean value indicating whether the specified cell is selected. + @param [in] row + 0 based index of the row for the cell to determine whether it is selected. + @param [in] column + 0 based index of the column for the cell to determine whether it is selected. + @param [out] isSelected + Returns TRUE if the specified cell is selected and FALSE otherwise. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE + */ + [propget] HRESULT isSelected + ( + [in] long row, + [in] long column, + [out, retval] boolean *isSelected + ); + + /** @brief Selects a row and unselects all previously selected rows. + @param [in] row + 0 based index of the row to be selected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT selectRow + ( + [in] long row + ); + + /** @brief Selects a column and unselects all previously selected columns. + @param [in] column + 0 based index of the column to be selected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT selectColumn + ( + [in] long column + ); + + /** @brief Unselects one row, leaving other selected rows selected (if any). + @param [in] row + 0 based index of the row to be unselected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT unselectRow + ( + [in] long row + ); + + /** @brief Unselects one column, leaving other selected columns selected (if any). + @param [in] column + 0 based index of the column to be unselected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT unselectColumn + ( + [in] long column + ); + + /** @brief Given a cell index, gets the row and column indexes and extents of a cell + and whether or not it is selected. + + This is a convenience function. It is not mandatory to implement it. + @param [in] index + 0 based index of this cell in the table. + @param [out] row + 0 based row index. + @param [out] column + 0 based column index. + @param [out] rowExtents + Number of cells spanned by this cell in this row. + @param [out] columnExtents + Number of cells spanned by this cell in this column. + @param [out] isSelected + Indicates if the specified cell is selected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and FALSE respectively + */ + [propget] HRESULT rowColumnExtentsAtIndex + ( + [in] long index, + [out] long *row, + [out] long *column, + [out] long *rowExtents, + [out] long *columnExtents, + [out, retval] boolean *isSelected + ); + + /** @brief Returns the type and extents describing how a table changed. + + Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler. + + This data is only guaranteed to be valid while the thread notifying the event + continues. Once the handler has returned, the validity of the data depends on + how the server manages the life cycle of its objects. Also, note that the server + may have different life cycle management strategies for controls depending on + whether or not a control manages its children. Lists, trees, and tables can have + a large number of children and thus it's possible that the child objects for those + controls would only be created as needed. Servers should document their life cycle + strategy as this will be of interest to assistive technology or script engines + accessing data out of process or from other threads. Servers only need to save the + most recent row and column values associated with the change and a scope of the + entire application is adequate. + + @param [out] modelChange + A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn). + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT modelChange + ( + [out, retval] IA2TableModelChange *modelChange + ); + +} +/************************************************************************* + * + * File Name (AccessibleTable2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2012 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + + +/** @brief This interface gives access to a two-dimensional table. + + Please also refer to the IAccessibleTableCell interface. + + If you want to support older applications you should also support the + IAccessibleTable interface. +*/ +[object, uuid(6167f295-06f0-4cdd-a1fa-02e25153d869)] +interface IAccessibleTable2 : IUnknown +{ + + /** @brief Returns the accessible object at the specified row and column in + the table. This object could be an IAccessible or an IAccessible2. + @param [in] row + The 0 based row index for which to retrieve the cell. + @param [in] column + The 0 based column index for which to retrieve the cell. + @param [out] cell + If both row and column index are valid then the corresponding accessible + object is returned that represents the requested cell regardless of whether + the cell is currently visible (on the screen). + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT cellAt + ( + [in] long row, + [in] long column, + [out, retval] IUnknown **cell + ); + + /** @brief Returns the caption for the table. The returned object could be + an IAccessible or an IAccessible2. + @param [out] accessible + If the table has a caption then a reference to it is returned, else a NULL + pointer is returned. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @deprecated use a describedBy relation + */ + [propget] HRESULT caption + ( + [out, retval] IUnknown **accessible + ); + + /** @brief Returns the description text of the specified column in the table. + @param [in] column + The 0 based index of the column for which to retrieve the description. + @param [out] description + Returns the description text of the specified column in the table if such a + description exists. Otherwise a NULL pointer is returned. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT columnDescription + ( + [in] long column, + [out, retval] BSTR *description + ); + + + /** @brief Returns the total number of columns in table + @param [out] columnCount + Number of columns in table (including columns outside the current viewport) + @retval S_OK + */ + [propget] HRESULT nColumns + ( + [out, retval] long *columnCount + ); + + /** @brief Returns the total number of rows in table + @param [out] rowCount + Number of rows in table (including rows outside the current viewport) + @retval S_OK + */ + [propget] HRESULT nRows + ( + [out, retval] long *rowCount + ); + + /** @brief Returns the total number of selected cells + @param [out] cellCount + Number of cells currently selected + @retval S_OK + */ + [propget] HRESULT nSelectedCells + ( + [out, retval] long *cellCount + ); + + /** @brief Returns the total number of selected columns + @param [out] columnCount + Number of columns currently selected + @retval S_OK + */ + [propget] HRESULT nSelectedColumns + ( + [out, retval] long *columnCount + ); + + /** @brief Returns the total number of selected rows + @param [out] rowCount + Number of rows currently selected + @retval S_OK + */ + [propget] HRESULT nSelectedRows + ( + [out, retval] long *rowCount + ); + + /** @brief Returns the description text of the specified row in the table. + @param [in] row + The 0 based index of the row for which to retrieve the description. + @param [out] description + Returns the description text of the specified row in the table if such a + description exists. Otherwise a NULL pointer is returned. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT rowDescription + ( + [in] long row, + [out, retval] BSTR *description + ); + + /** @brief Returns a list of accessibles currently selected. + @param [out] cells + Pointer to an array of references to selected accessibles. The array is + allocated by the server with CoTaskMemAlloc and freed by the client with + CoTaskMemFree. + @param [out] nSelectedCells + The number of accessibles returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are none, [out] values are NULL and 0 respectively + */ + [propget] HRESULT selectedCells + ( + [out, size_is(,*nSelectedCells)] IUnknown ***cells, + [out, retval] long *nSelectedCells + ); + + /** @brief Returns a list of column indexes currently selected (0 based). + @param [out] selectedColumns + A pointer to an array of column indexes of selected columns (each index is + 0 based). The array is allocated by the server with CoTaskMemAlloc and + freed by the client with CoTaskMemFree. + @param [out] nColumns + The number of column indexes returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are none, [out] values are NULL and 0 respectively + */ + [propget] HRESULT selectedColumns + ( + [out, size_is(,*nColumns)] long **selectedColumns, + [out, retval] long *nColumns + ); + + /** @brief Returns a list of row indexes currently selected (0 based). + @param [out] selectedRows + An array of row indexes of selected rows (each index is 0 based). The array + is allocated by the server with CoTaskMemAlloc and freed by the client with + CoTaskMemFree. + @param [out] nRows + The number of row indexes returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are none, [out] values are NULL and 0 respectively + */ + [propget] HRESULT selectedRows + ( + [out, size_is(,*nRows)] long **selectedRows, + [out, retval] long *nRows + ); + + /** @brief Returns the summary description of the table. The returned object could be + an IAccessible or an IAccessible2. + @param [out] accessible + Returns a reference to an implementation dependent accessible object + representing the table's summary or a NULL pointer if the table + does not support a summary. + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + @deprecated Use the labeledBy relation + */ + [propget] HRESULT summary + ( + [out, retval] IUnknown **accessible + ); + + /** @brief Returns a boolean value indicating whether the specified column is + completely selected. + @param [in] column + 0 based index of the column for which to determine whether it is selected. + @param [out] isSelected + Returns TRUE if the specified column is selected completely and FALSE otherwise. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT isColumnSelected + ( + [in] long column, + [out, retval] boolean *isSelected + ); + + /** @brief Returns a boolean value indicating whether the specified row is completely + selected. + @param [in] row + 0 based index of the row for which to determine whether it is selected. + @param [out] isSelected + Returns TRUE if the specified row is selected completely and FALSE otherwise. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + [propget] HRESULT isRowSelected + ( + [in] long row, + [out, retval] boolean *isSelected + ); + + /** @brief Selects a row and unselects all previously selected rows. + + The behavior should mimic that of the application, but for those applications + which do not have a means in the GUI to select a full row of cells the behavior + should be as follows: First any selected rows in the table are unselected. Then + the entire row of cells for the specified row is selected. If any of the + cells in the selected row span additional rows, the cells in those rows + are also selected. + @param [in] row + 0 based index of the row to be selected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT selectRow + ( + [in] long row + ); + + /** @brief Selects a column and unselects all previously selected columns. + + The behavior should mimic that of the application, but for those applications + which do not have a means in the GUI to select a full column of cells the behavior + should be as follows: First any selected columns in the table are unselected. Then + the entire column of cells for the specified column is selected. If any of the + cells in the selected column span additional columns, the cells in those columns + are also selected. + @param [in] column + 0 based index of the column to be selected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT selectColumn + ( + [in] long column + ); + + /** @brief Unselects one row, leaving other selected rows selected (if any). + + The behavior should mimic that of the application, but for those applications + which do not have a means in the GUI to unselect a full row of cells the + behavior should be as follows: The entire row of cells for the specified + row is unselected. If any of the cells in the selected row span additional + rows, the cells in those rows are also unselected. + @param [in] row + 0 based index of the row to be unselected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT unselectRow + ( + [in] long row + ); + + /** @brief Unselects one column, leaving other selected columns selected (if any). + + The behavior should mimic that of the application, but for those applications + which do not have a means in the GUI to unselect a full column of cells the + behavior should be as follows: The entire column of cells for the specified + column is unselected. If any of the cells in the selected column span additional + columns, the cells in those columns are also unselected. + @param [in] column + 0 based index of the column to be unselected. + @retval S_OK + @retval E_INVALIDARG if bad [in] passed + */ + HRESULT unselectColumn + ( + [in] long column + ); + + /** @brief Returns the type and extents describing how a table changed. + + Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler. + + This data is only guaranteed to be valid while the thread notifying the event + continues. Once the handler has returned, the validity of the data depends on + how the server manages the life cycle of its objects. Also, note that the server + may have different life cycle management strategies for controls depending on + whether or not a control manages its children. Lists, trees, and tables can have + a large number of children and thus it's possible that the child objects for those + controls would only be created as needed. Servers should document their life cycle + strategy as this will be of interest to assistive technology or script engines + accessing data out of process or from other threads. Servers only need to save the + most recent row and column values associated with the change and a scope of the + entire application is adequate. + + @param [out] modelChange + A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn). + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT modelChange + ( + [out, retval] IA2TableModelChange *modelChange + ); + +} +/************************************************************************* + * + * File Name (AccessibleTableCell.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** @brief This interface gives access to the cells of a two-dimensional table. + + Please also refer to the IAccessibleTable2 interface. + +*/ +[object, uuid(594116B1-C99F-4847-AD06-0A7A86ECE645)] +interface IAccessibleTableCell : IUnknown +{ + + /** @brief Returns the number of columns occupied by this cell accessible. + + The result is greater than 1 if the specified cell spans multiple columns. + @param [out] nColumnsSpanned + Returns the 1 based column extent of the specified cell. + @retval S_OK + */ + [propget] HRESULT columnExtent + ( + [out, retval] long *nColumnsSpanned + ); + + /** @brief Returns the column headers as an array of cell accessibles. + + @param [out] cellAccessibles + Pointer to an array of references to cell accessibles. The array is allocated + by the server. The client must free it with CoTaskMemFree. + @param [out] nColumnHeaderCells + The number of accessibles returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively + */ + [propget] HRESULT columnHeaderCells + ( + [out, size_is(,*nColumnHeaderCells)] IUnknown ***cellAccessibles, + [out, retval] long *nColumnHeaderCells + ); + + /** @brief Translates this cell accessible into the corresponding column index. + + @param [out] columnIndex + Returns the 0 based column index of the cell of the specified cell or the index of + the first column if the cell spans multiple columns. + @retval S_OK + */ + [propget] HRESULT columnIndex + ( + [out, retval] long *columnIndex + ); + + /** @brief Returns the number of rows occupied by this cell accessible. + + @param [out] nRowsSpanned + Returns the row extent of the specified cell. + @retval S_OK + */ + [propget] HRESULT rowExtent + ( + [out, retval] long *nRowsSpanned + ); + + /** @brief Returns the row headers as an array of cell accessibles. + + @param [out] cellAccessibles + Pointer to an array of references to cell accessibles. The array is allocated + by the server. The client must free it with CoTaskMemFree. + @param [out] nRowHeaderCells + The number of accessibles returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively + */ + [propget] HRESULT rowHeaderCells + ( + [out, size_is(,*nRowHeaderCells)] IUnknown ***cellAccessibles, + [out, retval] long *nRowHeaderCells + ); + + /** @brief Translates this cell accessible into the corresponding row index. + + @param [out] rowIndex + Returns the 0 based row index of the specified cell or the index of + the first row if the cell spans multiple rows. + @retval S_OK + */ + [propget] HRESULT rowIndex + ( + [out, retval] long *rowIndex + ); + + /** @brief Returns a boolean value indicating whether this cell is selected. + + @param [out] isSelected + Returns TRUE if the specified cell is selected and FALSE otherwise. + @retval S_OK + */ + [propget] HRESULT isSelected + ( + [out, retval] boolean *isSelected + ); + + /** @brief Gets the row and column indexes and extents of this cell accessible + and whether or not it is selected. + + This is a convenience function. It is not mandatory to implement it. + @param [out] row + 0 based row index. + @param [out] column + 0 based column index. + @param [out] rowExtents + Number of cells spanned by this cell in this row. + @param [out] columnExtents + Number of cells spanned by this cell in this column. + @param [out] isSelected + Indicates if the specified cell is selected. + @retval S_OK + */ + [propget] HRESULT rowColumnExtents + ( + [out] long *row, + [out] long *column, + [out] long *rowExtents, + [out] long *columnExtents, + [out, retval] boolean *isSelected + ); + + /** @brief Returns a reference to the accessible of the containing table. + + @param [out] table + Returns a reference to the IUnknown of the containing table. + @retval S_OK + */ + [propget] HRESULT table + ( + [out, retval] IUnknown **table + ); + +} +/************************************************************************* + * + * File Name (AccessibleImage.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** @brief This interface represents images and icons. + + This interface is used for a representation of images like icons on buttons. + %IAccessibleImage only needs to be implemented in certain situations. Some + examples are: +
    +
  1. The accessible name and description are not enough to fully + describe the image, e.g. when the accessible description is used to define the + behavior of an actionable image and the image itself conveys semantically + significant information. +
  2. The user can edit the content that includes an + image and therefore the user needs to be able to review the image's position. +
+*/ +[object, uuid(FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE)] +interface IAccessibleImage : IUnknown +{ + /** @brief Returns the localized description of the image. + @param [out] description + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT description + ( + [out, retval] BSTR *description + ); + + /** @brief Returns the coordinates of the image. + @param [in] coordinateType + Specifies whether the returned coordinates should be relative to the screen or the parent object. + @param [out] x + @param [out] y + @retval S_OK + */ + [propget] HRESULT imagePosition + ( + [in] enum IA2CoordinateType coordinateType, + [out] long *x, + [out, retval] long *y + ); + + /** @brief Returns the size of the image in units specified by parent's coordinate system. + @param [out] height + @param [out] width + @retval S_OK + */ + + [propget] HRESULT imageSize + ( + [out] long *height, + [out, retval] long *width + ); +} +/************************************************************************* + * + * File Name (AccessibleEventID.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + +/** %IAccessible2 specific event constants + + This enum defines the event IDs fired by %IAccessible2 objects. The event IDs + are in addition to those used by MSAA. +*/ +enum IA2EventID { + + /** The change of the number or attributes of actions of an accessible + object is signaled by events of this type. + */ + IA2_EVENT_ACTION_CHANGED = 0x101, + + /** Deprecated. The active descendant of a component has changed. + + Note: This event constant is misspelled and thus is deprecated and will be + removed in a later version. Please use the correctly spelled version which + follows. + */ + IA2_EVENT_ACTIVE_DECENDENT_CHANGED, + + /** The active descendant of a component has changed. The active descendant + is used in objects with transient children. + + Note: Due to the fact that MSAA's WinEvents don't allow the active child index + to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event the manages + descendants scheme can't be used. Instead the active child object has to fire + MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be + added to provide for event specific data to be passed with the event. At that + time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and + IA2_STATE_MANAGES_DESCENDANTS state would be useful. + */ + IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED, + + /** The document wide attributes of the document object have changed. + */ + IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED, + + /** The contents of the document have changed. + */ + IA2_EVENT_DOCUMENT_CONTENT_CHANGED, + + /** The loading of the document has completed. + */ + IA2_EVENT_DOCUMENT_LOAD_COMPLETE, + + /** The loading of the document was interrupted. + */ + IA2_EVENT_DOCUMENT_LOAD_STOPPED, + + /** The document contents are being reloaded. + */ + IA2_EVENT_DOCUMENT_RELOAD, + + /** The ending index of this link within the containing string has changed. + */ + IA2_EVENT_HYPERLINK_END_INDEX_CHANGED, + + /** The number of anchors associated with this hyperlink object has changed. + */ + IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED, + + /** The hyperlink selected state changed from selected to unselected or + from unselected to selected. + */ + IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED, + + /** One of the links associated with the hypertext object has been activated. + */ + IA2_EVENT_HYPERTEXT_LINK_ACTIVATED, + + /** One of the links associated with the hypertext object has been selected. + */ + IA2_EVENT_HYPERTEXT_LINK_SELECTED, + + /** The starting index of this link within the containing string has changed. + */ + IA2_EVENT_HYPERLINK_START_INDEX_CHANGED, + + /** Focus has changed from one hypertext object to another, or focus moved + from a non-hypertext object to a hypertext object, or focus moved from a + hypertext object to a non-hypertext object. + */ + IA2_EVENT_HYPERTEXT_CHANGED, + + /** The number of hyperlinks associated with a hypertext object changed + */ + IA2_EVENT_HYPERTEXT_NLINKS_CHANGED, + + /** An object's attributes changed. + Also see ::IA2_EVENT_TEXT_ATTRIBUTE_CHANGED. + */ + IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED, + + /** A slide changed in a presentation document or a page boundary was + crossed in a word processing document. + */ + IA2_EVENT_PAGE_CHANGED, + + /** The caret moved from one section to the next. + */ + IA2_EVENT_SECTION_CHANGED, + + /** A table caption changed. + */ + IA2_EVENT_TABLE_CAPTION_CHANGED, + + /** A table's column description changed. + */ + IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED, + + /** A table's column header changed. + */ + IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED, + + /** A table's data changed. + */ + IA2_EVENT_TABLE_MODEL_CHANGED, + + /** A table's row description changed. + */ + IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED, + + /** A table's row header changed. + */ + IA2_EVENT_TABLE_ROW_HEADER_CHANGED, + + /** A table's summary changed. + */ + IA2_EVENT_TABLE_SUMMARY_CHANGED, + + /** A text object's attributes changed. + Also see ::IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED. + */ + IA2_EVENT_TEXT_ATTRIBUTE_CHANGED, + + /** The caret has moved to a new position. + */ + IA2_EVENT_TEXT_CARET_MOVED, + + /** Deprecated. This event is equivalent to ::IA2_EVENT_TEXT_UPDATED. + */ + IA2_EVENT_TEXT_CHANGED, + + /** The caret moved from one column to the next. + */ + IA2_EVENT_TEXT_COLUMN_CHANGED, + + /** Text was inserted. + */ + IA2_EVENT_TEXT_INSERTED, + + /** Text was removed. + */ + IA2_EVENT_TEXT_REMOVED, + + /** This event indicates general text changes, i.e. changes to text that are + exposed through the IAccessibleText interface. For compatibility with ATK/AT-SPI + which does not have an equivalent event, servers can alternatively fire + ::IA2_EVENT_TEXT_REMOVED and ::IA2_EVENT_TEXT_INSERTED. + */ + IA2_EVENT_TEXT_UPDATED, + + /** The text selection changed. Later versions of Microsoft development environments + have an equivalent event identified, EVENT_OBJECT_TEXTSELECTIONCHANGED. Servers + should use that if it is available and use IA2_EVENT_TEXT_SELECTION_CHANGED otherwise. + Clients should be prepared to respond to either event. + + */ + IA2_EVENT_TEXT_SELECTION_CHANGED, + + /** A visible data event indicates the change of the visual appearance + of an accessible object. This includes for example most of the + attributes available via the IAccessibleComponent interface. + */ + IA2_EVENT_VISIBLE_DATA_CHANGED, + + /** The role changed. This should only be used if the interfaces supported by the object + did not also change. If the interfaces need to change, the object should be destroyed + and a new object created. + */ + IA2_EVENT_ROLE_CHANGED +}; +/************************************************************************* + * + * File Name (AccessibleApplication.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** @brief This interface gives access to the application's name and version information. + + This interface provides the AT with the information it needs to differentiate + this application from other applications, from other versions of this + application, or from other versions of this application running on different + versions of an accessibility bridge or accessibility toolkit. + + Servers implementing IAccessible2 should provide access to the %IAccessibleApplication + interface via QueryService from any object so that ATs can easily determine specific + information about the application such as its name or version. +*/ +[object, uuid(D49DED83-5B25-43F4-9B95-93B44595979E)] +interface IAccessibleApplication : IUnknown +{ + + /** @brief Returns the application name. + @param [out] name + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT appName + ( + [out, retval] BSTR *name + ); + + /** @brief Returns the application version. + @param [out] version + The version string must not contain levels when it is know beforehand that + this information will never require a change in a client's behavior. + For example, use "3.6.0" rather than "3.6.0.v201005131500". + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT appVersion + ( + [out, retval] BSTR *version + ); + + /** @brief Returns the toolkit/bridge name. + @param [out] name + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT toolkitName + ( + [out, retval] BSTR *name + ); + + /** @brief Returns the toolkit/bridge version. + @param [out] version + The version string must not contain levels when it is know beforehand that + this information will never require a change in a client's behavior. + For example, use "3.6.0" rather than "3.6.0.v201005131500". + @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is NULL + */ + [propget] HRESULT toolkitVersion + ( + [out, retval] BSTR *version + ); + +} + +/************************************************************************* + * + * File Name (AccessibleDocument.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2013 Linux Foundation + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + +/** @brief This interface represents documents. + + This interface is used for a representation of documents. +*/ +[object, uuid(C48C7FCF-4AB5-4056-AFA6-902D6E1D1149)] +interface IAccessibleDocument : IUnknown +{ + /** @brief Returns the most recently used anchor target within a document. + + A document's most recently targeted in-page anchor is returned. A typical use + of this method is to fetch the anchor target within an HTML document. In this + case anchor targets are those which has been defined with the tag. + + @param [out] accessible + @retval S_OK + @retval S_FALSE if there are no existing valid anchor targets, [out] value is NULL. + */ + [propget] HRESULT anchorTarget + ( + [out, retval] IUnknown **accessible + ); + +} +/************************************************************************* + * + * File Name (IA2TypeLibrary.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2012 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + +// This is not a standalone file. It is to be appended to the end of the +// merged IDL file. + +cpp_quote("") +cpp_quote("// Type Library Definitions") +cpp_quote("") + +[ + uuid(CE3F726E-D1D3-44FE-B995-FF1DB3B48B2B), + helpstring("IAccessible2 Type Library"), + version(1.3), + hidden +] + +library IAccessible2Lib +{ + importlib ("stdole2.tlb"); + importlib ("oleacc.dll"); + interface IAccessible2; + interface IAccessible2_2; + interface IAccessibleAction; + interface IAccessibleApplication; + interface IAccessibleComponent; + interface IAccessibleDocument; + interface IAccessibleEditableText; + interface IAccessibleHyperlink; + interface IAccessibleHypertext; + interface IAccessibleHypertext2; + interface IAccessibleImage; + interface IAccessibleRelation; + interface IAccessibleTable; + interface IAccessibleTable2; + interface IAccessibleTableCell; + interface IAccessibleText; + interface IAccessibleText2; + interface IAccessibleTextSelectionContainer; + interface IAccessibleValue; + enum IA2CoordinateType; + enum IA2EventID; + enum IA2Role; + enum IA2ScrollType; + enum IA2States; + enum IA2TableModelChangeType; + enum IA2TextBoundaryType; + enum IA2TextSpecialOffsets; +} diff --git a/lib/ia2/ia2_api_all.tlb b/lib/ia2/ia2_api_all.tlb new file mode 100644 index 0000000000000000000000000000000000000000..449c10b258dd7bcab244cd7279af1886da146da9 GIT binary patch literal 29016 zcmd6Q4S1DTmF^A+`TseA0O7AafwZKS(ytVIk2TtJl5-#_CqGS2I8f1?kerfeNMaIN zs`WNnR63u40RGO!C$B!h3BXFw?*Uu{Y@DUk(||CDb^^`;k`QtPP&Her9e^`{ zXueVh0fhxh4FXOA))XqW7jOxXDN^b#REbi@0F#ijq*Uut0r@Y6l&Zxi zb>r{CO7QahCLTYX@-t;_TS&jTT&Z2q+0?H`edYZ<7j3I^%dL9I_wY;NcQte}^@H;I z-lA<~%1_|8SKlCg@b~ftrOu;{xs3hi7=-6D!|$*M_2XrDneRDjBnRe2-z)UKrXtPq zh8%S&Mk;+78R)7h*C88|v_GfHh$_l}nIT7WB2BnvmO78Nn9Ime3Y{Og49}fZ6qot! z{SKF!f)Cf^s*{bR(w8d(9U8a{&(n61`AstOeL5L64SA|6?lN;_xZg~v;X}XYWqy0V zb9@Ey%Nu5^9n;8|Dgk4I%+Tkr&LAU4?UFtxS)N+O50SULAzw8m#{R4XxHEswq+c(-C?SX$P6+H)sA&8HzUJ*x+O|QY#B*9 zD6Xk8tQlk!sp=+Ohkp%ko1I&LZ|yen*o-p5Gsq}b$!TOv9UV&b+cGZ9D5HG_83>@a zy6T#COgGLaY#F79y}YK{YD8o(=Fd_H);7)ZhEi3!UVh3SBLiV{%C*;)@z9Jij!fH* za7~$NZ+F=l8A?s{UZeLRG@Y0E?fpLeI4@UKw@DTGi;%FEY$&%ta=ci>z*OX&%mdMs}UsoD;yB7Y2To1I&LZzpWz z@fl^D6d9bubJaqrt7TNGzG-9_SzaM$jbKi`xPrFIQP#A5zPw?MTGFZO@UP*$)I~Yp zUbSVk&nQDlObpIZH8pe9`ArTRM}|^UM~Kn8v`W*P-~461v&eim_;5{?+H*U9>C3dk zZILN)>#lqq8Poah@`icp;xsaBHm(4C3)%Bue4a)J_03VoX6TRksdhH)Xc1UaQGZWZ+O#{Zt7F~ybO*>xCuO?=Y!TMo9Q12O78Dx-bI^PY~EK%pTy6jvTZ*-CNHzT9UUc{K+EH>Y# zm$6js8FJaVGNz6Y!{^LZn%?~Wk7Zn;s@^@F4BPl_k)!Lby8kyB%r&S_2G#h+DS*?smmVO8KkSF2W~u)jwT4=LzC}Zap;k$!msNpUFA&hAVb`?=siC z#BbVP_T}5({1+{cKe{aE`po-&NjvR9o%>$?xPzAHggSq8hrL0*!P*rk?i`9 zesc8}Uh7)-6RxXCe{IEI<$U)o714+GKcSv^d})kpZQ@_M{fnpN{2zh4VP^`%m{h|KShB*MBhQ(2B&(nY*G$qlkaY zS8xB_J9^&Rwr78L`3sLe_#>{_*$E>PPrR}8ua34IdFbN5t$6#X0j}dGfq(cHTYE0# z|1kO3Z)W}Yw$9T7T+@ePqc6;lZQB38*EKznU;LgAo&Q;a>-<9CpZl{te=@Q8mn|P$ zb=~bRR_{x3?Qen4$G=ovbIaJt#?K6t-0+>NUf#$30P6F$w|(%9cYO0?+h@PAI0?CZ zwb(ns_Yn3z`k_-D>YS`ZeKeMJ4}#yyEA;n4@&NrBEb%X5&Q0R?X(ZsBQ_iEW#zB_^ z&y8^SOKAT&=(88Jli*bf-u2jAcoF6nIplF5@L>n7iyj-MzVJ4`d#Oznq6Y5zuh6g*1ooxeK5u z7iH(bvmR}E75bgP+8~bh4nmLPfWx!U&vu`%ZiPyZG{<^-vtwfeTi_nafh}op627I8 z$&Y!<48B$aX9HrKS%?m~4%gV9rSy?nV$jXz;cnlijIJ?TPMG zTYGmhu{LFBmRP+%4bn8UrBZDz-5t&AnjE@n>%@W}9eE|<>k@|7V(UGR1!-(vBug8* zg;w5YgLKqMn85~yZjp8D=^&jbWfK~@YHR<#AYH6=Q@Sb9kuY{ERR8muF>Rz_(=Wwp z`;9hE9EN+gEUS#%@_z7Z93CF+8yM;t&)Rl1XUdGceARHx*f{J4hbE5u$fauk*6fb)ECyCz2mII2&QtGyuQPrV z9s-a46>4?=kSXibj7|M=HGhHOYZo~>R;uSej4>3b>Dpz1diGzZ$hMi#wv*6%k=p(V z@JN~v6J$m@gi7Rt(Z3m*fy(GwsJ?h{`_RC2e-S<<(irE6ryhl&*7pzg3~k-svo&jQ1)+ba z?j7DfG(LK_&}Go3f>7kcclL}9^nk0;BVV2Vf!G2J4X#+_UhEkkA061TUHX!F-6hB` zkBq#-6RTHuuTG~~7SDrjD(7XV4s>JA$356Qb>SC7J=?M-H=L_>{0gatJ$0l9#`_!5 z%yFmhidE%2PkEZT+8M|$Q6Ig!my~UH+%X1v!*8B?>c=LI+CjPP4tw14UJC7#7b;NW z80jWouZ(QI)6iTYZ& zFN+a9Fe01{k7D)x_3z5w-GKfb7~1NNxl;9!6GJUMJM4ln@@5VR{;OSjcMd92%Rez> zh;3V+MCX;MpS@4|l5=7!jE*vsW6zJAZ1=W#WMpulS0-akGYLBvsP!W~BO_AN)GJnB zx)Zn!+0iixAk=L$`n5nk_RTwOq@gWQv-ge<4-dX;VBE)}T-D!e;~hTC@#ElA75VrD zk6w+#+eU_m;Pxy(4qJv)?}ynY8qy32mQjyl^{prG7#__sjt%vt(=PrStG4v?zRTdb zZWt_7YHs8ww|Zp7hkLhg;|OCp_t{I;$qhY2z5TLvOH#(R+W zq!547q~ZOHLUnvg@9@aoMDku8uaZ#u9b-r!jL#Ck8#z`{=&6Sg5N%IR3lH6%1)KV^ zgIP>GWbMI+Hw_GpWk<&~p0vF3)w$0N>){~dq#td_Q!hV0j@o8TRG|L3r+2%qNZfPK zwMd;_G14<;#E6_c*r!C*TtAu}8SLqG+r~ZhGFA2<#$3!364G2-RimsbGCSe1O%sOM z=-|N6yI4K}ee%`vQEgM#-)E~=zAiBi{zT< zjSk+n9q%o(Y;NSs%t2_229A)P(Yr-smLCVt`PO^ZGe=1!Hm158+PYffv5rmMjZLwR zblUKkZ{=S(l_re@NYn71jG>&&nkQCRGL^aY5PPJYnYIFwx0dlkY$w6!;N;~RjRJOeT&B^ zv@`J)YS*y%#2x5&dxV;@QdRpa?Jv5(;44($eWTfJ!*^z#PL)1AgEe8fDs0Etkx9;G zCuJw#W2I`*b0~8v8Ga?|nw>+9#`&~=MBq1->icP(Cw6Y%GKTqiXlrWNZtqI?&wMpf zJEh!qB*v(fut|C3(%WG-`b1}TtAxKa%fjG4JM^`D8H3k2;0jdt z$)W6BtS`7I`l3KRg>8a9!I?djs>mOCa|MYDv>nT%XnTozW7p@Xjr#c-Tbh_7db8Wdx#H39)KS^Nlf!LomrQf>wP;8tyUb*W2=SPR{k~lL08|1441HHq8 z+qWUfH+2hCXh(04&Or>WSXKYDw|`(zM^sH4!hT1gx~UKR#7u^^ME$f~^VHU(+;-?y zq{>(HW(Nn2O-cVEY+9*)xl_}}J=u?z!Fy=s>dJTO@`MD`82Xkxc~z)ieRZf&8Zg#5 z(la!a?UQ!YA-MnJ!_%%5_BsmH zua+BGOnEclu7bsG@e@L6zE-h`lgpJgY>aKI^>GqT7Aoh96)JxS)nXLoMMxaBv8b1Ra ze1>LO1anS_$~%oR$H>%S587C&(m#^6*ajv&%ZgOp-+^8m*VcI)v0|=zVTG}w?i$_W ztal3fh15+C=()#jGWiWM_fe037wad-62zZIdkfWDPl^A*Jj6}Hcae{L4)M;h8Ts!8 zZG{?H>hRa55qt7JX0dv3ANkv8!S`dIu0V~vN%!NJ*ti|IQgu4d@Szzg_dMEHpz=$= zgD9zg8oK1E$GTvPG3ro-y|Dt-^u4j|+qPlubjDRk-Fn}^m=>*rceao8hhgJl)p2}a z%wVk?=c<7*?e2`;pcU<#t?Hg8jcz)$wtS*Rm+%0DP@Pz0KN= ze30o3YY^Wq`OI?(gV!~*{2j360=3~mv`eG4XN<+h-Ep14m?>6YEC-EUs(p7SY*2TSLr{z z=ky5d9*SJ(@U%f%$g)%D=Th~P7kamkayQGtuY_Lkje6$Bo+7bfNPP6g^;qL=r(WcP z&I6y1d>Zk3VB7X>4xdM0k5ZL)^|pZ_2hTII?1$pW(l5hKi8~><8S53|Cm^@ldb*c! zA+doQva!Zgb6cw&aN?xNK>jl8nw$JI8xq~|L}Q{g&PqBw**xR0&2p>r&!?g9WQCZg z0{OQiw%1zsecYvww>5UPh%%{EM{`40Dq$p;wk)&eeSRAH#x^dp0{XD+Ve5a%T1&Ul z;h$`a#j$_g(#}vx-h+TEt?&HZG`xkj6Px|*iMZH~d>2|rx~HMV4mdcYugDXLgSyK4 zo1eRMO}GWofd$<9ZkPi>J)YQT8fe!!h8T36b?jTy)oJZ&X-IT*x2^4twKg`jb#w;m z@;uNr*0p`p)$PQj(3ncZyG6RwZK7v2a@J*5!-Ii(vOE=Xy2b{~6LvqJ#@Mg1PEO89 zZ-m)xItn|iu)e=LKrgI2Q?ZUzz!J3GMvS$^*2g{;s3STV?Mb%-_y3kzADJ^9T`MJc zj70iEjL~J*Q;28A@7o$~g=M;9L66gY$iAL${q}n3hsNzlH*x^2}I+O}j@ODjeoZn-r3t2w@TmGxE6 zxVB~JdQFK~94_RjFLh2MS6*t}k_pQ4W+29=X^$1wuTKSOJKECID#f;>0L!dxj6rs+ z(K@kCP$AM&#+BAPYJ&8gT`ev4&J1!QJr>Vln1!uJhCQ_0#hKEZI-@Z>n#|745th0S`bxvou<2l?! znQz_VZ8LT2NO<%*wwN?G{UE?c=WzDeJcqe2Y`yT#0F54z9+#v&HX@h0!g_nkrQOin z+05J%Nny-&64IW-+&$mQ-saNco~maY@L7y@#Giu5W$Y2J<}I!?aZQ+KLe^(L#ClSr zt95;ATe_8Hhd^Ipy>_ot));Hu5bKnB$2q@S`?yD=>)C^Z^>(3us;ze)cFUR)jqAHH zaddSzrxGnfBep7M&TZFkOSaMR+uD#xr$t6TY*l4#UF6U(7skES=2Tk;d9>rq!945h z^WE}9=X&1sZN_wiF-@8?ID0V9dU9+EO?!;nbV9R|>kezzYL}+D0|BB9n~Xw5K0BE^ zSPx!uXsAX*O!RmT=P0VJ23OAn=7D$|!Cc2KX)p6S>z^KX>$k>R+foUZO(K_>XKm&^ zGi{5t&C+$YDMUw(xp~$HZgy!fqq^o2n!T_`g?0OTJT#EdA!R%>SZQ6@=PRQEwhc<* z-(^@Zkkk=|??uFjs3V*}Ya8NIf!WU%B-$?AhD0lCg#a zHg8#WsfPVla^6$63Agm)y7iid{Z?lEag{^kvH3&rn=0$^A3J4jdcvU7k^dg#8f8{% zr&G?U&F+&E@W(k;{?9yRW_wz6JC1WO)z(WAcV%36#Ny3u{xP^4@nxa4N%AC3lZbP3 z9gd|P*Ot|{jIthh)REQE)|RpxNj-UfzTCQWz%B1enla4wS6Rv(TlQfO)5i8NeW0w~ zscTQo*(|qgGi{1Kd>(*i9A}>xc08x(% zpqXQhU+2(lXilWN+uOKVz;fE>3TtesQ?8RbzOg?!_9u(z@e}Lz|4X#xdir zxAiTAP3Blny8VzuR-Nodl+yJ}A#b5ITke7A*}=}rWk&*&kIiQ#_$;ytPdjo<_O53{ zAvC&ISr576tRdNkIDcE09oPEN_A=|cxegzXt``ui=2}0M`B`-7>{_=j(aAhZ>{5mN zDr9x`J9S|f8imgj(q=`GRb2OU+Q&H3#J?(Y(xcK}$XhX2NMf8|*(Hp%3hN~IfV%Cn zjuy=AEZZZoG4BIzSv;|}tF@8)IV|ThD08eYOAOF;8T^?V>hfLilPar4@_Jp4Zvw8UBw z4mu^P(~GxGTi=zK^D3;DOI&%#6yep>MJ=bUFTLg|>q@4Yx$F=-#cOHzktVmitvz;I zmy{jBJT=EExZf@7NZi(ixe~bzdG}%7Uuga1SKV@*)<_b~v199Z7X38On(MJ=C!#(E z4wbNJ9^ty%+9>zev`z6B2B(}s*rLYz_R}6YUF{rFo!zmnRGYnQ)c#ERl`=WCq%!n(rmF!;@}p8L96z5$zg&5aBMtbb7A!0HdX<&8{e!~s~&Gv*;{)h4&Ry}7kD z5$AKSD`As)k#jgZp!Y#Wvb_U6gZd5|_a#Wvhx+raha?V3h(Va@M9P~?w604vX&Ro# zpJy$VHH?==l4I~$s64wGtHa#44CB1xDEEUGsoZF;%AHuG3ZsRp5T9jH+$*10sxIH# z2bWlcPq3HIFg};6TzN*ApFAhFNd4|!EGdD%d@qKj&^6h=d5(wmHwwNqil@jXNRKHR z_)s*YLXeXy&k?ge@7IxjmtCLt%K3Y*&|kjyfc<&MF6W*x%a7UkN%{QUz4#D4x!+2@ z+}|YKS;1evm-i_7`-1(OdrbVTY<+o-8GHOFZ5++wC|F;3%iZCY=6Et}pB4#6R#`W! zvTj-(3HOYLTZV_ixAqK$Z-|6%c+<@{thw3xAK}&3jgjKHj7ImS({t7MtenDhI#;3- zKY6M?ovwxiUW{25KI8IBpJV6zgY83AiaqgKd@fWAC-9-ps-&s}AykxW4gMl@fpGaQ^;2s$1>rrZWUQqXdeimpoJrBz>*hOkLpjtxU+SWYoC`2I^W2sB&huYvd#x&P>Q?8_o&~~_b-ACSX$l>hu+S6= zO(AG_?^V+jIW%=bgA-&ZCr#X;DRyWqp(%D`F~`+?QR2`lf8v=M`T+ZweMmdg z?zA6m!Zx!_)R{W*ss*F~djLlPrvc>MZu92zI8Ou40+v7y&(hrkH~=^fI0s-I@-a55 z_Kb73e-NN;=yNAQL!Kc3 z_dh7NUb*8rqQ*fF%L7mPOZYVO=kOiPk;}+JX$D$mpauFY2Yr^4VSA`AX()sBc+mz; z0G2-j*bS%x%!eF&s96$))b1)s^x_~NI6fuo(m@a4a(y`H3|yWMmnXQ{J{-Chboo9U zQXHxig{&xeN5LzKx>3+ZQ5HRbg5v<*OXvAy-p9@Wc!ro4+ffIo2XOrK0d@e0`_Hx! zq$2-S@T_GA;9_0!M_T?O}a}?4TKIl1L+fGCO^MGm) z@qRcj(-y`fwuioB^sAOU%k2~9DW-pzr)XWLZx7hW*@M?>4`~iSk6=IW95BxBy&8xKE1cUHiO;arZ#%@saI~U*(7y! zuK9X(&mwlRE%=+6Zv5l}&vU)JSH`n%e7i~|W37Zcz&p?|Dyds01&LDzis5f=t{ii_yX?Yo&?8Ns&fX#V+TU3iby0)0k zUz(J6OfvRjrT{Omzu>2w%QWMezR&MaN%7n()$!WM8;4M&=y#;afUB{ih3t@V2*c1P zE5Zs`>uY~O-9Q{MI`Axx`Ob5&S_jv@5s!VzGHTN_DR0c@T4}c1UdWgH?Y9t9q&+ajH*>Jw z%)xpyCj-uzBVc$Ij?42&d`6t(llO7Q0rX3r`Q>?go)hQ!A>MoBSvN3LJpah^q;lRC zy78h78ArKJx&#QrnEil*fU|%#urJphXXyOsj9NejuoEx|s6x<-0LX(mzIW|}pIHC= z*RQc4Ckj=gP%#RXqEIIa6Gi#__IUuGjpuXeFsz(22fec%@vfs@Z~a5RWGCuGg8Fa7F1PyK0wRz&ikyZ*Lo*F zvkNrFz6Tw8Z=Ort@`Xmm3TRAQ*e>$-?xVKLSU^Oi0=Re|UekEz?xf7!h6W+prt!|j zq|y7RdNxYm88*gCHWXxmT#_P8%v!w8hiTf@0~XXLGR9+hTiK- z6vg*oX#0ETP1Y?JSwZ{r+>fUB&Y{$;!qJWXW9&vBBYi!P#?SZ49zJ$Afu}w^w@&(# zq{Da9*L;>h*Y(bi_dphQMeVvg&tmHGT&$@(Y4>TpZ{B3xIZj=kJur27w$9Y$yE`bi z76&Vh&N_b16?zmqW6(mxH8jU09x`J4$1LY8K3|~iHqW8g@pGO-Z~DkfUyqs2@IN8r z7c-yD-_U#e)LXX}Pa&APCneWfAo`Qu)UCx6^@irO&{R7#W{lU8!nvozHS0o$#^tlf zp*bgf7CAJAPev_vXf9wUwKBfgSzkn99OE-#(d{_1b+9ocZtLQRT<+; zgy%WX@%|<44=I^HRE`91$RO{?%md5^z`7Y&F9Yjj(0UxX$-(Pquz!p;@LfDSm(J&z zA^<*9#MneXrN8mn7rt|bXT|so$N>P~ufy@fv!wk1p10>2f1dZ{nGO0B&o=XX!UTZ# z-+2a>ZRN$eB?EW_@Em~m3i<9W=3To1M*yb)eE$~r`jY_WV8;O5=QlanBXGD$zy&}! z555nW02~CI0GtOTF_-m02J?^80DaZU2Xiy}oWX${bpE`Cag6)lUOMJF-2e9CU@Bfw zs2qigQK%FJzbN-xdG?*})#0-ad~Sgk^{E5U7VY*Yaldc=h^mfko z%Qot@uD>6>b2i&pCVc4grXRgA&ho8qNw4Q=(i@w2>1%O_(Dc_HiOc$ar<5vDd^~`hYjy^4(z5 z#n@nc4aU|z(EBKWG4B!}48vi#%6(d{Z5dy&g)Hxhl6;qyIUCl}8`>p0@B)q;C|ZeBcdTyS$kZ(N{UecvW1muH={ z+?itp=QB++eT?w>Zc2G$#9_!SK=jeq@1G-hV+zNlJ}Uv&kaz7-xBpCz!1vnmU3Ii0 z--kB=VB0t+^BFL{w~rV5H3eY1%shMn-+9lS^DxT@rtgo)UL2o~)8o(ViSeE#pG89z zxq|za?0d#SzSB>)0ejQ<&MO1307iycXR=NR40(>t_zw4ZSl_!Z5Jq0>y>CJq>cM=1 zb+t}9ui|f>U*tuZeSj*!s{nnil#gIeK;4-Wc#IQS3t?TUQ3BEc2=aK(Zv@!?7YSL(x+3a-qD zD-#^vUWWM*=21M8Q7*U&AFe`hAs-H71Nv3^aFv3a1*oO-XuEvL}5!^B#Zkgbg`*6#FLw8LX(};^vr20{8sYMF`7}imY7lx!L)(cT= zgGR9}7)2#nIa65&(`IM{%S( zievZDFrWso46qz9i3)t*DbIBCeXM+!D&MopXXyCM9p6LBcbf8f2tG^0v)Vkf%V#fk z0r*@MpEKbzDttF8-%ZN*p7NP2z6X@&o%!xjzK50X8s#%Te7`B*tIB7D_})}L8^d>$ z^4vMEU@T+2-2tHS4gih2e1dgoaGqcIlx)KML;29 z3)hDh07qQpOxPekCjbut4gsD9)aFf%K@d50Z$6K>KnxOGAO;C85Q794h(Ur2#2~>1 zVvyhhF-UNM7$mqr3=&)*1_>?@g9I0dL4pg!Ai)JtnB^*-G7g0p-$OK>;%a5o5UwGX#ia5wsJHwtcz54Q$5 z#DxD=aUFS7^eVvBfE9o`z%_t30ImhB1Y8GL1-Kqy0d4@S2HXf(1K|6x`3`5kOPkMZ z@g3ZJcI`z#VHhzS&<+>`>;W7GoCI71@cAshXPfV{=Cfja4u{Wb@cr9-=Qf|u=L6 zW6k$;^PS>+mpGr_;JdQJUz#;P2PMkXPP+*BBsnys1BTejzSIsoPUl&-T|C{jtUFTKSxCc=bxh{ z1m~Zll;lVLIZDl<4F4PjHGuQaQCJiL=bxjncmmEpN2xGz{y9oTiSy4~q0&v(fu0fPWuf5>q_mO&p(3C@3pVKW6Iw!lB5hf#^|=I6z_{|;sb BD0Tn< literal 0 HcmV?d00001 diff --git a/lib/ia2/ia2_api_all_i.c b/lib/ia2/ia2_api_all_i.c new file mode 100644 index 00000000..3c2f4c77 --- /dev/null +++ b/lib/ia2/ia2_api_all_i.c @@ -0,0 +1,136 @@ + + +/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ + +/* link this file in with the server and any clients */ + + + /* File created by MIDL compiler version 8.01.0628 */ +/* at Mon Jan 18 19:14:07 2038 + */ +/* Compiler settings for ia2_api_all.idl: + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0628 + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +/* @@MIDL_FILE_HEADING( ) */ + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +#ifdef __cplusplus +extern "C"{ +#endif + + +#include +#include + +#ifdef _MIDL_USE_GUIDDEF_ + +#ifndef INITGUID +#define INITGUID +#include +#undef INITGUID +#else +#include +#endif + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) + +#else // !_MIDL_USE_GUIDDEF_ + +#ifndef __IID_DEFINED__ +#define __IID_DEFINED__ + +typedef struct _IID +{ + unsigned long x; + unsigned short s1; + unsigned short s2; + unsigned char c[8]; +} IID; + +#endif // __IID_DEFINED__ + +#ifndef CLSID_DEFINED +#define CLSID_DEFINED +typedef IID CLSID; +#endif // CLSID_DEFINED + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} + +#endif // !_MIDL_USE_GUIDDEF_ + +MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5); + + +MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78); + + +MIDL_DEFINE_GUID(IID, IID_IAccessible2_2,0x6C9430E9,0x299D,0x4E6F,0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleText2,0x9690A9CC,0x5C80,0x4DF5,0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleTextSelectionContainer,0x2118B599,0x733F,0x43D0,0xA5,0x69,0x0B,0x31,0xD1,0x25,0xED,0x9A); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext2,0xCF64D89F,0x8287,0x4B44,0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E); + + +MIDL_DEFINE_GUID(IID, IID_IAccessibleDocument,0xC48C7FCF,0x4AB5,0x4056,0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49); + + +MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xCE3F726E,0xD1D3,0x44FE,0xB9,0x95,0xFF,0x1D,0xB3,0xB4,0x8B,0x2B); + +#undef MIDL_DEFINE_GUID + +#ifdef __cplusplus +} +#endif + + + diff --git a/lib/ia2/ia2_api_all_p.c b/lib/ia2/ia2_api_all_p.c new file mode 100644 index 00000000..4fa40fdd --- /dev/null +++ b/lib/ia2/ia2_api_all_p.c @@ -0,0 +1,8276 @@ + + +/* this ALWAYS GENERATED file contains the proxy stub code */ + + + /* File created by MIDL compiler version 8.01.0628 */ +/* at Mon Jan 18 19:14:07 2038 + */ +/* Compiler settings for ia2_api_all.idl: + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0628 + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +/* @@MIDL_FILE_HEADING( ) */ + +#if defined(_M_AMD64) + + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ +#if _MSC_VER >= 1200 +#pragma warning(push) +#endif + +#pragma warning( disable: 4211 ) /* redefine extern to static */ +#pragma warning( disable: 4232 ) /* dllimport identity*/ +#pragma warning( disable: 4024 ) /* array to pointer mapping*/ +#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */ +#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */ + +#pragma optimize("", off ) + +#define USE_STUBLESS_PROXY + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REDQ_RPCPROXY_H_VERSION__ +#define __REQUIRED_RPCPROXY_H_VERSION__ 475 +#endif + + +#include "rpcproxy.h" +#ifndef __RPCPROXY_H_VERSION__ +#error this stub requires an updated version of +#endif /* __RPCPROXY_H_VERSION__ */ + + +#include "ia2_api_all.h" + +#define TYPE_FORMAT_STRING_SIZE 1563 +#define PROC_FORMAT_STRING_SIZE 5533 +#define EXPR_FORMAT_STRING_SIZE 1 +#define TRANSMIT_AS_TABLE_SIZE 0 +#define WIRE_MARSHAL_TABLE_SIZE 3 + +typedef struct _ia2_api_all_MIDL_TYPE_FORMAT_STRING + { + short Pad; + unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; + } ia2_api_all_MIDL_TYPE_FORMAT_STRING; + +typedef struct _ia2_api_all_MIDL_PROC_FORMAT_STRING + { + short Pad; + unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; + } ia2_api_all_MIDL_PROC_FORMAT_STRING; + +typedef struct _ia2_api_all_MIDL_EXPR_FORMAT_STRING + { + long Pad; + unsigned char Format[ EXPR_FORMAT_STRING_SIZE ]; + } ia2_api_all_MIDL_EXPR_FORMAT_STRING; + + +static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax_2_0 = +{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; + +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +NDR_SHAREABLE unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, (ObjectType *)pObject);\ +}\ +NDR_SHAREABLE unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, (ObjectType *)pObject);\ +}\ +NDR_SHAREABLE unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, (ObjectType *)pObject);\ +}\ +NDR_SHAREABLE void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, (ObjectType *)pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +NDR_SHAREABLE unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, (ObjectType *)pObject);\ +}\ +NDR_SHAREABLE unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, (ObjectType *)pObject);\ +}\ +NDR_SHAREABLE unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, (ObjectType *)pObject);\ +}\ +NDR_SHAREABLE void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, (ObjectType *)pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#define XFG_TRAMPOLINE_FPTR_DEPENDENT_SYMBOL(Symbol) Symbol ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#define XFG_TRAMPOLINE_FPTR_DEPENDENT_SYMBOL(Symbol) Symbol +#endif + + +extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString; +extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString; +extern const ia2_api_all_MIDL_EXPR_FORMAT_STRING ia2_api_all__MIDL_ExprFormatString; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessible2_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessible2_2_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleText2_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleTextSelectionContainer_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTextSelectionContainer_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo; + +#ifdef __cplusplus +namespace { +#endif + +extern const MIDL_STUB_DESC Object_StubDesc; +#ifdef __cplusplus +} +#endif + + +extern const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo; +extern const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo; + + +extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ]; + +#if !defined(__RPC_WIN64__) +#error Invalid build platform for this stub. +#endif + +#if !(TARGET_IS_NT50_OR_LATER) +#error You need Windows 2000 or later to run this stub because it uses these features: +#error /robust command line switch. +#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems. +#error This app will fail with the RPC_X_WRONG_STUB_VERSION error. +#endif + + +static const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString = + { + 0, + { + + /* Procedure get_appName */ + + + /* Procedure get_description */ + + + /* Procedure get_relationType */ + + 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2 */ NdrFcLong( 0x0 ), /* 0 */ +/* 6 */ NdrFcShort( 0x3 ), /* 3 */ +/* 8 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 10 */ NdrFcShort( 0x0 ), /* 0 */ +/* 12 */ NdrFcShort( 0x8 ), /* 8 */ +/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 16 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 18 */ NdrFcShort( 0x1 ), /* 1 */ +/* 20 */ NdrFcShort( 0x0 ), /* 0 */ +/* 22 */ NdrFcShort( 0x0 ), /* 0 */ +/* 24 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter name */ + + + /* Parameter description */ + + + /* Parameter relationType */ + +/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 28 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + + + /* Return value */ + + + /* Return value */ + +/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 34 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 36 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_appVersion */ + + + /* Procedure get_localizedRelationType */ + +/* 38 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 40 */ NdrFcLong( 0x0 ), /* 0 */ +/* 44 */ NdrFcShort( 0x4 ), /* 4 */ +/* 46 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 48 */ NdrFcShort( 0x0 ), /* 0 */ +/* 50 */ NdrFcShort( 0x8 ), /* 8 */ +/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 54 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 56 */ NdrFcShort( 0x1 ), /* 1 */ +/* 58 */ NdrFcShort( 0x0 ), /* 0 */ +/* 60 */ NdrFcShort( 0x0 ), /* 0 */ +/* 62 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter version */ + + + /* Parameter localizedRelationType */ + +/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 66 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + + + /* Return value */ + +/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 72 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 74 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnIndex */ + + + /* Procedure get_caretOffset */ + + + /* Procedure get_background */ + + + /* Procedure get_nTargets */ + +/* 76 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 78 */ NdrFcLong( 0x0 ), /* 0 */ +/* 82 */ NdrFcShort( 0x5 ), /* 5 */ +/* 84 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 86 */ NdrFcShort( 0x0 ), /* 0 */ +/* 88 */ NdrFcShort( 0x24 ), /* 36 */ +/* 90 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 92 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 94 */ NdrFcShort( 0x0 ), /* 0 */ +/* 96 */ NdrFcShort( 0x0 ), /* 0 */ +/* 98 */ NdrFcShort( 0x0 ), /* 0 */ +/* 100 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter columnIndex */ + + + /* Parameter offset */ + + + /* Parameter background */ + + + /* Parameter nTargets */ + +/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 106 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + + + /* Return value */ + + + /* Return value */ + +/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 110 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 112 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_target */ + +/* 114 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 116 */ NdrFcLong( 0x0 ), /* 0 */ +/* 120 */ NdrFcShort( 0x6 ), /* 6 */ +/* 122 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 124 */ NdrFcShort( 0x8 ), /* 8 */ +/* 126 */ NdrFcShort( 0x8 ), /* 8 */ +/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 130 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 132 */ NdrFcShort( 0x0 ), /* 0 */ +/* 134 */ NdrFcShort( 0x0 ), /* 0 */ +/* 136 */ NdrFcShort( 0x0 ), /* 0 */ +/* 138 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter targetIndex */ + +/* 140 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 142 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 144 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter target */ + +/* 146 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 148 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 150 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Return value */ + +/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 154 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 156 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_targets */ + +/* 158 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 160 */ NdrFcLong( 0x0 ), /* 0 */ +/* 164 */ NdrFcShort( 0x7 ), /* 7 */ +/* 166 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 168 */ NdrFcShort( 0x8 ), /* 8 */ +/* 170 */ NdrFcShort( 0x24 ), /* 36 */ +/* 172 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 174 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 176 */ NdrFcShort( 0x1 ), /* 1 */ +/* 178 */ NdrFcShort( 0x0 ), /* 0 */ +/* 180 */ NdrFcShort( 0x0 ), /* 0 */ +/* 182 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maxTargets */ + +/* 184 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 186 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 188 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter targets */ + +/* 190 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */ +/* 192 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 194 */ NdrFcShort( 0x48 ), /* Type Offset=72 */ + + /* Parameter nTargets */ + +/* 196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 198 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 200 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 204 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 206 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnExtent */ + + + /* Procedure nActions */ + +/* 208 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 210 */ NdrFcLong( 0x0 ), /* 0 */ +/* 214 */ NdrFcShort( 0x3 ), /* 3 */ +/* 216 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 218 */ NdrFcShort( 0x0 ), /* 0 */ +/* 220 */ NdrFcShort( 0x24 ), /* 36 */ +/* 222 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 224 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 226 */ NdrFcShort( 0x0 ), /* 0 */ +/* 228 */ NdrFcShort( 0x0 ), /* 0 */ +/* 230 */ NdrFcShort( 0x0 ), /* 0 */ +/* 232 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter nColumnsSpanned */ + + + /* Parameter nActions */ + +/* 234 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 236 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 238 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 242 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 244 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure doAction */ + +/* 246 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 248 */ NdrFcLong( 0x0 ), /* 0 */ +/* 252 */ NdrFcShort( 0x4 ), /* 4 */ +/* 254 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 256 */ NdrFcShort( 0x8 ), /* 8 */ +/* 258 */ NdrFcShort( 0x8 ), /* 8 */ +/* 260 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 262 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 264 */ NdrFcShort( 0x0 ), /* 0 */ +/* 266 */ NdrFcShort( 0x0 ), /* 0 */ +/* 268 */ NdrFcShort( 0x0 ), /* 0 */ +/* 270 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter actionIndex */ + +/* 272 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 274 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 276 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 278 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 280 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 282 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnDescription */ + + + /* Procedure get_description */ + +/* 284 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 286 */ NdrFcLong( 0x0 ), /* 0 */ +/* 290 */ NdrFcShort( 0x5 ), /* 5 */ +/* 292 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 294 */ NdrFcShort( 0x8 ), /* 8 */ +/* 296 */ NdrFcShort( 0x8 ), /* 8 */ +/* 298 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 300 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 302 */ NdrFcShort( 0x1 ), /* 1 */ +/* 304 */ NdrFcShort( 0x0 ), /* 0 */ +/* 306 */ NdrFcShort( 0x0 ), /* 0 */ +/* 308 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + + + /* Parameter actionIndex */ + +/* 310 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 312 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 314 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter description */ + + + /* Parameter description */ + +/* 316 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 318 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 320 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + + + /* Return value */ + +/* 322 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 324 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 326 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_keyBinding */ + +/* 328 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 330 */ NdrFcLong( 0x0 ), /* 0 */ +/* 334 */ NdrFcShort( 0x6 ), /* 6 */ +/* 336 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 338 */ NdrFcShort( 0x10 ), /* 16 */ +/* 340 */ NdrFcShort( 0x24 ), /* 36 */ +/* 342 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x5, /* 5 */ +/* 344 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 346 */ NdrFcShort( 0x1 ), /* 1 */ +/* 348 */ NdrFcShort( 0x0 ), /* 0 */ +/* 350 */ NdrFcShort( 0x0 ), /* 0 */ +/* 352 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter actionIndex */ + +/* 354 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 356 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 358 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter nMaxBindings */ + +/* 360 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 362 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 364 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter keyBindings */ + +/* 366 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 368 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 370 */ NdrFcShort( 0x5e ), /* Type Offset=94 */ + + /* Parameter nBindings */ + +/* 372 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 374 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 376 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 378 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 380 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 382 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_name */ + +/* 384 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 386 */ NdrFcLong( 0x0 ), /* 0 */ +/* 390 */ NdrFcShort( 0x7 ), /* 7 */ +/* 392 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 394 */ NdrFcShort( 0x8 ), /* 8 */ +/* 396 */ NdrFcShort( 0x8 ), /* 8 */ +/* 398 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 400 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 402 */ NdrFcShort( 0x1 ), /* 1 */ +/* 404 */ NdrFcShort( 0x0 ), /* 0 */ +/* 406 */ NdrFcShort( 0x0 ), /* 0 */ +/* 408 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter actionIndex */ + +/* 410 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 412 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 414 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter name */ + +/* 416 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 418 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 420 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 422 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 424 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 426 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_localizedName */ + +/* 428 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 430 */ NdrFcLong( 0x0 ), /* 0 */ +/* 434 */ NdrFcShort( 0x8 ), /* 8 */ +/* 436 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 438 */ NdrFcShort( 0x8 ), /* 8 */ +/* 440 */ NdrFcShort( 0x8 ), /* 8 */ +/* 442 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 444 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 446 */ NdrFcShort( 0x1 ), /* 1 */ +/* 448 */ NdrFcShort( 0x0 ), /* 0 */ +/* 450 */ NdrFcShort( 0x0 ), /* 0 */ +/* 452 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter actionIndex */ + +/* 454 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 456 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 458 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter localizedName */ + +/* 460 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 462 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 464 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 466 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 468 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 470 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nRelations */ + +/* 472 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 474 */ NdrFcLong( 0x0 ), /* 0 */ +/* 478 */ NdrFcShort( 0x1c ), /* 28 */ +/* 480 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 482 */ NdrFcShort( 0x0 ), /* 0 */ +/* 484 */ NdrFcShort( 0x24 ), /* 36 */ +/* 486 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 488 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 490 */ NdrFcShort( 0x0 ), /* 0 */ +/* 492 */ NdrFcShort( 0x0 ), /* 0 */ +/* 494 */ NdrFcShort( 0x0 ), /* 0 */ +/* 496 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter nRelations */ + +/* 498 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 500 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 502 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 506 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 508 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_relation */ + +/* 510 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 512 */ NdrFcLong( 0x0 ), /* 0 */ +/* 516 */ NdrFcShort( 0x1d ), /* 29 */ +/* 518 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 520 */ NdrFcShort( 0x8 ), /* 8 */ +/* 522 */ NdrFcShort( 0x8 ), /* 8 */ +/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 526 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 528 */ NdrFcShort( 0x0 ), /* 0 */ +/* 530 */ NdrFcShort( 0x0 ), /* 0 */ +/* 532 */ NdrFcShort( 0x0 ), /* 0 */ +/* 534 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter relationIndex */ + +/* 536 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 538 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 540 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter relation */ + +/* 542 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 544 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 546 */ NdrFcShort( 0x7c ), /* Type Offset=124 */ + + /* Return value */ + +/* 548 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 550 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 552 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_relations */ + +/* 554 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 556 */ NdrFcLong( 0x0 ), /* 0 */ +/* 560 */ NdrFcShort( 0x1e ), /* 30 */ +/* 562 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 564 */ NdrFcShort( 0x8 ), /* 8 */ +/* 566 */ NdrFcShort( 0x24 ), /* 36 */ +/* 568 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 570 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 572 */ NdrFcShort( 0x1 ), /* 1 */ +/* 574 */ NdrFcShort( 0x0 ), /* 0 */ +/* 576 */ NdrFcShort( 0x0 ), /* 0 */ +/* 578 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maxRelations */ + +/* 580 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 582 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 584 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter relations */ + +/* 586 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */ +/* 588 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 590 */ NdrFcShort( 0x96 ), /* Type Offset=150 */ + + /* Parameter nRelations */ + +/* 592 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 594 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 596 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 598 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 600 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 602 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure role */ + +/* 604 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 606 */ NdrFcLong( 0x0 ), /* 0 */ +/* 610 */ NdrFcShort( 0x1f ), /* 31 */ +/* 612 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 614 */ NdrFcShort( 0x0 ), /* 0 */ +/* 616 */ NdrFcShort( 0x24 ), /* 36 */ +/* 618 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 620 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 622 */ NdrFcShort( 0x0 ), /* 0 */ +/* 624 */ NdrFcShort( 0x0 ), /* 0 */ +/* 626 */ NdrFcShort( 0x0 ), /* 0 */ +/* 628 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter role */ + +/* 630 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 632 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 634 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 636 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 638 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 640 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure scrollTo */ + +/* 642 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 644 */ NdrFcLong( 0x0 ), /* 0 */ +/* 648 */ NdrFcShort( 0x20 ), /* 32 */ +/* 650 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 652 */ NdrFcShort( 0x6 ), /* 6 */ +/* 654 */ NdrFcShort( 0x8 ), /* 8 */ +/* 656 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 658 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 660 */ NdrFcShort( 0x0 ), /* 0 */ +/* 662 */ NdrFcShort( 0x0 ), /* 0 */ +/* 664 */ NdrFcShort( 0x0 ), /* 0 */ +/* 666 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter scrollType */ + +/* 668 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 670 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 672 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Return value */ + +/* 674 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 676 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 678 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure scrollToPoint */ + +/* 680 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 682 */ NdrFcLong( 0x0 ), /* 0 */ +/* 686 */ NdrFcShort( 0x21 ), /* 33 */ +/* 688 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 690 */ NdrFcShort( 0x16 ), /* 22 */ +/* 692 */ NdrFcShort( 0x8 ), /* 8 */ +/* 694 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 696 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 698 */ NdrFcShort( 0x0 ), /* 0 */ +/* 700 */ NdrFcShort( 0x0 ), /* 0 */ +/* 702 */ NdrFcShort( 0x0 ), /* 0 */ +/* 704 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter coordinateType */ + +/* 706 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 708 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 710 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter x */ + +/* 712 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 714 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 716 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter y */ + +/* 718 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 720 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 722 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 724 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 726 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 728 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_groupPosition */ + +/* 730 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 732 */ NdrFcLong( 0x0 ), /* 0 */ +/* 736 */ NdrFcShort( 0x22 ), /* 34 */ +/* 738 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 740 */ NdrFcShort( 0x0 ), /* 0 */ +/* 742 */ NdrFcShort( 0x5c ), /* 92 */ +/* 744 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 746 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 748 */ NdrFcShort( 0x0 ), /* 0 */ +/* 750 */ NdrFcShort( 0x0 ), /* 0 */ +/* 752 */ NdrFcShort( 0x0 ), /* 0 */ +/* 754 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter groupLevel */ + +/* 756 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 758 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 760 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter similarItemsInGroup */ + +/* 762 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 764 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 766 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter positionInGroup */ + +/* 768 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 770 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 772 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 774 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 776 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 778 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_states */ + +/* 780 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 782 */ NdrFcLong( 0x0 ), /* 0 */ +/* 786 */ NdrFcShort( 0x23 ), /* 35 */ +/* 788 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 790 */ NdrFcShort( 0x0 ), /* 0 */ +/* 792 */ NdrFcShort( 0x24 ), /* 36 */ +/* 794 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 796 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 798 */ NdrFcShort( 0x0 ), /* 0 */ +/* 800 */ NdrFcShort( 0x0 ), /* 0 */ +/* 802 */ NdrFcShort( 0x0 ), /* 0 */ +/* 804 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter states */ + +/* 806 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 808 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 810 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 812 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 814 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 816 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_extendedRole */ + +/* 818 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 820 */ NdrFcLong( 0x0 ), /* 0 */ +/* 824 */ NdrFcShort( 0x24 ), /* 36 */ +/* 826 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 828 */ NdrFcShort( 0x0 ), /* 0 */ +/* 830 */ NdrFcShort( 0x8 ), /* 8 */ +/* 832 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 834 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 836 */ NdrFcShort( 0x1 ), /* 1 */ +/* 838 */ NdrFcShort( 0x0 ), /* 0 */ +/* 840 */ NdrFcShort( 0x0 ), /* 0 */ +/* 842 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter extendedRole */ + +/* 844 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 846 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 848 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 850 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 852 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 854 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_localizedExtendedRole */ + +/* 856 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 858 */ NdrFcLong( 0x0 ), /* 0 */ +/* 862 */ NdrFcShort( 0x25 ), /* 37 */ +/* 864 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 866 */ NdrFcShort( 0x0 ), /* 0 */ +/* 868 */ NdrFcShort( 0x8 ), /* 8 */ +/* 870 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 872 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 874 */ NdrFcShort( 0x1 ), /* 1 */ +/* 876 */ NdrFcShort( 0x0 ), /* 0 */ +/* 878 */ NdrFcShort( 0x0 ), /* 0 */ +/* 880 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter localizedExtendedRole */ + +/* 882 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 884 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 886 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 888 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 890 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 892 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nExtendedStates */ + +/* 894 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 896 */ NdrFcLong( 0x0 ), /* 0 */ +/* 900 */ NdrFcShort( 0x26 ), /* 38 */ +/* 902 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 904 */ NdrFcShort( 0x0 ), /* 0 */ +/* 906 */ NdrFcShort( 0x24 ), /* 36 */ +/* 908 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 910 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 912 */ NdrFcShort( 0x0 ), /* 0 */ +/* 914 */ NdrFcShort( 0x0 ), /* 0 */ +/* 916 */ NdrFcShort( 0x0 ), /* 0 */ +/* 918 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter nExtendedStates */ + +/* 920 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 922 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 924 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 926 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 928 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 930 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_extendedStates */ + +/* 932 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 934 */ NdrFcLong( 0x0 ), /* 0 */ +/* 938 */ NdrFcShort( 0x27 ), /* 39 */ +/* 940 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 942 */ NdrFcShort( 0x8 ), /* 8 */ +/* 944 */ NdrFcShort( 0x24 ), /* 36 */ +/* 946 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 948 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 950 */ NdrFcShort( 0x1 ), /* 1 */ +/* 952 */ NdrFcShort( 0x0 ), /* 0 */ +/* 954 */ NdrFcShort( 0x0 ), /* 0 */ +/* 956 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maxExtendedStates */ + +/* 958 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 960 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 962 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter extendedStates */ + +/* 964 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 966 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 968 */ NdrFcShort( 0xac ), /* Type Offset=172 */ + + /* Parameter nExtendedStates */ + +/* 970 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 972 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 974 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 976 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 978 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 980 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_localizedExtendedStates */ + +/* 982 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 984 */ NdrFcLong( 0x0 ), /* 0 */ +/* 988 */ NdrFcShort( 0x28 ), /* 40 */ +/* 990 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 992 */ NdrFcShort( 0x8 ), /* 8 */ +/* 994 */ NdrFcShort( 0x24 ), /* 36 */ +/* 996 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 998 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1000 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1002 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1004 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1006 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maxLocalizedExtendedStates */ + +/* 1008 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1010 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1012 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter localizedExtendedStates */ + +/* 1014 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 1016 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1018 */ NdrFcShort( 0xac ), /* Type Offset=172 */ + + /* Parameter nLocalizedExtendedStates */ + +/* 1020 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1022 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1024 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1026 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1028 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1030 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_uniqueID */ + +/* 1032 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1034 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1038 */ NdrFcShort( 0x29 ), /* 41 */ +/* 1040 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1042 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1044 */ NdrFcShort( 0x24 ), /* 36 */ +/* 1046 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 1048 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1050 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1052 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1054 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1056 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter uniqueID */ + +/* 1058 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1060 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1062 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1064 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1066 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1068 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_windowHandle */ + +/* 1070 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1072 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1076 */ NdrFcShort( 0x2a ), /* 42 */ +/* 1078 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1080 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1082 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1084 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 1086 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1088 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1090 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1092 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1094 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter windowHandle */ + +/* 1096 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 1098 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1100 */ NdrFcShort( 0xe6 ), /* Type Offset=230 */ + + /* Return value */ + +/* 1102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1104 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1106 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_indexInParent */ + +/* 1108 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1110 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1114 */ NdrFcShort( 0x2b ), /* 43 */ +/* 1116 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1118 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1120 */ NdrFcShort( 0x24 ), /* 36 */ +/* 1122 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 1124 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1126 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1128 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1130 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1132 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter indexInParent */ + +/* 1134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1136 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1138 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1142 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1144 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_locale */ + +/* 1146 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1148 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1152 */ NdrFcShort( 0x2c ), /* 44 */ +/* 1154 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1156 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1158 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1160 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 1162 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1164 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1166 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1168 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1170 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter locale */ + +/* 1172 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 1174 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1176 */ NdrFcShort( 0xf4 ), /* Type Offset=244 */ + + /* Return value */ + +/* 1178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1180 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1182 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_attributes */ + +/* 1184 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1186 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1190 */ NdrFcShort( 0x2d ), /* 45 */ +/* 1192 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1194 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1196 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1198 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 1200 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1202 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1204 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1206 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1208 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter attributes */ + +/* 1210 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 1212 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1214 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 1216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1218 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1220 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_attribute */ + +/* 1222 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1224 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1228 */ NdrFcShort( 0x2e ), /* 46 */ +/* 1230 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1232 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1234 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1236 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */ + 0x3, /* 3 */ +/* 1238 */ 0xa, /* 10 */ + 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */ +/* 1240 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1242 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1244 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1246 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter name */ + +/* 1248 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */ +/* 1250 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1252 */ NdrFcShort( 0x10e ), /* Type Offset=270 */ + + /* Parameter attribute */ + +/* 1254 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 1256 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1258 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */ + + /* Return value */ + +/* 1260 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1262 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1264 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_accessibleWithCaret */ + +/* 1266 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1268 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1272 */ NdrFcShort( 0x2f ), /* 47 */ +/* 1274 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1276 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1278 */ NdrFcShort( 0x24 ), /* 36 */ +/* 1280 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 1282 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1284 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1286 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1288 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1290 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter accessible */ + +/* 1292 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 1294 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1296 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Parameter caretOffset */ + +/* 1298 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1300 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1302 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1304 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1306 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1308 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_relationTargetsOfType */ + +/* 1310 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1312 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1316 */ NdrFcShort( 0x30 ), /* 48 */ +/* 1318 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 1320 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1322 */ NdrFcShort( 0x24 ), /* 36 */ +/* 1324 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */ + 0x5, /* 5 */ +/* 1326 */ 0xa, /* 10 */ + 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */ +/* 1328 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1330 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1332 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1334 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter type */ + +/* 1336 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */ +/* 1338 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1340 */ NdrFcShort( 0x10e ), /* Type Offset=270 */ + + /* Parameter maxTargets */ + +/* 1342 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1344 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1346 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter targets */ + +/* 1348 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 1350 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1352 */ NdrFcShort( 0x4c6 ), /* Type Offset=1222 */ + + /* Parameter nTargets */ + +/* 1354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1356 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1358 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1362 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 1364 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_locationInParent */ + +/* 1366 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1368 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1372 */ NdrFcShort( 0x3 ), /* 3 */ +/* 1374 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1376 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1378 */ NdrFcShort( 0x40 ), /* 64 */ +/* 1380 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 1382 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1384 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1386 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1388 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1390 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter x */ + +/* 1392 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1394 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1396 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter y */ + +/* 1398 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1400 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1402 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1404 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1406 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1408 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_foreground */ + +/* 1410 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1412 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1416 */ NdrFcShort( 0x4 ), /* 4 */ +/* 1418 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1420 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1422 */ NdrFcShort( 0x24 ), /* 36 */ +/* 1424 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 1426 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1428 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1430 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1432 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1434 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter foreground */ + +/* 1436 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1438 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1440 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1442 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1444 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1446 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_currentValue */ + +/* 1448 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1450 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1454 */ NdrFcShort( 0x3 ), /* 3 */ +/* 1456 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1458 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1460 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1462 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 1464 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1466 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1468 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1470 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1472 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter currentValue */ + +/* 1474 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 1476 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1478 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */ + + /* Return value */ + +/* 1480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1482 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1484 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure setCurrentValue */ + +/* 1486 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1488 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1492 */ NdrFcShort( 0x4 ), /* 4 */ +/* 1494 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1496 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1498 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1500 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */ + 0x2, /* 2 */ +/* 1502 */ 0xa, /* 10 */ + 0x85, /* Ext Flags: new corr desc, srv corr check, has big byval param */ +/* 1504 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1506 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1508 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1510 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter value */ + +/* 1512 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */ +/* 1514 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1516 */ NdrFcShort( 0x4ec ), /* Type Offset=1260 */ + + /* Return value */ + +/* 1518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1520 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1522 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_maximumValue */ + +/* 1524 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1526 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1530 */ NdrFcShort( 0x5 ), /* 5 */ +/* 1532 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1534 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1536 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1538 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 1540 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1542 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1544 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1546 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1548 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maximumValue */ + +/* 1550 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 1552 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1554 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */ + + /* Return value */ + +/* 1556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1558 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1560 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_minimumValue */ + +/* 1562 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1564 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1568 */ NdrFcShort( 0x6 ), /* 6 */ +/* 1570 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1572 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1574 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1576 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 1578 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1580 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1582 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1584 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1586 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter minimumValue */ + +/* 1588 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 1590 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1592 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */ + + /* Return value */ + +/* 1594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1596 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1598 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure copyText */ + + + /* Procedure addSelection */ + +/* 1600 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1602 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1606 */ NdrFcShort( 0x3 ), /* 3 */ +/* 1608 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1610 */ NdrFcShort( 0x10 ), /* 16 */ +/* 1612 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1614 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 1616 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1618 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1620 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1622 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1624 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startOffset */ + + + /* Parameter startOffset */ + +/* 1626 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1628 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1630 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + + + /* Parameter endOffset */ + +/* 1632 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1634 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1636 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 1638 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1640 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1642 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_attributes */ + +/* 1644 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1646 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1650 */ NdrFcShort( 0x4 ), /* 4 */ +/* 1652 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 1654 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1656 */ NdrFcShort( 0x40 ), /* 64 */ +/* 1658 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x5, /* 5 */ +/* 1660 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1662 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1664 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1666 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1668 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 1670 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1672 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1674 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter startOffset */ + +/* 1676 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1678 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1680 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 1682 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1684 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1686 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter textAttributes */ + +/* 1688 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 1690 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1692 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 1694 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1696 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 1698 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_characterExtents */ + +/* 1700 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1702 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1706 */ NdrFcShort( 0x6 ), /* 6 */ +/* 1708 */ NdrFcShort( 0x40 ), /* x86 Stack size/offset = 64 */ +/* 1710 */ NdrFcShort( 0xe ), /* 14 */ +/* 1712 */ NdrFcShort( 0x78 ), /* 120 */ +/* 1714 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x7, /* 7 */ +/* 1716 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1718 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1720 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1722 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1724 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 1726 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1728 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1730 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter coordType */ + +/* 1732 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1734 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1736 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter x */ + +/* 1738 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1740 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1742 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter y */ + +/* 1744 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1746 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1748 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter width */ + +/* 1750 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1752 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 1754 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter height */ + +/* 1756 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1758 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 1760 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1762 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1764 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 1766 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nRows */ + + + /* Procedure get_nSelections */ + +/* 1768 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1770 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1774 */ NdrFcShort( 0x7 ), /* 7 */ +/* 1776 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1778 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1780 */ NdrFcShort( 0x24 ), /* 36 */ +/* 1782 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 1784 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1786 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1788 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1790 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1792 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter rowCount */ + + + /* Parameter nSelections */ + +/* 1794 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1796 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1798 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 1800 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1802 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1804 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_offsetAtPoint */ + +/* 1806 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1808 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1812 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1814 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 1816 */ NdrFcShort( 0x16 ), /* 22 */ +/* 1818 */ NdrFcShort( 0x24 ), /* 36 */ +/* 1820 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x5, /* 5 */ +/* 1822 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1824 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1826 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1828 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1830 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter x */ + +/* 1832 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1834 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1836 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter y */ + +/* 1838 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1840 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1842 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter coordType */ + +/* 1844 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1846 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1848 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter offset */ + +/* 1850 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1852 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1854 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1856 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1858 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 1860 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selection */ + +/* 1862 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1864 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1868 */ NdrFcShort( 0x9 ), /* 9 */ +/* 1870 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 1872 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1874 */ NdrFcShort( 0x40 ), /* 64 */ +/* 1876 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 1878 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 1880 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1882 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1884 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1886 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter selectionIndex */ + +/* 1888 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1890 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1892 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter startOffset */ + +/* 1894 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1896 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1898 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 1900 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 1902 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1904 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 1906 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1908 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1910 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_text */ + +/* 1912 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1914 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1918 */ NdrFcShort( 0xa ), /* 10 */ +/* 1920 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 1922 */ NdrFcShort( 0x10 ), /* 16 */ +/* 1924 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1926 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 1928 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1930 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1932 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1934 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1936 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startOffset */ + +/* 1938 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1940 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1942 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 1944 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1946 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1948 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter text */ + +/* 1950 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 1952 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1954 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 1956 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 1958 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1960 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_textBeforeOffset */ + +/* 1962 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 1964 */ NdrFcLong( 0x0 ), /* 0 */ +/* 1968 */ NdrFcShort( 0xb ), /* 11 */ +/* 1970 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 1972 */ NdrFcShort( 0xe ), /* 14 */ +/* 1974 */ NdrFcShort( 0x40 ), /* 64 */ +/* 1976 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x6, /* 6 */ +/* 1978 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 1980 */ NdrFcShort( 0x1 ), /* 1 */ +/* 1982 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1984 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1986 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 1988 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1990 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1992 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter boundaryType */ + +/* 1994 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 1996 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1998 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter startOffset */ + +/* 2000 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2002 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2004 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2006 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2008 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2010 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter text */ + +/* 2012 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 2014 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2016 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 2018 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2020 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 2022 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_textAfterOffset */ + +/* 2024 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2026 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2030 */ NdrFcShort( 0xc ), /* 12 */ +/* 2032 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 2034 */ NdrFcShort( 0xe ), /* 14 */ +/* 2036 */ NdrFcShort( 0x40 ), /* 64 */ +/* 2038 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x6, /* 6 */ +/* 2040 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 2042 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2044 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2046 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2048 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 2050 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2052 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2054 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter boundaryType */ + +/* 2056 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2058 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2060 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter startOffset */ + +/* 2062 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2064 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2066 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2068 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2070 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2072 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter text */ + +/* 2074 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 2076 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2078 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 2080 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2082 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 2084 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_textAtOffset */ + +/* 2086 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2088 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2092 */ NdrFcShort( 0xd ), /* 13 */ +/* 2094 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 2096 */ NdrFcShort( 0xe ), /* 14 */ +/* 2098 */ NdrFcShort( 0x40 ), /* 64 */ +/* 2100 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x6, /* 6 */ +/* 2102 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 2104 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2106 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2108 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2110 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 2112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2114 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2116 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter boundaryType */ + +/* 2118 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2120 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2122 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter startOffset */ + +/* 2124 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2126 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2128 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2130 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2132 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2134 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter text */ + +/* 2136 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 2138 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2140 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 2142 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2144 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 2146 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure removeSelection */ + +/* 2148 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2150 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2154 */ NdrFcShort( 0xe ), /* 14 */ +/* 2156 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2158 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2160 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2162 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 2164 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2166 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2168 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2170 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2172 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter selectionIndex */ + +/* 2174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2176 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2178 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2182 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2184 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure setCaretOffset */ + +/* 2186 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2188 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2192 */ NdrFcShort( 0xf ), /* 15 */ +/* 2194 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2196 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2198 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2200 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 2202 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2204 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2206 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2208 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2210 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 2212 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2214 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2216 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2218 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2220 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2222 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure setSelection */ + +/* 2224 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2226 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2230 */ NdrFcShort( 0x10 ), /* 16 */ +/* 2232 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2234 */ NdrFcShort( 0x18 ), /* 24 */ +/* 2236 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2238 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 2240 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2242 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2244 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2246 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2248 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter selectionIndex */ + +/* 2250 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2252 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2254 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter startOffset */ + +/* 2256 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2258 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2260 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2262 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2264 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2266 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2268 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2270 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2272 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nCharacters */ + +/* 2274 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2276 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2280 */ NdrFcShort( 0x11 ), /* 17 */ +/* 2282 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2284 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2286 */ NdrFcShort( 0x24 ), /* 36 */ +/* 2288 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 2290 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2292 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2294 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2296 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2298 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter nCharacters */ + +/* 2300 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2302 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2304 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2306 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2308 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2310 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure scrollSubstringTo */ + +/* 2312 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2314 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2318 */ NdrFcShort( 0x12 ), /* 18 */ +/* 2320 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2322 */ NdrFcShort( 0x16 ), /* 22 */ +/* 2324 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2326 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 2328 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2330 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2332 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2334 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2336 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startIndex */ + +/* 2338 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2340 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2342 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endIndex */ + +/* 2344 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2346 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2348 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter scrollType */ + +/* 2350 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2352 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2354 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2356 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2358 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2360 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure scrollSubstringToPoint */ + +/* 2362 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2364 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2368 */ NdrFcShort( 0x13 ), /* 19 */ +/* 2370 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 2372 */ NdrFcShort( 0x26 ), /* 38 */ +/* 2374 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2376 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x6, /* 6 */ +/* 2378 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2380 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2382 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2384 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2386 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startIndex */ + +/* 2388 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2390 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2392 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endIndex */ + +/* 2394 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2396 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2398 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter coordinateType */ + +/* 2400 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2402 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2404 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter x */ + +/* 2406 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2408 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2410 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter y */ + +/* 2412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2414 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2416 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2418 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2420 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 2422 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_newText */ + +/* 2424 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2426 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2430 */ NdrFcShort( 0x14 ), /* 20 */ +/* 2432 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2434 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2436 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2438 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 2440 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 2442 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2444 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2446 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2448 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter newText */ + +/* 2450 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */ +/* 2452 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2454 */ NdrFcShort( 0x4fa ), /* Type Offset=1274 */ + + /* Return value */ + +/* 2456 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2458 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2460 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_oldText */ + +/* 2462 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2464 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2468 */ NdrFcShort( 0x15 ), /* 21 */ +/* 2470 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2472 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2474 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2476 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 2478 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 2480 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2482 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2484 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2486 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter oldText */ + +/* 2488 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */ +/* 2490 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2492 */ NdrFcShort( 0x4fa ), /* Type Offset=1274 */ + + /* Return value */ + +/* 2494 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2496 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2498 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_attributeRange */ + +/* 2500 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2502 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2506 */ NdrFcShort( 0x16 ), /* 22 */ +/* 2508 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 2510 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2512 */ NdrFcShort( 0x40 ), /* 64 */ +/* 2514 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */ + 0x6, /* 6 */ +/* 2516 */ 0xa, /* 10 */ + 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */ +/* 2518 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2520 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2522 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2524 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 2526 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2528 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2530 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter filter */ + +/* 2532 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */ +/* 2534 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2536 */ NdrFcShort( 0x10e ), /* Type Offset=270 */ + + /* Parameter startOffset */ + +/* 2538 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2540 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2542 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2544 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2546 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2548 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter attributeValues */ + +/* 2550 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 2552 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2554 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 2556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2558 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 2560 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selections */ + +/* 2562 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2564 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2568 */ NdrFcShort( 0x3 ), /* 3 */ +/* 2570 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2572 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2574 */ NdrFcShort( 0x24 ), /* 36 */ +/* 2576 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 2578 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 2580 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2582 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2584 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2586 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter selections */ + +/* 2588 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 2590 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2592 */ NdrFcShort( 0x50a ), /* Type Offset=1290 */ + + /* Parameter nSelections */ + +/* 2594 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 2596 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2598 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2602 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2604 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure setSelections */ + +/* 2606 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2608 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2612 */ NdrFcShort( 0x4 ), /* 4 */ +/* 2614 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2616 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2618 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2620 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */ + 0x3, /* 3 */ +/* 2622 */ 0xa, /* 10 */ + 0x5, /* Ext Flags: new corr desc, srv corr check, */ +/* 2624 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2626 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2628 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2630 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter nSelections */ + +/* 2632 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2634 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2636 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter selections */ + +/* 2638 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */ +/* 2640 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2642 */ NdrFcShort( 0x554 ), /* Type Offset=1364 */ + + /* Return value */ + +/* 2644 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2646 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2648 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure deleteText */ + +/* 2650 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2652 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2656 */ NdrFcShort( 0x4 ), /* 4 */ +/* 2658 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2660 */ NdrFcShort( 0x10 ), /* 16 */ +/* 2662 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2664 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 2666 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2668 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2670 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2672 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2674 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startOffset */ + +/* 2676 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2678 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2680 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2682 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2684 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2686 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2688 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2690 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2692 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure insertText */ + +/* 2694 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2696 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2700 */ NdrFcShort( 0x5 ), /* 5 */ +/* 2702 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2704 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2706 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2708 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */ + 0x3, /* 3 */ +/* 2710 */ 0xa, /* 10 */ + 0x5, /* Ext Flags: new corr desc, srv corr check, */ +/* 2712 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2714 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2716 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2718 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 2720 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2722 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2724 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter text */ + +/* 2726 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */ +/* 2728 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2730 */ NdrFcShort( 0x10e ), /* Type Offset=270 */ + + /* Return value */ + +/* 2732 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2734 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2736 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure cutText */ + +/* 2738 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2740 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2744 */ NdrFcShort( 0x6 ), /* 6 */ +/* 2746 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2748 */ NdrFcShort( 0x10 ), /* 16 */ +/* 2750 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2752 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 2754 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2756 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2758 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2760 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2762 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startOffset */ + +/* 2764 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2766 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2768 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2770 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2772 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2774 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2776 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2778 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2780 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure pasteText */ + +/* 2782 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2784 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2788 */ NdrFcShort( 0x7 ), /* 7 */ +/* 2790 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2792 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2794 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2796 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 2798 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 2800 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2802 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2804 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2806 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter offset */ + +/* 2808 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2810 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2812 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 2814 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2816 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2818 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure replaceText */ + +/* 2820 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2822 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2826 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2828 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2830 */ NdrFcShort( 0x10 ), /* 16 */ +/* 2832 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2834 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */ + 0x4, /* 4 */ +/* 2836 */ 0xa, /* 10 */ + 0x5, /* Ext Flags: new corr desc, srv corr check, */ +/* 2838 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2840 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2842 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2844 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startOffset */ + +/* 2846 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2848 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2850 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2852 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2854 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2856 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter text */ + +/* 2858 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */ +/* 2860 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2862 */ NdrFcShort( 0x10e ), /* Type Offset=270 */ + + /* Return value */ + +/* 2864 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2866 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2868 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure setAttributes */ + +/* 2870 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2872 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2876 */ NdrFcShort( 0x9 ), /* 9 */ +/* 2878 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 2880 */ NdrFcShort( 0x10 ), /* 16 */ +/* 2882 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2884 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */ + 0x4, /* 4 */ +/* 2886 */ 0xa, /* 10 */ + 0x5, /* Ext Flags: new corr desc, srv corr check, */ +/* 2888 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2890 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2892 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2894 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter startOffset */ + +/* 2896 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2898 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2900 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter endOffset */ + +/* 2902 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2904 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2906 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter attributes */ + +/* 2908 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */ +/* 2910 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2912 */ NdrFcShort( 0x10e ), /* Type Offset=270 */ + + /* Return value */ + +/* 2914 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2916 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2918 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_anchor */ + +/* 2920 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2922 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2926 */ NdrFcShort( 0x9 ), /* 9 */ +/* 2928 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2930 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2932 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2934 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 2936 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 2938 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2940 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2942 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2944 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter index */ + +/* 2946 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2948 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2950 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter anchor */ + +/* 2952 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 2954 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 2956 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */ + + /* Return value */ + +/* 2958 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 2960 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 2962 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_anchorTarget */ + +/* 2964 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2966 */ NdrFcLong( 0x0 ), /* 0 */ +/* 2970 */ NdrFcShort( 0xa ), /* 10 */ +/* 2972 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 2974 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2976 */ NdrFcShort( 0x8 ), /* 8 */ +/* 2978 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 2980 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 2982 */ NdrFcShort( 0x1 ), /* 1 */ +/* 2984 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2986 */ NdrFcShort( 0x0 ), /* 0 */ +/* 2988 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter index */ + +/* 2990 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 2992 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 2994 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter anchorTarget */ + +/* 2996 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 2998 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3000 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */ + + /* Return value */ + +/* 3002 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3004 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3006 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nRows */ + + + /* Procedure get_startIndex */ + +/* 3008 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3010 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3014 */ NdrFcShort( 0xb ), /* 11 */ +/* 3016 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3018 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3020 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3022 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 3024 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3026 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3028 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3030 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3032 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter rowCount */ + + + /* Parameter index */ + +/* 3034 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3036 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3038 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 3040 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3042 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3044 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nSelectedChildren */ + + + /* Procedure get_endIndex */ + +/* 3046 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3048 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3052 */ NdrFcShort( 0xc ), /* 12 */ +/* 3054 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3056 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3058 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3060 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 3062 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3064 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3066 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3068 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3070 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter cellCount */ + + + /* Parameter index */ + +/* 3072 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3074 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3076 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 3078 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3080 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3082 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_valid */ + +/* 3084 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3086 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3090 */ NdrFcShort( 0xd ), /* 13 */ +/* 3092 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3094 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3096 */ NdrFcShort( 0x21 ), /* 33 */ +/* 3098 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 3100 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3102 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3104 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3106 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3108 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter valid */ + +/* 3110 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3112 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3114 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3116 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3118 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3120 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nHyperlinks */ + +/* 3122 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3124 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3128 */ NdrFcShort( 0x16 ), /* 22 */ +/* 3130 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3132 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3134 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3136 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 3138 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3140 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3142 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3144 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3146 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter hyperlinkCount */ + +/* 3148 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3150 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3152 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3154 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3156 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3158 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_hyperlink */ + +/* 3160 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3162 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3166 */ NdrFcShort( 0x17 ), /* 23 */ +/* 3168 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3170 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3172 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3174 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 3176 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3178 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3180 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3182 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3184 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter index */ + +/* 3186 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3188 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3190 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter hyperlink */ + +/* 3192 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 3194 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3196 */ NdrFcShort( 0x572 ), /* Type Offset=1394 */ + + /* Return value */ + +/* 3198 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3200 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3202 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_hyperlinkIndex */ + +/* 3204 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3206 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3210 */ NdrFcShort( 0x18 ), /* 24 */ +/* 3212 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3214 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3216 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3218 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 3220 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3222 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3224 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3226 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3228 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter charIndex */ + +/* 3230 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3232 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3234 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter hyperlinkIndex */ + +/* 3236 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3238 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3240 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3242 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3244 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3246 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_hyperlinks */ + +/* 3248 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3250 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3254 */ NdrFcShort( 0x19 ), /* 25 */ +/* 3256 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3258 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3260 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3262 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 3264 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 3266 */ NdrFcShort( 0x1 ), /* 1 */ +/* 3268 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3270 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3272 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter hyperlinks */ + +/* 3274 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 3276 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3278 */ NdrFcShort( 0x588 ), /* Type Offset=1416 */ + + /* Parameter nHyperlinks */ + +/* 3280 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3282 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3284 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3286 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3288 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3290 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_cellAt */ + + + /* Procedure get_accessibleAt */ + +/* 3292 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3294 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3298 */ NdrFcShort( 0x3 ), /* 3 */ +/* 3300 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 3302 */ NdrFcShort( 0x10 ), /* 16 */ +/* 3304 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3306 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 3308 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3310 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3312 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3314 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3316 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + + + /* Parameter row */ + +/* 3318 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3320 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3322 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter column */ + + + /* Parameter column */ + +/* 3324 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3326 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3328 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter cell */ + + + /* Parameter accessible */ + +/* 3330 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 3332 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3334 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Return value */ + + + /* Return value */ + +/* 3336 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3338 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3340 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_caption */ + + + /* Procedure get_caption */ + +/* 3342 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3344 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3348 */ NdrFcShort( 0x4 ), /* 4 */ +/* 3350 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3352 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3354 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3356 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 3358 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3360 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3362 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3364 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3366 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter accessible */ + + + /* Parameter accessible */ + +/* 3368 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 3370 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3372 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Return value */ + + + /* Return value */ + +/* 3374 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3376 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3378 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_childIndex */ + +/* 3380 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3382 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3386 */ NdrFcShort( 0x5 ), /* 5 */ +/* 3388 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 3390 */ NdrFcShort( 0x10 ), /* 16 */ +/* 3392 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3394 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 3396 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3398 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3400 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3402 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3404 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter rowIndex */ + +/* 3406 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3408 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3410 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter columnIndex */ + +/* 3412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3414 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3416 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter cellIndex */ + +/* 3418 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3420 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3422 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3424 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3426 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3428 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnDescription */ + +/* 3430 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3432 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3436 */ NdrFcShort( 0x6 ), /* 6 */ +/* 3438 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3440 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3442 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3444 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 3446 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 3448 */ NdrFcShort( 0x1 ), /* 1 */ +/* 3450 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3452 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3454 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + +/* 3456 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3458 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3460 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter description */ + +/* 3462 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 3464 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3466 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 3468 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3470 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3472 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnExtentAt */ + +/* 3474 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3476 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3480 */ NdrFcShort( 0x7 ), /* 7 */ +/* 3482 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 3484 */ NdrFcShort( 0x10 ), /* 16 */ +/* 3486 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3488 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 3490 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3492 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3494 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3496 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3498 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 3500 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3502 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3504 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter column */ + +/* 3506 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3508 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3510 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter nColumnsSpanned */ + +/* 3512 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3514 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3516 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3520 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3522 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnHeader */ + +/* 3524 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3526 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3530 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3532 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3534 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3536 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3538 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 3540 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3542 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3544 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3546 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3548 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter accessibleTable */ + +/* 3550 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 3552 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3554 */ NdrFcShort( 0x5a6 ), /* Type Offset=1446 */ + + /* Parameter startingRowIndex */ + +/* 3556 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3558 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3560 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3562 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3564 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3566 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnIndex */ + +/* 3568 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3570 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3574 */ NdrFcShort( 0x9 ), /* 9 */ +/* 3576 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3578 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3580 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3582 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 3584 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3586 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3588 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3590 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3592 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter cellIndex */ + +/* 3594 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3596 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3598 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter columnIndex */ + +/* 3600 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3602 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3604 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3606 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3608 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3610 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nSelectedRows */ + + + /* Procedure get_nColumns */ + +/* 3612 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3614 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3618 */ NdrFcShort( 0xa ), /* 10 */ +/* 3620 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3622 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3624 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3626 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 3628 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3630 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3632 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3634 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3636 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter rowCount */ + + + /* Parameter columnCount */ + +/* 3638 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3640 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3642 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 3644 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3646 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3648 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nSelectedColumns */ + +/* 3650 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3652 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3656 */ NdrFcShort( 0xd ), /* 13 */ +/* 3658 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3660 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3662 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3664 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 3666 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3668 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3670 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3672 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3674 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter columnCount */ + +/* 3676 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3678 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3680 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3682 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3684 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3686 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nSelectedRows */ + +/* 3688 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3690 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3694 */ NdrFcShort( 0xe ), /* 14 */ +/* 3696 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3698 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3700 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3702 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 3704 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3706 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3708 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3710 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3712 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter rowCount */ + +/* 3714 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3716 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3718 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3720 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3722 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3724 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowDescription */ + +/* 3726 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3728 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3732 */ NdrFcShort( 0xf ), /* 15 */ +/* 3734 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3736 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3738 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3740 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 3742 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 3744 */ NdrFcShort( 0x1 ), /* 1 */ +/* 3746 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3748 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3750 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 3752 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3754 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3756 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter description */ + +/* 3758 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 3760 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3762 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 3764 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3766 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3768 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowExtentAt */ + +/* 3770 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3772 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3776 */ NdrFcShort( 0x10 ), /* 16 */ +/* 3778 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 3780 */ NdrFcShort( 0x10 ), /* 16 */ +/* 3782 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3784 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 3786 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3788 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3790 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3792 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3794 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 3796 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3798 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3800 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter column */ + +/* 3802 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3804 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3806 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter nRowsSpanned */ + +/* 3808 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3810 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3812 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3814 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3816 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3818 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowHeader */ + +/* 3820 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3822 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3826 */ NdrFcShort( 0x11 ), /* 17 */ +/* 3828 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3830 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3832 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3834 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 3836 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3838 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3840 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3842 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3844 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter accessibleTable */ + +/* 3846 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 3848 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3850 */ NdrFcShort( 0x5a6 ), /* Type Offset=1446 */ + + /* Parameter startingColumnIndex */ + +/* 3852 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3854 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3856 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3858 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3860 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3862 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowIndex */ + +/* 3864 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3866 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3870 */ NdrFcShort( 0x12 ), /* 18 */ +/* 3872 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3874 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3876 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3878 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 3880 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 3882 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3884 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3886 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3888 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter cellIndex */ + +/* 3890 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3892 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3894 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter rowIndex */ + +/* 3896 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3898 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3900 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3902 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3904 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3906 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selectedChildren */ + +/* 3908 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3910 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3914 */ NdrFcShort( 0x13 ), /* 19 */ +/* 3916 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 3918 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3920 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3922 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 3924 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 3926 */ NdrFcShort( 0x1 ), /* 1 */ +/* 3928 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3930 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3932 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maxChildren */ + +/* 3934 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3936 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3938 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter children */ + +/* 3940 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 3942 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3944 */ NdrFcShort( 0x5bc ), /* Type Offset=1468 */ + + /* Parameter nChildren */ + +/* 3946 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3948 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 3950 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 3952 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 3954 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 3956 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selectedColumns */ + +/* 3958 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 3960 */ NdrFcLong( 0x0 ), /* 0 */ +/* 3964 */ NdrFcShort( 0x14 ), /* 20 */ +/* 3966 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 3968 */ NdrFcShort( 0x8 ), /* 8 */ +/* 3970 */ NdrFcShort( 0x24 ), /* 36 */ +/* 3972 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 3974 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 3976 */ NdrFcShort( 0x1 ), /* 1 */ +/* 3978 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3980 */ NdrFcShort( 0x0 ), /* 0 */ +/* 3982 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maxColumns */ + +/* 3984 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 3986 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 3988 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter columns */ + +/* 3990 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 3992 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 3994 */ NdrFcShort( 0x5bc ), /* Type Offset=1468 */ + + /* Parameter nColumns */ + +/* 3996 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 3998 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4000 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4002 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4004 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4006 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selectedRows */ + +/* 4008 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4010 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4014 */ NdrFcShort( 0x15 ), /* 21 */ +/* 4016 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 4018 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4020 */ NdrFcShort( 0x24 ), /* 36 */ +/* 4022 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x4, /* 4 */ +/* 4024 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 4026 */ NdrFcShort( 0x1 ), /* 1 */ +/* 4028 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4030 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4032 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter maxRows */ + +/* 4034 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4036 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4038 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter rows */ + +/* 4040 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 4042 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4044 */ NdrFcShort( 0x5bc ), /* Type Offset=1468 */ + + /* Parameter nRows */ + +/* 4046 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4048 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4050 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4052 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4054 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4056 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_summary */ + +/* 4058 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4060 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4064 */ NdrFcShort( 0x16 ), /* 22 */ +/* 4066 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4068 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4070 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4072 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 4074 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4076 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4078 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4080 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4082 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter accessible */ + +/* 4084 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 4086 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4088 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Return value */ + +/* 4090 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4092 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4094 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_isColumnSelected */ + +/* 4096 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4098 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4102 */ NdrFcShort( 0x17 ), /* 23 */ +/* 4104 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4106 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4108 */ NdrFcShort( 0x21 ), /* 33 */ +/* 4110 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 4112 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4114 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4116 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4118 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4120 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + +/* 4122 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4124 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4126 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter isSelected */ + +/* 4128 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4130 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4132 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4134 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4136 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4138 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_isRowSelected */ + +/* 4140 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4142 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4146 */ NdrFcShort( 0x18 ), /* 24 */ +/* 4148 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4150 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4152 */ NdrFcShort( 0x21 ), /* 33 */ +/* 4154 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 4156 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4158 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4160 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4162 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4164 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 4166 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4168 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4170 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter isSelected */ + +/* 4172 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4174 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4176 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4180 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4182 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_isSelected */ + +/* 4184 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4186 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4190 */ NdrFcShort( 0x19 ), /* 25 */ +/* 4192 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 4194 */ NdrFcShort( 0x10 ), /* 16 */ +/* 4196 */ NdrFcShort( 0x21 ), /* 33 */ +/* 4198 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 4200 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4202 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4204 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4206 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4208 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 4210 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4212 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4214 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter column */ + +/* 4216 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4218 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4220 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter isSelected */ + +/* 4222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4224 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4226 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4230 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4232 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure selectRow */ + +/* 4234 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4236 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4240 */ NdrFcShort( 0x1a ), /* 26 */ +/* 4242 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4244 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4246 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4248 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4250 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4252 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4254 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4256 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4258 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 4260 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4262 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4264 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4266 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4268 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4270 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure selectColumn */ + +/* 4272 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4274 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4278 */ NdrFcShort( 0x1b ), /* 27 */ +/* 4280 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4282 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4284 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4286 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4288 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4290 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4292 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4294 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4296 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + +/* 4298 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4300 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4302 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4304 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4306 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4308 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure unselectRow */ + +/* 4310 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4312 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4316 */ NdrFcShort( 0x1c ), /* 28 */ +/* 4318 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4320 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4322 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4324 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4326 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4328 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4330 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4332 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4334 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 4336 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4338 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4340 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4342 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4344 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4346 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure unselectColumn */ + +/* 4348 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4350 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4354 */ NdrFcShort( 0x1d ), /* 29 */ +/* 4356 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4358 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4360 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4362 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4364 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4366 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4368 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4370 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4372 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + +/* 4374 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4376 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4378 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4380 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4382 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4384 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowColumnExtentsAtIndex */ + +/* 4386 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4388 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4392 */ NdrFcShort( 0x1e ), /* 30 */ +/* 4394 */ NdrFcShort( 0x40 ), /* x86 Stack size/offset = 64 */ +/* 4396 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4398 */ NdrFcShort( 0x91 ), /* 145 */ +/* 4400 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x7, /* 7 */ +/* 4402 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4404 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4406 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4408 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4410 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter index */ + +/* 4412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4414 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4416 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter row */ + +/* 4418 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4420 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4422 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter column */ + +/* 4424 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4426 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4428 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter rowExtents */ + +/* 4430 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4432 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4434 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter columnExtents */ + +/* 4436 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4438 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 4440 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter isSelected */ + +/* 4442 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4444 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 4446 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4448 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4450 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 4452 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_modelChange */ + +/* 4454 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4456 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4460 */ NdrFcShort( 0x1f ), /* 31 */ +/* 4462 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4464 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4466 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4468 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 4470 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4472 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4474 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4476 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4478 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter modelChange */ + +/* 4480 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 4482 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4484 */ NdrFcShort( 0x5da ), /* Type Offset=1498 */ + + /* Return value */ + +/* 4486 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4488 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4490 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowExtent */ + + + /* Procedure get_nColumns */ + +/* 4492 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4494 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4498 */ NdrFcShort( 0x6 ), /* 6 */ +/* 4500 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4502 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4504 */ NdrFcShort( 0x24 ), /* 36 */ +/* 4506 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4508 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4510 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4512 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4514 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4516 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter nRowsSpanned */ + + + /* Parameter columnCount */ + +/* 4518 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4520 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4522 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 4524 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4526 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4528 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowIndex */ + + + /* Procedure get_nSelectedCells */ + +/* 4530 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4532 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4536 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4538 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4540 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4542 */ NdrFcShort( 0x24 ), /* 36 */ +/* 4544 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4546 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4548 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4550 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4552 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4554 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter rowIndex */ + + + /* Parameter cellCount */ + +/* 4556 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4558 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4560 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + + + /* Return value */ + +/* 4562 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4564 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4566 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_nSelectedColumns */ + +/* 4568 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4570 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4574 */ NdrFcShort( 0x9 ), /* 9 */ +/* 4576 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4578 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4580 */ NdrFcShort( 0x24 ), /* 36 */ +/* 4582 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4584 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4586 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4588 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4590 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4592 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter columnCount */ + +/* 4594 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4596 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4598 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4602 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4604 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowDescription */ + +/* 4606 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4608 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4612 */ NdrFcShort( 0xb ), /* 11 */ +/* 4614 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4616 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4618 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4620 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 4622 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 4624 */ NdrFcShort( 0x1 ), /* 1 */ +/* 4626 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4628 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4630 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 4632 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4634 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4636 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter description */ + +/* 4638 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 4640 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4642 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 4644 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4646 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4648 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selectedCells */ + +/* 4650 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4652 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4656 */ NdrFcShort( 0xc ), /* 12 */ +/* 4658 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4660 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4662 */ NdrFcShort( 0x24 ), /* 36 */ +/* 4664 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 4666 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 4668 */ NdrFcShort( 0x1 ), /* 1 */ +/* 4670 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4672 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4674 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter cells */ + +/* 4676 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 4678 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4680 */ NdrFcShort( 0x5e8 ), /* Type Offset=1512 */ + + /* Parameter nSelectedCells */ + +/* 4682 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4684 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4686 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4688 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4690 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4692 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selectedColumns */ + +/* 4694 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4696 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4700 */ NdrFcShort( 0xd ), /* 13 */ +/* 4702 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4704 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4706 */ NdrFcShort( 0x24 ), /* 36 */ +/* 4708 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 4710 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 4712 */ NdrFcShort( 0x1 ), /* 1 */ +/* 4714 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4716 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4718 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter selectedColumns */ + +/* 4720 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 4722 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4724 */ NdrFcShort( 0x606 ), /* Type Offset=1542 */ + + /* Parameter nColumns */ + +/* 4726 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4728 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4730 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4732 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4734 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4736 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_selectedRows */ + +/* 4738 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4740 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4744 */ NdrFcShort( 0xe ), /* 14 */ +/* 4746 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4748 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4750 */ NdrFcShort( 0x24 ), /* 36 */ +/* 4752 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 4754 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 4756 */ NdrFcShort( 0x1 ), /* 1 */ +/* 4758 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4760 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4762 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter selectedRows */ + +/* 4764 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 4766 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4768 */ NdrFcShort( 0x606 ), /* Type Offset=1542 */ + + /* Parameter nRows */ + +/* 4770 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4772 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4774 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4776 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4778 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4780 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_summary */ + +/* 4782 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4784 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4788 */ NdrFcShort( 0xf ), /* 15 */ +/* 4790 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4792 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4794 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4796 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 4798 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4800 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4802 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4804 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4806 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter accessible */ + +/* 4808 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 4810 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4812 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Return value */ + +/* 4814 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4816 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4818 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_isColumnSelected */ + +/* 4820 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4822 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4826 */ NdrFcShort( 0x10 ), /* 16 */ +/* 4828 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4830 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4832 */ NdrFcShort( 0x21 ), /* 33 */ +/* 4834 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 4836 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4838 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4840 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4842 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4844 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + +/* 4846 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4848 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4850 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter isSelected */ + +/* 4852 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4854 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4856 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4858 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4860 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4862 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_isRowSelected */ + +/* 4864 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4866 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4870 */ NdrFcShort( 0x11 ), /* 17 */ +/* 4872 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 4874 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4876 */ NdrFcShort( 0x21 ), /* 33 */ +/* 4878 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 4880 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4882 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4884 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4886 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4888 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 4890 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4892 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4894 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter isSelected */ + +/* 4896 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 4898 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4900 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4902 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4904 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4906 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure selectRow */ + +/* 4908 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4910 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4914 */ NdrFcShort( 0x12 ), /* 18 */ +/* 4916 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4918 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4920 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4922 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4924 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4926 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4928 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4930 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4932 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 4934 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4936 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4938 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4940 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4942 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4944 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure selectColumn */ + +/* 4946 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4948 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4952 */ NdrFcShort( 0x13 ), /* 19 */ +/* 4954 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4956 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4958 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4960 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 4962 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 4964 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4966 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4968 */ NdrFcShort( 0x0 ), /* 0 */ +/* 4970 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + +/* 4972 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 4974 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 4976 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 4978 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 4980 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 4982 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure unselectRow */ + +/* 4984 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 4986 */ NdrFcLong( 0x0 ), /* 0 */ +/* 4990 */ NdrFcShort( 0x14 ), /* 20 */ +/* 4992 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 4994 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4996 */ NdrFcShort( 0x8 ), /* 8 */ +/* 4998 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 5000 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5002 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5004 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5006 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5008 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 5010 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 5012 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5014 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5016 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5018 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5020 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure unselectColumn */ + +/* 5022 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5024 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5028 */ NdrFcShort( 0x15 ), /* 21 */ +/* 5030 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5032 */ NdrFcShort( 0x8 ), /* 8 */ +/* 5034 */ NdrFcShort( 0x8 ), /* 8 */ +/* 5036 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 5038 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5040 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5042 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5044 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5046 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter column */ + +/* 5048 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 5050 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5052 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5054 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5056 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5058 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_modelChange */ + +/* 5060 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5062 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5066 */ NdrFcShort( 0x16 ), /* 22 */ +/* 5068 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5070 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5072 */ NdrFcShort( 0x8 ), /* 8 */ +/* 5074 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 5076 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5078 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5080 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5082 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5084 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter modelChange */ + +/* 5086 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */ +/* 5088 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5090 */ NdrFcShort( 0x5da ), /* Type Offset=1498 */ + + /* Return value */ + +/* 5092 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5094 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5096 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_columnHeaderCells */ + +/* 5098 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5100 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5104 */ NdrFcShort( 0x4 ), /* 4 */ +/* 5106 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 5108 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5110 */ NdrFcShort( 0x24 ), /* 36 */ +/* 5112 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 5114 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 5116 */ NdrFcShort( 0x1 ), /* 1 */ +/* 5118 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5120 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5122 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter cellAccessibles */ + +/* 5124 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 5126 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5128 */ NdrFcShort( 0x5e8 ), /* Type Offset=1512 */ + + /* Parameter nColumnHeaderCells */ + +/* 5130 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5132 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5134 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5136 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5138 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5140 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowHeaderCells */ + +/* 5142 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5144 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5148 */ NdrFcShort( 0x7 ), /* 7 */ +/* 5150 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 5152 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5154 */ NdrFcShort( 0x24 ), /* 36 */ +/* 5156 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x3, /* 3 */ +/* 5158 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 5160 */ NdrFcShort( 0x1 ), /* 1 */ +/* 5162 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5164 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5166 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter cellAccessibles */ + +/* 5168 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */ +/* 5170 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5172 */ NdrFcShort( 0x5e8 ), /* Type Offset=1512 */ + + /* Parameter nRowHeaderCells */ + +/* 5174 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5176 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5178 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5182 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5184 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_isSelected */ + +/* 5186 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5188 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5192 */ NdrFcShort( 0x9 ), /* 9 */ +/* 5194 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5196 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5198 */ NdrFcShort( 0x21 ), /* 33 */ +/* 5200 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x2, /* 2 */ +/* 5202 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5204 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5206 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5208 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5210 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter isSelected */ + +/* 5212 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5214 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5216 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5218 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5220 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5222 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_rowColumnExtents */ + +/* 5224 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5226 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5230 */ NdrFcShort( 0xa ), /* 10 */ +/* 5232 */ NdrFcShort( 0x38 ), /* x86 Stack size/offset = 56 */ +/* 5234 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5236 */ NdrFcShort( 0x91 ), /* 145 */ +/* 5238 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x6, /* 6 */ +/* 5240 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5242 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5244 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5246 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5248 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter row */ + +/* 5250 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5252 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5254 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter column */ + +/* 5256 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5258 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5260 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter rowExtents */ + +/* 5262 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5264 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5266 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter columnExtents */ + +/* 5268 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5270 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 5272 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter isSelected */ + +/* 5274 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5276 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 5278 */ 0x3, /* FC_SMALL */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5280 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5282 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */ +/* 5284 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_table */ + +/* 5286 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5288 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5292 */ NdrFcShort( 0xb ), /* 11 */ +/* 5294 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5296 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5298 */ NdrFcShort( 0x8 ), /* 8 */ +/* 5300 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 5302 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5304 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5306 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5308 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5310 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter table */ + +/* 5312 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 5314 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5316 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Return value */ + +/* 5318 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5320 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5322 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_imagePosition */ + +/* 5324 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5326 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5330 */ NdrFcShort( 0x4 ), /* 4 */ +/* 5332 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */ +/* 5334 */ NdrFcShort( 0x6 ), /* 6 */ +/* 5336 */ NdrFcShort( 0x40 ), /* 64 */ +/* 5338 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x4, /* 4 */ +/* 5340 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5342 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5344 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5346 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5348 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter coordinateType */ + +/* 5350 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */ +/* 5352 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5354 */ 0xd, /* FC_ENUM16 */ + 0x0, /* 0 */ + + /* Parameter x */ + +/* 5356 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5358 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5360 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter y */ + +/* 5362 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5364 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5366 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5368 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5370 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 5372 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_imageSize */ + +/* 5374 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5376 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5380 */ NdrFcShort( 0x5 ), /* 5 */ +/* 5382 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 5384 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5386 */ NdrFcShort( 0x40 ), /* 64 */ +/* 5388 */ 0x44, /* Oi2 Flags: has return, has ext, */ + 0x3, /* 3 */ +/* 5390 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5392 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5394 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5396 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5398 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter height */ + +/* 5400 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5402 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5404 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Parameter width */ + +/* 5406 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +/* 5408 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5410 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 5412 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5414 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5416 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_toolkitName */ + +/* 5418 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5420 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5424 */ NdrFcShort( 0x5 ), /* 5 */ +/* 5426 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5428 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5430 */ NdrFcShort( 0x8 ), /* 8 */ +/* 5432 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 5434 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 5436 */ NdrFcShort( 0x1 ), /* 1 */ +/* 5438 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5440 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5442 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter name */ + +/* 5444 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 5446 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5448 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 5450 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5452 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5454 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_toolkitVersion */ + +/* 5456 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5458 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5462 */ NdrFcShort( 0x6 ), /* 6 */ +/* 5464 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5466 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5468 */ NdrFcShort( 0x8 ), /* 8 */ +/* 5470 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 5472 */ 0xa, /* 10 */ + 0x3, /* Ext Flags: new corr desc, clt corr check, */ +/* 5474 */ NdrFcShort( 0x1 ), /* 1 */ +/* 5476 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5478 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5480 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter version */ + +/* 5482 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +/* 5484 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5486 */ NdrFcShort( 0x20 ), /* Type Offset=32 */ + + /* Return value */ + +/* 5488 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5490 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5492 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure get_anchorTarget */ + +/* 5494 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 5496 */ NdrFcLong( 0x0 ), /* 0 */ +/* 5500 */ NdrFcShort( 0x3 ), /* 3 */ +/* 5502 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 5504 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5506 */ NdrFcShort( 0x8 ), /* 8 */ +/* 5508 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */ + 0x2, /* 2 */ +/* 5510 */ 0xa, /* 10 */ + 0x1, /* Ext Flags: new corr desc, */ +/* 5512 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5514 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5516 */ NdrFcShort( 0x0 ), /* 0 */ +/* 5518 */ NdrFcShort( 0x0 ), /* 0 */ + + /* Parameter accessible */ + +/* 5520 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */ +/* 5522 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 5524 */ NdrFcShort( 0x2e ), /* Type Offset=46 */ + + /* Return value */ + +/* 5526 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +/* 5528 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 5530 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + 0x0 + } + }; + +static const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString = + { + 0, + { + NdrFcShort( 0x0 ), /* 0 */ +/* 2 */ + 0x11, 0x4, /* FC_RP [alloced_on_stack] */ +/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */ +/* 6 */ + 0x13, 0x0, /* FC_OP */ +/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */ +/* 10 */ + 0x1b, /* FC_CARRAY */ + 0x1, /* 1 */ +/* 12 */ NdrFcShort( 0x2 ), /* 2 */ +/* 14 */ 0x9, /* Corr desc: FC_ULONG */ + 0x0, /* */ +/* 16 */ NdrFcShort( 0xfffc ), /* -4 */ +/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 20 */ 0x6, /* FC_SHORT */ + 0x5b, /* FC_END */ +/* 22 */ + 0x17, /* FC_CSTRUCT */ + 0x3, /* 3 */ +/* 24 */ NdrFcShort( 0x8 ), /* 8 */ +/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */ +/* 28 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 30 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 32 */ 0xb4, /* FC_USER_MARSHAL */ + 0x83, /* 131 */ +/* 34 */ NdrFcShort( 0x0 ), /* 0 */ +/* 36 */ NdrFcShort( 0x8 ), /* 8 */ +/* 38 */ NdrFcShort( 0x0 ), /* 0 */ +/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */ +/* 42 */ + 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */ +/* 44 */ 0x8, /* FC_LONG */ + 0x5c, /* FC_PAD */ +/* 46 */ + 0x11, 0x10, /* FC_RP [pointer_deref] */ +/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */ +/* 50 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 52 */ NdrFcLong( 0x0 ), /* 0 */ +/* 56 */ NdrFcShort( 0x0 ), /* 0 */ +/* 58 */ NdrFcShort( 0x0 ), /* 0 */ +/* 60 */ 0xc0, /* 192 */ + 0x0, /* 0 */ +/* 62 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 64 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 66 */ 0x0, /* 0 */ + 0x46, /* 70 */ +/* 68 */ + 0x11, 0x0, /* FC_RP */ +/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */ +/* 72 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 74 */ NdrFcShort( 0x0 ), /* 0 */ +/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x0, /* */ +/* 78 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 84 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */ +/* 92 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 94 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */ +/* 98 */ + 0x13, 0x0, /* FC_OP */ +/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */ +/* 102 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 104 */ NdrFcShort( 0x0 ), /* 0 */ +/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x0, /* */ +/* 108 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 114 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 120 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (32) */ +/* 122 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 124 */ + 0x11, 0x10, /* FC_RP [pointer_deref] */ +/* 126 */ NdrFcShort( 0x2 ), /* Offset= 2 (128) */ +/* 128 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 130 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */ +/* 134 */ NdrFcShort( 0xc3da ), /* -15398 */ +/* 136 */ NdrFcShort( 0x496a ), /* 18794 */ +/* 138 */ 0xbd, /* 189 */ + 0xa4, /* 164 */ +/* 140 */ 0x28, /* 40 */ + 0x1b, /* 27 */ +/* 142 */ 0x33, /* 51 */ + 0x6e, /* 110 */ +/* 144 */ 0x1f, /* 31 */ + 0xdc, /* 220 */ +/* 146 */ + 0x11, 0x0, /* FC_RP */ +/* 148 */ NdrFcShort( 0x2 ), /* Offset= 2 (150) */ +/* 150 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 152 */ NdrFcShort( 0x0 ), /* 0 */ +/* 154 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x0, /* */ +/* 156 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 158 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 160 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 162 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 164 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 166 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 168 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (128) */ +/* 170 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 172 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 174 */ NdrFcShort( 0x2 ), /* Offset= 2 (176) */ +/* 176 */ + 0x13, 0x0, /* FC_OP */ +/* 178 */ NdrFcShort( 0x2 ), /* Offset= 2 (180) */ +/* 180 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 182 */ NdrFcShort( 0x0 ), /* 0 */ +/* 184 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x0, /* */ +/* 186 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 188 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 190 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 192 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 194 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 196 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 198 */ NdrFcShort( 0xff5a ), /* Offset= -166 (32) */ +/* 200 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 202 */ + 0x11, 0x4, /* FC_RP [alloced_on_stack] */ +/* 204 */ NdrFcShort( 0x1a ), /* Offset= 26 (230) */ +/* 206 */ + 0x13, 0x0, /* FC_OP */ +/* 208 */ NdrFcShort( 0x2 ), /* Offset= 2 (210) */ +/* 210 */ + 0x2a, /* FC_ENCAPSULATED_UNION */ + 0x48, /* 72 */ +/* 212 */ NdrFcShort( 0x4 ), /* 4 */ +/* 214 */ NdrFcShort( 0x2 ), /* 2 */ +/* 216 */ NdrFcLong( 0x48746457 ), /* 1215587415 */ +/* 220 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */ +/* 222 */ NdrFcLong( 0x52746457 ), /* 1383359575 */ +/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */ +/* 228 */ NdrFcShort( 0xffff ), /* Offset= -1 (227) */ +/* 230 */ 0xb4, /* FC_USER_MARSHAL */ + 0x83, /* 131 */ +/* 232 */ NdrFcShort( 0x1 ), /* 1 */ +/* 234 */ NdrFcShort( 0x8 ), /* 8 */ +/* 236 */ NdrFcShort( 0x0 ), /* 0 */ +/* 238 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (206) */ +/* 240 */ + 0x11, 0x4, /* FC_RP [alloced_on_stack] */ +/* 242 */ NdrFcShort( 0x2 ), /* Offset= 2 (244) */ +/* 244 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 246 */ NdrFcShort( 0x18 ), /* 24 */ +/* 248 */ NdrFcShort( 0x0 ), /* 0 */ +/* 250 */ NdrFcShort( 0x0 ), /* Offset= 0 (250) */ +/* 252 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 254 */ NdrFcShort( 0xff22 ), /* Offset= -222 (32) */ +/* 256 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 258 */ NdrFcShort( 0xff1e ), /* Offset= -226 (32) */ +/* 260 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 262 */ NdrFcShort( 0xff1a ), /* Offset= -230 (32) */ +/* 264 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 266 */ + 0x12, 0x0, /* FC_UP */ +/* 268 */ NdrFcShort( 0xff0a ), /* Offset= -246 (22) */ +/* 270 */ 0xb4, /* FC_USER_MARSHAL */ + 0x83, /* 131 */ +/* 272 */ NdrFcShort( 0x0 ), /* 0 */ +/* 274 */ NdrFcShort( 0x8 ), /* 8 */ +/* 276 */ NdrFcShort( 0x0 ), /* 0 */ +/* 278 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (266) */ +/* 280 */ + 0x11, 0x4, /* FC_RP [alloced_on_stack] */ +/* 282 */ NdrFcShort( 0x3a2 ), /* Offset= 930 (1212) */ +/* 284 */ + 0x13, 0x0, /* FC_OP */ +/* 286 */ NdrFcShort( 0x38a ), /* Offset= 906 (1192) */ +/* 288 */ + 0x2b, /* FC_NON_ENCAPSULATED_UNION */ + 0x9, /* FC_ULONG */ +/* 290 */ 0x7, /* Corr desc: FC_USHORT */ + 0x0, /* */ +/* 292 */ NdrFcShort( 0xfff8 ), /* -8 */ +/* 294 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 296 */ NdrFcShort( 0x2 ), /* Offset= 2 (298) */ +/* 298 */ NdrFcShort( 0x10 ), /* 16 */ +/* 300 */ NdrFcShort( 0x2f ), /* 47 */ +/* 302 */ NdrFcLong( 0x14 ), /* 20 */ +/* 306 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */ +/* 308 */ NdrFcLong( 0x3 ), /* 3 */ +/* 312 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */ +/* 314 */ NdrFcLong( 0x11 ), /* 17 */ +/* 318 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */ +/* 320 */ NdrFcLong( 0x2 ), /* 2 */ +/* 324 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */ +/* 326 */ NdrFcLong( 0x4 ), /* 4 */ +/* 330 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */ +/* 332 */ NdrFcLong( 0x5 ), /* 5 */ +/* 336 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */ +/* 338 */ NdrFcLong( 0xb ), /* 11 */ +/* 342 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */ +/* 344 */ NdrFcLong( 0xa ), /* 10 */ +/* 348 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */ +/* 350 */ NdrFcLong( 0x6 ), /* 6 */ +/* 354 */ NdrFcShort( 0xe8 ), /* Offset= 232 (586) */ +/* 356 */ NdrFcLong( 0x7 ), /* 7 */ +/* 360 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */ +/* 362 */ NdrFcLong( 0x8 ), /* 8 */ +/* 366 */ NdrFcShort( 0xfe98 ), /* Offset= -360 (6) */ +/* 368 */ NdrFcLong( 0xd ), /* 13 */ +/* 372 */ NdrFcShort( 0xfebe ), /* Offset= -322 (50) */ +/* 374 */ NdrFcLong( 0x9 ), /* 9 */ +/* 378 */ NdrFcShort( 0xd6 ), /* Offset= 214 (592) */ +/* 380 */ NdrFcLong( 0x2000 ), /* 8192 */ +/* 384 */ NdrFcShort( 0xe2 ), /* Offset= 226 (610) */ +/* 386 */ NdrFcLong( 0x24 ), /* 36 */ +/* 390 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (1118) */ +/* 392 */ NdrFcLong( 0x4024 ), /* 16420 */ +/* 396 */ NdrFcShort( 0x2d2 ), /* Offset= 722 (1118) */ +/* 398 */ NdrFcLong( 0x4011 ), /* 16401 */ +/* 402 */ NdrFcShort( 0x2d0 ), /* Offset= 720 (1122) */ +/* 404 */ NdrFcLong( 0x4002 ), /* 16386 */ +/* 408 */ NdrFcShort( 0x2ce ), /* Offset= 718 (1126) */ +/* 410 */ NdrFcLong( 0x4003 ), /* 16387 */ +/* 414 */ NdrFcShort( 0x2cc ), /* Offset= 716 (1130) */ +/* 416 */ NdrFcLong( 0x4014 ), /* 16404 */ +/* 420 */ NdrFcShort( 0x2ca ), /* Offset= 714 (1134) */ +/* 422 */ NdrFcLong( 0x4004 ), /* 16388 */ +/* 426 */ NdrFcShort( 0x2c8 ), /* Offset= 712 (1138) */ +/* 428 */ NdrFcLong( 0x4005 ), /* 16389 */ +/* 432 */ NdrFcShort( 0x2c6 ), /* Offset= 710 (1142) */ +/* 434 */ NdrFcLong( 0x400b ), /* 16395 */ +/* 438 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (1126) */ +/* 440 */ NdrFcLong( 0x400a ), /* 16394 */ +/* 444 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1130) */ +/* 446 */ NdrFcLong( 0x4006 ), /* 16390 */ +/* 450 */ NdrFcShort( 0x2b8 ), /* Offset= 696 (1146) */ +/* 452 */ NdrFcLong( 0x4007 ), /* 16391 */ +/* 456 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1142) */ +/* 458 */ NdrFcLong( 0x4008 ), /* 16392 */ +/* 462 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (1150) */ +/* 464 */ NdrFcLong( 0x400d ), /* 16397 */ +/* 468 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1154) */ +/* 470 */ NdrFcLong( 0x4009 ), /* 16393 */ +/* 474 */ NdrFcShort( 0x2ac ), /* Offset= 684 (1158) */ +/* 476 */ NdrFcLong( 0x6000 ), /* 24576 */ +/* 480 */ NdrFcShort( 0x2aa ), /* Offset= 682 (1162) */ +/* 482 */ NdrFcLong( 0x400c ), /* 16396 */ +/* 486 */ NdrFcShort( 0x2a8 ), /* Offset= 680 (1166) */ +/* 488 */ NdrFcLong( 0x10 ), /* 16 */ +/* 492 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */ +/* 494 */ NdrFcLong( 0x12 ), /* 18 */ +/* 498 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */ +/* 500 */ NdrFcLong( 0x13 ), /* 19 */ +/* 504 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */ +/* 506 */ NdrFcLong( 0x15 ), /* 21 */ +/* 510 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */ +/* 512 */ NdrFcLong( 0x16 ), /* 22 */ +/* 516 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */ +/* 518 */ NdrFcLong( 0x17 ), /* 23 */ +/* 522 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */ +/* 524 */ NdrFcLong( 0xe ), /* 14 */ +/* 528 */ NdrFcShort( 0x286 ), /* Offset= 646 (1174) */ +/* 530 */ NdrFcLong( 0x400e ), /* 16398 */ +/* 534 */ NdrFcShort( 0x28a ), /* Offset= 650 (1184) */ +/* 536 */ NdrFcLong( 0x4010 ), /* 16400 */ +/* 540 */ NdrFcShort( 0x288 ), /* Offset= 648 (1188) */ +/* 542 */ NdrFcLong( 0x4012 ), /* 16402 */ +/* 546 */ NdrFcShort( 0x244 ), /* Offset= 580 (1126) */ +/* 548 */ NdrFcLong( 0x4013 ), /* 16403 */ +/* 552 */ NdrFcShort( 0x242 ), /* Offset= 578 (1130) */ +/* 554 */ NdrFcLong( 0x4015 ), /* 16405 */ +/* 558 */ NdrFcShort( 0x240 ), /* Offset= 576 (1134) */ +/* 560 */ NdrFcLong( 0x4016 ), /* 16406 */ +/* 564 */ NdrFcShort( 0x236 ), /* Offset= 566 (1130) */ +/* 566 */ NdrFcLong( 0x4017 ), /* 16407 */ +/* 570 */ NdrFcShort( 0x230 ), /* Offset= 560 (1130) */ +/* 572 */ NdrFcLong( 0x0 ), /* 0 */ +/* 576 */ NdrFcShort( 0x0 ), /* Offset= 0 (576) */ +/* 578 */ NdrFcLong( 0x1 ), /* 1 */ +/* 582 */ NdrFcShort( 0x0 ), /* Offset= 0 (582) */ +/* 584 */ NdrFcShort( 0xffff ), /* Offset= -1 (583) */ +/* 586 */ + 0x15, /* FC_STRUCT */ + 0x7, /* 7 */ +/* 588 */ NdrFcShort( 0x8 ), /* 8 */ +/* 590 */ 0xb, /* FC_HYPER */ + 0x5b, /* FC_END */ +/* 592 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 594 */ NdrFcLong( 0x20400 ), /* 132096 */ +/* 598 */ NdrFcShort( 0x0 ), /* 0 */ +/* 600 */ NdrFcShort( 0x0 ), /* 0 */ +/* 602 */ 0xc0, /* 192 */ + 0x0, /* 0 */ +/* 604 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 606 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 608 */ 0x0, /* 0 */ + 0x46, /* 70 */ +/* 610 */ + 0x13, 0x10, /* FC_OP [pointer_deref] */ +/* 612 */ NdrFcShort( 0x2 ), /* Offset= 2 (614) */ +/* 614 */ + 0x13, 0x0, /* FC_OP */ +/* 616 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (1100) */ +/* 618 */ + 0x2a, /* FC_ENCAPSULATED_UNION */ + 0x89, /* 137 */ +/* 620 */ NdrFcShort( 0x20 ), /* 32 */ +/* 622 */ NdrFcShort( 0xa ), /* 10 */ +/* 624 */ NdrFcLong( 0x8 ), /* 8 */ +/* 628 */ NdrFcShort( 0x50 ), /* Offset= 80 (708) */ +/* 630 */ NdrFcLong( 0xd ), /* 13 */ +/* 634 */ NdrFcShort( 0x70 ), /* Offset= 112 (746) */ +/* 636 */ NdrFcLong( 0x9 ), /* 9 */ +/* 640 */ NdrFcShort( 0x90 ), /* Offset= 144 (784) */ +/* 642 */ NdrFcLong( 0xc ), /* 12 */ +/* 646 */ NdrFcShort( 0xb0 ), /* Offset= 176 (822) */ +/* 648 */ NdrFcLong( 0x24 ), /* 36 */ +/* 652 */ NdrFcShort( 0x102 ), /* Offset= 258 (910) */ +/* 654 */ NdrFcLong( 0x800d ), /* 32781 */ +/* 658 */ NdrFcShort( 0x11e ), /* Offset= 286 (944) */ +/* 660 */ NdrFcLong( 0x10 ), /* 16 */ +/* 664 */ NdrFcShort( 0x138 ), /* Offset= 312 (976) */ +/* 666 */ NdrFcLong( 0x2 ), /* 2 */ +/* 670 */ NdrFcShort( 0x14e ), /* Offset= 334 (1004) */ +/* 672 */ NdrFcLong( 0x3 ), /* 3 */ +/* 676 */ NdrFcShort( 0x164 ), /* Offset= 356 (1032) */ +/* 678 */ NdrFcLong( 0x14 ), /* 20 */ +/* 682 */ NdrFcShort( 0x17a ), /* Offset= 378 (1060) */ +/* 684 */ NdrFcShort( 0xffff ), /* Offset= -1 (683) */ +/* 686 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 688 */ NdrFcShort( 0x0 ), /* 0 */ +/* 690 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 692 */ NdrFcShort( 0x0 ), /* 0 */ +/* 694 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 696 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 700 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 702 */ + 0x13, 0x0, /* FC_OP */ +/* 704 */ NdrFcShort( 0xfd56 ), /* Offset= -682 (22) */ +/* 706 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 708 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 710 */ NdrFcShort( 0x10 ), /* 16 */ +/* 712 */ NdrFcShort( 0x0 ), /* 0 */ +/* 714 */ NdrFcShort( 0x6 ), /* Offset= 6 (720) */ +/* 716 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 718 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 720 */ + 0x11, 0x0, /* FC_RP */ +/* 722 */ NdrFcShort( 0xffdc ), /* Offset= -36 (686) */ +/* 724 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 726 */ NdrFcShort( 0x0 ), /* 0 */ +/* 728 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 730 */ NdrFcShort( 0x0 ), /* 0 */ +/* 732 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 734 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 738 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 740 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 742 */ NdrFcShort( 0xfd4c ), /* Offset= -692 (50) */ +/* 744 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 746 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 748 */ NdrFcShort( 0x10 ), /* 16 */ +/* 750 */ NdrFcShort( 0x0 ), /* 0 */ +/* 752 */ NdrFcShort( 0x6 ), /* Offset= 6 (758) */ +/* 754 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 756 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 758 */ + 0x11, 0x0, /* FC_RP */ +/* 760 */ NdrFcShort( 0xffdc ), /* Offset= -36 (724) */ +/* 762 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 764 */ NdrFcShort( 0x0 ), /* 0 */ +/* 766 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 768 */ NdrFcShort( 0x0 ), /* 0 */ +/* 770 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 772 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 776 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 778 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 780 */ NdrFcShort( 0xff44 ), /* Offset= -188 (592) */ +/* 782 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 784 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 786 */ NdrFcShort( 0x10 ), /* 16 */ +/* 788 */ NdrFcShort( 0x0 ), /* 0 */ +/* 790 */ NdrFcShort( 0x6 ), /* Offset= 6 (796) */ +/* 792 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 794 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 796 */ + 0x11, 0x0, /* FC_RP */ +/* 798 */ NdrFcShort( 0xffdc ), /* Offset= -36 (762) */ +/* 800 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 802 */ NdrFcShort( 0x0 ), /* 0 */ +/* 804 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 806 */ NdrFcShort( 0x0 ), /* 0 */ +/* 808 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 810 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 814 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 816 */ + 0x13, 0x0, /* FC_OP */ +/* 818 */ NdrFcShort( 0x176 ), /* Offset= 374 (1192) */ +/* 820 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 822 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 824 */ NdrFcShort( 0x10 ), /* 16 */ +/* 826 */ NdrFcShort( 0x0 ), /* 0 */ +/* 828 */ NdrFcShort( 0x6 ), /* Offset= 6 (834) */ +/* 830 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 832 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 834 */ + 0x11, 0x0, /* FC_RP */ +/* 836 */ NdrFcShort( 0xffdc ), /* Offset= -36 (800) */ +/* 838 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 840 */ NdrFcLong( 0x2f ), /* 47 */ +/* 844 */ NdrFcShort( 0x0 ), /* 0 */ +/* 846 */ NdrFcShort( 0x0 ), /* 0 */ +/* 848 */ 0xc0, /* 192 */ + 0x0, /* 0 */ +/* 850 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 852 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 854 */ 0x0, /* 0 */ + 0x46, /* 70 */ +/* 856 */ + 0x1b, /* FC_CARRAY */ + 0x0, /* 0 */ +/* 858 */ NdrFcShort( 0x1 ), /* 1 */ +/* 860 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 862 */ NdrFcShort( 0x4 ), /* 4 */ +/* 864 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 866 */ 0x1, /* FC_BYTE */ + 0x5b, /* FC_END */ +/* 868 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 870 */ NdrFcShort( 0x18 ), /* 24 */ +/* 872 */ NdrFcShort( 0x0 ), /* 0 */ +/* 874 */ NdrFcShort( 0xa ), /* Offset= 10 (884) */ +/* 876 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 878 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 880 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (838) */ +/* 882 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 884 */ + 0x13, 0x0, /* FC_OP */ +/* 886 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (856) */ +/* 888 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 890 */ NdrFcShort( 0x0 ), /* 0 */ +/* 892 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 894 */ NdrFcShort( 0x0 ), /* 0 */ +/* 896 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 898 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 902 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 904 */ + 0x13, 0x0, /* FC_OP */ +/* 906 */ NdrFcShort( 0xffda ), /* Offset= -38 (868) */ +/* 908 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 910 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 912 */ NdrFcShort( 0x10 ), /* 16 */ +/* 914 */ NdrFcShort( 0x0 ), /* 0 */ +/* 916 */ NdrFcShort( 0x6 ), /* Offset= 6 (922) */ +/* 918 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 920 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 922 */ + 0x11, 0x0, /* FC_RP */ +/* 924 */ NdrFcShort( 0xffdc ), /* Offset= -36 (888) */ +/* 926 */ + 0x1d, /* FC_SMFARRAY */ + 0x0, /* 0 */ +/* 928 */ NdrFcShort( 0x8 ), /* 8 */ +/* 930 */ 0x1, /* FC_BYTE */ + 0x5b, /* FC_END */ +/* 932 */ + 0x15, /* FC_STRUCT */ + 0x3, /* 3 */ +/* 934 */ NdrFcShort( 0x10 ), /* 16 */ +/* 936 */ 0x8, /* FC_LONG */ + 0x6, /* FC_SHORT */ +/* 938 */ 0x6, /* FC_SHORT */ + 0x4c, /* FC_EMBEDDED_COMPLEX */ +/* 940 */ 0x0, /* 0 */ + NdrFcShort( 0xfff1 ), /* Offset= -15 (926) */ + 0x5b, /* FC_END */ +/* 944 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 946 */ NdrFcShort( 0x20 ), /* 32 */ +/* 948 */ NdrFcShort( 0x0 ), /* 0 */ +/* 950 */ NdrFcShort( 0xa ), /* Offset= 10 (960) */ +/* 952 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 954 */ 0x36, /* FC_POINTER */ + 0x4c, /* FC_EMBEDDED_COMPLEX */ +/* 956 */ 0x0, /* 0 */ + NdrFcShort( 0xffe7 ), /* Offset= -25 (932) */ + 0x5b, /* FC_END */ +/* 960 */ + 0x11, 0x0, /* FC_RP */ +/* 962 */ NdrFcShort( 0xff12 ), /* Offset= -238 (724) */ +/* 964 */ + 0x1b, /* FC_CARRAY */ + 0x0, /* 0 */ +/* 966 */ NdrFcShort( 0x1 ), /* 1 */ +/* 968 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 970 */ NdrFcShort( 0x0 ), /* 0 */ +/* 972 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 974 */ 0x1, /* FC_BYTE */ + 0x5b, /* FC_END */ +/* 976 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 978 */ NdrFcShort( 0x10 ), /* 16 */ +/* 980 */ NdrFcShort( 0x0 ), /* 0 */ +/* 982 */ NdrFcShort( 0x6 ), /* Offset= 6 (988) */ +/* 984 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 986 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 988 */ + 0x13, 0x0, /* FC_OP */ +/* 990 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (964) */ +/* 992 */ + 0x1b, /* FC_CARRAY */ + 0x1, /* 1 */ +/* 994 */ NdrFcShort( 0x2 ), /* 2 */ +/* 996 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 998 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1000 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 1002 */ 0x6, /* FC_SHORT */ + 0x5b, /* FC_END */ +/* 1004 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 1006 */ NdrFcShort( 0x10 ), /* 16 */ +/* 1008 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1010 */ NdrFcShort( 0x6 ), /* Offset= 6 (1016) */ +/* 1012 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 1014 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 1016 */ + 0x13, 0x0, /* FC_OP */ +/* 1018 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (992) */ +/* 1020 */ + 0x1b, /* FC_CARRAY */ + 0x3, /* 3 */ +/* 1022 */ NdrFcShort( 0x4 ), /* 4 */ +/* 1024 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 1026 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1028 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 1030 */ 0x8, /* FC_LONG */ + 0x5b, /* FC_END */ +/* 1032 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 1034 */ NdrFcShort( 0x10 ), /* 16 */ +/* 1036 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1038 */ NdrFcShort( 0x6 ), /* Offset= 6 (1044) */ +/* 1040 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 1042 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 1044 */ + 0x13, 0x0, /* FC_OP */ +/* 1046 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1020) */ +/* 1048 */ + 0x1b, /* FC_CARRAY */ + 0x7, /* 7 */ +/* 1050 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1052 */ 0x19, /* Corr desc: field pointer, FC_ULONG */ + 0x0, /* */ +/* 1054 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1056 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 1058 */ 0xb, /* FC_HYPER */ + 0x5b, /* FC_END */ +/* 1060 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 1062 */ NdrFcShort( 0x10 ), /* 16 */ +/* 1064 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1066 */ NdrFcShort( 0x6 ), /* Offset= 6 (1072) */ +/* 1068 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 1070 */ 0x36, /* FC_POINTER */ + 0x5b, /* FC_END */ +/* 1072 */ + 0x13, 0x0, /* FC_OP */ +/* 1074 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1048) */ +/* 1076 */ + 0x15, /* FC_STRUCT */ + 0x3, /* 3 */ +/* 1078 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1080 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 1082 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1084 */ + 0x1b, /* FC_CARRAY */ + 0x3, /* 3 */ +/* 1086 */ NdrFcShort( 0x8 ), /* 8 */ +/* 1088 */ 0x7, /* Corr desc: FC_USHORT */ + 0x0, /* */ +/* 1090 */ NdrFcShort( 0xffc8 ), /* -56 */ +/* 1092 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 1094 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1096 */ NdrFcShort( 0xffec ), /* Offset= -20 (1076) */ +/* 1098 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1100 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 1102 */ NdrFcShort( 0x38 ), /* 56 */ +/* 1104 */ NdrFcShort( 0xffec ), /* Offset= -20 (1084) */ +/* 1106 */ NdrFcShort( 0x0 ), /* Offset= 0 (1106) */ +/* 1108 */ 0x6, /* FC_SHORT */ + 0x6, /* FC_SHORT */ +/* 1110 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 1112 */ 0x40, /* FC_STRUCTPAD4 */ + 0x4c, /* FC_EMBEDDED_COMPLEX */ +/* 1114 */ 0x0, /* 0 */ + NdrFcShort( 0xfe0f ), /* Offset= -497 (618) */ + 0x5b, /* FC_END */ +/* 1118 */ + 0x13, 0x0, /* FC_OP */ +/* 1120 */ NdrFcShort( 0xff04 ), /* Offset= -252 (868) */ +/* 1122 */ + 0x13, 0x8, /* FC_OP [simple_pointer] */ +/* 1124 */ 0x1, /* FC_BYTE */ + 0x5c, /* FC_PAD */ +/* 1126 */ + 0x13, 0x8, /* FC_OP [simple_pointer] */ +/* 1128 */ 0x6, /* FC_SHORT */ + 0x5c, /* FC_PAD */ +/* 1130 */ + 0x13, 0x8, /* FC_OP [simple_pointer] */ +/* 1132 */ 0x8, /* FC_LONG */ + 0x5c, /* FC_PAD */ +/* 1134 */ + 0x13, 0x8, /* FC_OP [simple_pointer] */ +/* 1136 */ 0xb, /* FC_HYPER */ + 0x5c, /* FC_PAD */ +/* 1138 */ + 0x13, 0x8, /* FC_OP [simple_pointer] */ +/* 1140 */ 0xa, /* FC_FLOAT */ + 0x5c, /* FC_PAD */ +/* 1142 */ + 0x13, 0x8, /* FC_OP [simple_pointer] */ +/* 1144 */ 0xc, /* FC_DOUBLE */ + 0x5c, /* FC_PAD */ +/* 1146 */ + 0x13, 0x0, /* FC_OP */ +/* 1148 */ NdrFcShort( 0xfdce ), /* Offset= -562 (586) */ +/* 1150 */ + 0x13, 0x10, /* FC_OP [pointer_deref] */ +/* 1152 */ NdrFcShort( 0xfb86 ), /* Offset= -1146 (6) */ +/* 1154 */ + 0x13, 0x10, /* FC_OP [pointer_deref] */ +/* 1156 */ NdrFcShort( 0xfbae ), /* Offset= -1106 (50) */ +/* 1158 */ + 0x13, 0x10, /* FC_OP [pointer_deref] */ +/* 1160 */ NdrFcShort( 0xfdc8 ), /* Offset= -568 (592) */ +/* 1162 */ + 0x13, 0x10, /* FC_OP [pointer_deref] */ +/* 1164 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (610) */ +/* 1166 */ + 0x13, 0x10, /* FC_OP [pointer_deref] */ +/* 1168 */ NdrFcShort( 0x2 ), /* Offset= 2 (1170) */ +/* 1170 */ + 0x13, 0x0, /* FC_OP */ +/* 1172 */ NdrFcShort( 0x14 ), /* Offset= 20 (1192) */ +/* 1174 */ + 0x15, /* FC_STRUCT */ + 0x7, /* 7 */ +/* 1176 */ NdrFcShort( 0x10 ), /* 16 */ +/* 1178 */ 0x6, /* FC_SHORT */ + 0x1, /* FC_BYTE */ +/* 1180 */ 0x1, /* FC_BYTE */ + 0x8, /* FC_LONG */ +/* 1182 */ 0xb, /* FC_HYPER */ + 0x5b, /* FC_END */ +/* 1184 */ + 0x13, 0x0, /* FC_OP */ +/* 1186 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1174) */ +/* 1188 */ + 0x13, 0x8, /* FC_OP [simple_pointer] */ +/* 1190 */ 0x2, /* FC_CHAR */ + 0x5c, /* FC_PAD */ +/* 1192 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x7, /* 7 */ +/* 1194 */ NdrFcShort( 0x20 ), /* 32 */ +/* 1196 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1198 */ NdrFcShort( 0x0 ), /* Offset= 0 (1198) */ +/* 1200 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 1202 */ 0x6, /* FC_SHORT */ + 0x6, /* FC_SHORT */ +/* 1204 */ 0x6, /* FC_SHORT */ + 0x6, /* FC_SHORT */ +/* 1206 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1208 */ NdrFcShort( 0xfc68 ), /* Offset= -920 (288) */ +/* 1210 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1212 */ 0xb4, /* FC_USER_MARSHAL */ + 0x83, /* 131 */ +/* 1214 */ NdrFcShort( 0x2 ), /* 2 */ +/* 1216 */ NdrFcShort( 0x18 ), /* 24 */ +/* 1218 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1220 */ NdrFcShort( 0xfc58 ), /* Offset= -936 (284) */ +/* 1222 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 1224 */ NdrFcShort( 0x2 ), /* Offset= 2 (1226) */ +/* 1226 */ + 0x13, 0x0, /* FC_OP */ +/* 1228 */ NdrFcShort( 0x2 ), /* Offset= 2 (1230) */ +/* 1230 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 1232 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1234 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 1236 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */ +/* 1238 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1240 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 1244 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1246 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1248 */ NdrFcShort( 0xfb52 ), /* Offset= -1198 (50) */ +/* 1250 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1252 */ + 0x11, 0x0, /* FC_RP */ +/* 1254 */ NdrFcShort( 0x6 ), /* Offset= 6 (1260) */ +/* 1256 */ + 0x12, 0x0, /* FC_UP */ +/* 1258 */ NdrFcShort( 0xffbe ), /* Offset= -66 (1192) */ +/* 1260 */ 0xb4, /* FC_USER_MARSHAL */ + 0x83, /* 131 */ +/* 1262 */ NdrFcShort( 0x2 ), /* 2 */ +/* 1264 */ NdrFcShort( 0x18 ), /* 24 */ +/* 1266 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1268 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1256) */ +/* 1270 */ + 0x11, 0x4, /* FC_RP [alloced_on_stack] */ +/* 1272 */ NdrFcShort( 0x2 ), /* Offset= 2 (1274) */ +/* 1274 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 1276 */ NdrFcShort( 0x10 ), /* 16 */ +/* 1278 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1280 */ NdrFcShort( 0x0 ), /* Offset= 0 (1280) */ +/* 1282 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1284 */ NdrFcShort( 0xfb1c ), /* Offset= -1252 (32) */ +/* 1286 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 1288 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1290 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 1292 */ NdrFcShort( 0x2 ), /* Offset= 2 (1294) */ +/* 1294 */ + 0x13, 0x0, /* FC_OP */ +/* 1296 */ NdrFcShort( 0x2a ), /* Offset= 42 (1338) */ +/* 1298 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 1300 */ NdrFcLong( 0x24fd2ffb ), /* 620572667 */ +/* 1304 */ NdrFcShort( 0x3aad ), /* 15021 */ +/* 1306 */ NdrFcShort( 0x4a08 ), /* 18952 */ +/* 1308 */ 0x83, /* 131 */ + 0x35, /* 53 */ +/* 1310 */ 0xa3, /* 163 */ + 0xad, /* 173 */ +/* 1312 */ 0x89, /* 137 */ + 0xc0, /* 192 */ +/* 1314 */ 0xfb, /* 251 */ + 0x4b, /* 75 */ +/* 1316 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 1318 */ NdrFcShort( 0x20 ), /* 32 */ +/* 1320 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1322 */ NdrFcShort( 0x10 ), /* Offset= 16 (1338) */ +/* 1324 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1326 */ NdrFcShort( 0xffe4 ), /* Offset= -28 (1298) */ +/* 1328 */ 0x8, /* FC_LONG */ + 0x40, /* FC_STRUCTPAD4 */ +/* 1330 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1332 */ NdrFcShort( 0xffde ), /* Offset= -34 (1298) */ +/* 1334 */ 0x8, /* FC_LONG */ + 0x3, /* FC_SMALL */ +/* 1336 */ 0x3f, /* FC_STRUCTPAD3 */ + 0x5b, /* FC_END */ +/* 1338 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 1340 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1342 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 1344 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1346 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1348 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 1352 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1354 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1356 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (1316) */ +/* 1358 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1360 */ + 0x11, 0x0, /* FC_RP */ +/* 1362 */ NdrFcShort( 0x2 ), /* Offset= 2 (1364) */ +/* 1364 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 1366 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1368 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x0, /* */ +/* 1370 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1372 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 1374 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 1378 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1380 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1382 */ NdrFcShort( 0xffbe ), /* Offset= -66 (1316) */ +/* 1384 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1386 */ + 0x11, 0x0, /* FC_RP */ +/* 1388 */ NdrFcShort( 0xfba2 ), /* Offset= -1118 (270) */ +/* 1390 */ + 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */ +/* 1392 */ 0x3, /* FC_SMALL */ + 0x5c, /* FC_PAD */ +/* 1394 */ + 0x11, 0x10, /* FC_RP [pointer_deref] */ +/* 1396 */ NdrFcShort( 0x2 ), /* Offset= 2 (1398) */ +/* 1398 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 1400 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */ +/* 1404 */ NdrFcShort( 0x3dd2 ), /* 15826 */ +/* 1406 */ NdrFcShort( 0x400f ), /* 16399 */ +/* 1408 */ 0x94, /* 148 */ + 0x9f, /* 159 */ +/* 1410 */ 0xad, /* 173 */ + 0x0, /* 0 */ +/* 1412 */ 0xbd, /* 189 */ + 0xab, /* 171 */ +/* 1414 */ 0x1d, /* 29 */ + 0x41, /* 65 */ +/* 1416 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 1418 */ NdrFcShort( 0x2 ), /* Offset= 2 (1420) */ +/* 1420 */ + 0x13, 0x0, /* FC_OP */ +/* 1422 */ NdrFcShort( 0x2 ), /* Offset= 2 (1424) */ +/* 1424 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 1426 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1428 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 1430 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1432 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1434 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 1438 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1440 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1442 */ NdrFcShort( 0xffd4 ), /* Offset= -44 (1398) */ +/* 1444 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1446 */ + 0x11, 0x10, /* FC_RP [pointer_deref] */ +/* 1448 */ NdrFcShort( 0x2 ), /* Offset= 2 (1450) */ +/* 1450 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 1452 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */ +/* 1456 */ NdrFcShort( 0xc20c ), /* -15860 */ +/* 1458 */ NdrFcShort( 0x4fb4 ), /* 20404 */ +/* 1460 */ 0xb0, /* 176 */ + 0x94, /* 148 */ +/* 1462 */ 0xf4, /* 244 */ + 0xf7, /* 247 */ +/* 1464 */ 0x27, /* 39 */ + 0x5d, /* 93 */ +/* 1466 */ 0xd4, /* 212 */ + 0x69, /* 105 */ +/* 1468 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 1470 */ NdrFcShort( 0x2 ), /* Offset= 2 (1472) */ +/* 1472 */ + 0x13, 0x0, /* FC_OP */ +/* 1474 */ NdrFcShort( 0x2 ), /* Offset= 2 (1476) */ +/* 1476 */ + 0x1c, /* FC_CVARRAY */ + 0x3, /* 3 */ +/* 1478 */ NdrFcShort( 0x4 ), /* 4 */ +/* 1480 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x0, /* */ +/* 1482 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */ +/* 1484 */ NdrFcShort( 0x1 ), /* Corr flags: early, */ +/* 1486 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 1488 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */ +/* 1490 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1492 */ 0x8, /* FC_LONG */ + 0x5b, /* FC_END */ +/* 1494 */ + 0x11, 0x4, /* FC_RP [alloced_on_stack] */ +/* 1496 */ NdrFcShort( 0x2 ), /* Offset= 2 (1498) */ +/* 1498 */ + 0x1a, /* FC_BOGUS_STRUCT */ + 0x3, /* 3 */ +/* 1500 */ NdrFcShort( 0x14 ), /* 20 */ +/* 1502 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1504 */ NdrFcShort( 0x0 ), /* Offset= 0 (1504) */ +/* 1506 */ 0xd, /* FC_ENUM16 */ + 0x8, /* FC_LONG */ +/* 1508 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 1510 */ 0x8, /* FC_LONG */ + 0x5b, /* FC_END */ +/* 1512 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 1514 */ NdrFcShort( 0x2 ), /* Offset= 2 (1516) */ +/* 1516 */ + 0x13, 0x0, /* FC_OP */ +/* 1518 */ NdrFcShort( 0x2 ), /* Offset= 2 (1520) */ +/* 1520 */ + 0x21, /* FC_BOGUS_ARRAY */ + 0x3, /* 3 */ +/* 1522 */ NdrFcShort( 0x0 ), /* 0 */ +/* 1524 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 1526 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1528 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1530 */ NdrFcLong( 0xffffffff ), /* -1 */ +/* 1534 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1536 */ 0x4c, /* FC_EMBEDDED_COMPLEX */ + 0x0, /* 0 */ +/* 1538 */ NdrFcShort( 0xfa30 ), /* Offset= -1488 (50) */ +/* 1540 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 1542 */ + 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */ +/* 1544 */ NdrFcShort( 0x2 ), /* Offset= 2 (1546) */ +/* 1546 */ + 0x13, 0x0, /* FC_OP */ +/* 1548 */ NdrFcShort( 0x2 ), /* Offset= 2 (1550) */ +/* 1550 */ + 0x1b, /* FC_CARRAY */ + 0x3, /* 3 */ +/* 1552 */ NdrFcShort( 0x4 ), /* 4 */ +/* 1554 */ 0x28, /* Corr desc: parameter, FC_LONG */ + 0x54, /* FC_DEREFERENCE */ +/* 1556 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */ +/* 1558 */ NdrFcShort( 0x0 ), /* Corr flags: */ +/* 1560 */ 0x8, /* FC_LONG */ + 0x5b, /* FC_END */ + + 0x0 + } + }; + +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(HWND) +XFG_TRAMPOLINES(VARIANT) + +static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = + { + + { + (USER_MARSHAL_SIZING_ROUTINE)XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,(USER_MARSHAL_MARSHALLING_ROUTINE)XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,(USER_MARSHAL_UNMARSHALLING_ROUTINE)XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,(USER_MARSHAL_FREEING_ROUTINE)XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + + } + , + { + (USER_MARSHAL_SIZING_ROUTINE)XFG_TRAMPOLINE_FPTR(HWND_UserSize) + ,(USER_MARSHAL_MARSHALLING_ROUTINE)XFG_TRAMPOLINE_FPTR(HWND_UserMarshal) + ,(USER_MARSHAL_UNMARSHALLING_ROUTINE)XFG_TRAMPOLINE_FPTR(HWND_UserUnmarshal) + ,(USER_MARSHAL_FREEING_ROUTINE)XFG_TRAMPOLINE_FPTR(HWND_UserFree) + + } + , + { + (USER_MARSHAL_SIZING_ROUTINE)XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,(USER_MARSHAL_MARSHALLING_ROUTINE)XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,(USER_MARSHAL_UNMARSHALLING_ROUTINE)XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,(USER_MARSHAL_FREEING_ROUTINE)XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + + + }; + + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0000, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + + +/* Object interface: IUnknown, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */ + + +/* Object interface: IAccessibleRelation, ver. 0.0, + GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] = + { + 0, + 38, + 76, + 114, + 158 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleRelation_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleRelation_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl = +{ + &IAccessibleRelation_ProxyInfo, + &IID_IAccessibleRelation, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ , + (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ , + (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ , + (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ , + (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */ +}; + +const CInterfaceStubVtbl _IAccessibleRelationStubVtbl = +{ + &IID_IAccessibleRelation, + &IAccessibleRelation_ServerInfo, + 8, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0001, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + + +/* Object interface: IAccessibleAction, ver. 0.0, + GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleAction_FormatStringOffsetTable[] = + { + 208, + 246, + 284, + 328, + 384, + 428 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleAction_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleAction_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl = +{ + &IAccessibleAction_ProxyInfo, + &IID_IAccessibleAction, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */ +}; + +const CInterfaceStubVtbl _IAccessibleActionStubVtbl = +{ + &IID_IAccessibleAction, + &IAccessibleAction_ServerInfo, + 9, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0002, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + + +/* Object interface: IDispatch, ver. 0.0, + GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */ + + +/* Object interface: IAccessible, ver. 0.0, + GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */ + + +/* Object interface: IAccessible2, ver. 0.0, + GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessible2_FormatStringOffsetTable[] = + { + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + 472, + 510, + 554, + 604, + 642, + 680, + 730, + 780, + 818, + 856, + 894, + 932, + 982, + 1032, + 1070, + 1108, + 1146, + 1184 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessible2_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessible2_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessible2_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl = +{ + &IAccessible2_ProxyInfo, + &IID_IAccessible2, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + 0 /* IDispatch::GetTypeInfoCount */ , + 0 /* IDispatch::GetTypeInfo */ , + 0 /* IDispatch::GetIDsOfNames */ , + 0 /* IDispatch_Invoke_Proxy */ , + 0 /* IAccessible::get_accParent */ , + 0 /* IAccessible::get_accChildCount */ , + 0 /* IAccessible::get_accChild */ , + 0 /* IAccessible::get_accName */ , + 0 /* IAccessible::get_accValue */ , + 0 /* IAccessible::get_accDescription */ , + 0 /* IAccessible::get_accRole */ , + 0 /* IAccessible::get_accState */ , + 0 /* IAccessible::get_accHelp */ , + 0 /* IAccessible::get_accHelpTopic */ , + 0 /* IAccessible::get_accKeyboardShortcut */ , + 0 /* IAccessible::get_accFocus */ , + 0 /* IAccessible::get_accSelection */ , + 0 /* IAccessible::get_accDefaultAction */ , + 0 /* IAccessible::accSelect */ , + 0 /* IAccessible::accLocation */ , + 0 /* IAccessible::accNavigate */ , + 0 /* IAccessible::accHitTest */ , + 0 /* IAccessible::accDoDefaultAction */ , + 0 /* IAccessible::put_accName */ , + 0 /* IAccessible::put_accValue */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ , + (void *) (INT_PTR) -1 /* IAccessible2::role */ , + (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ , + (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_states */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */ +}; + + +EXTERN_C DECLSPEC_SELECTANY const PRPC_STUB_FUNCTION IAccessible2_table[] = +{ + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2 +}; + +CInterfaceStubVtbl _IAccessible2StubVtbl = +{ + &IID_IAccessible2, + &IAccessible2_ServerInfo, + 46, + &IAccessible2_table[-3], + CStdStubBuffer_DELEGATING_METHODS +}; + + +/* Object interface: IAccessible2_2, ver. 0.0, + GUID={0x6C9430E9,0x299D,0x4E6F,{0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessible2_2_FormatStringOffsetTable[] = + { + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + 472, + 510, + 554, + 604, + 642, + 680, + 730, + 780, + 818, + 856, + 894, + 932, + 982, + 1032, + 1070, + 1108, + 1146, + 1184, + 1222, + 1266, + 1310 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessible2_2_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessible2_2_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessible2_2_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(49) _IAccessible2_2ProxyVtbl = +{ + &IAccessible2_2_ProxyInfo, + &IID_IAccessible2_2, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + 0 /* IDispatch::GetTypeInfoCount */ , + 0 /* IDispatch::GetTypeInfo */ , + 0 /* IDispatch::GetIDsOfNames */ , + 0 /* IDispatch_Invoke_Proxy */ , + 0 /* IAccessible::get_accParent */ , + 0 /* IAccessible::get_accChildCount */ , + 0 /* IAccessible::get_accChild */ , + 0 /* IAccessible::get_accName */ , + 0 /* IAccessible::get_accValue */ , + 0 /* IAccessible::get_accDescription */ , + 0 /* IAccessible::get_accRole */ , + 0 /* IAccessible::get_accState */ , + 0 /* IAccessible::get_accHelp */ , + 0 /* IAccessible::get_accHelpTopic */ , + 0 /* IAccessible::get_accKeyboardShortcut */ , + 0 /* IAccessible::get_accFocus */ , + 0 /* IAccessible::get_accSelection */ , + 0 /* IAccessible::get_accDefaultAction */ , + 0 /* IAccessible::accSelect */ , + 0 /* IAccessible::accLocation */ , + 0 /* IAccessible::accNavigate */ , + 0 /* IAccessible::accHitTest */ , + 0 /* IAccessible::accDoDefaultAction */ , + 0 /* IAccessible::put_accName */ , + 0 /* IAccessible::put_accValue */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ , + (void *) (INT_PTR) -1 /* IAccessible2::role */ , + (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ , + (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_states */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ , + (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */ , + (void *) (INT_PTR) -1 /* IAccessible2_2::get_attribute */ , + (void *) (INT_PTR) -1 /* IAccessible2_2::get_accessibleWithCaret */ , + (void *) (INT_PTR) -1 /* IAccessible2_2::get_relationTargetsOfType */ +}; + + +EXTERN_C DECLSPEC_SELECTANY const PRPC_STUB_FUNCTION IAccessible2_2_table[] = +{ + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2 +}; + +CInterfaceStubVtbl _IAccessible2_2StubVtbl = +{ + &IID_IAccessible2_2, + &IAccessible2_2_ServerInfo, + 49, + &IAccessible2_2_table[-3], + CStdStubBuffer_DELEGATING_METHODS +}; + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0004, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + + +/* Object interface: IAccessibleComponent, ver. 0.0, + GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] = + { + 1366, + 1410, + 76 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleComponent_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleComponent_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl = +{ + &IAccessibleComponent_ProxyInfo, + &IID_IAccessibleComponent, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ , + (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ , + (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */ +}; + +const CInterfaceStubVtbl _IAccessibleComponentStubVtbl = +{ + &IID_IAccessibleComponent, + &IAccessibleComponent_ServerInfo, + 6, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleValue, ver. 0.0, + GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleValue_FormatStringOffsetTable[] = + { + 1448, + 1486, + 1524, + 1562 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleValue_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleValue_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl = +{ + &IAccessibleValue_ProxyInfo, + &IID_IAccessibleValue, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ , + (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ , + (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ , + (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */ +}; + +const CInterfaceStubVtbl _IAccessibleValueStubVtbl = +{ + &IID_IAccessibleValue, + &IAccessibleValue_ServerInfo, + 7, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0006, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + + +/* Object interface: IAccessibleText, ver. 0.0, + GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleText_FormatStringOffsetTable[] = + { + 1600, + 1644, + 76, + 1700, + 1768, + 1806, + 1862, + 1912, + 1962, + 2024, + 2086, + 2148, + 2186, + 2224, + 2274, + 2312, + 2362, + 2424, + 2462 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleText_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleText_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleText_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl = +{ + &IAccessibleText_ProxyInfo, + &IID_IAccessibleText, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ +}; + +const CInterfaceStubVtbl _IAccessibleTextStubVtbl = +{ + &IID_IAccessibleText, + &IAccessibleText_ServerInfo, + 22, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleText2, ver. 0.0, + GUID={0x9690A9CC,0x5C80,0x4DF5,{0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleText2_FormatStringOffsetTable[] = + { + 1600, + 1644, + 76, + 1700, + 1768, + 1806, + 1862, + 1912, + 1962, + 2024, + 2086, + 2148, + 2186, + 2224, + 2274, + 2312, + 2362, + 2424, + 2462, + 2500 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleText2_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleText2_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleText2_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(23) _IAccessibleText2ProxyVtbl = +{ + &IAccessibleText2_ProxyInfo, + &IID_IAccessibleText2, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ , + (void *) (INT_PTR) -1 /* IAccessibleText2::get_attributeRange */ +}; + +const CInterfaceStubVtbl _IAccessibleText2StubVtbl = +{ + &IID_IAccessibleText2, + &IAccessibleText2_ServerInfo, + 23, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0008, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + + +/* Object interface: IAccessibleTextSelectionContainer, ver. 0.0, + GUID={0x2118B599,0x733F,0x43D0,{0xA5,0x69,0x0B,0x31,0xD1,0x25,0xED,0x9A}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleTextSelectionContainer_FormatStringOffsetTable[] = + { + 2562, + 2606 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleTextSelectionContainer_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTextSelectionContainer_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleTextSelectionContainer_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTextSelectionContainer_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(5) _IAccessibleTextSelectionContainerProxyVtbl = +{ + &IAccessibleTextSelectionContainer_ProxyInfo, + &IID_IAccessibleTextSelectionContainer, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleTextSelectionContainer::get_selections */ , + (void *) (INT_PTR) -1 /* IAccessibleTextSelectionContainer::setSelections */ +}; + +const CInterfaceStubVtbl _IAccessibleTextSelectionContainerStubVtbl = +{ + &IID_IAccessibleTextSelectionContainer, + &IAccessibleTextSelectionContainer_ServerInfo, + 5, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleEditableText, ver. 0.0, + GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] = + { + 1600, + 2650, + 2694, + 2738, + 2782, + 2820, + 2870 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleEditableText_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleEditableText_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl = +{ + &IAccessibleEditableText_ProxyInfo, + &IID_IAccessibleEditableText, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ , + (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ , + (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ , + (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ , + (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ , + (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ , + (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */ +}; + +const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl = +{ + &IID_IAccessibleEditableText, + &IAccessibleEditableText_ServerInfo, + 10, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleHyperlink, ver. 0.0, + GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] = + { + 208, + 246, + 284, + 328, + 384, + 428, + 2920, + 2964, + 3008, + 3046, + 3084 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleHyperlink_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleHyperlink_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl = +{ + &IAccessibleHyperlink_ProxyInfo, + &IID_IAccessibleHyperlink, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ , + (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */ , + (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ , + (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ , + (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */ +}; + +const CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl = +{ + &IID_IAccessibleHyperlink, + &IAccessibleHyperlink_ServerInfo, + 14, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleHypertext, ver. 0.0, + GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] = + { + 1600, + 1644, + 76, + 1700, + 1768, + 1806, + 1862, + 1912, + 1962, + 2024, + 2086, + 2148, + 2186, + 2224, + 2274, + 2312, + 2362, + 2424, + 2462, + 3122, + 3160, + 3204 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleHypertext_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleHypertext_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl = +{ + &IAccessibleHypertext_ProxyInfo, + &IID_IAccessibleHypertext, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ , + (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ , + (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ , + (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */ +}; + +const CInterfaceStubVtbl _IAccessibleHypertextStubVtbl = +{ + &IID_IAccessibleHypertext, + &IAccessibleHypertext_ServerInfo, + 25, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleHypertext2, ver. 0.0, + GUID={0xCF64D89F,0x8287,0x4B44,{0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleHypertext2_FormatStringOffsetTable[] = + { + 1600, + 1644, + 76, + 1700, + 1768, + 1806, + 1862, + 1912, + 1962, + 2024, + 2086, + 2148, + 2186, + 2224, + 2274, + 2312, + 2362, + 2424, + 2462, + 3122, + 3160, + 3204, + 3248 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleHypertext2_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleHypertext2_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(26) _IAccessibleHypertext2ProxyVtbl = +{ + &IAccessibleHypertext2_ProxyInfo, + &IID_IAccessibleHypertext2, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ , + (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ , + (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ , + (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ , + (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ , + (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ , + (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleHypertext2::get_hyperlinks */ +}; + +const CInterfaceStubVtbl _IAccessibleHypertext2StubVtbl = +{ + &IID_IAccessibleHypertext2, + &IAccessibleHypertext2_ServerInfo, + 26, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleTable, ver. 0.0, + GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleTable_FormatStringOffsetTable[] = + { + 3292, + 3342, + 3380, + 3430, + 3474, + 3524, + 3568, + 3612, + 3008, + 3046, + 3650, + 3688, + 3726, + 3770, + 3820, + 3864, + 3908, + 3958, + 4008, + 4058, + 4096, + 4140, + 4184, + 4234, + 4272, + 4310, + 4348, + 4386, + 4454 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTable_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTable_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl = +{ + &IAccessibleTable_ProxyInfo, + &IID_IAccessibleTable, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */ +}; + +const CInterfaceStubVtbl _IAccessibleTableStubVtbl = +{ + &IID_IAccessibleTable, + &IAccessibleTable_ServerInfo, + 32, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleTable2, ver. 0.0, + GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] = + { + 3292, + 3342, + 284, + 4492, + 1768, + 4530, + 4568, + 3612, + 4606, + 4650, + 4694, + 4738, + 4782, + 4820, + 4864, + 4908, + 4946, + 4984, + 5022, + 5060 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTable2_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTable2_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl = +{ + &IAccessibleTable2_ProxyInfo, + &IID_IAccessibleTable2, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ , + (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */ +}; + +const CInterfaceStubVtbl _IAccessibleTable2StubVtbl = +{ + &IID_IAccessibleTable2, + &IAccessibleTable2_ServerInfo, + 23, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleTableCell, ver. 0.0, + GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] = + { + 208, + 5098, + 76, + 4492, + 5142, + 4530, + 5186, + 5224, + 5286 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTableCell_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleTableCell_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl = +{ + &IAccessibleTableCell_ProxyInfo, + &IID_IAccessibleTableCell, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ , + (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */ +}; + +const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl = +{ + &IID_IAccessibleTableCell, + &IAccessibleTableCell_ServerInfo, + 12, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleImage, ver. 0.0, + GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleImage_FormatStringOffsetTable[] = + { + 0, + 5324, + 5374 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleImage_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleImage_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl = +{ + &IAccessibleImage_ProxyInfo, + &IID_IAccessibleImage, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ , + (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ , + (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */ +}; + +const CInterfaceStubVtbl _IAccessibleImageStubVtbl = +{ + &IID_IAccessibleImage, + &IAccessibleImage_ServerInfo, + 6, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0017, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + + +/* Object interface: IAccessibleApplication, ver. 0.0, + GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] = + { + 0, + 38, + 5418, + 5456 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleApplication_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleApplication_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl = +{ + &IAccessibleApplication_ProxyInfo, + &IID_IAccessibleApplication, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ , + (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ , + (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ , + (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */ +}; + +const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl = +{ + &IID_IAccessibleApplication, + &IAccessibleApplication_ServerInfo, + 7, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Object interface: IAccessibleDocument, ver. 0.0, + GUID={0xC48C7FCF,0x4AB5,0x4056,{0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49}} */ + +#pragma code_seg(".orpc") +static const unsigned short IAccessibleDocument_FormatStringOffsetTable[] = + { + 5494 + }; + +static const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo = + { + &Object_StubDesc, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleDocument_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + + +static const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo = + { + &Object_StubDesc, + 0, + ia2_api_all__MIDL_ProcFormatString.Format, + &IAccessibleDocument_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0}; +CINTERFACE_PROXY_VTABLE(4) _IAccessibleDocumentProxyVtbl = +{ + &IAccessibleDocument_ProxyInfo, + &IID_IAccessibleDocument, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + (void *) (INT_PTR) -1 /* IAccessibleDocument::get_anchorTarget */ +}; + +const CInterfaceStubVtbl _IAccessibleDocumentStubVtbl = +{ + &IID_IAccessibleDocument, + &IAccessibleDocument_ServerInfo, + 4, + 0, /* pure interpreted */ + CStdStubBuffer_METHODS +}; + + +/* Standard interface: __MIDL_itf_ia2_api_all_0000_0019, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */ + +#ifdef __cplusplus +namespace { +#endif +static const MIDL_STUB_DESC Object_StubDesc = + { + 0, + NdrOleAllocate, + NdrOleFree, + 0, + 0, + 0, + 0, + 0, + ia2_api_all__MIDL_TypeFormatString.Format, + 1, /* -error bounds_check flag */ + 0x50002, /* Ndr library version */ + 0, + 0x8010274, /* MIDL Version 8.1.628 */ + 0, + UserMarshalRoutines, + 0, /* notify & notify_flag routine table */ + 0x1, /* MIDL flag */ + 0, /* cs routines */ + 0, /* proxy/server info */ + 0 + }; +#ifdef __cplusplus +} +#endif + +const CInterfaceProxyVtbl * const _ia2_api_all_ProxyVtblList[] = +{ + ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleTextSelectionContainerProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleHypertext2ProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleText2ProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleDocumentProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessible2_2ProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl, + ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl, + 0 +}; + +const CInterfaceStubVtbl * const _ia2_api_all_StubVtblList[] = +{ + ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleTextSelectionContainerStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleHypertext2StubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleText2StubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleDocumentStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessible2_2StubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl, + ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl, + 0 +}; + +PCInterfaceName const _ia2_api_all_InterfaceNamesList[] = +{ + "IAccessibleHyperlink", + "IAccessibleImage", + "IAccessibleAction", + "IAccessibleValue", + "IAccessible2", + "IAccessibleTable", + "IAccessibleApplication", + "IAccessibleTable2", + "IAccessibleTextSelectionContainer", + "IAccessibleEditableText", + "IAccessibleHypertext2", + "IAccessibleComponent", + "IAccessibleTableCell", + "IAccessibleHypertext", + "IAccessibleText2", + "IAccessibleDocument", + "IAccessible2_2", + "IAccessibleRelation", + "IAccessibleText", + 0 +}; + +const IID * const _ia2_api_all_BaseIIDList[] = +{ + 0, + 0, + 0, + 0, + &IID_IAccessible, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + &IID_IAccessible, + 0, + 0, + 0 +}; + + +#define _ia2_api_all_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ia2_api_all, pIID, n) + +int __stdcall _ia2_api_all_IID_Lookup( const IID * pIID, int * pIndex ) +{ + IID_BS_LOOKUP_SETUP + + IID_BS_LOOKUP_INITIAL_TEST( _ia2_api_all, 19, 16 ) + IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 8 ) + IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 4 ) + IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 2 ) + IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 1 ) + IID_BS_LOOKUP_RETURN_RESULT( _ia2_api_all, 19, *pIndex ) + +} + +EXTERN_C const ExtendedProxyFileInfo ia2_api_all_ProxyFileInfo = +{ + (PCInterfaceProxyVtblList *) & _ia2_api_all_ProxyVtblList, + (PCInterfaceStubVtblList *) & _ia2_api_all_StubVtblList, + (const PCInterfaceName * ) & _ia2_api_all_InterfaceNamesList, + (const IID ** ) & _ia2_api_all_BaseIIDList, + & _ia2_api_all_IID_Lookup, + 19, + 2, + 0, /* table of [async_uuid] interfaces */ + 0, /* Filler1 */ + 0, /* Filler2 */ + 0 /* Filler3 */ +}; +#if _MSC_VER >= 1200 +#pragma warning(pop) +#endif + + +#endif /* defined(_M_AMD64)*/ + diff --git a/lib/ia2/ia2_node.cc b/lib/ia2/ia2_node.cc index c66ef870..fbb6aa89 100644 --- a/lib/ia2/ia2_node.cc +++ b/lib/ia2/ia2_node.cc @@ -4,11 +4,430 @@ #include #include #include +#include "axaccess/ia2/ia2_api_all.h" +#include "axaccess/ia2/win_utils.h" + +std::string RoleToString(LONG role) { + switch (role) { + case ROLE_SYSTEM_TITLEBAR: + return "ROLE_SYSTEM_TITLEBAR"; + case ROLE_SYSTEM_MENUBAR: + return "ROLE_SYSTEM_MENUBAR"; + case ROLE_SYSTEM_SCROLLBAR: + return "ROLE_SYSTEM_SCROLLBAR"; + case ROLE_SYSTEM_GRIP: + return "ROLE_SYSTEM_GRIP"; + case ROLE_SYSTEM_SOUND: + return "ROLE_SYSTEM_SOUND"; + case ROLE_SYSTEM_CURSOR: + return "ROLE_SYSTEM_CURSOR"; + case ROLE_SYSTEM_CARET: + return "ROLE_SYSTEM_CARET"; + case ROLE_SYSTEM_ALERT: + return "ROLE_SYSTEM_ALERT"; + case ROLE_SYSTEM_WINDOW: + return "ROLE_SYSTEM_WINDOW"; + case ROLE_SYSTEM_CLIENT: + return "ROLE_SYSTEM_CLIENT"; + case ROLE_SYSTEM_MENUPOPUP: + return "ROLE_SYSTEM_MENUPOPUP"; + case ROLE_SYSTEM_MENUITEM: + return "ROLE_SYSTEM_MENUITEM"; + case ROLE_SYSTEM_TOOLTIP: + return "ROLE_SYSTEM_TOOLTIP"; + case ROLE_SYSTEM_APPLICATION: + return "ROLE_SYSTEM_APPLICATION"; + case ROLE_SYSTEM_DOCUMENT: + return "ROLE_SYSTEM_DOCUMENT"; + case ROLE_SYSTEM_PANE: + return "ROLE_SYSTEM_PANE"; + case ROLE_SYSTEM_CHART: + return "ROLE_SYSTEM_CHART"; + case ROLE_SYSTEM_DIALOG: + return "ROLE_SYSTEM_DIALOG"; + case ROLE_SYSTEM_BORDER: + return "ROLE_SYSTEM_BORDER"; + case ROLE_SYSTEM_GROUPING: + return "ROLE_SYSTEM_GROUPING"; + case ROLE_SYSTEM_SEPARATOR: + return "ROLE_SYSTEM_SEPARATOR"; + case ROLE_SYSTEM_TOOLBAR: + return "ROLE_SYSTEM_TOOLBAR"; + case ROLE_SYSTEM_STATUSBAR: + return "ROLE_SYSTEM_STATUSBAR"; + case ROLE_SYSTEM_TABLE: + return "ROLE_SYSTEM_TABLE"; + case ROLE_SYSTEM_COLUMNHEADER: + return "ROLE_SYSTEM_COLUMNHEADER"; + case ROLE_SYSTEM_ROWHEADER: + return "ROLE_SYSTEM_ROWHEADER"; + case ROLE_SYSTEM_COLUMN: + return "ROLE_SYSTEM_COLUMN"; + case ROLE_SYSTEM_ROW: + return "ROLE_SYSTEM_ROW"; + case ROLE_SYSTEM_CELL: + return "ROLE_SYSTEM_CEL"; + case ROLE_SYSTEM_LINK: + return "ROLE_SYSTEM_LINK"; + case ROLE_SYSTEM_HELPBALLOON: + return "ROLE_SYSTEM_HELPBALLOON"; + case ROLE_SYSTEM_CHARACTER: + return "ROLE_SYSTEM_CHARACTER"; + case ROLE_SYSTEM_LIST: + return "ROLE_SYSTEM_LIST"; + case ROLE_SYSTEM_LISTITEM: + return "ROLE_SYSTEM_LISTITEM"; + case ROLE_SYSTEM_OUTLINE: + return "ROLE_SYSTEM_OUTLINE"; + case ROLE_SYSTEM_OUTLINEITEM: + return "ROLE_SYSTEM_OUTLINEITEM"; + case ROLE_SYSTEM_PAGETAB: + return "ROLE_SYSTEM_PAGETAB"; + case ROLE_SYSTEM_PROPERTYPAGE: + return "ROLE_SYSTEM_PROPERTYPAGE"; + case ROLE_SYSTEM_INDICATOR: + return "ROLE_SYSTEM_INDICATOR"; + case ROLE_SYSTEM_GRAPHIC: + return "ROLE_SYSTEM_GRAPHIC"; + case ROLE_SYSTEM_STATICTEXT: + return "ROLE_SYSTEM_STATICTEXT"; + case ROLE_SYSTEM_TEXT: + return "ROLE_SYSTEM_TEXT"; + case ROLE_SYSTEM_PUSHBUTTON: + return "ROLE_SYSTEM_PUSHBUTTON"; + case ROLE_SYSTEM_CHECKBUTTON: + return "ROLE_SYSTEM_CHECKBUTTON"; + case ROLE_SYSTEM_RADIOBUTTON: + return "ROLE_SYSTEM_RADIOBUTTON"; + case ROLE_SYSTEM_COMBOBOX: + return "ROLE_SYSTEM_COMBOBOX"; + case ROLE_SYSTEM_DROPLIST: + return "ROLE_SYSTEM_DROPLIST"; + case ROLE_SYSTEM_PROGRESSBAR: + return "ROLE_SYSTEM_PROGRESSBAR"; + case ROLE_SYSTEM_DIAL: + return "ROLE_SYSTEM_DIAL"; + case ROLE_SYSTEM_HOTKEYFIELD: + return "ROLE_SYSTEM_HOTKEYFIELD"; + case ROLE_SYSTEM_SLIDER: + return "ROLE_SYSTEM_SLIDER"; + case ROLE_SYSTEM_SPINBUTTON: + return "ROLE_SYSTEM_SPINBUTTON"; + case ROLE_SYSTEM_DIAGRAM: + return "ROLE_SYSTEM_DIAGRAM"; + case ROLE_SYSTEM_ANIMATION: + return "ROLE_SYSTEM_ANIMATION"; + case ROLE_SYSTEM_EQUATION: + return "ROLE_SYSTEM_EQUATION"; + case ROLE_SYSTEM_BUTTONDROPDOWN: + return "ROLE_SYSTEM_BUTTONDROPDOWN"; + case ROLE_SYSTEM_BUTTONMENU: + return "ROLE_SYSTEM_BUTTONMENU"; + case ROLE_SYSTEM_BUTTONDROPDOWNGRID: + return "ROLE_SYSTEM_BUTTONDROPDOWNGRID"; + case ROLE_SYSTEM_WHITESPACE: + return "ROLE_SYSTEM_WHITESPACE"; + case ROLE_SYSTEM_PAGETABLIST: + return "ROLE_SYSTEM_PAGETABLIST"; + case ROLE_SYSTEM_CLOCK: + return "ROLE_SYSTEM_CLOCK"; + case ROLE_SYSTEM_SPLITBUTTON: + return "ROLE_SYSTEM_SPLITBUTTON"; + case ROLE_SYSTEM_IPADDRESS: + return "ROLE_SYSTEM_IPADDRESS"; + case ROLE_SYSTEM_OUTLINEBUTTON: + return "ROLE_SYSTEM_OUTLINEBUTTON"; + default: + return ""; + } +} + +std::string IA2RoleToString(LONG role) { + std::string msaa_role = RoleToString(role); + if (!msaa_role.empty()) { + return msaa_role; + } + switch (role) { + case IA2_ROLE_CANVAS: + return "IA2_ROLE_CANVAS"; + case IA2_ROLE_CAPTION: + return "IA2_ROLE_CAPTION"; + case IA2_ROLE_CHECK_MENU_ITEM: + return "IA2_ROLE_CHECK_MENU_ITEM"; + case IA2_ROLE_COLOR_CHOOSER: + return "IA2_ROLE_COLOR_CHOOSER"; + case IA2_ROLE_DATE_EDITOR: + return "IA2_ROLE_DATE_EDITOR"; + case IA2_ROLE_DESKTOP_ICON: + return "IA2_ROLE_DESKTOP_ICON"; + case IA2_ROLE_DESKTOP_PANE: + return "IA2_ROLE_DESKTOP_PANE"; + case IA2_ROLE_DIRECTORY_PANE: + return "IA2_ROLE_DIRECTORY_PANE"; + case IA2_ROLE_EDITBAR: + return "IA2_ROLE_EDITBAR"; + case IA2_ROLE_EMBEDDED_OBJECT: + return "IA2_ROLE_EMBEDDED_OBJECT"; + case IA2_ROLE_ENDNOTE: + return "IA2_ROLE_ENDNOTE"; + case IA2_ROLE_FILE_CHOOSER: + return "IA2_ROLE_FILE_CHOOSER"; + case IA2_ROLE_FONT_CHOOSER: + return "IA2_ROLE_FONT_CHOOSER"; + case IA2_ROLE_FOOTER: + return "IA2_ROLE_FOOTER"; + case IA2_ROLE_FOOTNOTE: + return "IA2_ROLE_FOOTNOTE"; + case IA2_ROLE_FORM: + return "IA2_ROLE_FORM"; + case IA2_ROLE_FRAME: + return "IA2_ROLE_FRAME"; + case IA2_ROLE_GLASS_PANE: + return "IA2_ROLE_GLASS_PANE"; + case IA2_ROLE_HEADER: + return "IA2_ROLE_HEADER"; + case IA2_ROLE_HEADING: + return "IA2_ROLE_HEADING"; + case IA2_ROLE_ICON: + return "IA2_ROLE_ICON"; + case IA2_ROLE_IMAGE_MAP: + return "IA2_ROLE_IMAGE_MAP"; + case IA2_ROLE_INPUT_METHOD_WINDOW: + return "IA2_ROLE_INPUT_METHOD_WINDOW"; + case IA2_ROLE_INTERNAL_FRAME: + return "IA2_ROLE_INTERNAL_FRAME"; + case IA2_ROLE_LABEL: + return "IA2_ROLE_LABEL"; + case IA2_ROLE_LAYERED_PANE: + return "IA2_ROLE_LAYERED_PANE"; + case IA2_ROLE_NOTE: + return "IA2_ROLE_NOTE"; + case IA2_ROLE_OPTION_PANE: + return "IA2_ROLE_OPTION_PANE"; + case IA2_ROLE_PAGE: + return "IA2_ROLE_PAGE"; + case IA2_ROLE_PARAGRAPH: + return "IA2_ROLE_PARAGRAPH"; + case IA2_ROLE_RADIO_MENU_ITEM: + return "IA2_ROLE_RADIO_MENU_ITEM"; + case IA2_ROLE_REDUNDANT_OBJECT: + return "IA2_ROLE_REDUNDANT_OBJECT"; + case IA2_ROLE_ROOT_PANE: + return "IA2_ROLE_ROOT_PANE"; + case IA2_ROLE_RULER: + return "IA2_ROLE_RULER"; + case IA2_ROLE_SCROLL_PANE: + return "IA2_ROLE_SCROLL_PANE"; + case IA2_ROLE_SECTION: + return "IA2_ROLE_SECTION"; + case IA2_ROLE_SHAPE: + return "IA2_ROLE_SHAPE"; + case IA2_ROLE_SPLIT_PANE: + return "IA2_ROLE_SPLIT_PANE"; + case IA2_ROLE_TEAR_OFF_MENU: + return "IA2_ROLE_TEAR_OFF_MENU"; + case IA2_ROLE_TERMINAL: + return "IA2_ROLE_TERMINAL"; + case IA2_ROLE_TEXT_FRAME: + return "IA2_ROLE_TEXT_FRAME"; + case IA2_ROLE_TOGGLE_BUTTON: + return "IA2_ROLE_TOGGLE_BUTTON"; + case IA2_ROLE_UNKNOWN: + return "IA2_ROLE_UNKNOWN"; + case IA2_ROLE_VIEW_PORT: + return "IA2_ROLE_VIEW_PORT"; + case IA2_ROLE_COMPLEMENTARY_CONTENT: + return "IA2_ROLE_COMPLEMENTARY_CONTENT"; + case IA2_ROLE_LANDMARK: + return "IA2_ROLE_LANDMARK"; + case IA2_ROLE_LEVEL_BAR: + return "IA2_ROLE_LEVEL_BAR"; + case IA2_ROLE_CONTENT_DELETION: + return "IA2_ROLE_CONTENT_DELETION"; + case IA2_ROLE_CONTENT_INSERTION: + return "IA2_ROLE_CONTENT_INSERTION"; + case IA2_ROLE_BLOCK_QUOTE: + return "IA2_ROLE_BLOCK_QUOTE"; + case IA2_ROLE_MARK: + return "IA2_ROLE_MARK"; + case IA2_ROLE_SUGGESTION: + return "IA2_ROLE_SUGGESTION"; + case IA2_ROLE_COMMENT: + return "IA2_ROLE_COMMENT"; + default: + return ""; + } +} std::string IA2Node::get_accRole() { - return "RoleTest"; + VARIANT variant_self; + variant_self.intVal = CHILDID_SELF; + variant_self.vt = VT_I4; + VARIANT ia_role_variant; + if (SUCCEEDED(root_->get_accRole(variant_self, &ia_role_variant))) { + return RoleToString(ia_role_variant.lVal); + } + return ""; } std::string IA2Node::get_accName() { - return "NameTest"; + VARIANT variant_self; + variant_self.intVal = CHILDID_SELF; + variant_self.vt = VT_I4; + BSTR bstr_name; + if (SUCCEEDED(root_->get_accName(variant_self, &bstr_name))) { + std::string str_name = BstrToString(bstr_name); + SysFreeString(bstr_name); + return str_name; + } + return ""; +} + +std::string IA2Node::ia2_role() { + Microsoft::WRL::ComPtr ia2; + + Microsoft::WRL::ComPtr service_provider; + HRESULT hr = root_->QueryInterface(IID_PPV_ARGS(&service_provider)); + + if (FAILED(hr)) { + std::cout << "--Failed QueryInterface--"; + } else { + hr = service_provider->QueryService(IID_IAccessible, IID_PPV_ARGS(&ia2)); + if (FAILED(hr)) { + std::cout << "--Failed QueryService--"; + } + } + + if (hr == E_INVALIDARG) { + std::cout << "--E_INVALIDARG--"; + } + + if (hr == S_OK) { + LONG role = 0; + if (SUCCEEDED(ia2->role(&role))) { + return IA2RoleToString(role); + } + } + return ""; +} + +void printRoles(Microsoft::WRL::ComPtr root) { + // Accname + VARIANT variant_self; + variant_self.intVal = CHILDID_SELF; + variant_self.vt = VT_I4; + BSTR bstr_name; + if (SUCCEEDED(root->get_accName(variant_self, &bstr_name))) { + std::string str_name = BstrToString(bstr_name); + SysFreeString(bstr_name); + std::cout << str_name; + } + + // MSAA role + VARIANT ia_role_variant; + if (SUCCEEDED(root->get_accRole(variant_self, &ia_role_variant))) { + std::cout << " {MSAA: " << RoleToString(ia_role_variant.lVal) << "} "; + } + + // Try to get IA2 role + std::cout << "{IA2 Role: "; + Microsoft::WRL::ComPtr ia2; + Microsoft::WRL::ComPtr service_provider; + HRESULT hr = root->QueryInterface(IID_PPV_ARGS(&service_provider)); + if (FAILED(hr)) { + std::cout << "- Failed QueryInterface "; + } else { + hr = service_provider->QueryService(IID_IAccessible2, IID_PPV_ARGS(&ia2)); + ; + if (FAILED(hr)) { + std::cout << "- Failed QueryService "; + } + } + if (hr == E_INVALIDARG) { + std::cout << "with E_INVALIDARG"; + } + if (hr == S_OK) { + LONG role = 0; + if (SUCCEEDED(ia2->role(&role))) { + std::cout << IA2RoleToString(role); + } + } + std::cout << "}\n"; +} + +// this function is for testing purposes only. +// https://learn.microsoft.com/en-us/windows/win32/api/oleacc/nf-oleacc-accessiblechildren +void printAllRolesFromTree(Microsoft::WRL::ComPtr root, + int depth) { + long childCount; + long returnCount; + HRESULT hr; + + hr = root->get_accChildCount(&childCount); + if (FAILED(hr)) { + std::cout << " - get_accChildCount failed.\n"; + return; + } + if (childCount == 0) { + return; + } + + VARIANT* pArray = new VARIANT[childCount]; + hr = AccessibleChildren(root.Get(), 0L, childCount, pArray, &returnCount); + if (FAILED(hr)) { + std::cout << " - AccessibleChildren failed.\n"; + }; + + // Iterate through children. + for (int x = 0; x < returnCount; x++) { + for (int y = 0; y < depth; y++) { + printf(" "); + } + VARIANT vtChild = pArray[x]; + // If it's an accessible object, get the IAccessible, and recurse. + if (vtChild.vt == VT_DISPATCH) { + IDispatch* pDisp = vtChild.pdispVal; + IAccessible* pChild = NULL; + hr = pDisp->QueryInterface(IID_IAccessible, (void**)&pChild); + if (hr == S_OK) { + printRoles(pChild); + printAllRolesFromTree(pChild, depth + 1); + } + pDisp->Release(); + } + // What is this concept? + else { + BSTR bstr_name; + root->get_accName(vtChild, &bstr_name); + std::cout << BstrToString(bstr_name); + SysFreeString(bstr_name); + + VARIANT ia_role_variant; + root->get_accRole(vtChild, &ia_role_variant); + std::cout << " {MSAA: " << RoleToString(ia_role_variant.lVal) << "}\n"; + VariantClear(&ia_role_variant); + } + } + delete[] pArray; + return; +} + +// this function is for testing purposes only. +void IA2Node::DumpRoleTree(const int pid) { + Microsoft::WRL::ComPtr root = GetAccessibleFromProcessID(pid); + if (!root) { + return; + } + + // JUST A TEST: see if any child implements IAccessible2? + printAllRolesFromTree(root, 0); +} + +IA2NodePtr IA2Node::CreateForPID(const int pid) { + Microsoft::WRL::ComPtr root = GetAccessibleFromProcessID(pid); + if (!root) { + return nullptr; + } + + return std::make_unique(IA2Node(root)); } diff --git a/lib/ia2/win_utils.cc b/lib/ia2/win_utils.cc index dea0a57b..602697e2 100644 --- a/lib/ia2/win_utils.cc +++ b/lib/ia2/win_utils.cc @@ -3,40 +3,70 @@ #include #include #include +#include +#include +#include +#include #include +#include "axaccess/ia2/ia2_api_all.h" + // We will need these for windows related things, see the formatter_win.cc in // chromium // #include // #include -// TODO: we will probably need to get these from the IAccessible2 git repo, like -// in Chromium -// #include "third_party/iaccessible2/ia2_api_all.h" - -// Windows system libraries, used for pid/windows/hwnd management. -#include -#include +std::string nameFromHwnd(HWND hwnd) { + int length = ::GetWindowTextLength(hwnd); + if (length == 0) { + return ""; + } + std::string title(length+1, '\0'); + int actual_length = ::GetWindowText(hwnd, (LPSTR)&title.front(), title.size()); + if (length > actual_length) + title.erase(actual_length); + return title; +} -void GetAllWindowsFromProcessID(DWORD dwProcessID, std::vector& hwnds) { - HWND hCurWnd = nullptr; +// TODO: This is not the right API -- probably we should copy chrome code +// and find a hwnd by titla alone. Right now this only returns a Google Chrome HWND. +// But if I don't include PID, then I get other processess with google chrome in name +Microsoft::WRL::ComPtr GetAccessibleFromProcessID(DWORD dwProcessID) +{ + Microsoft::WRL::ComPtr root; + HWND hwnd = nullptr; do { - hCurWnd = FindWindowEx(nullptr, hCurWnd, nullptr, nullptr); + hwnd = FindWindowEx(nullptr, hwnd, nullptr, nullptr); + + DWORD checkProcessID = 0; - GetWindowThreadProcessId(hCurWnd, &checkProcessID); - if (checkProcessID == dwProcessID) { - hwnds.push_back(hCurWnd); - std::cout << "Found hWnd: " << hCurWnd << "\n"; - } - } while (hCurWnd != nullptr); + GetWindowThreadProcessId(hwnd, &checkProcessID); + if (checkProcessID == dwProcessID) + { + std::string title = nameFromHwnd(hwnd); + if (title.find("Google Chrome") != std::string::npos) { + break; + } + } + } while (hwnd != nullptr); + + if (hwnd == nullptr) { + std::cout << "Could not find hwnd\n"; + return root; + } + HRESULT hr = ::AccessibleObjectFromWindow(hwnd, OBJID_CLIENT, IID_PPV_ARGS(&root)); + if (FAILED(hr)) { + std::cout << "Could not get accessible\n"; + } + return root; } -IA2NodePtr find_root_accessible_from_pid(const int pid) { - std::vector hwnds; - GetAllWindowsFromProcessID(pid, hwnds); - // TODO: Get the IAccessible2 pointer(s) for each HWND and construct an - // IA2Node for each - // TODO: Construct a top-level IA2Node with the collection of IA2Nodes as - // children - return std::make_unique(IA2Node()); +std::string BstrToString(BSTR bstr) { + std::wstring wstr(bstr, SysStringLen(bstr)); + int size = WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), -1, nullptr, 0, nullptr, nullptr); + std::string str(size, '\0'); + WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), -1, &str[0], size, nullptr, nullptr); + return str; } + +