// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import "objidl.idl";
import "oaidl.idl";
        
const long DISPID_CHROME_BULK_FETCH   = -1600;
const long DISPID_CHROME_ON_BULK_FETCH_RESULT   = -1601;
const long DISPID_CHROME_HIT_TEST = -1602;
const long DISPID_CHROME_ON_HIT_TEST_RESULT = -1603;

// Interface to be implemented by the client that calls IChromeAccessible.
// For every method in IChromeAccessible, there's a corresponding response
// method in IChromeAccessibleDelegate.
[object, uuid(0e3edc14-79f4-413f-b854-d3b6860d74a2), pointer_default(unique)]
interface IChromeAccessibleDelegate : IUnknown
{
  [propput, id(DISPID_CHROME_ON_BULK_FETCH_RESULT)] HRESULT bulkFetchResult(
    [in] LONG requestID,
    [in] BSTR resultJson
  );

  [propput, id(DISPID_CHROME_ON_HIT_TEST_RESULT)] HRESULT hitTestResult(
    [in] LONG requestID,
    [in] IUnknown* result
  );
};

// Chrome-specific interface exposed on every IAccessible object.
//
// This interface is EXPERIMENTAL and only available behind a flag.
// Run Chrome with --enable-features=IChromeAccessible to use it.
//
// Do not depend on this interface remaining stable! It's only designed
// for prototyping ideas, and anything that's stabilized should move to
// an open standard API.
[object, uuid(6175bd95-3b2e-4ebc-bc51-9cab782bec92), pointer_default(unique)]
interface IChromeAccessible : IUnknown
{
  // TODO(crbug.com/1083834): Fully document this interface.
  // Fetch multiple accessibility properties of one or more accessibility
  // nodes as JSON. This method is asynchronous; the result is returned
  // by calling put_bulkFetchResult on |delegate|. The client can pass any
  // valid LONG as requestID and the same value will be passed to
  // put_bulkFetchResult to enable matching of requests and responses.
  [propget, id(DISPID_CHROME_BULK_FETCH)] HRESULT bulkFetch(
    [in] BSTR inputJson,
    [in] LONG requestID,
    [in] IChromeAccessibleDelegate* delegate
  );

  // Hit-test the given pixel in screen physical pixel coordinates.
  // This method is asynchronous; the result is returned
  // by calling put_hitTestResult on |delegate|. The client can pass any
  // valid LONG as requestID and the same value will be passed to
  // put_hitTestResult to enable matching of requests and responses.
  [propget, id(DISPID_CHROME_HIT_TEST)] HRESULT hitTest(
    [in] LONG screenPhysicalPixelX,
    [in] LONG screenPhysicalPixelY,
    [in] LONG requestID,
    [in] IChromeAccessibleDelegate* delegate
  );
};
