From 5deff46cef513854cf94c16e861d625f06121f87 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 3 Oct 2014 16:42:05 +0000 Subject: [PATCH] [OLEACC] * Sync with Wine 1.7.27. CORE-8540 svn path=/trunk/; revision=64503 --- reactos/dll/win32/oleacc/CMakeLists.txt | 18 +- reactos/dll/win32/oleacc/client.c | 509 +++++++++++++++++++++ reactos/dll/win32/oleacc/lang/oleacc_De.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_En.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Fr.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_He.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Hu.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_It.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Ko.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Lt.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Nl.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_No.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Pl.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Pt.rc | 68 ++- reactos/dll/win32/oleacc/lang/oleacc_Ro.rc | 163 ++++--- reactos/dll/win32/oleacc/lang/oleacc_Ru.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Si.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Sq.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Tr.rc | 35 +- reactos/dll/win32/oleacc/lang/oleacc_Uk.rc | 35 +- reactos/dll/win32/oleacc/main.c | 459 +++++++++++++++++-- reactos/dll/win32/oleacc/oleacc.rc | 17 +- reactos/dll/win32/oleacc/oleacc.spec | 13 +- reactos/dll/win32/oleacc/oleacc_private.h | 51 +++ reactos/dll/win32/oleacc/propservice.c | 248 ++++++++++ reactos/dll/win32/oleacc/resource.h | 50 ++ reactos/dll/win32/oleacc/window.c | 361 +++++++++++++++ reactos/media/doc/README.WINE | 2 +- 28 files changed, 2372 insertions(+), 147 deletions(-) create mode 100644 reactos/dll/win32/oleacc/client.c create mode 100644 reactos/dll/win32/oleacc/oleacc_private.h create mode 100644 reactos/dll/win32/oleacc/propservice.c create mode 100644 reactos/dll/win32/oleacc/resource.h create mode 100644 reactos/dll/win32/oleacc/window.c diff --git a/reactos/dll/win32/oleacc/CMakeLists.txt b/reactos/dll/win32/oleacc/CMakeLists.txt index 566d1edf5d8..a2c10078b9d 100644 --- a/reactos/dll/win32/oleacc/CMakeLists.txt +++ b/reactos/dll/win32/oleacc/CMakeLists.txt @@ -4,9 +4,11 @@ include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) spec2def(oleacc.dll oleacc.spec ADD_IMPORTLIB) list(APPEND SOURCE + client.c main.c - ${CMAKE_CURRENT_BINARY_DIR}/oleacc_stubs.c - ${CMAKE_CURRENT_BINARY_DIR}/oleacc.def) + propservice.c + window.c + oleacc_private.h) add_typelib(oleacc_classes.idl) @@ -16,9 +18,15 @@ list(APPEND oleacc_rc_deps set_source_files_properties(oleacc.rc PROPERTIES OBJECT_DEPENDS "${oleacc_rc_deps}") -add_library(oleacc SHARED ${SOURCE} oleacc.rc) +add_library(oleacc SHARED + ${SOURCE} + oleacc.rc + ${CMAKE_CURRENT_BINARY_DIR}/oleacc_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/oleacc.def) + add_dependencies(oleacc stdole2) set_module_type(oleacc win32dll) -target_link_libraries(oleacc wine) -add_importlibs(oleacc user32 msvcrt kernel32 ntdll) +target_link_libraries(oleacc uuid wine) +add_importlibs(oleacc oleaut32 ole32 user32 msvcrt kernel32 ntdll) +add_pch(oleacc oleacc_private.h SOURCE) add_cd_file(TARGET oleacc DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/oleacc/client.c b/reactos/dll/win32/oleacc/client.c new file mode 100644 index 00000000000..0629feb4434 --- /dev/null +++ b/reactos/dll/win32/oleacc/client.c @@ -0,0 +1,509 @@ +/* + * Copyright 2014 Piotr Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "oleacc_private.h" + +typedef struct { + IAccessible IAccessible_iface; + IOleWindow IOleWindow_iface; + + LONG ref; + + HWND hwnd; +} Client; + +static inline Client* impl_from_Client(IAccessible *iface) +{ + return CONTAINING_RECORD(iface, Client, IAccessible_iface); +} + +static HRESULT WINAPI Client_QueryInterface(IAccessible *iface, REFIID riid, void **ppv) +{ + Client *This = impl_from_Client(iface); + + TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + + if(IsEqualIID(riid, &IID_IAccessible) || + IsEqualIID(riid, &IID_IDispatch) || + IsEqualIID(riid, &IID_IUnknown)) { + *ppv = iface; + }else if(IsEqualIID(riid, &IID_IOleWindow)) { + *ppv = &This->IOleWindow_iface; + }else { + WARN("no interface: %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; + } + + IAccessible_AddRef(iface); + return S_OK; +} + +static ULONG WINAPI Client_AddRef(IAccessible *iface) +{ + Client *This = impl_from_Client(iface); + ULONG ref = InterlockedIncrement(&This->ref); + + TRACE("(%p) ref = %u\n", This, ref); + return ref; +} + +static ULONG WINAPI Client_Release(IAccessible *iface) +{ + Client *This = impl_from_Client(iface); + ULONG ref = InterlockedDecrement(&This->ref); + + TRACE("(%p) ref = %u\n", This, ref); + + if(!ref) + heap_free(This); + return ref; +} + +static HRESULT WINAPI Client_GetTypeInfoCount(IAccessible *iface, UINT *pctinfo) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%p)\n", This, pctinfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_GetTypeInfo(IAccessible *iface, + UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%u %x %p)\n", This, iTInfo, lcid, ppTInfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_GetIDsOfNames(IAccessible *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%s %p %u %x %p)\n", This, debugstr_guid(riid), + rgszNames, cNames, lcid, rgDispId); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_Invoke(IAccessible *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%x %s %x %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_get_accParent(IAccessible *iface, IDispatch **ppdispParent) +{ + Client *This = impl_from_Client(iface); + + TRACE("(%p)->(%p)\n", This, ppdispParent); + + return AccessibleObjectFromWindow(This->hwnd, OBJID_WINDOW, + &IID_IDispatch, (void**)ppdispParent); +} + +static HRESULT WINAPI Client_get_accChildCount(IAccessible *iface, LONG *pcountChildren) +{ + Client *This = impl_from_Client(iface); + HWND cur; + + TRACE("(%p)->(%p)\n", This, pcountChildren); + + *pcountChildren = 0; + for(cur = GetWindow(This->hwnd, GW_CHILD); cur; cur = GetWindow(cur, GW_HWNDNEXT)) + (*pcountChildren)++; + + return S_OK; +} + +static HRESULT WINAPI Client_get_accChild(IAccessible *iface, + VARIANT varChildID, IDispatch **ppdispChild) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varChildID), ppdispChild); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_get_accName(IAccessible *iface, VARIANT varID, BSTR *pszName) +{ + Client *This = impl_from_Client(iface); + WCHAR name[1024]; + UINT i, len; + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszName); + + *pszName = NULL; + if(convert_child_id(&varID) != CHILDID_SELF || !IsWindow(This->hwnd)) + return E_INVALIDARG; + + len = SendMessageW(This->hwnd, WM_GETTEXT, sizeof(name)/sizeof(WCHAR), (LPARAM)name); + if(!len) + return S_FALSE; + + for(i=0; i(%s %p)\n", This, debugstr_variant(&varID), pszValue); + + *pszValue = NULL; + if(convert_child_id(&varID) != CHILDID_SELF) + return E_INVALIDARG; + return S_FALSE; +} + +static HRESULT WINAPI Client_get_accDescription(IAccessible *iface, + VARIANT varID, BSTR *pszDescription) +{ + Client *This = impl_from_Client(iface); + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszDescription); + + *pszDescription = NULL; + if(convert_child_id(&varID) != CHILDID_SELF) + return E_INVALIDARG; + return S_FALSE; +} + +static HRESULT WINAPI Client_get_accRole(IAccessible *iface, VARIANT varID, VARIANT *pvarRole) +{ + Client *This = impl_from_Client(iface); + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarRole); + + if(convert_child_id(&varID) != CHILDID_SELF) { + V_VT(pvarRole) = VT_EMPTY; + return E_INVALIDARG; + } + + V_VT(pvarRole) = VT_I4; + V_I4(pvarRole) = ROLE_SYSTEM_CLIENT; + return S_OK; +} + +static HRESULT WINAPI Client_get_accState(IAccessible *iface, VARIANT varID, VARIANT *pvarState) +{ + Client *This = impl_from_Client(iface); + LONG style; + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarState); + + if(convert_child_id(&varID) != CHILDID_SELF) { + V_VT(pvarState) = VT_EMPTY; + return E_INVALIDARG; + } + + V_VT(pvarState) = VT_I4; + V_I4(pvarState) = 0; + + style = GetWindowLongW(This->hwnd, GWL_STYLE); + if(style & WS_DISABLED) + V_I4(pvarState) |= STATE_SYSTEM_UNAVAILABLE; + else if(IsWindow(This->hwnd)) + V_I4(pvarState) |= STATE_SYSTEM_FOCUSABLE; + if(GetFocus() == This->hwnd) + V_I4(pvarState) |= STATE_SYSTEM_FOCUSED; + if(!(style & WS_VISIBLE)) + V_I4(pvarState) |= STATE_SYSTEM_INVISIBLE; + return S_OK; +} + +static HRESULT WINAPI Client_get_accHelp(IAccessible *iface, VARIANT varID, BSTR *pszHelp) +{ + Client *This = impl_from_Client(iface); + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszHelp); + + *pszHelp = NULL; + if(convert_child_id(&varID) != CHILDID_SELF) + return E_INVALIDARG; + return S_FALSE; +} + +static HRESULT WINAPI Client_get_accHelpTopic(IAccessible *iface, + BSTR *pszHelpFile, VARIANT varID, LONG *pidTopic) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%p %s %p)\n", This, pszHelpFile, debugstr_variant(&varID), pidTopic); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_get_accKeyboardShortcut(IAccessible *iface, + VARIANT varID, BSTR *pszKeyboardShortcut) +{ + static const WCHAR shortcut_fmt[] = {'A','l','t','+','!',0}; + Client *This = impl_from_Client(iface); + WCHAR name[1024]; + UINT i, len; + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszKeyboardShortcut); + + *pszKeyboardShortcut = NULL; + if(convert_child_id(&varID) != CHILDID_SELF) + return E_INVALIDARG; + + len = SendMessageW(This->hwnd, WM_GETTEXT, sizeof(name)/sizeof(WCHAR), (LPARAM)name); + for(i=0; i= len) + return S_FALSE; + + *pszKeyboardShortcut = SysAllocString(shortcut_fmt); + if(!*pszKeyboardShortcut) + return E_OUTOFMEMORY; + + (*pszKeyboardShortcut)[4] = name[i+1]; + return S_OK; +} + +static HRESULT WINAPI Client_get_accFocus(IAccessible *iface, VARIANT *pvarID) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%p)\n", This, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_get_accSelection(IAccessible *iface, VARIANT *pvarID) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%p)\n", This, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_get_accDefaultAction(IAccessible *iface, + VARIANT varID, BSTR *pszDefaultAction) +{ + Client *This = impl_from_Client(iface); + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszDefaultAction); + + *pszDefaultAction = NULL; + if(convert_child_id(&varID) != CHILDID_SELF) + return E_INVALIDARG; + return S_FALSE; +} + +static HRESULT WINAPI Client_accSelect(IAccessible *iface, LONG flagsSelect, VARIANT varID) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%x %s)\n", This, flagsSelect, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_accLocation(IAccessible *iface, LONG *pxLeft, + LONG *pyTop, LONG *pcxWidth, LONG *pcyHeight, VARIANT varID) +{ + Client *This = impl_from_Client(iface); + RECT rect; + POINT pt; + + TRACE("(%p)->(%p %p %p %p %s)\n", This, pxLeft, pyTop, + pcxWidth, pcyHeight, debugstr_variant(&varID)); + + *pxLeft = *pyTop = *pcxWidth = *pcyHeight = 0; + if(convert_child_id(&varID) != CHILDID_SELF) + return E_INVALIDARG; + + if(!GetClientRect(This->hwnd, &rect)) + return S_OK; + + pt.x = rect.left, + pt.y = rect.top; + MapWindowPoints(This->hwnd, NULL, &pt, 1); + *pxLeft = pt.x; + *pyTop = pt.y; + + pt.x = rect.right; + pt.y = rect.bottom; + MapWindowPoints(This->hwnd, NULL, &pt, 1); + *pcxWidth = pt.x - *pxLeft; + *pcyHeight = pt.y - *pyTop; + return S_OK; +} + +static HRESULT WINAPI Client_accNavigate(IAccessible *iface, + LONG navDir, VARIANT varStart, VARIANT *pvarEnd) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%d %s %p)\n", This, navDir, debugstr_variant(&varStart), pvarEnd); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_accHitTest(IAccessible *iface, + LONG xLeft, LONG yTop, VARIANT *pvarID) +{ + Client *This = impl_from_Client(iface); + HWND child; + POINT pt; + + TRACE("(%p)->(%d %d %p)\n", This, xLeft, yTop, pvarID); + + V_VT(pvarID) = VT_I4; + V_I4(pvarID) = 0; + + pt.x = xLeft; + pt.y = yTop; + if(!IsWindowVisible(This->hwnd) || !ScreenToClient(This->hwnd, &pt)) + return S_OK; + + child = ChildWindowFromPointEx(This->hwnd, pt, CWP_SKIPINVISIBLE); + if(!child || child==This->hwnd) + return S_OK; + + V_VT(pvarID) = VT_DISPATCH; + return AccessibleObjectFromWindow(child, OBJID_WINDOW, + &IID_IDispatch, (void**)&V_DISPATCH(pvarID)); +} + +static HRESULT WINAPI Client_accDoDefaultAction(IAccessible *iface, VARIANT varID) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%s)\n", This, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_put_accName(IAccessible *iface, VARIANT varID, BSTR pszName) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%s %s)\n", This, debugstr_variant(&varID), debugstr_w(pszName)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Client_put_accValue(IAccessible *iface, VARIANT varID, BSTR pszValue) +{ + Client *This = impl_from_Client(iface); + FIXME("(%p)->(%s %s)\n", This, debugstr_variant(&varID), debugstr_w(pszValue)); + return E_NOTIMPL; +} + +static const IAccessibleVtbl ClientVtbl = { + Client_QueryInterface, + Client_AddRef, + Client_Release, + Client_GetTypeInfoCount, + Client_GetTypeInfo, + Client_GetIDsOfNames, + Client_Invoke, + Client_get_accParent, + Client_get_accChildCount, + Client_get_accChild, + Client_get_accName, + Client_get_accValue, + Client_get_accDescription, + Client_get_accRole, + Client_get_accState, + Client_get_accHelp, + Client_get_accHelpTopic, + Client_get_accKeyboardShortcut, + Client_get_accFocus, + Client_get_accSelection, + Client_get_accDefaultAction, + Client_accSelect, + Client_accLocation, + Client_accNavigate, + Client_accHitTest, + Client_accDoDefaultAction, + Client_put_accName, + Client_put_accValue +}; + +static inline Client* impl_from_Client_OleWindow(IOleWindow *iface) +{ + return CONTAINING_RECORD(iface, Client, IOleWindow_iface); +} + +static HRESULT WINAPI Client_OleWindow_QueryInterface(IOleWindow *iface, REFIID riid, void **ppv) +{ + Client *This = impl_from_Client_OleWindow(iface); + return IAccessible_QueryInterface(&This->IAccessible_iface, riid, ppv); +} + +static ULONG WINAPI Client_OleWindow_AddRef(IOleWindow *iface) +{ + Client *This = impl_from_Client_OleWindow(iface); + return IAccessible_AddRef(&This->IAccessible_iface); +} + +static ULONG WINAPI Client_OleWindow_Release(IOleWindow *iface) +{ + Client *This = impl_from_Client_OleWindow(iface); + return IAccessible_Release(&This->IAccessible_iface); +} + +static HRESULT WINAPI Client_OleWindow_GetWindow(IOleWindow *iface, HWND *phwnd) +{ + Client *This = impl_from_Client_OleWindow(iface); + + TRACE("(%p)->(%p)\n", This, phwnd); + + *phwnd = This->hwnd; + return S_OK; +} + +static HRESULT WINAPI Client_OleWindow_ContextSensitiveHelp(IOleWindow *iface, BOOL fEnterMode) +{ + Client *This = impl_from_Client_OleWindow(iface); + FIXME("(%p)->(%x)\n", This, fEnterMode); + return E_NOTIMPL; +} + +static const IOleWindowVtbl ClientOleWindowVtbl = { + Client_OleWindow_QueryInterface, + Client_OleWindow_AddRef, + Client_OleWindow_Release, + Client_OleWindow_GetWindow, + Client_OleWindow_ContextSensitiveHelp +}; + +HRESULT create_client_object(HWND hwnd, const IID *iid, void **obj) +{ + Client *client; + HRESULT hres; + + if(!IsWindow(hwnd)) + return E_FAIL; + + client = heap_alloc_zero(sizeof(Client)); + if(!client) + return E_OUTOFMEMORY; + + client->IAccessible_iface.lpVtbl = &ClientVtbl; + client->IOleWindow_iface.lpVtbl = &ClientOleWindowVtbl; + client->ref = 1; + client->hwnd = hwnd; + + hres = IAccessible_QueryInterface(&client->IAccessible_iface, iid, obj); + IAccessible_Release(&client->IAccessible_iface); + return hres; +} diff --git a/reactos/dll/win32/oleacc/lang/oleacc_De.rc b/reactos/dll/win32/oleacc/lang/oleacc_De.rc index cc0bb0df805..44620ad3a94 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_De.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_De.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - #pragma code_page(65001) LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL @@ -91,4 +89,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "Trenn-Schaltfläche" ROLE_SYSTEM_IPADDRESS "IP-Adresse" ROLE_SYSTEM_OUTLINEBUTTON "Gliederungsschaltfläche" /* outline kann aber auch umrahmen heißen... */ + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_En.rc b/reactos/dll/win32/oleacc/lang/oleacc_En.rc index 37d3a557495..f1b12efa851 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_En.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_En.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT STRINGTABLE @@ -89,4 +87,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "split button" ROLE_SYSTEM_IPADDRESS "IP address" ROLE_SYSTEM_OUTLINEBUTTON "outline button" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Fr.rc b/reactos/dll/win32/oleacc/lang/oleacc_Fr.rc index ef21c088452..65a0f2236d3 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Fr.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Fr.rc @@ -19,8 +19,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - /* UTF-8 */ #pragma code_page(65001) @@ -93,4 +91,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "bouton avec menu" ROLE_SYSTEM_IPADDRESS "adresse IP" ROLE_SYSTEM_OUTLINEBUTTON "bouton de résumé" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_He.rc b/reactos/dll/win32/oleacc/lang/oleacc_He.rc index 985af397a33..fdc516c1bd9 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_He.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_He.rc @@ -20,8 +20,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT STRINGTABLE @@ -91,4 +89,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "split button" ROLE_SYSTEM_IPADDRESS "כתובת IP" ROLE_SYSTEM_OUTLINEBUTTON "outline button" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Hu.rc b/reactos/dll/win32/oleacc/lang/oleacc_Hu.rc index 63ce7410b3b..5d50a9989ee 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Hu.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Hu.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - /* UTF-8 */ #pragma code_page(65001) @@ -92,4 +90,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "felosztott gomb" ROLE_SYSTEM_IPADDRESS "IP cím" ROLE_SYSTEM_OUTLINEBUTTON "körvonalazott gomb" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_It.rc b/reactos/dll/win32/oleacc/lang/oleacc_It.rc index 97456932e83..3f8d10db2bd 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_It.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_It.rc @@ -19,8 +19,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - /* UTF-8 */ #pragma code_page(65001) @@ -93,4 +91,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "pulsante di menù combinato" ROLE_SYSTEM_IPADDRESS "indirizzo IP" ROLE_SYSTEM_OUTLINEBUTTON "pulsante dello schema" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Ko.rc b/reactos/dll/win32/oleacc/lang/oleacc_Ko.rc index 19d5d381a8d..c0d6715f881 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Ko.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Ko.rc @@ -19,8 +19,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT STRINGTABLE @@ -90,4 +88,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON " " ROLE_SYSTEM_IPADDRESS "IP ּ" ROLE_SYSTEM_OUTLINEBUTTON "ܰ " + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Lt.rc b/reactos/dll/win32/oleacc/lang/oleacc_Lt.rc index c6d57b8b44b..60f4087cbac 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Lt.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Lt.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - /* UTF-8 */ #pragma code_page(65001) @@ -92,4 +90,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "išskleidimo mygtukas" ROLE_SYSTEM_IPADDRESS "IP adresas" ROLE_SYSTEM_OUTLINEBUTTON "plano mygtukas" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Nl.rc b/reactos/dll/win32/oleacc/lang/oleacc_Nl.rc index ccef803da84..1f707159f05 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Nl.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Nl.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL STRINGTABLE @@ -89,4 +87,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "splitsknop" ROLE_SYSTEM_IPADDRESS "IP-adres" ROLE_SYSTEM_OUTLINEBUTTON "omtrekknop" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_No.rc b/reactos/dll/win32/oleacc/lang/oleacc_No.rc index 6eb25d11c3a..e05ae900c5b 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_No.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_No.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - /* UTF-8 */ #pragma code_page(65001) @@ -92,4 +90,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "oppdelt knapp" ROLE_SYSTEM_IPADDRESS "IP-adresse" ROLE_SYSTEM_OUTLINEBUTTON "utheving for knapp" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Pl.rc b/reactos/dll/win32/oleacc/lang/oleacc_Pl.rc index 87e3917b1ac..bbd1bf7c7d7 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Pl.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Pl.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_POLISH, SUBLANG_NEUTRAL STRINGTABLE @@ -89,4 +87,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "przycisk rozdzielania" ROLE_SYSTEM_IPADDRESS "adres IP" ROLE_SYSTEM_OUTLINEBUTTON "przycisk zarysu" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Pt.rc b/reactos/dll/win32/oleacc/lang/oleacc_Pt.rc index d692ddd631a..f09868a4214 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Pt.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Pt.rc @@ -19,8 +19,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - #pragma code_page(65001) LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN @@ -92,6 +90,39 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "split button" ROLE_SYSTEM_IPADDRESS "endereço IP" ROLE_SYSTEM_OUTLINEBUTTON "outline button" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE @@ -163,4 +194,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "split button" ROLE_SYSTEM_IPADDRESS "endereço IP" ROLE_SYSTEM_OUTLINEBUTTON "outline button" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc b/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc index 1081e5ac705..87ff65e92e6 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc @@ -18,77 +18,108 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) STRINGTABLE { - 0 "obiect necunoscut" /* undocumented */ - ROLE_SYSTEM_TITLEBAR "bară de titlu" - ROLE_SYSTEM_MENUBAR "bară de meniu" - ROLE_SYSTEM_SCROLLBAR "bară de defilare" - ROLE_SYSTEM_GRIP "ghidaj" - ROLE_SYSTEM_SOUND "sunet" - ROLE_SYSTEM_CURSOR "cursor" - ROLE_SYSTEM_CARET "circumflex" - ROLE_SYSTEM_ALERT "atenționare" - ROLE_SYSTEM_WINDOW "fereastră" - ROLE_SYSTEM_CLIENT "client" - ROLE_SYSTEM_MENUPOPUP "meniu contextual" - ROLE_SYSTEM_MENUITEM "element de meniu" - ROLE_SYSTEM_TOOLTIP "indiciu" - ROLE_SYSTEM_APPLICATION "aplicație" - ROLE_SYSTEM_DOCUMENT "document" - ROLE_SYSTEM_PANE "panou" - ROLE_SYSTEM_CHART "diagramă" - ROLE_SYSTEM_DIALOG "dialog" - ROLE_SYSTEM_BORDER "margine" - ROLE_SYSTEM_GROUPING "grupare" - ROLE_SYSTEM_SEPARATOR "separator" - ROLE_SYSTEM_TOOLBAR "panou de instrumente" - ROLE_SYSTEM_STATUSBAR "bară de stare" - ROLE_SYSTEM_TABLE "tabel" - ROLE_SYSTEM_COLUMNHEADER "antet de coloană" - ROLE_SYSTEM_ROWHEADER "antet de rând" - ROLE_SYSTEM_COLUMN "coloană" - ROLE_SYSTEM_ROW "rând" - ROLE_SYSTEM_CELL "celulă" - ROLE_SYSTEM_LINK "adresă" - ROLE_SYSTEM_HELPBALLOON "balon de ajutor" - ROLE_SYSTEM_CHARACTER "caracter" - ROLE_SYSTEM_LIST "listă" - ROLE_SYSTEM_LISTITEM "element din listă" - ROLE_SYSTEM_OUTLINE "contur" - ROLE_SYSTEM_OUTLINEITEM "conturare element" - ROLE_SYSTEM_PAGETAB "compartiment" - ROLE_SYSTEM_PROPERTYPAGE "pagină de proprietăți" - ROLE_SYSTEM_INDICATOR "indicator" - ROLE_SYSTEM_GRAPHIC "grafică" - ROLE_SYSTEM_STATICTEXT "text static" - ROLE_SYSTEM_TEXT "text" - ROLE_SYSTEM_PUSHBUTTON "buton de comandă" - ROLE_SYSTEM_CHECKBUTTON "buton de bifare" - ROLE_SYSTEM_RADIOBUTTON "buton radio" - ROLE_SYSTEM_COMBOBOX "listă derulantă" - ROLE_SYSTEM_DROPLIST "listă verticală" - ROLE_SYSTEM_PROGRESSBAR "bară de progres" - ROLE_SYSTEM_DIAL "apelator" - ROLE_SYSTEM_HOTKEYFIELD "câmp de tastă rapidă" - ROLE_SYSTEM_SLIDER "glisor" - ROLE_SYSTEM_SPINBUTTON "căsuță incrementală" - ROLE_SYSTEM_DIAGRAM "diagramă" - ROLE_SYSTEM_ANIMATION "animație" - ROLE_SYSTEM_EQUATION "ecuație" - ROLE_SYSTEM_BUTTONDROPDOWN "buton listă verticală" - ROLE_SYSTEM_BUTTONMENU "buton meniu" + 0 "obiect necunoscut" /* undocumented */ + ROLE_SYSTEM_TITLEBAR "bară de titlu" + ROLE_SYSTEM_MENUBAR "bară de meniu" + ROLE_SYSTEM_SCROLLBAR "bară de defilare" + ROLE_SYSTEM_GRIP "ghidaj" + ROLE_SYSTEM_SOUND "sunet" + ROLE_SYSTEM_CURSOR "cursor" + ROLE_SYSTEM_CARET "circumflex" + ROLE_SYSTEM_ALERT "atenționare" + ROLE_SYSTEM_WINDOW "fereastră" + ROLE_SYSTEM_CLIENT "client" + ROLE_SYSTEM_MENUPOPUP "meniu contextual" + ROLE_SYSTEM_MENUITEM "element de meniu" + ROLE_SYSTEM_TOOLTIP "indiciu" + ROLE_SYSTEM_APPLICATION "aplicație" + ROLE_SYSTEM_DOCUMENT "document" + ROLE_SYSTEM_PANE "panou" + ROLE_SYSTEM_CHART "diagramă" + ROLE_SYSTEM_DIALOG "dialog" + ROLE_SYSTEM_BORDER "margine" + ROLE_SYSTEM_GROUPING "grupare" + ROLE_SYSTEM_SEPARATOR "separator" + ROLE_SYSTEM_TOOLBAR "panou de instrumente" + ROLE_SYSTEM_STATUSBAR "bară de stare" + ROLE_SYSTEM_TABLE "tabel" + ROLE_SYSTEM_COLUMNHEADER "antet de coloană" + ROLE_SYSTEM_ROWHEADER "antet de rând" + ROLE_SYSTEM_COLUMN "coloană" + ROLE_SYSTEM_ROW "rând" + ROLE_SYSTEM_CELL "celulă" + ROLE_SYSTEM_LINK "adresă" + ROLE_SYSTEM_HELPBALLOON "balon de ajutor" + ROLE_SYSTEM_CHARACTER "caracter" + ROLE_SYSTEM_LIST "listă" + ROLE_SYSTEM_LISTITEM "element din listă" + ROLE_SYSTEM_OUTLINE "contur" + ROLE_SYSTEM_OUTLINEITEM "conturare element" + ROLE_SYSTEM_PAGETAB "compartiment" + ROLE_SYSTEM_PROPERTYPAGE "pagină de proprietăți" + ROLE_SYSTEM_INDICATOR "indicator" + ROLE_SYSTEM_GRAPHIC "grafică" + ROLE_SYSTEM_STATICTEXT "text static" + ROLE_SYSTEM_TEXT "text" + ROLE_SYSTEM_PUSHBUTTON "buton de comandă" + ROLE_SYSTEM_CHECKBUTTON "buton de bifare" + ROLE_SYSTEM_RADIOBUTTON "buton radio" + ROLE_SYSTEM_COMBOBOX "listă derulantă" + ROLE_SYSTEM_DROPLIST "listă verticală" + ROLE_SYSTEM_PROGRESSBAR "bară de progres" + ROLE_SYSTEM_DIAL "apelator" + ROLE_SYSTEM_HOTKEYFIELD "câmp de tastă rapidă" + ROLE_SYSTEM_SLIDER "glisor" + ROLE_SYSTEM_SPINBUTTON "căsuță incrementală" + ROLE_SYSTEM_DIAGRAM "diagramă" + ROLE_SYSTEM_ANIMATION "animație" + ROLE_SYSTEM_EQUATION "ecuație" + ROLE_SYSTEM_BUTTONDROPDOWN "buton listă verticală" + ROLE_SYSTEM_BUTTONMENU "buton meniu" ROLE_SYSTEM_BUTTONDROPDOWNGRID "buton listă verticală de grilă" - ROLE_SYSTEM_WHITESPACE "spațiu gol" - ROLE_SYSTEM_PAGETABLIST "listă de file" - ROLE_SYSTEM_CLOCK "ceas" - ROLE_SYSTEM_SPLITBUTTON "buton separare" - ROLE_SYSTEM_IPADDRESS "adresă IP" - ROLE_SYSTEM_OUTLINEBUTTON "buton contur" + ROLE_SYSTEM_WHITESPACE "spațiu gol" + ROLE_SYSTEM_PAGETABLIST "listă de file" + ROLE_SYSTEM_CLOCK "ceas" + ROLE_SYSTEM_SPLITBUTTON "buton separare" + ROLE_SYSTEM_IPADDRESS "adresă IP" + ROLE_SYSTEM_OUTLINEBUTTON "buton contur" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Ru.rc b/reactos/dll/win32/oleacc/lang/oleacc_Ru.rc index d3ed5c871b0..050c707d825 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Ru.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Ru.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE @@ -89,4 +87,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "кнопка разделения" ROLE_SYSTEM_IPADDRESS "IP-адрес" ROLE_SYSTEM_OUTLINEBUTTON "кнопка контура" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Si.rc b/reactos/dll/win32/oleacc/lang/oleacc_Si.rc index 2622901b9db..cee2ab3a5cd 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Si.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Si.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - #pragma code_page(65001) LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT @@ -91,4 +89,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "deljeni gumb" ROLE_SYSTEM_IPADDRESS "IP naslov" ROLE_SYSTEM_OUTLINEBUTTON "gumb orisa" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Sq.rc b/reactos/dll/win32/oleacc/lang/oleacc_Sq.rc index 6ab38a91c57..1f5171c55f1 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Sq.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Sq.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL STRINGTABLE @@ -89,4 +87,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "buton ndarës" ROLE_SYSTEM_IPADDRESS "adresa IP" ROLE_SYSTEM_OUTLINEBUTTON "buton plani" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc b/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc index 41ce38eaa42..b2968f114a3 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE @@ -89,4 +87,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "ayırma düğmesi" ROLE_SYSTEM_IPADDRESS "IP adresi" ROLE_SYSTEM_OUTLINEBUTTON "anaçizgi düğmesi" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Uk.rc b/reactos/dll/win32/oleacc/lang/oleacc_Uk.rc index 10cead739f8..55da93f56da 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Uk.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Uk.rc @@ -20,8 +20,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "oleacc.h" - /* UTF-8 */ #pragma code_page(65001) @@ -94,4 +92,37 @@ STRINGTABLE ROLE_SYSTEM_SPLITBUTTON "кнопка поділу" ROLE_SYSTEM_IPADDRESS "IP адреса" ROLE_SYSTEM_OUTLINEBUTTON "кпопка плану" + + IDS_STATE_NORMAL "normal" + IDS_STATE_UNAVAILABLE "unavailable" + IDS_STATE_SELECTED "selected" + IDS_STATE_FOCUSED "focused" + IDS_STATE_PRESSED "pressed" + IDS_STATE_CHECKED "checked" + IDS_STATE_MIXED "mixed" + IDS_STATE_READONLY "read only" + IDS_STATE_HOTTRACKED "hot tracked" + IDS_STATE_DEFAULT "default" + IDS_STATE_EXPANDED "expanded" + IDS_STATE_COLLAPSED "collapsed" + IDS_STATE_BUSY "busy" + IDS_STATE_FLOATING "floating" + IDS_STATE_MARQUEED "marqueed" + IDS_STATE_ANIMATED "animated" + IDS_STATE_INVISIBLE "invisible" + IDS_STATE_OFFSCREEN "offscreen" + IDS_STATE_SIZEABLE "sizeable" + IDS_STATE_MOVEABLE "moveable" + IDS_STATE_SELFVOICING "self voicing" + IDS_STATE_FOCUSABLE "focusable" + IDS_STATE_SELECTABLE "selectable" + IDS_STATE_LINKED "linked" + IDS_STATE_TRAVERSED "traversed" + IDS_STATE_MULTISELECTABLE "multi selectable" + IDS_STATE_EXTSELECTABLE "extended selectable" + IDS_STATE_ALERT_LOW "alert low" + IDS_STATE_ALERT_MEDIUM "alert medium" + IDS_STATE_ALERT_HIGH "alert high" + IDS_STATE_PROTECTED "protected" + IDS_STATE_HASPOPUP "has popup" } diff --git a/reactos/dll/win32/oleacc/main.c b/reactos/dll/win32/oleacc/main.c index 148dd87e642..a3739888765 100644 --- a/reactos/dll/win32/oleacc/main.c +++ b/reactos/dll/win32/oleacc/main.c @@ -18,42 +18,306 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H +#include "oleacc_private.h" -#include -#include -#include -//#include "winuser.h" -#include -#include +#include +#include #include -#include -WINE_DEFAULT_DEBUG_CHANNEL(oleacc); +#include "resource.h" + +static const WCHAR lresult_atom_prefix[] = {'w','i','n','e','_','o','l','e','a','c','c',':'}; + +static const WCHAR menuW[] = {'#','3','2','7','6','8',0}; +static const WCHAR desktopW[] = {'#','3','2','7','6','9',0}; +static const WCHAR dialogW[] = {'#','3','2','7','7','0',0}; +static const WCHAR winswitchW[] = {'#','3','2','7','7','1',0}; +static const WCHAR mdi_clientW[] = {'M','D','I','C','l','i','e','n','t',0}; +static const WCHAR richeditW[] = {'R','I','C','H','E','D','I','T',0}; +static const WCHAR richedit20aW[] = {'R','i','c','h','E','d','i','t','2','0','A',0}; +static const WCHAR richedit20wW[] = {'R','i','c','h','E','d','i','t','2','0','W',0}; + +typedef HRESULT (WINAPI *accessible_create)(HWND, const IID*, void**); + +static struct { + const WCHAR *name; + DWORD idx; + accessible_create create_client; + accessible_create create_window; +} builtin_classes[] = { + {WC_LISTBOXW, 0x10000, NULL, NULL}, + {menuW, 0x10001, NULL, NULL}, + {WC_BUTTONW, 0x10002, NULL, NULL}, + {WC_STATICW, 0x10003, NULL, NULL}, + {WC_EDITW, 0x10004, NULL, NULL}, + {WC_COMBOBOXW, 0x10005, NULL, NULL}, + {dialogW, 0x10006, NULL, NULL}, + {winswitchW, 0x10007, NULL, NULL}, + {mdi_clientW, 0x10008, NULL, NULL}, + {desktopW, 0x10009, NULL, NULL}, + {WC_SCROLLBARW, 0x1000a, NULL, NULL}, + {STATUSCLASSNAMEW, 0x1000b, NULL, NULL}, + {TOOLBARCLASSNAMEW, 0x1000c, NULL, NULL}, + {PROGRESS_CLASSW, 0x1000d, NULL, NULL}, + {ANIMATE_CLASSW, 0x1000e, NULL, NULL}, + {WC_TABCONTROLW, 0x1000f, NULL, NULL}, + {HOTKEY_CLASSW, 0x10010, NULL, NULL}, + {WC_HEADERW, 0x10011, NULL, NULL}, + {TRACKBAR_CLASSW, 0x10012, NULL, NULL}, + {WC_LISTVIEWW, 0x10013, NULL, NULL}, + {UPDOWN_CLASSW, 0x10016, NULL, NULL}, + {TOOLTIPS_CLASSW, 0x10018, NULL, NULL}, + {WC_TREEVIEWW, 0x10019, NULL, NULL}, + {MONTHCAL_CLASSW, 0, NULL, NULL}, + {DATETIMEPICK_CLASSW, 0, NULL, NULL}, + {WC_IPADDRESSW, 0, NULL, NULL}, + {richeditW, 0x1001c, NULL, NULL}, + {richedit20aW, 0, NULL, NULL}, + {richedit20wW, 0, NULL, NULL}, +}; static HINSTANCE oleacc_handle = 0; -HRESULT WINAPI CreateStdAccessibleObject( HWND hwnd, LONG idObject, - REFIID riidInterface, void** ppvObject ) +int convert_child_id(VARIANT *v) { - FIXME("%p %d %s %p\n", hwnd, idObject, + switch(V_VT(v)) { + case VT_I4: + return V_I4(v); + default: + FIXME("unhandled child ID variant type: %d\n", V_VT(v)); + return -1; + } +} + +static accessible_create get_builtin_accessible_obj(HWND hwnd, LONG objid) +{ + WCHAR class_name[64]; + int i, idx; + + if(!RealGetWindowClassW(hwnd, class_name, sizeof(class_name)/sizeof(WCHAR))) + return NULL; + TRACE("got window class: %s\n", debugstr_w(class_name)); + + for(i=0; i +#include + +#include "resource.h" 1 TYPELIB "oleacc_classes.tlb" 1 WINE_REGISTRY "oleacc_classes.rgs" +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +#define WINE_FILEDESCRIPTION_STR "Wine OLE Accessibility" +#define WINE_FILENAME_STR "oleacc.dll" +#define WINE_FILEVERSION 7,0,0,0 +#define WINE_FILEVERSION_STR "7.0.0.0" +#define WINE_PRODUCTVERSION 6,1,7600,16385 +#define WINE_PRODUCTVERSION_STR "6.1.6700.16385" + +#include + #ifdef LANGUAGE_EN_US #include "lang/oleacc_En.rc" #endif diff --git a/reactos/dll/win32/oleacc/oleacc.spec b/reactos/dll/win32/oleacc/oleacc.spec index 68514546fc3..9f3a9a06ee6 100644 --- a/reactos/dll/win32/oleacc/oleacc.spec +++ b/reactos/dll/win32/oleacc/oleacc.spec @@ -9,13 +9,14 @@ @ stdcall -private DllRegisterServer() @ stdcall -private DllUnregisterServer() @ stdcall GetOleaccVersionInfo(ptr ptr) +@ stdcall GetProcessHandleFromHwnd(ptr) @ stdcall GetRoleTextA(long ptr long) @ stdcall GetRoleTextW(long ptr long) -@ stub GetStateTextA -@ stub GetStateTextW -@ stub IID_IAccessible -@ stub IID_IAccessibleHandler -@ stub LIBID_Accessibility +@ stdcall GetStateTextA(long ptr long) +@ stdcall GetStateTextW(long ptr long) +@ extern IID_IAccessible +@ extern IID_IAccessibleHandler +@ extern LIBID_Accessibility @ stdcall LresultFromObject(ptr long ptr) @ stdcall ObjectFromLresult(long ptr long ptr) -@ stub WindowFromAccessibleObject +@ stdcall WindowFromAccessibleObject(ptr ptr) diff --git a/reactos/dll/win32/oleacc/oleacc_private.h b/reactos/dll/win32/oleacc/oleacc_private.h new file mode 100644 index 00000000000..726aa4979dd --- /dev/null +++ b/reactos/dll/win32/oleacc/oleacc_private.h @@ -0,0 +1,51 @@ +/* + * Copyright 2014 Piotr Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _OLEACC_PRIVATE_H_ +#define _OLEACC_PRIVATE_H_ + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#define COBJMACROS + +#include +#include +#include +#include + +#include +WINE_DEFAULT_DEBUG_CHANNEL(oleacc); + +HRESULT create_client_object(HWND, const IID*, void**) DECLSPEC_HIDDEN; +HRESULT create_window_object(HWND, const IID*, void**) DECLSPEC_HIDDEN; + +int convert_child_id(VARIANT *v) DECLSPEC_HIDDEN; + +static inline void * __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t len) +{ + return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len); +} + +static inline BOOL heap_free(void *mem) +{ + return HeapFree(GetProcessHeap(), 0, mem); +} + +#endif /* _OLEACC_PRIVATE_H_ */ diff --git a/reactos/dll/win32/oleacc/propservice.c b/reactos/dll/win32/oleacc/propservice.c new file mode 100644 index 00000000000..58a113dde34 --- /dev/null +++ b/reactos/dll/win32/oleacc/propservice.c @@ -0,0 +1,248 @@ +/* + * Copyright 2014 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "oleacc_private.h" + +static HRESULT WINAPI AccPropServices_QueryInterface(IAccPropServices *iface, REFIID riid, void **ppv) +{ + if(IsEqualGUID(&IID_IUnknown, riid)) { + TRACE("(IID_IUnknown %p)\n", ppv); + *ppv = iface; + }else if(IsEqualGUID(&IID_IAccPropServices, riid)) { + TRACE("(IID_IAccPropServices %p)\n", ppv); + *ppv = iface; + }else { + FIXME("Unknown iface %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static ULONG WINAPI AccPropServices_AddRef(IAccPropServices *iface) +{ + return 2; +} + +static ULONG WINAPI AccPropServices_Release(IAccPropServices *iface) +{ + return 1; +} + +static HRESULT WINAPI AccPropServices_SetPropValue(IAccPropServices *iface, const BYTE *pIDString, + DWORD dwIDStringLen, MSAAPROPID idProp, VARIANT var) +{ + FIXME("(%p %u %s %s)\n", pIDString, dwIDStringLen, debugstr_guid(&idProp), debugstr_variant(&var)); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_SetPropServer(IAccPropServices *iface, const BYTE *pIDString, + DWORD dwIDStringLen, const MSAAPROPID *paProps, int cProps, IAccPropServer *pServer, AnnoScope AnnoScope) +{ + FIXME("(%p %u %p %d %p %u)\n", pIDString, dwIDStringLen, paProps, cProps, pServer, AnnoScope); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_ClearProps(IAccPropServices *iface, const BYTE *pIDString, + DWORD dwIDStringLen, const MSAAPROPID *paProps, int cProps) +{ + FIXME("(%p %u %p %d)\n", pIDString, dwIDStringLen, paProps, cProps); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_SetHwndProp(IAccPropServices *iface, HWND hwnd, DWORD idObject, + DWORD idChild, MSAAPROPID idProp, VARIANT var) +{ + FIXME("(%p %u %u %s %s)\n", hwnd, idObject, idChild, debugstr_guid(&idProp), debugstr_variant(&var)); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_SetHwndPropStr(IAccPropServices *iface, HWND hwnd, DWORD idObject, + DWORD idChild, MSAAPROPID idProp, LPWSTR str) +{ + FIXME("(%p %u %u %s %s)\n", hwnd, idObject, idChild, debugstr_guid(&idProp), debugstr_w(str)); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_SetHwndPropServer(IAccPropServices *iface, HWND hwnd, DWORD idObject, + DWORD idChild, const MSAAPROPID *paProps, int cProps, IAccPropServer *pServer, AnnoScope AnnoScope) +{ + FIXME("(%p %u %u %p %d %p %u)\n", hwnd, idObject, idChild, paProps, cProps, pServer, AnnoScope); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_ClearHwndProps(IAccPropServices *iface, HWND hwnd, DWORD idObject, + DWORD idChild, const MSAAPROPID *paProps, int cProps) +{ + FIXME("(%p %u %u %p %d)\n", hwnd, idObject, idChild, paProps, cProps); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_ComposeHwndIdentityString(IAccPropServices *iface, HWND hwnd, + DWORD idObject, DWORD idChild, BYTE **ppIDString, DWORD *pdwIDStringLen) +{ + FIXME("(%p %u %u %p %p)\n", hwnd, idObject, idChild, ppIDString, pdwIDStringLen); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_DecomposeHwndIdentityString(IAccPropServices *iface, const BYTE *pIDString, + DWORD dwIDStringLen, HWND *phwnd, DWORD *pidObject, DWORD *pidChild) +{ + FIXME("(%p %u %p %p %p)\n", pIDString, dwIDStringLen, phwnd, pidObject, pidChild); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_SetHmenuProp(IAccPropServices *iface, HMENU hmenu, DWORD idChild, + MSAAPROPID idProp, VARIANT var) +{ + FIXME("(%p %u %s %s)\n", hmenu, idChild, debugstr_guid(&idProp), debugstr_variant(&var)); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_SetHmenuPropStr(IAccPropServices *iface, HMENU hmenu, DWORD idChild, + MSAAPROPID idProp, LPWSTR str) +{ + FIXME("(%p %u %s %s)\n", hmenu, idChild, debugstr_guid(&idProp), debugstr_w(str)); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_SetHmenuPropServer(IAccPropServices *iface, HMENU hmenu, DWORD idChild, + const MSAAPROPID *paProps, int cProps, IAccPropServer *pServer, AnnoScope AnnoScope) +{ + FIXME("(%p %u %p %d %p %u)\n", hmenu, idChild, paProps, cProps, pServer, AnnoScope); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_ClearHmenuProps(IAccPropServices *iface, HMENU hmenu, DWORD idChild, + const MSAAPROPID *paProps, int cProps) +{ + FIXME("(%p %u %p %d)\n", hmenu, idChild, paProps, cProps); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_ComposeHmenuIdentityString(IAccPropServices *iface, HMENU hmenu, DWORD idChild, + BYTE **ppIDString, DWORD *pdwIDStringLen) +{ + FIXME("(%p %u %p %p)\n", hmenu, idChild, ppIDString, pdwIDStringLen); + return E_NOTIMPL; +} + +static HRESULT WINAPI AccPropServices_DecomposeHmenuIdentityString(IAccPropServices *iface, const BYTE *pIDString, + DWORD dwIDStringLen, HMENU *phmenu, DWORD *pidChild) +{ + FIXME("(%p %u %p %p\n", pIDString, dwIDStringLen, phmenu, pidChild); + return E_NOTIMPL; +} + +static const IAccPropServicesVtbl AccPropServicesVtbl = { + AccPropServices_QueryInterface, + AccPropServices_AddRef, + AccPropServices_Release, + AccPropServices_SetPropValue, + AccPropServices_SetPropServer, + AccPropServices_ClearProps, + AccPropServices_SetHwndProp, + AccPropServices_SetHwndPropStr, + AccPropServices_SetHwndPropServer, + AccPropServices_ClearHwndProps, + AccPropServices_ComposeHwndIdentityString, + AccPropServices_DecomposeHwndIdentityString, + AccPropServices_SetHmenuProp, + AccPropServices_SetHmenuPropStr, + AccPropServices_SetHmenuPropServer, + AccPropServices_ClearHmenuProps, + AccPropServices_ComposeHmenuIdentityString, + AccPropServices_DecomposeHmenuIdentityString +}; + +static IAccPropServices AccPropServices = { &AccPropServicesVtbl }; + +static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv) +{ + *ppv = NULL; + + if(IsEqualGUID(&IID_IUnknown, riid)) { + TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv); + *ppv = iface; + }else if(IsEqualGUID(&IID_IClassFactory, riid)) { + TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv); + *ppv = iface; + } + + if(*ppv) { + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + FIXME("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv); + return E_NOINTERFACE; +} + +static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface) +{ + TRACE("(%p)\n", iface); + return 2; +} + +static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) +{ + TRACE("(%p)\n", iface); + return 1; +} + +static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock) +{ + TRACE("(%p)->(%x)\n", iface, fLock); + return S_OK; +} + +static HRESULT WINAPI CAccPropServices_CreateInstance(IClassFactory *iface, IUnknown *outer, + REFIID riid, void **ppv) +{ + TRACE("(%p %s %p)\n", outer, debugstr_guid(riid), ppv); + + if(outer) { + *ppv = NULL; + return CLASS_E_NOAGGREGATION; + } + + return IAccPropServices_QueryInterface(&AccPropServices, riid, ppv); +} + +static const IClassFactoryVtbl CAccPropServicesFactoryVtbl = { + ClassFactory_QueryInterface, + ClassFactory_AddRef, + ClassFactory_Release, + CAccPropServices_CreateInstance, + ClassFactory_LockServer +}; + +static IClassFactory CAccPropServicesFactory = { &CAccPropServicesFactoryVtbl }; + +HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, void **ppv) +{ + if(IsEqualGUID(&CLSID_CAccPropServices, rclsid)) { + TRACE("(CLSID_CAccPropServices %s %p)\n", debugstr_guid(iid), ppv); + return IClassFactory_QueryInterface(&CAccPropServicesFactory, iid, ppv); + } + + FIXME("%s %s %p: stub\n", debugstr_guid(rclsid), debugstr_guid(iid), ppv); + return E_NOTIMPL; +} diff --git a/reactos/dll/win32/oleacc/resource.h b/reactos/dll/win32/oleacc/resource.h new file mode 100644 index 00000000000..d97697b6fcd --- /dev/null +++ b/reactos/dll/win32/oleacc/resource.h @@ -0,0 +1,50 @@ +/* + * Copyright 2014 Piotr Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define IDS_STATE_NORMAL 0x1000 +#define IDS_STATE_UNAVAILABLE 0x1001 +#define IDS_STATE_SELECTED 0x1002 +#define IDS_STATE_FOCUSED 0x1003 +#define IDS_STATE_PRESSED 0x1004 +#define IDS_STATE_CHECKED 0x1005 +#define IDS_STATE_MIXED 0x1006 +#define IDS_STATE_READONLY 0x1007 +#define IDS_STATE_HOTTRACKED 0x1008 +#define IDS_STATE_DEFAULT 0x1009 +#define IDS_STATE_EXPANDED 0x100a +#define IDS_STATE_COLLAPSED 0x100b +#define IDS_STATE_BUSY 0x100c +#define IDS_STATE_FLOATING 0x100d +#define IDS_STATE_MARQUEED 0x100e +#define IDS_STATE_ANIMATED 0x100f +#define IDS_STATE_INVISIBLE 0x1010 +#define IDS_STATE_OFFSCREEN 0x1011 +#define IDS_STATE_SIZEABLE 0x1012 +#define IDS_STATE_MOVEABLE 0x1013 +#define IDS_STATE_SELFVOICING 0x1014 +#define IDS_STATE_FOCUSABLE 0x1015 +#define IDS_STATE_SELECTABLE 0x1016 +#define IDS_STATE_LINKED 0x1017 +#define IDS_STATE_TRAVERSED 0x1018 +#define IDS_STATE_MULTISELECTABLE 0x1019 +#define IDS_STATE_EXTSELECTABLE 0x101a +#define IDS_STATE_ALERT_LOW 0x101b +#define IDS_STATE_ALERT_MEDIUM 0x101c +#define IDS_STATE_ALERT_HIGH 0x101d +#define IDS_STATE_PROTECTED 0x101e +#define IDS_STATE_HASPOPUP 0x101f diff --git a/reactos/dll/win32/oleacc/window.c b/reactos/dll/win32/oleacc/window.c new file mode 100644 index 00000000000..a659adaad8e --- /dev/null +++ b/reactos/dll/win32/oleacc/window.c @@ -0,0 +1,361 @@ +/* + * Copyright 2014 Piotr Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "oleacc_private.h" + +typedef struct { + IAccessible IAccessible_iface; + IOleWindow IOleWindow_iface; + + LONG ref; +} Window; + +static inline Window* impl_from_Window(IAccessible *iface) +{ + return CONTAINING_RECORD(iface, Window, IAccessible_iface); +} + +static HRESULT WINAPI Window_QueryInterface(IAccessible *iface, REFIID riid, void **ppv) +{ + Window *This = impl_from_Window(iface); + + TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + + if(IsEqualIID(riid, &IID_IAccessible) || + IsEqualIID(riid, &IID_IDispatch) || + IsEqualIID(riid, &IID_IUnknown)) { + *ppv = iface; + }else if(IsEqualIID(riid, &IID_IOleWindow)) { + *ppv = &This->IOleWindow_iface; + }else { + WARN("no interface: %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; + } + + IAccessible_AddRef(iface); + return S_OK; +} + +static ULONG WINAPI Window_AddRef(IAccessible *iface) +{ + Window *This = impl_from_Window(iface); + ULONG ref = InterlockedIncrement(&This->ref); + + TRACE("(%p) ref = %u\n", This, ref); + return ref; +} + +static ULONG WINAPI Window_Release(IAccessible *iface) +{ + Window *This = impl_from_Window(iface); + ULONG ref = InterlockedDecrement(&This->ref); + + TRACE("(%p) ref = %u\n", This, ref); + + if(!ref) + heap_free(This); + return ref; +} + +static HRESULT WINAPI Window_GetTypeInfoCount(IAccessible *iface, UINT *pctinfo) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pctinfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_GetTypeInfo(IAccessible *iface, + UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%u %x %p)\n", This, iTInfo, lcid, ppTInfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_GetIDsOfNames(IAccessible *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p %u %x %p)\n", This, debugstr_guid(riid), + rgszNames, cNames, lcid, rgDispId); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_Invoke(IAccessible *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%x %s %x %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accParent(IAccessible *iface, IDispatch **ppdispParent) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, ppdispParent); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accChildCount(IAccessible *iface, LONG *pcountChildren) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pcountChildren); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accChild(IAccessible *iface, + VARIANT varChildID, IDispatch **ppdispChild) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varChildID), ppdispChild); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accName(IAccessible *iface, VARIANT varID, BSTR *pszName) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszName); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accValue(IAccessible *iface, VARIANT varID, BSTR *pszValue) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszValue); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accDescription(IAccessible *iface, + VARIANT varID, BSTR *pszDescription) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszDescription); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accRole(IAccessible *iface, VARIANT varID, VARIANT *pvarRole) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarRole); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accState(IAccessible *iface, VARIANT varID, VARIANT *pvarState) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarState); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accHelp(IAccessible *iface, VARIANT varID, BSTR *pszHelp) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszHelp); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accHelpTopic(IAccessible *iface, + BSTR *pszHelpFile, VARIANT varID, LONG *pidTopic) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p %s %p)\n", This, pszHelpFile, debugstr_variant(&varID), pidTopic); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accKeyboardShortcut(IAccessible *iface, + VARIANT varID, BSTR *pszKeyboardShortcut) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszKeyboardShortcut); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accFocus(IAccessible *iface, VARIANT *pvarID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accSelection(IAccessible *iface, VARIANT *pvarID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accDefaultAction(IAccessible *iface, + VARIANT varID, BSTR *pszDefaultAction) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszDefaultAction); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accSelect(IAccessible *iface, LONG flagsSelect, VARIANT varID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%x %s)\n", This, flagsSelect, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accLocation(IAccessible *iface, LONG *pxLeft, + LONG *pyTop, LONG *pcxWidth, LONG *pcyHeight, VARIANT varID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p %p %p %p %s)\n", This, pxLeft, pyTop, + pcxWidth, pcyHeight, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accNavigate(IAccessible *iface, + LONG navDir, VARIANT varStart, VARIANT *pvarEnd) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%d %s %p)\n", This, navDir, debugstr_variant(&varStart), pvarEnd); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accHitTest(IAccessible *iface, + LONG xLeft, LONG yTop, VARIANT *pvarID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%d %d %p)\n", This, xLeft, yTop, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accDoDefaultAction(IAccessible *iface, VARIANT varID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s)\n", This, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_put_accName(IAccessible *iface, VARIANT varID, BSTR pszName) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %s)\n", This, debugstr_variant(&varID), debugstr_w(pszName)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_put_accValue(IAccessible *iface, VARIANT varID, BSTR pszValue) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %s)\n", This, debugstr_variant(&varID), debugstr_w(pszValue)); + return E_NOTIMPL; +} + +static const IAccessibleVtbl WindowVtbl = { + Window_QueryInterface, + Window_AddRef, + Window_Release, + Window_GetTypeInfoCount, + Window_GetTypeInfo, + Window_GetIDsOfNames, + Window_Invoke, + Window_get_accParent, + Window_get_accChildCount, + Window_get_accChild, + Window_get_accName, + Window_get_accValue, + Window_get_accDescription, + Window_get_accRole, + Window_get_accState, + Window_get_accHelp, + Window_get_accHelpTopic, + Window_get_accKeyboardShortcut, + Window_get_accFocus, + Window_get_accSelection, + Window_get_accDefaultAction, + Window_accSelect, + Window_accLocation, + Window_accNavigate, + Window_accHitTest, + Window_accDoDefaultAction, + Window_put_accName, + Window_put_accValue +}; + +static inline Window* impl_from_Window_OleWindow(IOleWindow *iface) +{ + return CONTAINING_RECORD(iface, Window, IOleWindow_iface); +} + +static HRESULT WINAPI Window_OleWindow_QueryInterface(IOleWindow *iface, REFIID riid, void **ppv) +{ + Window *This = impl_from_Window_OleWindow(iface); + return IAccessible_QueryInterface(&This->IAccessible_iface, riid, ppv); +} + +static ULONG WINAPI Window_OleWindow_AddRef(IOleWindow *iface) +{ + Window *This = impl_from_Window_OleWindow(iface); + return IAccessible_AddRef(&This->IAccessible_iface); +} + +static ULONG WINAPI Window_OleWindow_Release(IOleWindow *iface) +{ + Window *This = impl_from_Window_OleWindow(iface); + return IAccessible_Release(&This->IAccessible_iface); +} + +static HRESULT WINAPI Window_OleWindow_GetWindow(IOleWindow *iface, HWND *phwnd) +{ + Window *This = impl_from_Window_OleWindow(iface); + FIXME("(%p)->(%p)\n", This, phwnd); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_OleWindow_ContextSensitiveHelp(IOleWindow *iface, BOOL fEnterMode) +{ + Window *This = impl_from_Window_OleWindow(iface); + FIXME("(%p)->(%x)\n", This, fEnterMode); + return E_NOTIMPL; +} + +static const IOleWindowVtbl WindowOleWindowVtbl = { + Window_OleWindow_QueryInterface, + Window_OleWindow_AddRef, + Window_OleWindow_Release, + Window_OleWindow_GetWindow, + Window_OleWindow_ContextSensitiveHelp +}; + +HRESULT create_window_object(HWND hwnd, const IID *iid, void **obj) +{ + Window *window; + HRESULT hres; + + if(!IsWindow(hwnd)) + return E_FAIL; + + window = heap_alloc_zero(sizeof(Window)); + if(!window) + return E_OUTOFMEMORY; + + window->IAccessible_iface.lpVtbl = &WindowVtbl; + window->IOleWindow_iface.lpVtbl = &WindowOleWindowVtbl; + window->ref = 1; + + hres = IAccessible_QueryInterface(&window->IAccessible_iface, iid, obj); + IAccessible_Release(&window->IAccessible_iface); + return hres; +} diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index fb19d03b3eb..4d0db59edfd 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -151,7 +151,7 @@ reactos/dll/win32/objsel # Synced to Wine-1.7.17 reactos/dll/win32/odbc32 # Synced to Wine-1.7.17. Depends on port of Linux ODBC. reactos/dll/win32/odbccp32 # Synced to Wine-1.7.17 reactos/dll/win32/ole32 # Synced to Wine-1.7.27 -reactos/dll/win32/oleacc # Synced to Wine-1.7.17 +reactos/dll/win32/oleacc # Synced to Wine-1.7.27 reactos/dll/win32/oleaut32 # Synced to Wine-1.7.17 reactos/dll/win32/olecli32 # Synced to Wine-1.7.17 reactos/dll/win32/oledlg # Synced to Wine-1.7.17