1 /***********************************************************************\
2 *                                oleacc.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.oleacc;
11 version(Windows):
12 pragma(lib, "oleacc");
13 
14 private import win32.basetyps, win32.oaidl, win32.unknwn, win32.wtypes,
15   win32.windef;
16 
17 enum {
18 	DISPID_ACC_PARENT           = -5000,
19 	DISPID_ACC_CHILDCOUNT       = -5001,
20 	DISPID_ACC_CHILD            = -5002,
21 	DISPID_ACC_NAME             = -5003,
22 	DISPID_ACC_VALUE            = -5004,
23 	DISPID_ACC_DESCRIPTION      = -5005,
24 	DISPID_ACC_ROLE             = -5006,
25 	DISPID_ACC_STATE            = -5007,
26 	DISPID_ACC_HELP             = -5008,
27 	DISPID_ACC_HELPTOPIC        = -5009,
28 	DISPID_ACC_KEYBOARDSHORTCUT = -5010,
29 	DISPID_ACC_FOCUS            = -5011,
30 	DISPID_ACC_SELECTION        = -5012,
31 	DISPID_ACC_DEFAULTACTION    = -5013,
32 	DISPID_ACC_SELECT           = -5014,
33 	DISPID_ACC_LOCATION         = -5015,
34 	DISPID_ACC_NAVIGATE         = -5016,
35 	DISPID_ACC_HITTEST          = -5017,
36 	DISPID_ACC_DODEFAULTACTION  = -5018
37 }
38 
39 enum {
40 	NAVDIR_UP = 1,
41 	NAVDIR_DOWN,
42 	NAVDIR_LEFT,
43 	NAVDIR_RIGHT,
44 	NAVDIR_NEXT,
45 	NAVDIR_PREVIOUS,
46 	NAVDIR_FIRSTCHILD,
47 	NAVDIR_LASTCHILD // = 8
48 }
49 
50 enum {
51 	ROLE_SYSTEM_TITLEBAR = 1,
52 	ROLE_SYSTEM_MENUBAR,
53 	ROLE_SYSTEM_SCROLLBAR,
54 	ROLE_SYSTEM_GRIP,
55 	ROLE_SYSTEM_SOUND,
56 	ROLE_SYSTEM_CURSOR,
57 	ROLE_SYSTEM_CARET,
58 	ROLE_SYSTEM_ALERT,
59 	ROLE_SYSTEM_WINDOW,
60 	ROLE_SYSTEM_CLIENT,
61 	ROLE_SYSTEM_MENUPOPUP,
62 	ROLE_SYSTEM_MENUITEM,
63 	ROLE_SYSTEM_TOOLTIP,
64 	ROLE_SYSTEM_APPLICATION,
65 	ROLE_SYSTEM_DOCUMENT,
66 	ROLE_SYSTEM_PANE,
67 	ROLE_SYSTEM_CHART,
68 	ROLE_SYSTEM_DIALOG,
69 	ROLE_SYSTEM_BORDER,
70 	ROLE_SYSTEM_GROUPING,
71 	ROLE_SYSTEM_SEPARATOR,
72 	ROLE_SYSTEM_TOOLBAR,
73 	ROLE_SYSTEM_STATUSBAR,
74 	ROLE_SYSTEM_TABLE,
75 	ROLE_SYSTEM_COLUMNHEADER,
76 	ROLE_SYSTEM_ROWHEADER,
77 	ROLE_SYSTEM_COLUMN,
78 	ROLE_SYSTEM_ROW,
79 	ROLE_SYSTEM_CELL,
80 	ROLE_SYSTEM_LINK,
81 	ROLE_SYSTEM_HELPBALLOON,
82 	ROLE_SYSTEM_CHARACTER,
83 	ROLE_SYSTEM_LIST,
84 	ROLE_SYSTEM_LISTITEM,
85 	ROLE_SYSTEM_OUTLINE,
86 	ROLE_SYSTEM_OUTLINEITEM,
87 	ROLE_SYSTEM_PAGETAB,
88 	ROLE_SYSTEM_PROPERTYPAGE,
89 	ROLE_SYSTEM_INDICATOR,
90 	ROLE_SYSTEM_GRAPHIC,
91 	ROLE_SYSTEM_STATICTEXT,
92 	ROLE_SYSTEM_TEXT,
93 	ROLE_SYSTEM_PUSHBUTTON,
94 	ROLE_SYSTEM_CHECKBUTTON,
95 	ROLE_SYSTEM_RADIOBUTTON,
96 	ROLE_SYSTEM_COMBOBOX,
97 	ROLE_SYSTEM_DROPLIST,
98 	ROLE_SYSTEM_PROGRESSBAR,
99 	ROLE_SYSTEM_DIAL,
100 	ROLE_SYSTEM_HOTKEYFIELD,
101 	ROLE_SYSTEM_SLIDER,
102 	ROLE_SYSTEM_SPINBUTTON,
103 	ROLE_SYSTEM_DIAGRAM,
104 	ROLE_SYSTEM_ANIMATION,
105 	ROLE_SYSTEM_EQUATION,
106 	ROLE_SYSTEM_BUTTONDROPDOWN,
107 	ROLE_SYSTEM_BUTTONMENU,
108 	ROLE_SYSTEM_BUTTONDROPDOWNGRID,
109 	ROLE_SYSTEM_WHITESPACE,
110 	ROLE_SYSTEM_PAGETABLIST,
111 	ROLE_SYSTEM_CLOCK // = 61
112 }
113 
114 enum {
115 	STATE_SYSTEM_UNAVAILABLE     = 0x00000001,
116 	STATE_SYSTEM_SELECTED        = 0x00000002,
117 	STATE_SYSTEM_FOCUSED         = 0x00000004,
118 	STATE_SYSTEM_PRESSED         = 0x00000008,
119 	STATE_SYSTEM_CHECKED         = 0x00000010,
120 	STATE_SYSTEM_MIXED           = 0x00000020,
121 	STATE_SYSTEM_READONLY        = 0x00000040,
122 	STATE_SYSTEM_HOTTRACKED      = 0x00000080,
123 	STATE_SYSTEM_DEFAULT         = 0x00000100,
124 	STATE_SYSTEM_EXPANDED        = 0x00000200,
125 	STATE_SYSTEM_COLLAPSED       = 0x00000400,
126 	STATE_SYSTEM_BUSY            = 0x00000800,
127 	STATE_SYSTEM_FLOATING        = 0x00001000,
128 	STATE_SYSTEM_MARQUEED        = 0x00002000,
129 	STATE_SYSTEM_ANIMATED        = 0x00004000,
130 	STATE_SYSTEM_INVISIBLE       = 0x00008000,
131 	STATE_SYSTEM_OFFSCREEN       = 0x00010000,
132 	STATE_SYSTEM_SIZEABLE        = 0x00020000,
133 	STATE_SYSTEM_MOVEABLE        = 0x00040000,
134 	STATE_SYSTEM_SELFVOICING     = 0x00080000,
135 	STATE_SYSTEM_FOCUSABLE       = 0x00100000,
136 	STATE_SYSTEM_SELECTABLE      = 0x00200000,
137 	STATE_SYSTEM_LINKED          = 0x00400000,
138 	STATE_SYSTEM_TRAVERSED       = 0x00800000,
139 	STATE_SYSTEM_MULTISELECTABLE = 0x01000000,
140 	STATE_SYSTEM_EXTSELECTABLE   = 0x02000000,
141 	STATE_SYSTEM_ALERT_LOW       = 0x04000000,
142 	STATE_SYSTEM_ALERT_MEDIUM    = 0x08000000,
143 	STATE_SYSTEM_ALERT_HIGH      = 0x10000000,
144 	STATE_SYSTEM_VALID           = 0x1fffffff
145 }
146 
147 enum SELFLAG
148 {
149 	SELFLAG_NONE            = 0,
150 	SELFLAG_TAKEFOCUS       = 1,
151 	SELFLAG_TAKESELECTION   = 2,
152 	SELFLAG_EXTENDSELECTION = 4,
153 	SELFLAG_ADDSELECTION    = 8,
154 	SELFLAG_REMOVESELECTION = 16
155 }
156 
157 const SELFLAG_VALID = 0x0000001F;
158 
159 
160 interface IAccessible : IDispatch {
161 	HRESULT get_accParent(IDispatch*);
162 	HRESULT get_accChildCount(int*);
163 	HRESULT get_accChild(VARIANT, IDispatch*);
164 	HRESULT get_accName(VARIANT, BSTR*);
165 	HRESULT get_accValue(VARIANT, BSTR*);
166 	HRESULT get_accDescription(VARIANT, BSTR*);
167 	HRESULT get_accRole(VARIANT, VARIANT*);
168 	HRESULT get_accState(VARIANT, VARIANT*);
169 	HRESULT get_accHelp(VARIANT, BSTR*);
170 	HRESULT get_accHelpTopic(BSTR*, VARIANT, int*);
171 	HRESULT get_accKeyboardShortcut(VARIANT, BSTR*);
172 	HRESULT get_accFocus(VARIANT*);
173 	HRESULT get_accSelection(VARIANT*);
174 	HRESULT get_accDefaultAction(VARIANT, BSTR*);
175 
176 	HRESULT accSelect(int, VARIANT);
177 	HRESULT accLocation(int*, int*, int*, int*, VARIANT);
178 	HRESULT accNavigate(int, VARIANT, VARIANT*);
179 	HRESULT accHitTest(int, int, VARIANT*);
180 	HRESULT accDoDefaultAction(VARIANT);
181 
182 	HRESULT put_accName(VARIANT, BSTR);
183 	HRESULT put_accValue(VARIANT, BSTR);
184 }
185 
186 alias IAccessible LPACCESSIBLE;
187 
188 extern (Windows) {
189 	HRESULT AccessibleChildren(IAccessible, LONG, LONG, VARIANT*, LONG*);
190 	HRESULT AccessibleObjectFromEvent(HWND, DWORD, DWORD, IAccessible, VARIANT*);
191 	HRESULT AccessibleObjectFromPoint(POINT, IAccessible*, VARIANT*);
192 	HRESULT AccessibleObjectFromWindow(HWND, DWORD, REFIID, void**);
193 	HRESULT CreateStdAccessibleObject(HWND, LONG, REFIID, void**);
194 	HRESULT CreateStdAccessibleProxyA(HWND, LPCSTR, LONG, REFIID, void**);
195 	HRESULT CreateStdAccessibleProxyW(HWND, LPCWSTR, LONG, REFIID, void**);
196 
197 	void GetOleaccVersionInfo(DWORD*, DWORD*);
198 	UINT GetRoleTextA(DWORD, LPSTR, UINT);
199 	UINT GetRoleTextW(DWORD, LPWSTR, UINT);
200 	UINT GetStateTextA(DWORD, LPSTR, UINT);
201 	UINT GetStateTextW(DWORD, LPWSTR, UINT);
202 	LRESULT LresultFromObject(REFIID, WPARAM, LPUNKNOWN);
203 	HRESULT ObjectFromLresult(LRESULT, REFIID, WPARAM, void**);
204 	HRESULT WindowFromAccessibleObject(IAccessible, HWND*);
205 }
206 
207 version(Unicode) {
208 	alias CreateStdAccessibleProxyW CreateStdAccessibleProxy;
209 	alias GetRoleTextW GetRoleText;
210 	alias GetStateTextW GetStateText;
211 } else {
212 	alias CreateStdAccessibleProxyA CreateStdAccessibleProxy;
213 	alias GetRoleTextA GetRoleText;
214 	alias GetStateTextA GetStateText;
215 }