1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22import "objidl.idl";
23import "oaidl.idl";
24import "oleacc.idl";
25import "AccessibleKeyStroke.idl";
26
27[object, uuid(6B1923AC-3E9A-4336-99E1-A69EA4E946E9)]
28interface IAccessibleKeyBinding : IUnknown
29{
30  ///
31  /// get number of key bindings for this object
32  ///
33  [propget] HRESULT nKeyBindings
34    (
35     [out, retval] long *nKeyBindings
36     );
37
38  ///
39  /// get length of keystroke sequence for specified key binding
40  ///
41  [propget] HRESULT keyStrokeSequenceLength
42    (
43     [in] long keyBindingIndex,
44     [out] long *sequenceLength
45     );
46
47  ///
48  /// The returned sequence of key strokes describes one method
49  /// to invoke the associated action (the one from which you
50  /// obtained the object at which you called this method) by
51  /// pressing keys. The keys specified by each of the returned
52  /// key strokes have to be pressed at the same time (the
53  /// Control-key and the A-key for example). The keys of one key
54  /// stroke have to be released before pressing those of the next.
55  /// The order of the key strokes in the sequence define the order
56  /// in which to press them.
57  ///
58  [propget] HRESULT keyBinding
59    (
60     [in] long keyBindingIndex,
61     [in] long keyStrokeSequenceLength,
62     [out, size_is(,keyStrokeSequenceLength), length_is(,*actualKeyStrokeSequenceLength)]
63       ACCESSIBLE_KEYSTROKE **keyStroke,
64     [out, retval] long *actualKeyStrokeSequenceLength
65     );
66}
67