CreateStdAccessibleProxyA 函数 (oleacc.h)

创建具有指定类系统提供的用户界面元素的属性和方法的可访问对象。

语法

HRESULT CreateStdAccessibleProxyA(
  [in]  HWND   hwnd,
  [in]  LPCSTR pClassName,
  [in]  LONG   idObject,
  [in]  REFIID riid,
  [out] void   **ppvObject
);

参数

[in] hwnd

类型:HWND

为其创建可访问对象的系统提供的用户界面元素(控件)的窗口句柄。

[in] pClassName

类型:LPCTSTR

指向创建可访问对象的系统提供的用户界面元素的类名的以 null 结尾的字符串的指针。 窗口类名称是公共控件之一(在 Comctl32.dll中定义)、预定义控件(在 User32.dll中定义)或窗口元素。

[in] idObject

类型:LONG

对象 ID。 此值通常 OBJID_CLIENT,它是对象标识符常量之一,但它可能是另一个对象标识符。

[in] riid

类型:REFIID

请求的接口的引用标识符。 此值为下列值之一:IID_IAccessible、IID_IDispatch、IID_IEnumVARIANT或IID_IUnknown。

[out] ppvObject

类型:void**

接收指定接口地址的指针变量的地址。

返回值

类型:STDAPI

如果成功,则返回S_OK。

如果未成功,则返回标准 COM 错误代码

言论

服务器应用程序在包含类似于系统提供的控件的自定义控件时调用此函数。 服务器应用程序可以调用 CreateStdAccessibleProxy,以根据需要替代 IAccessible 方法和属性,以匹配其自定义控件。 或者,服务器开发人员可以使用动态注释替代特定属性,而无需使用 CreateStdAccessibleProxy所需的困难子类技术。 服务器开发人员仍应使用 CreateStdAccessibleProxy 进行结构更改,例如隐藏子元素或创建占位符子元素。 此方法可节省服务器开发人员完全实现所有 IAccessible 属性和方法的工作。

此函数类似于 CreateStdAccessibleObject,只不过 CreateStdAccessibleObject 始终使用与 hwnd 关联的类名,而 CreateStdAccessibleProxy 允许将类名指定为参数。

使用 CreateStdAccessibleProxy 为超类的用户界面元素创建可访问对象。 当用户界面元素被超类化时,应用程序会创建一个自定义控件,该控件的窗口类名称不同于它所基于的预定义控件。 由于与 hwnd 参数关联的类名是超级类窗口类名,因此请在 pszClassName中指定基类名称(超类控件所基于的系统类名)。

注意

oleacc.h 标头将 CreateStdAccessibleProxy 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 oleacc.h
Oleacc.lib
DLL Oleacc.dll
可再发行组件 Windows NT 4.0 及更高版本和 Windows 95 上的活动辅助功能 1.3 RDK

另请参阅

附录 A:支持的用户界面元素参考

CreateStdAccessibleObject

IDispatch

用于公开自定义用户界面元素的快捷方式