1*3a700b0aSSteve Yin/************************************************************** 2*3a700b0aSSteve Yin * 3*3a700b0aSSteve Yin * Licensed to the Apache Software Foundation (ASF) under one 4*3a700b0aSSteve Yin * or more contributor license agreements. See the NOTICE file 5*3a700b0aSSteve Yin * distributed with this work for additional information 6*3a700b0aSSteve Yin * regarding copyright ownership. The ASF licenses this file 7*3a700b0aSSteve Yin * to you under the Apache License, Version 2.0 (the 8*3a700b0aSSteve Yin * "License"); you may not use this file except in compliance 9*3a700b0aSSteve Yin * with the License. You may obtain a copy of the License at 10*3a700b0aSSteve Yin * 11*3a700b0aSSteve Yin * http://www.apache.org/licenses/LICENSE-2.0 12*3a700b0aSSteve Yin * 13*3a700b0aSSteve Yin * Unless required by applicable law or agreed to in writing, 14*3a700b0aSSteve Yin * software distributed under the License is distributed on an 15*3a700b0aSSteve Yin * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*3a700b0aSSteve Yin * KIND, either express or implied. See the License for the 17*3a700b0aSSteve Yin * specific language governing permissions and limitations 18*3a700b0aSSteve Yin * under the License. 19*3a700b0aSSteve Yin * 20*3a700b0aSSteve Yin *************************************************************/ 215fdc4257SSteve Yin 225fdc4257SSteve Yinimport "objidl.idl"; 235fdc4257SSteve Yinimport "oaidl.idl"; 245fdc4257SSteve Yinimport "oleacc.idl"; 255fdc4257SSteve Yinimport "AccessibleKeyStroke.idl"; 265fdc4257SSteve Yin 275fdc4257SSteve Yin[object, uuid(6B1923AC-3E9A-4336-99E1-A69EA4E946E9)] 285fdc4257SSteve Yininterface IAccessibleKeyBinding : IUnknown 295fdc4257SSteve Yin{ 305fdc4257SSteve Yin /// 315fdc4257SSteve Yin /// get number of key bindings for this object 325fdc4257SSteve Yin /// 335fdc4257SSteve Yin [propget] HRESULT nKeyBindings 345fdc4257SSteve Yin ( 355fdc4257SSteve Yin [out, retval] long *nKeyBindings 365fdc4257SSteve Yin ); 375fdc4257SSteve Yin 385fdc4257SSteve Yin /// 395fdc4257SSteve Yin /// get length of keystroke sequence for specified key binding 405fdc4257SSteve Yin /// 415fdc4257SSteve Yin [propget] HRESULT keyStrokeSequenceLength 425fdc4257SSteve Yin ( 435fdc4257SSteve Yin [in] long keyBindingIndex, 445fdc4257SSteve Yin [out] long *sequenceLength 455fdc4257SSteve Yin ); 465fdc4257SSteve Yin 475fdc4257SSteve Yin /// 485fdc4257SSteve Yin /// The returned sequence of key strokes describes one method 495fdc4257SSteve Yin /// to invoke the associated action (the one from which you 505fdc4257SSteve Yin /// obtained the object at which you called this method) by 515fdc4257SSteve Yin /// pressing keys. The keys specified by each of the returned 525fdc4257SSteve Yin /// key strokes have to be pressed at the same time (the 535fdc4257SSteve Yin /// Control-key and the A-key for example). The keys of one key 545fdc4257SSteve Yin /// stroke have to be released before pressing those of the next. 555fdc4257SSteve Yin /// The order of the key strokes in the sequence define the order 565fdc4257SSteve Yin /// in which to press them. 575fdc4257SSteve Yin /// 585fdc4257SSteve Yin [propget] HRESULT keyBinding 595fdc4257SSteve Yin ( 605fdc4257SSteve Yin [in] long keyBindingIndex, 615fdc4257SSteve Yin [in] long keyStrokeSequenceLength, 625fdc4257SSteve Yin [out, size_is(,keyStrokeSequenceLength), length_is(,*actualKeyStrokeSequenceLength)] 635fdc4257SSteve Yin ACCESSIBLE_KEYSTROKE **keyStroke, 645fdc4257SSteve Yin [out, retval] long *actualKeyStrokeSequenceLength 655fdc4257SSteve Yin ); 665fdc4257SSteve Yin} 67