home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / OLEACC.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  13.2 KB  |  282 lines

  1. //+-------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright 1995 - 1996 Microsoft Corporation. All Rights Reserved.
  5. //
  6. //  File: oleacc.h
  7. //
  8. //--------------------------------------------------------------------------
  9. #ifndef _OLEACC_H_
  10. #pragma option push -b -a8 -pc -A- /*P_O_Push_S*/
  11. #define _OLEACC_H_
  12.  
  13.  
  14. // PROPERTIES:  Hierarchical
  15. #define DISPID_ACC_PARENT                   (-5000)
  16. #define DISPID_ACC_CHILDCOUNT               (-5001)
  17. #define DISPID_ACC_CHILD                    (-5002)
  18.  
  19. // PROPERTIES:  Descriptional
  20. #define DISPID_ACC_NAME                     (-5003)
  21. #define DISPID_ACC_VALUE                    (-5004)
  22. #define DISPID_ACC_DESCRIPTION              (-5005)
  23. #define DISPID_ACC_ROLE                     (-5006)
  24. #define DISPID_ACC_STATE                    (-5007)
  25. #define DISPID_ACC_HELP                     (-5008)
  26. #define DISPID_ACC_HELPTOPIC                (-5009)
  27. #define DISPID_ACC_KEYBOARDSHORTCUT         (-5010)
  28. #define DISPID_ACC_FOCUS                    (-5011)
  29. #define DISPID_ACC_SELECTION                (-5012)
  30. #define DISPID_ACC_DEFAULTACTION            (-5013)
  31.  
  32. // METHODS
  33. #define DISPID_ACC_SELECT                   (-5014)
  34. #define DISPID_ACC_LOCATION                 (-5015)
  35. #define DISPID_ACC_NAVIGATE                 (-5016)
  36. #define DISPID_ACC_HITTEST                  (-5017)
  37. #define DISPID_ACC_DODEFAULTACTION          (-5018)
  38.  
  39.  
  40.  
  41. #ifndef __MKTYPLIB__
  42.  
  43. //  CONSTANTS
  44.  
  45. //
  46. // Input to DISPID_ACC_NAVIGATE
  47. //
  48. #define NAVDIR_MIN                      0x00000000
  49. #define NAVDIR_UP                       0x00000001
  50. #define NAVDIR_DOWN                     0x00000002
  51. #define NAVDIR_LEFT                     0x00000003
  52. #define NAVDIR_RIGHT                    0x00000004
  53. #define NAVDIR_NEXT                     0x00000005
  54. #define NAVDIR_PREVIOUS                 0x00000006
  55. #define NAVDIR_FIRSTCHILD               0x00000007
  56. #define NAVDIR_LASTCHILD                0x00000008
  57. #define NAVDIR_MAX                      0x00000009
  58.  
  59. // Input to DISPID_ACC_SELECT
  60. #define SELFLAG_NONE                    0x00000000
  61. #define SELFLAG_TAKEFOCUS               0x00000001
  62. #define SELFLAG_TAKESELECTION           0x00000002
  63. #define SELFLAG_EXTENDSELECTION         0x00000004
  64. #define SELFLAG_ADDSELECTION            0x00000008
  65. #define SELFLAG_REMOVESELECTION         0x00000010
  66. #define SELFLAG_VALID                   0x0000001F
  67.  
  68. // Output from DISPID_ACC_STATE
  69. #define STATE_SYSTEM_UNAVAILABLE        0x00000001  // Disabled
  70. #define STATE_SYSTEM_SELECTED           0x00000002
  71. #define STATE_SYSTEM_FOCUSED            0x00000004
  72. #define STATE_SYSTEM_PRESSED            0x00000008
  73. #define STATE_SYSTEM_CHECKED            0x00000010
  74. #define STATE_SYSTEM_MIXED              0x00000020  // 3-state checkbox or toolbar button
  75. #define STATE_SYSTEM_READONLY           0x00000040
  76. #define STATE_SYSTEM_HOTTRACKED         0x00000080
  77. #define STATE_SYSTEM_DEFAULT            0x00000100
  78. #define STATE_SYSTEM_EXPANDED           0x00000200
  79. #define STATE_SYSTEM_COLLAPSED          0x00000400
  80. #define STATE_SYSTEM_BUSY               0x00000800
  81. #define STATE_SYSTEM_FLOATING           0x00001000  // Children "owned" not "contained" by parent
  82. #define STATE_SYSTEM_MARQUEED           0x00002000
  83. #define STATE_SYSTEM_ANIMATED           0x00004000
  84. #define STATE_SYSTEM_INVISIBLE          0x00008000
  85. #define STATE_SYSTEM_OFFSCREEN          0x00010000
  86. #define STATE_SYSTEM_SIZEABLE           0x00020000
  87. #define STATE_SYSTEM_MOVEABLE           0x00040000
  88. #define STATE_SYSTEM_SELFVOICING        0x00080000
  89. #define STATE_SYSTEM_FOCUSABLE          0x00100000
  90. #define STATE_SYSTEM_SELECTABLE         0x00200000
  91. #define STATE_SYSTEM_LINKED             0x00400000
  92. #define STATE_SYSTEM_TRAVERSED          0x00800000
  93. #define STATE_SYSTEM_MULTISELECTABLE    0x01000000  // Supports multiple selection
  94. #define STATE_SYSTEM_EXTSELECTABLE      0x02000000  // Supports extended selection
  95. #define STATE_SYSTEM_ALERT_LOW          0x04000000  // This information is of low priority
  96. #define STATE_SYSTEM_ALERT_MEDIUM       0x08000000  // This information is of medium priority
  97. #define STATE_SYSTEM_ALERT_HIGH         0x10000000  // This information is of high priority
  98. #define STATE_SYSTEM_VALID              0x1FFFFFFF
  99.  
  100. // Output from DISPID_ACC_ROLE
  101. #define ROLE_SYSTEM_TITLEBAR            0x00000001
  102. #define ROLE_SYSTEM_MENUBAR             0x00000002
  103. #define ROLE_SYSTEM_SCROLLBAR           0x00000003
  104. #define ROLE_SYSTEM_GRIP                0x00000004
  105. #define ROLE_SYSTEM_SOUND               0x00000005
  106. #define ROLE_SYSTEM_CURSOR              0x00000006
  107. #define ROLE_SYSTEM_CARET               0x00000007
  108. #define ROLE_SYSTEM_ALERT               0x00000008
  109. #define ROLE_SYSTEM_WINDOW              0x00000009
  110. #define ROLE_SYSTEM_CLIENT              0x0000000A
  111. #define ROLE_SYSTEM_MENUPOPUP           0x0000000B
  112. #define ROLE_SYSTEM_MENUITEM            0x0000000C
  113. #define ROLE_SYSTEM_TOOLTIP             0x0000000D
  114. #define ROLE_SYSTEM_APPLICATION         0x0000000E
  115. #define ROLE_SYSTEM_DOCUMENT            0x0000000F
  116. #define ROLE_SYSTEM_PANE                0x00000010
  117. #define ROLE_SYSTEM_CHART               0x00000011
  118. #define ROLE_SYSTEM_DIALOG              0x00000012
  119. #define ROLE_SYSTEM_BORDER              0x00000013
  120. #define ROLE_SYSTEM_GROUPING            0x00000014
  121. #define ROLE_SYSTEM_SEPARATOR           0x00000015
  122. #define ROLE_SYSTEM_TOOLBAR             0x00000016
  123. #define ROLE_SYSTEM_STATUSBAR           0x00000017
  124. #define ROLE_SYSTEM_TABLE               0x00000018
  125. #define ROLE_SYSTEM_COLUMNHEADER        0x00000019
  126. #define ROLE_SYSTEM_ROWHEADER           0x0000001A
  127. #define ROLE_SYSTEM_COLUMN              0x0000001B
  128. #define ROLE_SYSTEM_ROW                 0x0000001C
  129. #define ROLE_SYSTEM_CELL                0x0000001D
  130. #define ROLE_SYSTEM_LINK                0x0000001E
  131. #define ROLE_SYSTEM_HELPBALLOON         0x0000001F
  132. #define ROLE_SYSTEM_CHARACTER           0x00000020
  133. #define ROLE_SYSTEM_LIST                0x00000021
  134. #define ROLE_SYSTEM_LISTITEM            0x00000022
  135. #define ROLE_SYSTEM_OUTLINE             0x00000023
  136. #define ROLE_SYSTEM_OUTLINEITEM         0x00000024
  137. #define ROLE_SYSTEM_PAGETAB             0x00000025
  138. #define ROLE_SYSTEM_PROPERTYPAGE        0x00000026
  139. #define ROLE_SYSTEM_INDICATOR           0x00000027
  140. #define ROLE_SYSTEM_GRAPHIC             0x00000028
  141. #define ROLE_SYSTEM_STATICTEXT          0x00000029
  142. #define ROLE_SYSTEM_TEXT                0x0000002A  // Editable, selectable, etc.
  143. #define ROLE_SYSTEM_PUSHBUTTON          0x0000002B
  144. #define ROLE_SYSTEM_CHECKBUTTON         0x0000002C
  145. #define ROLE_SYSTEM_RADIOBUTTON         0x0000002D
  146. #define ROLE_SYSTEM_COMBOBOX            0x0000002E
  147. #define ROLE_SYSTEM_DROPLIST            0x0000002F
  148. #define ROLE_SYSTEM_PROGRESSBAR         0x00000030
  149. #define ROLE_SYSTEM_DIAL                0x00000031
  150. #define ROLE_SYSTEM_HOTKEYFIELD         0x00000032
  151. #define ROLE_SYSTEM_SLIDER              0x00000033
  152. #define ROLE_SYSTEM_SPINBUTTON          0x00000034
  153. #define ROLE_SYSTEM_DIAGRAM             0x00000035
  154. #define ROLE_SYSTEM_ANIMATION           0x00000036
  155. #define ROLE_SYSTEM_EQUATION            0x00000037
  156. #define ROLE_SYSTEM_BUTTONDROPDOWN      0x00000038
  157. #define ROLE_SYSTEM_BUTTONMENU          0x00000039
  158. #define ROLE_SYSTEM_BUTTONDROPDOWNGRID  0x0000003A
  159. #define ROLE_SYSTEM_WHITESPACE          0x0000003B
  160. #define ROLE_SYSTEM_PAGETABLIST         0x0000003C
  161. #define ROLE_SYSTEM_CLOCK               0x0000003D
  162.  
  163.  
  164. ////////////////////////////////////////////////////////////////////////////
  165. //  IAccessible definition
  166. //
  167. //  #define NO_ACCESSIBLE_INTERFACE if you need to include multiple header
  168. //  files that define the IAccessible interface.
  169.  
  170. #ifdef NO_ACCESSIBLE_INTERFACE
  171.  
  172. interface IAccessible;
  173.  
  174. #else
  175.  
  176. #undef INTERFACE
  177. #define INTERFACE   IAccessible
  178.  
  179. DEFINE_GUID(LIBID_Accessibility, 0x1ea4dbf0, 0x3c3b, 0x11cf, 0x81, 0x0c, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  180. DEFINE_GUID(IID_IAccessible,     0x618736e0, 0x3c3d, 0x11cf, 0x81, 0x0c, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  181.  
  182. DECLARE_INTERFACE_(IAccessible, IDispatch)
  183. {
  184. #ifndef NO_BASEINTERFACE_FUNCS
  185.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  186.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  187.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  188.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  189.     STDMETHOD(GetTypeInfo)(THIS_ UINT itinfo, LCID lcid, ITypeInfo FAR* FAR* pptinfo) PURE;
  190.     STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, OLECHAR FAR* FAR* rgszNames, UINT cNames,
  191.         LCID lcid, DISPID FAR* rgdispid) PURE;
  192.     STDMETHOD(Invoke)(THIS_ DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags,
  193.         DISPPARAMS FAR* pdispparams, VARIANT FAR* pvarResult, EXCEPINFO FAR* pexcepinfo,
  194.         UINT FAR* puArgErr) PURE;
  195. #endif
  196.  
  197.     STDMETHOD(get_accParent)(THIS_ IDispatch * FAR* ppdispParent) PURE;
  198.     STDMETHOD(get_accChildCount)(THIS_ long FAR* pChildCount) PURE;
  199.     STDMETHOD(get_accChild)(THIS_ VARIANT varChildIndex, IDispatch * FAR* ppdispChild) PURE;
  200.  
  201.     STDMETHOD(get_accName)(THIS_ VARIANT varChild, BSTR* pszName) PURE;
  202.     STDMETHOD(get_accValue)(THIS_ VARIANT varChild, BSTR* pszValue) PURE;
  203.     STDMETHOD(get_accDescription)(THIS_ VARIANT varChild, BSTR FAR* pszDescription) PURE;
  204.     STDMETHOD(get_accRole)(THIS_ VARIANT varChild, VARIANT *pvarRole) PURE;
  205.     STDMETHOD(get_accState)(THIS_ VARIANT varChild, VARIANT *pvarState) PURE;
  206.     STDMETHOD(get_accHelp)(THIS_ VARIANT varChild, BSTR* pszHelp) PURE;
  207.     STDMETHOD(get_accHelpTopic)(THIS_ BSTR* pszHelpFile, VARIANT varChild, long* pidTopic) PURE;
  208.     STDMETHOD(get_accKeyboardShortcut)(THIS_ VARIANT varChild, BSTR* pszKeyboardShortcut) PURE;
  209.     STDMETHOD(get_accFocus)(THIS_ VARIANT FAR * pvarFocusChild) PURE;
  210.     STDMETHOD(get_accSelection)(THIS_ VARIANT FAR * pvarSelectedChildren) PURE;
  211.     STDMETHOD(get_accDefaultAction)(THIS_ VARIANT varChild, BSTR* pszDefaultAction) PURE;
  212.  
  213.     STDMETHOD(accSelect)(THIS_ long flagsSelect, VARIANT varChild) PURE;
  214.     STDMETHOD(accLocation)(THIS_ long* pxLeft, long* pyTop, long* pcxWidth, long* pcyHeight, VARIANT varChild) PURE;
  215.     STDMETHOD(accNavigate)(THIS_ long navDir, VARIANT varStart, VARIANT * pvarEndUpAt) PURE;
  216.     STDMETHOD(accHitTest)(THIS_ long xLeft, long yTop, VARIANT * pvarChildAtPoint) PURE;
  217.     STDMETHOD(accDoDefaultAction)(THIS_ VARIANT varChild) PURE;
  218.  
  219.     STDMETHOD(put_accName)(THIS_ VARIANT varChild, BSTR szName) PURE;
  220.     STDMETHOD(put_accValue)(THIS_ VARIANT varChild, BSTR pszValue) PURE;
  221. };
  222. #endif // NO_ACCESSIBLE_INTERFACE
  223.  
  224. typedef IAccessible* LPACCESSIBLE;
  225.  
  226.  
  227.  
  228. ////////////////////////////////////////////////////////////////////////////
  229. //  GUIDs (these GUIDs can be linked to from OLEACC.LIB)
  230. //EXTERN_C __declspec(dllimport) const GUID     LIBID_Accessibility;
  231. //EXTERN_C __declspec(dllimport) const IID      IID_IAccessible;
  232.  
  233.  
  234. ////////////////////////////////////////////////////////////////////////////
  235. //  Types to help dynamic binding to OLEACC.DLL
  236. typedef LRESULT (STDAPICALLTYPE *LPFNLRESULTFROMOBJECT)(REFIID riid, WPARAM wParam, LPUNKNOWN punk);
  237. typedef HRESULT (STDAPICALLTYPE *LPFNOBJECTFROMLRESULT)(LRESULT lResult, REFIID riid, WPARAM wParam, void** ppvObject);
  238. typedef HRESULT (STDAPICALLTYPE *LPFNACCESSIBLEOBJECTFROMWINDOW)(HWND hwnd, DWORD dwId, REFIID riid, void** ppvObject);
  239. typedef HRESULT (STDAPICALLTYPE *LPFNACCESSIBLEOBJECTFROMPOINT)(POINT ptScreen, IAccessible** ppacc, VARIANT* pvarChild);
  240. typedef HRESULT (STDAPICALLTYPE *LPFNCREATESTDACCESSIBLEOBJECT)(HWND hwnd, LONG idObject, REFIID riid, void** ppvObject);
  241. typedef HRESULT (STDAPICALLTYPE *LPFNACCESSIBLECHILDREN)(IAccessible* paccContainer, LONG iChildStart,LONG cChildren,
  242.                                                          VARIANT* rgvarChildren,LONG* pcObtained);
  243.  
  244.  
  245.  
  246. ////////////////////////////////////////////////////////////////////////////
  247. //  Prototypes
  248. STDAPI_(LRESULT) LresultFromObject(REFIID riid, WPARAM wParam, LPUNKNOWN punk);
  249. STDAPI          ObjectFromLresult(LRESULT lResult, REFIID riid, WPARAM wParam, void** ppvObject);
  250.  
  251. STDAPI          WindowFromAccessibleObject(IAccessible*, HWND* phwnd);
  252. STDAPI          AccessibleObjectFromWindow(HWND hwnd, DWORD dwId, REFIID riid, void **ppvObject);
  253. STDAPI          AccessibleObjectFromEvent(HWND hwnd, DWORD dwId, DWORD dwChildId, IAccessible** ppacc, VARIANT* pvarChild);
  254.  
  255. STDAPI          AccessibleObjectFromPoint(POINT ptScreen, IAccessible ** ppacc, VARIANT* pvarChild);
  256.  
  257. STDAPI          CreateStdAccessibleObject(HWND hwnd, LONG idObject, REFIID riid, void** ppvObject);
  258. STDAPI            AccessibleChildren (IAccessible* paccContainer, LONG iChildStart,                
  259.                                     LONG cChildren, VARIANT* rgvarChildren,LONG* pcObtained);
  260.  
  261.  
  262. STDAPI_(UINT)   GetRoleTextA(DWORD lRole, LPSTR lpszRole, UINT cchRoleMax);
  263. STDAPI_(UINT)   GetRoleTextW(DWORD lRole, LPWSTR lpszRole, UINT cchRoleMax);
  264. #ifdef UNICODE
  265. #define GetRoleText     GetRoleTextW
  266. #else
  267. #define GetRoleText     GetRoleTextA
  268. #endif // UNICODE
  269.  
  270. STDAPI_(UINT)   GetStateTextA(DWORD lStateBit, LPSTR lpszState, UINT cchState);
  271. STDAPI_(UINT)   GetStateTextW(DWORD lStateBit, LPWSTR lpszState, UINT cchState);
  272. #ifdef UNICODE
  273. #define GetStateText    GetStateTextW
  274. #else
  275. #define GetStateText    GetStateTextA
  276. #endif // UNICODE
  277.  
  278. #endif // !__MKTYPLIB__
  279.  
  280. #pragma option pop /*P_O_Pop*/
  281. #endif // _OLEACC_H_
  282.