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